1 |
siliconforks |
507 |
/* 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 |
|
|
} |