/[jscoverage]/trunk/js/imacros.c.out
ViewVC logotype

Contents of /trunk/js/imacros.c.out

Parent Directory Parent Directory | Revision Log Revision Log


Revision 507 - (show annotations)
Sun Jan 10 07:23:34 2010 UTC (12 years, 4 months ago) by siliconforks
File size: 25367 byte(s)
Update SpiderMonkey from Firefox 3.6rc1.

1 /* GENERATED BY imacro_asm.js -- DO NOT EDIT!!! */
2 static struct {
3 jsbytecode any_obj[36];
4 jsbytecode obj_any[38];
5 } equality_imacros = {
6 {
7 /* 0*/ JSOP_DUP,
8 /* 1*/ JSOP_DUP,
9 /* 2*/ JSOP_GETPROP, 0, COMMON_ATOM_INDEX(valueOf),
10 /* 5*/ JSOP_IFPRIMTOP, 0, 18,
11 /* 8*/ JSOP_SWAP,
12 /* 9*/ JSOP_STRING, 0, COMMON_TYPE_ATOM_INDEX(JSTYPE_VOID),
13 /*12*/ JSOP_CALL, 0, 1,
14 /*15*/ JSOP_IFPRIMTOP, 0, 17,
15 /*18*/ JSOP_POP,
16 /*19*/ JSOP_DUP,
17 /*20*/ JSOP_GOTO, 0, 4,
18 /*23*/ JSOP_POP,
19 /*24*/ JSOP_CALLPROP, 0, COMMON_ATOM_INDEX(toString),
20 /*27*/ JSOP_CALL, 0, 0,
21 /*30*/ JSOP_PRIMTOP, (JSTYPE_NUMBER),
22 /*32*/ JSOP_SWAP,
23 /*33*/ JSOP_POP,
24 /*34*/ JSOP_IMACOP,
25 /*35*/ JSOP_STOP,
26 },
27 {
28 /* 0*/ JSOP_SWAP,
29 /* 1*/ JSOP_DUP,
30 /* 2*/ JSOP_DUP,
31 /* 3*/ JSOP_GETPROP, 0, COMMON_ATOM_INDEX(valueOf),
32 /* 6*/ JSOP_IFPRIMTOP, 0, 18,
33 /* 9*/ JSOP_SWAP,
34 /*10*/ JSOP_STRING, 0, COMMON_TYPE_ATOM_INDEX(JSTYPE_VOID),
35 /*13*/ JSOP_CALL, 0, 1,
36 /*16*/ JSOP_IFPRIMTOP, 0, 17,
37 /*19*/ JSOP_POP,
38 /*20*/ JSOP_DUP,
39 /*21*/ JSOP_GOTO, 0, 4,
40 /*24*/ JSOP_POP,
41 /*25*/ JSOP_CALLPROP, 0, COMMON_ATOM_INDEX(toString),
42 /*28*/ JSOP_CALL, 0, 0,
43 /*31*/ JSOP_PRIMTOP, (JSTYPE_NUMBER),
44 /*33*/ JSOP_SWAP,
45 /*34*/ JSOP_POP,
46 /*35*/ JSOP_SWAP,
47 /*36*/ JSOP_IMACOP,
48 /*37*/ JSOP_STOP,
49 },
50 };
51 static struct {
52 jsbytecode any_obj[36];
53 jsbytecode obj_any[38];
54 jsbytecode obj_obj[72];
55 } binary_imacros = {
56 {
57 /* 0*/ JSOP_DUP,
58 /* 1*/ JSOP_DUP,
59 /* 2*/ JSOP_GETPROP, 0, COMMON_ATOM_INDEX(valueOf),
60 /* 5*/ JSOP_IFPRIMTOP, 0, 18,
61 /* 8*/ JSOP_SWAP,
62 /* 9*/ JSOP_STRING, 0, COMMON_TYPE_ATOM_INDEX(JSTYPE_NUMBER),
63 /*12*/ JSOP_CALL, 0, 1,
64 /*15*/ JSOP_IFPRIMTOP, 0, 17,
65 /*18*/ JSOP_POP,
66 /*19*/ JSOP_DUP,
67 /*20*/ JSOP_GOTO, 0, 4,
68 /*23*/ JSOP_POP,
69 /*24*/ JSOP_CALLPROP, 0, COMMON_ATOM_INDEX(toString),
70 /*27*/ JSOP_CALL, 0, 0,
71 /*30*/ JSOP_PRIMTOP, (JSTYPE_NUMBER),
72 /*32*/ JSOP_SWAP,
73 /*33*/ JSOP_POP,
74 /*34*/ JSOP_IMACOP,
75 /*35*/ JSOP_STOP,
76 },
77 {
78 /* 0*/ JSOP_SWAP,
79 /* 1*/ JSOP_DUP,
80 /* 2*/ JSOP_DUP,
81 /* 3*/ JSOP_GETPROP, 0, COMMON_ATOM_INDEX(valueOf),
82 /* 6*/ JSOP_IFPRIMTOP, 0, 18,
83 /* 9*/ JSOP_SWAP,
84 /*10*/ JSOP_STRING, 0, COMMON_TYPE_ATOM_INDEX(JSTYPE_NUMBER),
85 /*13*/ JSOP_CALL, 0, 1,
86 /*16*/ JSOP_IFPRIMTOP, 0, 17,
87 /*19*/ JSOP_POP,
88 /*20*/ JSOP_DUP,
89 /*21*/ JSOP_GOTO, 0, 4,
90 /*24*/ JSOP_POP,
91 /*25*/ JSOP_CALLPROP, 0, COMMON_ATOM_INDEX(toString),
92 /*28*/ JSOP_CALL, 0, 0,
93 /*31*/ JSOP_PRIMTOP, (JSTYPE_NUMBER),
94 /*33*/ JSOP_SWAP,
95 /*34*/ JSOP_POP,
96 /*35*/ JSOP_SWAP,
97 /*36*/ JSOP_IMACOP,
98 /*37*/ JSOP_STOP,
99 },
100 {
101 /* 0*/ JSOP_SWAP,
102 /* 1*/ JSOP_DUP,
103 /* 2*/ JSOP_DUP,
104 /* 3*/ JSOP_GETPROP, 0, COMMON_ATOM_INDEX(valueOf),
105 /* 6*/ JSOP_IFPRIMTOP, 0, 18,
106 /* 9*/ JSOP_SWAP,
107 /*10*/ JSOP_STRING, 0, COMMON_TYPE_ATOM_INDEX(JSTYPE_NUMBER),
108 /*13*/ JSOP_CALL, 0, 1,
109 /*16*/ JSOP_IFPRIMTOP, 0, 17,
110 /*19*/ JSOP_POP,
111 /*20*/ JSOP_DUP,
112 /*21*/ JSOP_GOTO, 0, 4,
113 /*24*/ JSOP_POP,
114 /*25*/ JSOP_CALLPROP, 0, COMMON_ATOM_INDEX(toString),
115 /*28*/ JSOP_CALL, 0, 0,
116 /*31*/ JSOP_PRIMTOP, (JSTYPE_NUMBER),
117 /*33*/ JSOP_SWAP,
118 /*34*/ JSOP_POP,
119 /*35*/ JSOP_SWAP,
120 /*36*/ JSOP_DUP,
121 /*37*/ JSOP_DUP,
122 /*38*/ JSOP_GETPROP, 0, COMMON_ATOM_INDEX(valueOf),
123 /*41*/ JSOP_IFPRIMTOP, 0, 18,
124 /*44*/ JSOP_SWAP,
125 /*45*/ JSOP_STRING, 0, COMMON_TYPE_ATOM_INDEX(JSTYPE_NUMBER),
126 /*48*/ JSOP_CALL, 0, 1,
127 /*51*/ JSOP_IFPRIMTOP, 0, 17,
128 /*54*/ JSOP_POP,
129 /*55*/ JSOP_DUP,
130 /*56*/ JSOP_GOTO, 0, 4,
131 /*59*/ JSOP_POP,
132 /*60*/ JSOP_CALLPROP, 0, COMMON_ATOM_INDEX(toString),
133 /*63*/ JSOP_CALL, 0, 0,
134 /*66*/ JSOP_PRIMTOP, (JSTYPE_NUMBER),
135 /*68*/ JSOP_SWAP,
136 /*69*/ JSOP_POP,
137 /*70*/ JSOP_IMACOP,
138 /*71*/ JSOP_STOP,
139 },
140 };
141 static struct {
142 jsbytecode any_obj[36];
143 jsbytecode obj_any[38];
144 jsbytecode obj_obj[72];
145 } add_imacros = {
146 {
147 /* 0*/ JSOP_DUP,
148 /* 1*/ JSOP_DUP,
149 /* 2*/ JSOP_GETPROP, 0, COMMON_ATOM_INDEX(valueOf),
150 /* 5*/ JSOP_IFPRIMTOP, 0, 18,
151 /* 8*/ JSOP_SWAP,
152 /* 9*/ JSOP_STRING, 0, COMMON_TYPE_ATOM_INDEX(JSTYPE_VOID),
153 /*12*/ JSOP_CALL, 0, 1,
154 /*15*/ JSOP_IFPRIMTOP, 0, 17,
155 /*18*/ JSOP_POP,
156 /*19*/ JSOP_DUP,
157 /*20*/ JSOP_GOTO, 0, 4,
158 /*23*/ JSOP_POP,
159 /*24*/ JSOP_CALLPROP, 0, COMMON_ATOM_INDEX(toString),
160 /*27*/ JSOP_CALL, 0, 0,
161 /*30*/ JSOP_PRIMTOP, (JSTYPE_VOID),
162 /*32*/ JSOP_SWAP,
163 /*33*/ JSOP_POP,
164 /*34*/ JSOP_ADD,
165 /*35*/ JSOP_STOP,
166 },
167 {
168 /* 0*/ JSOP_SWAP,
169 /* 1*/ JSOP_DUP,
170 /* 2*/ JSOP_DUP,
171 /* 3*/ JSOP_GETPROP, 0, COMMON_ATOM_INDEX(valueOf),
172 /* 6*/ JSOP_IFPRIMTOP, 0, 18,
173 /* 9*/ JSOP_SWAP,
174 /*10*/ JSOP_STRING, 0, COMMON_TYPE_ATOM_INDEX(JSTYPE_VOID),
175 /*13*/ JSOP_CALL, 0, 1,
176 /*16*/ JSOP_IFPRIMTOP, 0, 17,
177 /*19*/ JSOP_POP,
178 /*20*/ JSOP_DUP,
179 /*21*/ JSOP_GOTO, 0, 4,
180 /*24*/ JSOP_POP,
181 /*25*/ JSOP_CALLPROP, 0, COMMON_ATOM_INDEX(toString),
182 /*28*/ JSOP_CALL, 0, 0,
183 /*31*/ JSOP_PRIMTOP, (JSTYPE_VOID),
184 /*33*/ JSOP_SWAP,
185 /*34*/ JSOP_POP,
186 /*35*/ JSOP_SWAP,
187 /*36*/ JSOP_ADD,
188 /*37*/ JSOP_STOP,
189 },
190 {
191 /* 0*/ JSOP_SWAP,
192 /* 1*/ JSOP_DUP,
193 /* 2*/ JSOP_DUP,
194 /* 3*/ JSOP_GETPROP, 0, COMMON_ATOM_INDEX(valueOf),
195 /* 6*/ JSOP_IFPRIMTOP, 0, 18,
196 /* 9*/ JSOP_SWAP,
197 /*10*/ JSOP_STRING, 0, COMMON_TYPE_ATOM_INDEX(JSTYPE_VOID),
198 /*13*/ JSOP_CALL, 0, 1,
199 /*16*/ JSOP_IFPRIMTOP, 0, 17,
200 /*19*/ JSOP_POP,
201 /*20*/ JSOP_DUP,
202 /*21*/ JSOP_GOTO, 0, 4,
203 /*24*/ JSOP_POP,
204 /*25*/ JSOP_CALLPROP, 0, COMMON_ATOM_INDEX(toString),
205 /*28*/ JSOP_CALL, 0, 0,
206 /*31*/ JSOP_PRIMTOP, (JSTYPE_VOID),
207 /*33*/ JSOP_SWAP,
208 /*34*/ JSOP_POP,
209 /*35*/ JSOP_SWAP,
210 /*36*/ JSOP_DUP,
211 /*37*/ JSOP_DUP,
212 /*38*/ JSOP_GETPROP, 0, COMMON_ATOM_INDEX(valueOf),
213 /*41*/ JSOP_IFPRIMTOP, 0, 18,
214 /*44*/ JSOP_SWAP,
215 /*45*/ JSOP_STRING, 0, COMMON_TYPE_ATOM_INDEX(JSTYPE_VOID),
216 /*48*/ JSOP_CALL, 0, 1,
217 /*51*/ JSOP_IFPRIMTOP, 0, 17,
218 /*54*/ JSOP_POP,
219 /*55*/ JSOP_DUP,
220 /*56*/ JSOP_GOTO, 0, 4,
221 /*59*/ JSOP_POP,
222 /*60*/ JSOP_CALLPROP, 0, COMMON_ATOM_INDEX(toString),
223 /*63*/ JSOP_CALL, 0, 0,
224 /*66*/ JSOP_PRIMTOP, (JSTYPE_VOID),
225 /*68*/ JSOP_SWAP,
226 /*69*/ JSOP_POP,
227 /*70*/ JSOP_ADD,
228 /*71*/ JSOP_STOP,
229 },
230 };
231 static struct {
232 jsbytecode sign[41];
233 } unary_imacros = {
234 {
235 /* 0*/ JSOP_DUP,
236 /* 1*/ JSOP_DUP,
237 /* 2*/ JSOP_GETPROP, 0, COMMON_ATOM_INDEX(valueOf),
238 /* 5*/ JSOP_IFPRIMTOP, 0, 23,
239 /* 8*/ JSOP_SWAP,
240 /* 9*/ JSOP_STRING, 0, COMMON_TYPE_ATOM_INDEX(JSTYPE_NUMBER),
241 /*12*/ JSOP_CALL, 0, 1,
242 /*15*/ JSOP_IFPRIMTOP, 0, 8,
243 /*18*/ JSOP_POP,
244 /*19*/ JSOP_DUP,
245 /*20*/ JSOP_GOTO, 0, 9,
246 /*23*/ JSOP_SWAP,
247 /*24*/ JSOP_POP,
248 /*25*/ JSOP_GOTO, 0, 14,
249 /*28*/ JSOP_POP,
250 /*29*/ JSOP_CALLPROP, 0, COMMON_ATOM_INDEX(toString),
251 /*32*/ JSOP_CALL, 0, 0,
252 /*35*/ JSOP_PRIMTOP, (JSTYPE_NUMBER),
253 /*37*/ JSOP_SWAP,
254 /*38*/ JSOP_POP,
255 /*39*/ JSOP_IMACOP,
256 /*40*/ JSOP_STOP,
257 },
258 };
259 static struct {
260 jsbytecode String[38];
261 } call_imacros = {
262 {
263 /* 0*/ JSOP_DUP,
264 /* 1*/ JSOP_DUP,
265 /* 2*/ JSOP_GETPROP, 0, COMMON_ATOM_INDEX(toString),
266 /* 5*/ JSOP_IFPRIMTOP, 0, 15,
267 /* 8*/ JSOP_SWAP,
268 /* 9*/ JSOP_CALL, 0, 0,
269 /*12*/ JSOP_IFPRIMTOP, 0, 20,
270 /*15*/ JSOP_POP,
271 /*16*/ JSOP_DUP,
272 /*17*/ JSOP_GOTO, 0, 4,
273 /*20*/ JSOP_POP,
274 /*21*/ JSOP_CALLPROP, 0, COMMON_ATOM_INDEX(valueOf),
275 /*24*/ JSOP_STRING, 0, COMMON_TYPE_ATOM_INDEX(JSTYPE_STRING),
276 /*27*/ JSOP_CALL, 0, 1,
277 /*30*/ JSOP_PRIMTOP, (JSTYPE_STRING),
278 /*32*/ JSOP_SWAP,
279 /*33*/ JSOP_POP,
280 /*34*/ JSOP_CALL, 0, 1,
281 /*37*/ JSOP_STOP,
282 },
283 };
284 static struct {
285 jsbytecode String[38];
286 } new_imacros = {
287 {
288 /* 0*/ JSOP_DUP,
289 /* 1*/ JSOP_DUP,
290 /* 2*/ JSOP_GETPROP, 0, COMMON_ATOM_INDEX(toString),
291 /* 5*/ JSOP_IFPRIMTOP, 0, 15,
292 /* 8*/ JSOP_SWAP,
293 /* 9*/ JSOP_CALL, 0, 0,
294 /*12*/ JSOP_IFPRIMTOP, 0, 20,
295 /*15*/ JSOP_POP,
296 /*16*/ JSOP_DUP,
297 /*17*/ JSOP_GOTO, 0, 4,
298 /*20*/ JSOP_POP,
299 /*21*/ JSOP_CALLPROP, 0, COMMON_ATOM_INDEX(valueOf),
300 /*24*/ JSOP_STRING, 0, COMMON_TYPE_ATOM_INDEX(JSTYPE_STRING),
301 /*27*/ JSOP_CALL, 0, 1,
302 /*30*/ JSOP_PRIMTOP, (JSTYPE_STRING),
303 /*32*/ JSOP_SWAP,
304 /*33*/ JSOP_POP,
305 /*34*/ JSOP_NEW, 0, 1,
306 /*37*/ JSOP_STOP,
307 },
308 };
309 static struct {
310 jsbytecode apply0[8];
311 jsbytecode apply1[12];
312 jsbytecode apply2[16];
313 jsbytecode apply3[21];
314 jsbytecode apply4[26];
315 jsbytecode apply5[31];
316 jsbytecode apply6[36];
317 jsbytecode apply7[41];
318 jsbytecode apply8[46];
319 jsbytecode call0[7];
320 jsbytecode call1[7];
321 jsbytecode call2[7];
322 jsbytecode call3[7];
323 jsbytecode call4[7];
324 jsbytecode call5[7];
325 jsbytecode call6[7];
326 jsbytecode call7[7];
327 jsbytecode call8[7];
328 } apply_imacros = {
329 {
330 /* 0*/ JSOP_PICK, 3,
331 /* 2*/ JSOP_POP,
332 /* 3*/ JSOP_POP,
333 /* 4*/ JSOP_CALL, 0, 0,
334 /* 7*/ JSOP_STOP,
335 },
336 {
337 /* 0*/ JSOP_PICK, 3,
338 /* 2*/ JSOP_POP,
339 /* 3*/ JSOP_DUP,
340 /* 4*/ JSOP_ZERO,
341 /* 5*/ JSOP_GETELEM,
342 /* 6*/ JSOP_SWAP,
343 /* 7*/ JSOP_POP,
344 /* 8*/ JSOP_CALL, 0, 1,
345 /*11*/ JSOP_STOP,
346 },
347 {
348 /* 0*/ JSOP_PICK, 3,
349 /* 2*/ JSOP_POP,
350 /* 3*/ JSOP_DUP,
351 /* 4*/ JSOP_ZERO,
352 /* 5*/ JSOP_GETELEM,
353 /* 6*/ JSOP_SWAP,
354 /* 7*/ JSOP_DUP,
355 /* 8*/ JSOP_ONE,
356 /* 9*/ JSOP_GETELEM,
357 /*10*/ JSOP_SWAP,
358 /*11*/ JSOP_POP,
359 /*12*/ JSOP_CALL, 0, 2,
360 /*15*/ JSOP_STOP,
361 },
362 {
363 /* 0*/ JSOP_PICK, 3,
364 /* 2*/ JSOP_POP,
365 /* 3*/ JSOP_DUP,
366 /* 4*/ JSOP_ZERO,
367 /* 5*/ JSOP_GETELEM,
368 /* 6*/ JSOP_SWAP,
369 /* 7*/ JSOP_DUP,
370 /* 8*/ JSOP_ONE,
371 /* 9*/ JSOP_GETELEM,
372 /*10*/ JSOP_SWAP,
373 /*11*/ JSOP_DUP,
374 /*12*/ JSOP_INT8, 2,
375 /*14*/ JSOP_GETELEM,
376 /*15*/ JSOP_SWAP,
377 /*16*/ JSOP_POP,
378 /*17*/ JSOP_CALL, 0, 3,
379 /*20*/ JSOP_STOP,
380 },
381 {
382 /* 0*/ JSOP_PICK, 3,
383 /* 2*/ JSOP_POP,
384 /* 3*/ JSOP_DUP,
385 /* 4*/ JSOP_ZERO,
386 /* 5*/ JSOP_GETELEM,
387 /* 6*/ JSOP_SWAP,
388 /* 7*/ JSOP_DUP,
389 /* 8*/ JSOP_ONE,
390 /* 9*/ JSOP_GETELEM,
391 /*10*/ JSOP_SWAP,
392 /*11*/ JSOP_DUP,
393 /*12*/ JSOP_INT8, 2,
394 /*14*/ JSOP_GETELEM,
395 /*15*/ JSOP_SWAP,
396 /*16*/ JSOP_DUP,
397 /*17*/ JSOP_INT8, 3,
398 /*19*/ JSOP_GETELEM,
399 /*20*/ JSOP_SWAP,
400 /*21*/ JSOP_POP,
401 /*22*/ JSOP_CALL, 0, 4,
402 /*25*/ JSOP_STOP,
403 },
404 {
405 /* 0*/ JSOP_PICK, 3,
406 /* 2*/ JSOP_POP,
407 /* 3*/ JSOP_DUP,
408 /* 4*/ JSOP_ZERO,
409 /* 5*/ JSOP_GETELEM,
410 /* 6*/ JSOP_SWAP,
411 /* 7*/ JSOP_DUP,
412 /* 8*/ JSOP_ONE,
413 /* 9*/ JSOP_GETELEM,
414 /*10*/ JSOP_SWAP,
415 /*11*/ JSOP_DUP,
416 /*12*/ JSOP_INT8, 2,
417 /*14*/ JSOP_GETELEM,
418 /*15*/ JSOP_SWAP,
419 /*16*/ JSOP_DUP,
420 /*17*/ JSOP_INT8, 3,
421 /*19*/ JSOP_GETELEM,
422 /*20*/ JSOP_SWAP,
423 /*21*/ JSOP_DUP,
424 /*22*/ JSOP_INT8, 4,
425 /*24*/ JSOP_GETELEM,
426 /*25*/ JSOP_SWAP,
427 /*26*/ JSOP_POP,
428 /*27*/ JSOP_CALL, 0, 5,
429 /*30*/ JSOP_STOP,
430 },
431 {
432 /* 0*/ JSOP_PICK, 3,
433 /* 2*/ JSOP_POP,
434 /* 3*/ JSOP_DUP,
435 /* 4*/ JSOP_ZERO,
436 /* 5*/ JSOP_GETELEM,
437 /* 6*/ JSOP_SWAP,
438 /* 7*/ JSOP_DUP,
439 /* 8*/ JSOP_ONE,
440 /* 9*/ JSOP_GETELEM,
441 /*10*/ JSOP_SWAP,
442 /*11*/ JSOP_DUP,
443 /*12*/ JSOP_INT8, 2,
444 /*14*/ JSOP_GETELEM,
445 /*15*/ JSOP_SWAP,
446 /*16*/ JSOP_DUP,
447 /*17*/ JSOP_INT8, 3,
448 /*19*/ JSOP_GETELEM,
449 /*20*/ JSOP_SWAP,
450 /*21*/ JSOP_DUP,
451 /*22*/ JSOP_INT8, 4,
452 /*24*/ JSOP_GETELEM,
453 /*25*/ JSOP_SWAP,
454 /*26*/ JSOP_DUP,
455 /*27*/ JSOP_INT8, 5,
456 /*29*/ JSOP_GETELEM,
457 /*30*/ JSOP_SWAP,
458 /*31*/ JSOP_POP,
459 /*32*/ JSOP_CALL, 0, 6,
460 /*35*/ JSOP_STOP,
461 },
462 {
463 /* 0*/ JSOP_PICK, 3,
464 /* 2*/ JSOP_POP,
465 /* 3*/ JSOP_DUP,
466 /* 4*/ JSOP_ZERO,
467 /* 5*/ JSOP_GETELEM,
468 /* 6*/ JSOP_SWAP,
469 /* 7*/ JSOP_DUP,
470 /* 8*/ JSOP_ONE,
471 /* 9*/ JSOP_GETELEM,
472 /*10*/ JSOP_SWAP,
473 /*11*/ JSOP_DUP,
474 /*12*/ JSOP_INT8, 2,
475 /*14*/ JSOP_GETELEM,
476 /*15*/ JSOP_SWAP,
477 /*16*/ JSOP_DUP,
478 /*17*/ JSOP_INT8, 3,
479 /*19*/ JSOP_GETELEM,
480 /*20*/ JSOP_SWAP,
481 /*21*/ JSOP_DUP,
482 /*22*/ JSOP_INT8, 4,
483 /*24*/ JSOP_GETELEM,
484 /*25*/ JSOP_SWAP,
485 /*26*/ JSOP_DUP,
486 /*27*/ JSOP_INT8, 5,
487 /*29*/ JSOP_GETELEM,
488 /*30*/ JSOP_SWAP,
489 /*31*/ JSOP_DUP,
490 /*32*/ JSOP_INT8, 6,
491 /*34*/ JSOP_GETELEM,
492 /*35*/ JSOP_SWAP,
493 /*36*/ JSOP_POP,
494 /*37*/ JSOP_CALL, 0, 7,
495 /*40*/ JSOP_STOP,
496 },
497 {
498 /* 0*/ JSOP_PICK, 3,
499 /* 2*/ JSOP_POP,
500 /* 3*/ JSOP_DUP,
501 /* 4*/ JSOP_ZERO,
502 /* 5*/ JSOP_GETELEM,
503 /* 6*/ JSOP_SWAP,
504 /* 7*/ JSOP_DUP,
505 /* 8*/ JSOP_ONE,
506 /* 9*/ JSOP_GETELEM,
507 /*10*/ JSOP_SWAP,
508 /*11*/ JSOP_DUP,
509 /*12*/ JSOP_INT8, 2,
510 /*14*/ JSOP_GETELEM,
511 /*15*/ JSOP_SWAP,
512 /*16*/ JSOP_DUP,
513 /*17*/ JSOP_INT8, 3,
514 /*19*/ JSOP_GETELEM,
515 /*20*/ JSOP_SWAP,
516 /*21*/ JSOP_DUP,
517 /*22*/ JSOP_INT8, 4,
518 /*24*/ JSOP_GETELEM,
519 /*25*/ JSOP_SWAP,
520 /*26*/ JSOP_DUP,
521 /*27*/ JSOP_INT8, 5,
522 /*29*/ JSOP_GETELEM,
523 /*30*/ JSOP_SWAP,
524 /*31*/ JSOP_DUP,
525 /*32*/ JSOP_INT8, 6,
526 /*34*/ JSOP_GETELEM,
527 /*35*/ JSOP_SWAP,
528 /*36*/ JSOP_DUP,
529 /*37*/ JSOP_INT8, 7,
530 /*39*/ JSOP_GETELEM,
531 /*40*/ JSOP_SWAP,
532 /*41*/ JSOP_POP,
533 /*42*/ JSOP_CALL, 0, 8,
534 /*45*/ JSOP_STOP,
535 },
536 {
537 /* 0*/ JSOP_SWAP,
538 /* 1*/ JSOP_POP,
539 /* 2*/ JSOP_NULL,
540 /* 3*/ JSOP_CALL, 0, 0,
541 /* 6*/ JSOP_STOP,
542 },
543 {
544 /* 0*/ JSOP_PICK, 2,
545 /* 2*/ JSOP_POP,
546 /* 3*/ JSOP_CALL, 0, 0,
547 /* 6*/ JSOP_STOP,
548 },
549 {
550 /* 0*/ JSOP_PICK, 3,
551 /* 2*/ JSOP_POP,
552 /* 3*/ JSOP_CALL, 0, 1,
553 /* 6*/ JSOP_STOP,
554 },
555 {
556 /* 0*/ JSOP_PICK, 4,
557 /* 2*/ JSOP_POP,
558 /* 3*/ JSOP_CALL, 0, 2,
559 /* 6*/ JSOP_STOP,
560 },
561 {
562 /* 0*/ JSOP_PICK, 5,
563 /* 2*/ JSOP_POP,
564 /* 3*/ JSOP_CALL, 0, 3,
565 /* 6*/ JSOP_STOP,
566 },
567 {
568 /* 0*/ JSOP_PICK, 6,
569 /* 2*/ JSOP_POP,
570 /* 3*/ JSOP_CALL, 0, 4,
571 /* 6*/ JSOP_STOP,
572 },
573 {
574 /* 0*/ JSOP_PICK, 7,
575 /* 2*/ JSOP_POP,
576 /* 3*/ JSOP_CALL, 0, 5,
577 /* 6*/ JSOP_STOP,
578 },
579 {
580 /* 0*/ JSOP_PICK, 8,
581 /* 2*/ JSOP_POP,
582 /* 3*/ JSOP_CALL, 0, 6,
583 /* 6*/ JSOP_STOP,
584 },
585 {
586 /* 0*/ JSOP_PICK, 9,
587 /* 2*/ JSOP_POP,
588 /* 3*/ JSOP_CALL, 0, 7,
589 /* 6*/ JSOP_STOP,
590 },
591 };
592 static struct {
593 jsbytecode for_in[13];
594 jsbytecode for_each[13];
595 jsbytecode for_in_native[10];
596 jsbytecode for_each_native[10];
597 } iter_imacros = {
598 {
599 /* 0*/ JSOP_CALLPROP, 0, COMMON_ATOM_INDEX(iterator),
600 /* 3*/ JSOP_INT8, (JSITER_ENUMERATE),
601 /* 5*/ JSOP_CALL, 0, 1,
602 /* 8*/ JSOP_OBJTOP, ((JSMSG_BAD_ITERATOR_RETURN) & 0xff00) >> 8, ((JSMSG_BAD_ITERATOR_RETURN) & 0xff),
603 /*11*/ JSOP_PUSH,
604 /*12*/ JSOP_STOP,
605 },
606 {
607 /* 0*/ JSOP_CALLPROP, 0, COMMON_ATOM_INDEX(iterator),
608 /* 3*/ JSOP_INT8, (JSITER_ENUMERATE|JSITER_FOREACH),
609 /* 5*/ JSOP_CALL, 0, 1,
610 /* 8*/ JSOP_OBJTOP, ((JSMSG_BAD_ITERATOR_RETURN) & 0xff00) >> 8, ((JSMSG_BAD_ITERATOR_RETURN) & 0xff),
611 /*11*/ JSOP_PUSH,
612 /*12*/ JSOP_STOP,
613 },
614 {
615 /* 0*/ JSOP_CALLBUILTIN, ((JSBUILTIN_ObjectToIterator) & 0xff00) >> 8, ((JSBUILTIN_ObjectToIterator) & 0xff),
616 /* 3*/ JSOP_INT8, (JSITER_ENUMERATE),
617 /* 5*/ JSOP_CALL, 0, 1,
618 /* 8*/ JSOP_PUSH,
619 /* 9*/ JSOP_STOP,
620 },
621 {
622 /* 0*/ JSOP_CALLBUILTIN, ((JSBUILTIN_ObjectToIterator) & 0xff00) >> 8, ((JSBUILTIN_ObjectToIterator) & 0xff),
623 /* 3*/ JSOP_INT8, (JSITER_ENUMERATE|JSITER_FOREACH),
624 /* 5*/ JSOP_CALL, 0, 1,
625 /* 8*/ JSOP_PUSH,
626 /* 9*/ JSOP_STOP,
627 },
628 };
629 static struct {
630 jsbytecode custom_iter_next[12];
631 jsbytecode native_iter_next[12];
632 } nextiter_imacros = {
633 {
634 /* 0*/ JSOP_POP,
635 /* 1*/ JSOP_DUP,
636 /* 2*/ JSOP_CALLPROP, 0, COMMON_ATOM_INDEX(next),
637 /* 5*/ JSOP_CALL, 0, 0,
638 /* 8*/ JSOP_DUP,
639 /* 9*/ JSOP_HOLE,
640 /*10*/ JSOP_STRICTNE,
641 /*11*/ JSOP_STOP,
642 },
643 {
644 /* 0*/ JSOP_POP,
645 /* 1*/ JSOP_DUP,
646 /* 2*/ JSOP_CALLBUILTIN, ((JSBUILTIN_CallIteratorNext) & 0xff00) >> 8, ((JSBUILTIN_CallIteratorNext) & 0xff),
647 /* 5*/ JSOP_CALL, 0, 0,
648 /* 8*/ JSOP_DUP,
649 /* 9*/ JSOP_HOLE,
650 /*10*/ JSOP_STRICTNE,
651 /*11*/ JSOP_STOP,
652 },
653 };
654 static struct {
655 jsbytecode string[38];
656 } defvalue_imacros = {
657 {
658 /* 0*/ JSOP_SWAP,
659 /* 1*/ JSOP_DUP,
660 /* 2*/ JSOP_DUP,
661 /* 3*/ JSOP_GETPROP, 0, COMMON_ATOM_INDEX(valueOf),
662 /* 6*/ JSOP_IFPRIMTOP, 0, 18,
663 /* 9*/ JSOP_SWAP,
664 /*10*/ JSOP_STRING, 0, COMMON_TYPE_ATOM_INDEX(JSTYPE_VOID),
665 /*13*/ JSOP_CALL, 0, 1,
666 /*16*/ JSOP_IFPRIMTOP, 0, 17,
667 /*19*/ JSOP_POP,
668 /*20*/ JSOP_DUP,
669 /*21*/ JSOP_GOTO, 0, 4,
670 /*24*/ JSOP_POP,
671 /*25*/ JSOP_CALLPROP, 0, COMMON_ATOM_INDEX(toString),
672 /*28*/ JSOP_CALL, 0, 0,
673 /*31*/ JSOP_PRIMTOP, (JSTYPE_VOID),
674 /*33*/ JSOP_SWAP,
675 /*34*/ JSOP_POP,
676 /*35*/ JSOP_SWAP,
677 /*36*/ JSOP_IMACOP,
678 /*37*/ JSOP_STOP,
679 },
680 };
681 uint8 js_opcode2extra[JSOP_LIMIT] = {
682 0, /* JSOP_NOP */
683 0, /* JSOP_PUSH */
684 0, /* JSOP_POPV */
685 0, /* JSOP_ENTERWITH */
686 0, /* JSOP_LEAVEWITH */
687 0, /* JSOP_RETURN */
688 0, /* JSOP_GOTO */
689 0, /* JSOP_IFEQ */
690 0, /* JSOP_IFNE */
691 0, /* JSOP_ARGUMENTS */
692 0, /* JSOP_FORARG */
693 0, /* JSOP_FORLOCAL */
694 0, /* JSOP_DUP */
695 0, /* JSOP_DUP2 */
696 0, /* JSOP_SETCONST */
697 3, /* JSOP_BITOR */
698 3, /* JSOP_BITXOR */
699 3, /* JSOP_BITAND */
700 3, /* JSOP_EQ */
701 3, /* JSOP_NE */
702 3, /* JSOP_LT */
703 3, /* JSOP_LE */
704 3, /* JSOP_GT */
705 3, /* JSOP_GE */
706 3, /* JSOP_LSH */
707 3, /* JSOP_RSH */
708 3, /* JSOP_URSH */
709 3, /* JSOP_ADD */
710 3, /* JSOP_SUB */
711 3, /* JSOP_MUL */
712 3, /* JSOP_DIV */
713 3, /* JSOP_MOD */
714 0, /* JSOP_NOT */
715 0, /* JSOP_BITNOT */
716 3, /* JSOP_NEG */
717 3, /* JSOP_POS */
718 0, /* JSOP_DELNAME */
719 0, /* JSOP_DELPROP */
720 0, /* JSOP_DELELEM */
721 0, /* JSOP_TYPEOF */
722 0, /* JSOP_VOID */
723 0, /* JSOP_INCNAME */
724 0, /* JSOP_INCPROP */
725 0, /* JSOP_INCELEM */
726 0, /* JSOP_DECNAME */
727 0, /* JSOP_DECPROP */
728 0, /* JSOP_DECELEM */
729 0, /* JSOP_NAMEINC */
730 0, /* JSOP_PROPINC */
731 0, /* JSOP_ELEMINC */
732 0, /* JSOP_NAMEDEC */
733 0, /* JSOP_PROPDEC */
734 0, /* JSOP_ELEMDEC */
735 0, /* JSOP_GETPROP */
736 0, /* JSOP_SETPROP */
737 0, /* JSOP_GETELEM */
738 0, /* JSOP_SETELEM */
739 0, /* JSOP_CALLNAME */
740 3, /* JSOP_CALL */
741 0, /* JSOP_NAME */
742 0, /* JSOP_DOUBLE */
743 0, /* JSOP_STRING */
744 0, /* JSOP_ZERO */
745 0, /* JSOP_ONE */
746 0, /* JSOP_NULL */
747 0, /* JSOP_THIS */
748 0, /* JSOP_FALSE */
749 0, /* JSOP_TRUE */
750 0, /* JSOP_OR */
751 0, /* JSOP_AND */
752 0, /* JSOP_TABLESWITCH */
753 0, /* JSOP_LOOKUPSWITCH */
754 0, /* JSOP_STRICTEQ */
755 0, /* JSOP_STRICTNE */
756 0, /* JSOP_SETCALL */
757 2, /* JSOP_ITER */
758 2, /* JSOP_NEXTITER */
759 0, /* JSOP_ENDITER */
760 8, /* JSOP_APPLY */
761 0, /* JSOP_SWAP */
762 0, /* JSOP_OBJECT */
763 0, /* JSOP_POP */
764 3, /* JSOP_NEW */
765 0, /* JSOP_TRAP */
766 0, /* JSOP_GETARG */
767 0, /* JSOP_SETARG */
768 0, /* JSOP_GETLOCAL */
769 0, /* JSOP_SETLOCAL */
770 0, /* JSOP_UINT16 */
771 0, /* JSOP_NEWINIT */
772 0, /* JSOP_ENDINIT */
773 0, /* JSOP_INITPROP */
774 0, /* JSOP_INITELEM */
775 0, /* JSOP_DEFSHARP */
776 0, /* JSOP_USESHARP */
777 0, /* JSOP_INCARG */
778 0, /* JSOP_DECARG */
779 0, /* JSOP_ARGINC */
780 0, /* JSOP_ARGDEC */
781 0, /* JSOP_INCLOCAL */
782 0, /* JSOP_DECLOCAL */
783 0, /* JSOP_LOCALINC */
784 0, /* JSOP_LOCALDEC */
785 0, /* JSOP_IMACOP */
786 0, /* JSOP_FORNAME */
787 0, /* JSOP_FORPROP */
788 0, /* JSOP_FORELEM */
789 0, /* JSOP_POPN */
790 0, /* JSOP_BINDNAME */
791 0, /* JSOP_SETNAME */
792 0, /* JSOP_THROW */
793 0, /* JSOP_IN */
794 0, /* JSOP_INSTANCEOF */
795 0, /* JSOP_DEBUGGER */
796 0, /* JSOP_GOSUB */
797 0, /* JSOP_RETSUB */
798 0, /* JSOP_EXCEPTION */
799 0, /* JSOP_LINENO */
800 0, /* JSOP_CONDSWITCH */
801 0, /* JSOP_CASE */
802 0, /* JSOP_DEFAULT */
803 0, /* JSOP_EVAL */
804 0, /* JSOP_ENUMELEM */
805 0, /* JSOP_GETTER */
806 0, /* JSOP_SETTER */
807 0, /* JSOP_DEFFUN */
808 0, /* JSOP_DEFCONST */
809 0, /* JSOP_DEFVAR */
810 0, /* JSOP_LAMBDA */
811 0, /* JSOP_CALLEE */
812 0, /* JSOP_SETLOCALPOP */
813 0, /* JSOP_PICK */
814 0, /* JSOP_TRY */
815 0, /* JSOP_FINALLY */
816 0, /* JSOP_GETDSLOT */
817 0, /* JSOP_CALLDSLOT */
818 0, /* JSOP_ARGSUB */
819 0, /* JSOP_ARGCNT */
820 0, /* JSOP_DEFLOCALFUN */
821 0, /* JSOP_GOTOX */
822 0, /* JSOP_IFEQX */
823 0, /* JSOP_IFNEX */
824 0, /* JSOP_ORX */
825 0, /* JSOP_ANDX */
826 0, /* JSOP_GOSUBX */
827 0, /* JSOP_CASEX */
828 0, /* JSOP_DEFAULTX */
829 0, /* JSOP_TABLESWITCHX */
830 0, /* JSOP_LOOKUPSWITCHX */
831 0, /* JSOP_BACKPATCH */
832 0, /* JSOP_BACKPATCH_POP */
833 0, /* JSOP_THROWING */
834 0, /* JSOP_SETRVAL */
835 0, /* JSOP_RETRVAL */
836 0, /* JSOP_GETGVAR */
837 0, /* JSOP_SETGVAR */
838 0, /* JSOP_INCGVAR */
839 0, /* JSOP_DECGVAR */
840 0, /* JSOP_GVARINC */
841 0, /* JSOP_GVARDEC */
842 0, /* JSOP_REGEXP */
843 0, /* JSOP_DEFXMLNS */
844 0, /* JSOP_ANYNAME */
845 0, /* JSOP_QNAMEPART */
846 0, /* JSOP_QNAMECONST */
847 0, /* JSOP_QNAME */
848 0, /* JSOP_TOATTRNAME */
849 0, /* JSOP_TOATTRVAL */
850 0, /* JSOP_ADDATTRNAME */
851 0, /* JSOP_ADDATTRVAL */
852 0, /* JSOP_BINDXMLNAME */
853 0, /* JSOP_SETXMLNAME */
854 0, /* JSOP_XMLNAME */
855 0, /* JSOP_DESCENDANTS */
856 0, /* JSOP_FILTER */
857 0, /* JSOP_ENDFILTER */
858 0, /* JSOP_TOXML */
859 0, /* JSOP_TOXMLLIST */
860 0, /* JSOP_XMLTAGEXPR */
861 0, /* JSOP_XMLELTEXPR */
862 0, /* JSOP_XMLOBJECT */
863 0, /* JSOP_XMLCDATA */
864 0, /* JSOP_XMLCOMMENT */
865 0, /* JSOP_XMLPI */
866 0, /* JSOP_CALLPROP */
867 0, /* JSOP_GETUPVAR */
868 0, /* JSOP_CALLUPVAR */
869 0, /* JSOP_DELDESC */
870 0, /* JSOP_UINT24 */
871 0, /* JSOP_INDEXBASE */
872 0, /* JSOP_RESETBASE */
873 0, /* JSOP_RESETBASE0 */
874 0, /* JSOP_STARTXML */
875 0, /* JSOP_STARTXMLEXPR */
876 0, /* JSOP_CALLELEM */
877 0, /* JSOP_STOP */
878 0, /* JSOP_GETXPROP */
879 0, /* JSOP_CALLXMLNAME */
880 0, /* JSOP_TYPEOFEXPR */
881 0, /* JSOP_ENTERBLOCK */
882 0, /* JSOP_LEAVEBLOCK */
883 0, /* JSOP_IFPRIMTOP */
884 0, /* JSOP_PRIMTOP */
885 0, /* JSOP_GENERATOR */
886 0, /* JSOP_YIELD */
887 0, /* JSOP_ARRAYPUSH */
888 0, /* JSOP_GETFUNNS */
889 0, /* JSOP_ENUMCONSTELEM */
890 0, /* JSOP_LEAVEBLOCKEXPR */
891 0, /* JSOP_GETTHISPROP */
892 0, /* JSOP_GETARGPROP */
893 0, /* JSOP_GETLOCALPROP */
894 0, /* JSOP_INDEXBASE1 */
895 0, /* JSOP_INDEXBASE2 */
896 0, /* JSOP_INDEXBASE3 */
897 0, /* JSOP_CALLGVAR */
898 0, /* JSOP_CALLLOCAL */
899 0, /* JSOP_CALLARG */
900 0, /* JSOP_CALLBUILTIN */
901 0, /* JSOP_INT8 */
902 0, /* JSOP_INT32 */
903 0, /* JSOP_LENGTH */
904 0, /* JSOP_NEWARRAY */
905 0, /* JSOP_HOLE */
906 0, /* JSOP_DEFFUN_FC */
907 0, /* JSOP_DEFLOCALFUN_FC */
908 0, /* JSOP_LAMBDA_FC */
909 0, /* JSOP_OBJTOP */
910 0, /* JSOP_TRACE */
911 0, /* JSOP_GETUPVAR_DBG */
912 0, /* JSOP_CALLUPVAR_DBG */
913 0, /* JSOP_DEFFUN_DBGFC */
914 0, /* JSOP_DEFLOCALFUN_DBGFC */
915 0, /* JSOP_LAMBDA_DBGFC */
916 3, /* JSOP_CONCATN */
917 };
918 #define JSOP_IS_IMACOP(x) (0 \
919 || x == JSOP_BITOR \
920 || x == JSOP_BITXOR \
921 || x == JSOP_BITAND \
922 || x == JSOP_EQ \
923 || x == JSOP_NE \
924 || x == JSOP_LT \
925 || x == JSOP_LE \
926 || x == JSOP_GT \
927 || x == JSOP_GE \
928 || x == JSOP_LSH \
929 || x == JSOP_RSH \
930 || x == JSOP_URSH \
931 || x == JSOP_ADD \
932 || x == JSOP_SUB \
933 || x == JSOP_MUL \
934 || x == JSOP_DIV \
935 || x == JSOP_MOD \
936 || x == JSOP_NEG \
937 || x == JSOP_POS \
938 || x == JSOP_CALL \
939 || x == JSOP_ITER \
940 || x == JSOP_NEXTITER \
941 || x == JSOP_APPLY \
942 || x == JSOP_NEW \
943 || x == JSOP_CONCATN \
944 )
945 jsbytecode*
946 js_GetImacroStart(jsbytecode* pc) {
947 if (size_t(pc - equality_imacros.any_obj) < 36) return equality_imacros.any_obj;
948 if (size_t(pc - equality_imacros.obj_any) < 38) return equality_imacros.obj_any;
949 if (size_t(pc - binary_imacros.any_obj) < 36) return binary_imacros.any_obj;
950 if (size_t(pc - binary_imacros.obj_any) < 38) return binary_imacros.obj_any;
951 if (size_t(pc - binary_imacros.obj_obj) < 72) return binary_imacros.obj_obj;
952 if (size_t(pc - add_imacros.any_obj) < 36) return add_imacros.any_obj;
953 if (size_t(pc - add_imacros.obj_any) < 38) return add_imacros.obj_any;
954 if (size_t(pc - add_imacros.obj_obj) < 72) return add_imacros.obj_obj;
955 if (size_t(pc - unary_imacros.sign) < 41) return unary_imacros.sign;
956 if (size_t(pc - call_imacros.String) < 38) return call_imacros.String;
957 if (size_t(pc - new_imacros.String) < 38) return new_imacros.String;
958 if (size_t(pc - apply_imacros.apply0) < 8) return apply_imacros.apply0;
959 if (size_t(pc - apply_imacros.apply1) < 12) return apply_imacros.apply1;
960 if (size_t(pc - apply_imacros.apply2) < 16) return apply_imacros.apply2;
961 if (size_t(pc - apply_imacros.apply3) < 21) return apply_imacros.apply3;
962 if (size_t(pc - apply_imacros.apply4) < 26) return apply_imacros.apply4;
963 if (size_t(pc - apply_imacros.apply5) < 31) return apply_imacros.apply5;
964 if (size_t(pc - apply_imacros.apply6) < 36) return apply_imacros.apply6;
965 if (size_t(pc - apply_imacros.apply7) < 41) return apply_imacros.apply7;
966 if (size_t(pc - apply_imacros.apply8) < 46) return apply_imacros.apply8;
967 if (size_t(pc - apply_imacros.call0) < 7) return apply_imacros.call0;
968 if (size_t(pc - apply_imacros.call1) < 7) return apply_imacros.call1;
969 if (size_t(pc - apply_imacros.call2) < 7) return apply_imacros.call2;
970 if (size_t(pc - apply_imacros.call3) < 7) return apply_imacros.call3;
971 if (size_t(pc - apply_imacros.call4) < 7) return apply_imacros.call4;
972 if (size_t(pc - apply_imacros.call5) < 7) return apply_imacros.call5;
973 if (size_t(pc - apply_imacros.call6) < 7) return apply_imacros.call6;
974 if (size_t(pc - apply_imacros.call7) < 7) return apply_imacros.call7;
975 if (size_t(pc - apply_imacros.call8) < 7) return apply_imacros.call8;
976 if (size_t(pc - iter_imacros.for_in) < 13) return iter_imacros.for_in;
977 if (size_t(pc - iter_imacros.for_each) < 13) return iter_imacros.for_each;
978 if (size_t(pc - iter_imacros.for_in_native) < 10) return iter_imacros.for_in_native;
979 if (size_t(pc - iter_imacros.for_each_native) < 10) return iter_imacros.for_each_native;
980 if (size_t(pc - nextiter_imacros.custom_iter_next) < 12) return nextiter_imacros.custom_iter_next;
981 if (size_t(pc - nextiter_imacros.native_iter_next) < 12) return nextiter_imacros.native_iter_next;
982 if (size_t(pc - defvalue_imacros.string) < 38) return defvalue_imacros.string;
983 return NULL;
984 }

  ViewVC Help
Powered by ViewVC 1.1.24