blob: f75b47edaebd5c8fa611a80817e551dc4ef68aa6 [file] [log] [blame]
Ben Murdochc5610432016-08-08 18:44:38 +01001#
2# Autogenerated by generate-bytecode-expectations.
3#
4
5---
6pool type: mixed
7execute: yes
8wrap: no
9test function name: f
10ignition generators: yes
11
12---
13snippet: "
14 function* f() { }
Ben Murdoch61f157c2016-09-16 13:49:30 +010015 f();
Ben Murdochc5610432016-08-08 18:44:38 +010016"
17frame size: 11
18parameter count: 1
Ben Murdoch61f157c2016-09-16 13:49:30 +010019bytecode array length: 204
Ben Murdochc5610432016-08-08 18:44:38 +010020bytecodes: [
21 B(Ldar), R(new_target),
22 B(JumpIfUndefined), U8(20),
23 B(ResumeGenerator), R(new_target),
24 B(Star), R(1),
25 B(LdaZero),
26 B(TestEqualStrict), R(1),
Ben Murdoch61f157c2016-09-16 13:49:30 +010027 B(JumpIfTrue), U8(60),
Ben Murdochc5610432016-08-08 18:44:38 +010028 B(LdaSmi), U8(76),
29 B(Star), R(2),
30 B(CallRuntime), U16(Runtime::kAbort), R(2), U8(1),
Ben Murdoch61f157c2016-09-16 13:49:30 +010031 B(LdaSmi), U8(-2),
32 B(Star), R(1),
Ben Murdochc5610432016-08-08 18:44:38 +010033 B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
34 B(PushContext), R(0),
35 B(Ldar), R(this),
36 B(StaContextSlot), R(context), U8(4),
37 /* 11 E> */ B(StackCheck),
38 B(Mov), R(context), R(4),
Ben Murdoch61f157c2016-09-16 13:49:30 +010039 /* 11 E> */ B(LdrContextSlot), R(context), U8(4), R(6),
40 B(Ldar), R(6),
41 B(Mov), R(closure), R(5),
Ben Murdochc5610432016-08-08 18:44:38 +010042 B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(5), U8(2),
43 B(StaContextSlot), R(context), U8(5),
44 B(Star), R(5),
Ben Murdoch61f157c2016-09-16 13:49:30 +010045 B(LdrContextSlot), R(context), U8(5), R(6),
Ben Murdochc5610432016-08-08 18:44:38 +010046 B(LdaZero),
47 B(SuspendGenerator), R(6),
48 B(Ldar), R(5),
49 /* 16 S> */ B(Return),
50 B(LdaSmi), U8(-2),
51 B(Star), R(1),
Ben Murdoch61f157c2016-09-16 13:49:30 +010052 B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(6), U8(1),
Ben Murdochc5610432016-08-08 18:44:38 +010053 B(Star), R(7),
Ben Murdoch61f157c2016-09-16 13:49:30 +010054 B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(6), U8(1),
Ben Murdochc5610432016-08-08 18:44:38 +010055 B(Star), R(8),
56 B(LdaZero),
57 B(TestEqualStrict), R(8),
58 B(JumpIfTrue), U8(31),
59 B(LdaSmi), U8(2),
60 B(TestEqualStrict), R(8),
61 B(JumpIfTrue), U8(22),
62 B(Jump), U8(2),
Ben Murdochc5610432016-08-08 18:44:38 +010063 B(LdaTrue),
64 B(Star), R(10),
Ben Murdoch61f157c2016-09-16 13:49:30 +010065 B(Mov), R(7), R(9),
66 B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(9), U8(2),
Ben Murdochc5610432016-08-08 18:44:38 +010067 B(Star), R(3),
68 B(LdaZero),
69 B(Star), R(2),
Ben Murdoch61f157c2016-09-16 13:49:30 +010070 B(Jump), U8(35),
Ben Murdochc5610432016-08-08 18:44:38 +010071 B(Ldar), R(7),
Ben Murdoch61f157c2016-09-16 13:49:30 +010072 /* 11 E> */ B(Throw),
73 B(LdrUndefined), R(5),
Ben Murdochc5610432016-08-08 18:44:38 +010074 B(LdaTrue),
75 B(Star), R(6),
76 B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(5), U8(2),
77 B(Star), R(3),
78 B(LdaSmi), U8(1),
79 B(Star), R(2),
80 B(Jump), U8(14),
81 B(LdaSmi), U8(-1),
82 B(Star), R(2),
83 B(Jump), U8(8),
84 B(Star), R(3),
85 B(LdaSmi), U8(2),
86 B(Star), R(2),
87 B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
88 B(Star), R(4),
Ben Murdoch61f157c2016-09-16 13:49:30 +010089 B(LdrContextSlot), R(context), U8(5), R(5),
90 B(CallRuntime), U16(Runtime::k_GeneratorClose), R(5), U8(1),
Ben Murdochc5610432016-08-08 18:44:38 +010091 B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(4), U8(1),
92 B(LdaZero),
93 B(TestEqualStrict), R(2),
94 B(JumpIfTrue), U8(16),
95 B(LdaSmi), U8(1),
96 B(TestEqualStrict), R(2),
97 B(JumpIfTrue), U8(13),
98 B(LdaSmi), U8(2),
99 B(TestEqualStrict), R(2),
100 B(JumpIfTrue), U8(10),
101 B(Jump), U8(11),
102 B(Ldar), R(3),
103 /* 16 S> */ B(Return),
104 B(Ldar), R(3),
105 /* 16 S> */ B(Return),
106 B(Ldar), R(3),
107 B(ReThrow),
108 B(LdaUndefined),
109 /* 16 S> */ B(Return),
110]
111constant pool: [
112]
113handlers: [
Ben Murdoch61f157c2016-09-16 13:49:30 +0100114 [42, 141, 147],
Ben Murdochc5610432016-08-08 18:44:38 +0100115]
116
117---
118snippet: "
119 function* f() { yield 42 }
Ben Murdoch61f157c2016-09-16 13:49:30 +0100120 f();
Ben Murdochc5610432016-08-08 18:44:38 +0100121"
122frame size: 11
123parameter count: 1
124bytecode array length: 297
125bytecodes: [
126 B(Ldar), R(new_target),
127 B(JumpIfUndefined), U8(26),
128 B(ResumeGenerator), R(new_target),
129 B(Star), R(1),
130 B(LdaZero),
131 B(TestEqualStrict), R(1),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100132 B(JumpIfTrue), U8(66),
Ben Murdochc5610432016-08-08 18:44:38 +0100133 B(LdaSmi), U8(1),
134 B(TestEqualStrict), R(1),
135 B(JumpIfTrueConstant), U8(0),
136 B(LdaSmi), U8(76),
137 B(Star), R(2),
138 B(CallRuntime), U16(Runtime::kAbort), R(2), U8(1),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100139 B(LdaSmi), U8(-2),
140 B(Star), R(1),
Ben Murdochc5610432016-08-08 18:44:38 +0100141 B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
142 B(PushContext), R(0),
143 B(Ldar), R(this),
144 B(StaContextSlot), R(context), U8(4),
145 /* 11 E> */ B(StackCheck),
146 B(Mov), R(context), R(4),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100147 /* 11 E> */ B(LdrContextSlot), R(context), U8(4), R(6),
148 B(Ldar), R(6),
149 B(Mov), R(closure), R(5),
Ben Murdochc5610432016-08-08 18:44:38 +0100150 B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(5), U8(2),
151 B(StaContextSlot), R(context), U8(5),
152 B(Star), R(5),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100153 B(LdrContextSlot), R(context), U8(5), R(6),
Ben Murdochc5610432016-08-08 18:44:38 +0100154 B(LdaZero),
155 B(SuspendGenerator), R(6),
156 B(Ldar), R(5),
157 /* 25 S> */ B(Return),
158 B(LdaSmi), U8(-2),
159 B(Star), R(1),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100160 B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(6), U8(1),
Ben Murdochc5610432016-08-08 18:44:38 +0100161 B(Star), R(7),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100162 B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(6), U8(1),
Ben Murdochc5610432016-08-08 18:44:38 +0100163 B(Star), R(8),
164 B(LdaZero),
165 B(TestEqualStrict), R(8),
166 B(JumpIfTrue), U8(31),
167 B(LdaSmi), U8(2),
168 B(TestEqualStrict), R(8),
169 B(JumpIfTrue), U8(22),
170 B(Jump), U8(2),
Ben Murdochc5610432016-08-08 18:44:38 +0100171 B(LdaTrue),
172 B(Star), R(10),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100173 B(Mov), R(7), R(9),
174 B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(9), U8(2),
Ben Murdochc5610432016-08-08 18:44:38 +0100175 B(Star), R(3),
176 B(LdaZero),
177 B(Star), R(2),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100178 B(Jump), U8(113),
Ben Murdochc5610432016-08-08 18:44:38 +0100179 B(Ldar), R(7),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100180 /* 11 E> */ B(Throw),
Ben Murdochc5610432016-08-08 18:44:38 +0100181 /* 16 S> */ B(LdaSmi), U8(42),
182 B(Star), R(5),
183 B(LdaFalse),
184 B(Star), R(6),
185 B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(5), U8(2),
186 B(Star), R(7),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100187 B(LdrContextSlot), R(context), U8(5), R(5),
Ben Murdochc5610432016-08-08 18:44:38 +0100188 B(LdaSmi), U8(1),
189 B(SuspendGenerator), R(5),
190 B(Ldar), R(7),
191 /* 25 S> */ B(Return),
192 B(LdaSmi), U8(-2),
193 B(Star), R(1),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100194 B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(5), U8(1),
Ben Murdochc5610432016-08-08 18:44:38 +0100195 B(Star), R(6),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100196 B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(5), U8(1),
Ben Murdochc5610432016-08-08 18:44:38 +0100197 B(Star), R(8),
198 B(LdaZero),
199 B(TestEqualStrict), R(8),
200 B(JumpIfTrue), U8(32),
201 B(LdaSmi), U8(2),
202 B(TestEqualStrict), R(8),
203 B(JumpIfTrue), U8(23),
204 B(Jump), U8(2),
Ben Murdochc5610432016-08-08 18:44:38 +0100205 B(LdaTrue),
206 B(Star), R(10),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100207 B(Mov), R(6), R(9),
208 B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(9), U8(2),
Ben Murdochc5610432016-08-08 18:44:38 +0100209 B(Star), R(3),
210 B(LdaSmi), U8(1),
211 B(Star), R(2),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100212 B(Jump), U8(35),
Ben Murdochc5610432016-08-08 18:44:38 +0100213 B(Ldar), R(6),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100214 /* 16 E> */ B(Throw),
215 B(LdrUndefined), R(5),
Ben Murdochc5610432016-08-08 18:44:38 +0100216 B(LdaTrue),
217 B(Star), R(6),
218 B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(5), U8(2),
219 B(Star), R(3),
220 B(LdaSmi), U8(2),
221 B(Star), R(2),
222 B(Jump), U8(14),
223 B(LdaSmi), U8(-1),
224 B(Star), R(2),
225 B(Jump), U8(8),
226 B(Star), R(3),
227 B(LdaSmi), U8(3),
228 B(Star), R(2),
229 B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
230 B(Star), R(4),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100231 B(LdrContextSlot), R(context), U8(5), R(5),
232 B(CallRuntime), U16(Runtime::k_GeneratorClose), R(5), U8(1),
Ben Murdochc5610432016-08-08 18:44:38 +0100233 B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(4), U8(1),
234 B(LdaZero),
235 B(TestEqualStrict), R(2),
236 B(JumpIfTrue), U8(22),
237 B(LdaSmi), U8(1),
238 B(TestEqualStrict), R(2),
239 B(JumpIfTrue), U8(19),
240 B(LdaSmi), U8(2),
241 B(TestEqualStrict), R(2),
242 B(JumpIfTrue), U8(16),
243 B(LdaSmi), U8(3),
244 B(TestEqualStrict), R(2),
245 B(JumpIfTrue), U8(13),
246 B(Jump), U8(14),
247 B(Ldar), R(3),
248 /* 25 S> */ B(Return),
249 B(Ldar), R(3),
250 /* 25 S> */ B(Return),
251 B(Ldar), R(3),
252 /* 25 S> */ B(Return),
253 B(Ldar), R(3),
254 B(ReThrow),
255 B(LdaUndefined),
256 /* 25 S> */ B(Return),
257]
258constant pool: [
259 kInstanceTypeDontCare,
260]
261handlers: [
Ben Murdoch61f157c2016-09-16 13:49:30 +0100262 [48, 225, 231],
Ben Murdochc5610432016-08-08 18:44:38 +0100263]
264
265---
266snippet: "
267 function* f() { for (let x of [42]) yield x }
Ben Murdoch61f157c2016-09-16 13:49:30 +0100268 f();
Ben Murdochc5610432016-08-08 18:44:38 +0100269"
270frame size: 17
271parameter count: 1
Ben Murdoch61f157c2016-09-16 13:49:30 +0100272bytecode array length: 779
Ben Murdochc5610432016-08-08 18:44:38 +0100273bytecodes: [
274 B(Ldar), R(new_target),
275 B(JumpIfUndefined), U8(26),
276 B(ResumeGenerator), R(new_target),
277 B(Star), R(3),
278 B(LdaZero),
279 B(TestEqualStrict), R(3),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100280 B(JumpIfTrue), U8(66),
Ben Murdochc5610432016-08-08 18:44:38 +0100281 B(LdaSmi), U8(1),
282 B(TestEqualStrict), R(3),
283 B(JumpIfTrueConstant), U8(3),
284 B(LdaSmi), U8(76),
285 B(Star), R(4),
286 B(CallRuntime), U16(Runtime::kAbort), R(4), U8(1),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100287 B(LdaSmi), U8(-2),
288 B(Star), R(3),
Ben Murdochc5610432016-08-08 18:44:38 +0100289 B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
290 B(PushContext), R(0),
291 B(Ldar), R(this),
292 B(StaContextSlot), R(context), U8(4),
293 /* 11 E> */ B(StackCheck),
294 B(Mov), R(context), R(6),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100295 /* 11 E> */ B(LdrContextSlot), R(context), U8(4), R(8),
296 B(Ldar), R(8),
297 B(Mov), R(closure), R(7),
Ben Murdochc5610432016-08-08 18:44:38 +0100298 B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(7), U8(2),
299 B(StaContextSlot), R(context), U8(5),
300 B(Star), R(7),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100301 B(LdrContextSlot), R(context), U8(5), R(8),
Ben Murdochc5610432016-08-08 18:44:38 +0100302 B(LdaZero),
303 B(SuspendGenerator), R(8),
304 B(Ldar), R(7),
305 /* 44 S> */ B(Return),
306 B(LdaSmi), U8(-2),
307 B(Star), R(3),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100308 B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(8), U8(1),
Ben Murdochc5610432016-08-08 18:44:38 +0100309 B(Star), R(9),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100310 B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(8), U8(1),
Ben Murdochc5610432016-08-08 18:44:38 +0100311 B(Star), R(10),
312 B(LdaZero),
313 B(TestEqualStrict), R(10),
314 B(JumpIfTrue), U8(31),
315 B(LdaSmi), U8(2),
316 B(TestEqualStrict), R(10),
317 B(JumpIfTrue), U8(22),
318 B(Jump), U8(2),
Ben Murdochc5610432016-08-08 18:44:38 +0100319 B(LdaTrue),
320 B(Star), R(12),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100321 B(Mov), R(9), R(11),
322 B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(11), U8(2),
Ben Murdochc5610432016-08-08 18:44:38 +0100323 B(Star), R(5),
324 B(LdaZero),
325 B(Star), R(4),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100326 B(JumpConstant), U8(16),
Ben Murdochc5610432016-08-08 18:44:38 +0100327 B(Ldar), R(9),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100328 /* 11 E> */ B(Throw),
Ben Murdochc5610432016-08-08 18:44:38 +0100329 B(LdaConstant), U8(0),
330 B(Star), R(7),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100331 B(Mov), R(closure), R(8),
Ben Murdochc5610432016-08-08 18:44:38 +0100332 B(CallRuntime), U16(Runtime::kPushBlockContext), R(7), U8(2),
333 B(PushContext), R(1),
334 B(LdaTheHole),
335 B(StaContextSlot), R(context), U8(4),
336 B(LdaUndefined),
337 B(StaContextSlot), R(1), U8(10),
338 B(LdaZero),
339 B(StaContextSlot), R(1), U8(9),
340 B(Mov), R(context), R(9),
341 B(Mov), R(context), R(10),
342 /* 30 S> */ B(CreateArrayLiteral), U8(1), U8(0), U8(3),
343 B(Star), R(12),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100344 B(LdaConstant), U8(2),
345 /* 30 E> */ B(LdrKeyedProperty), R(12), U8(3), R(11),
Ben Murdochc5610432016-08-08 18:44:38 +0100346 /* 30 E> */ B(Call), R(11), R(12), U8(1), U8(1),
347 /* 30 E> */ B(StaContextSlot), R(1), U8(7),
348 B(LdaSmi), U8(-2),
349 B(TestEqual), R(3),
350 B(JumpIfTrue), U8(17),
351 B(LdaSmi), U8(1),
352 B(TestEqualStrict), R(3),
353 B(JumpIfTrueConstant), U8(9),
354 B(LdaSmi), U8(76),
355 B(Star), R(11),
356 B(CallRuntime), U16(Runtime::kAbort), R(11), U8(1),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100357 /* 27 S> */ B(LdrContextSlot), R(1), U8(7), R(13),
358 B(LdrNamedProperty), R(13), U8(4), U8(7), R(12),
Ben Murdochc5610432016-08-08 18:44:38 +0100359 /* 27 E> */ B(Call), R(12), R(13), U8(1), U8(5),
360 /* 27 E> */ B(StaContextSlot), R(1), U8(8),
361 B(Star), R(11),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100362 B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(11), U8(1),
Ben Murdochc5610432016-08-08 18:44:38 +0100363 B(ToBooleanLogicalNot),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100364 B(JumpIfFalse), U8(11),
365 B(LdrContextSlot), R(1), U8(8), R(11),
Ben Murdochc5610432016-08-08 18:44:38 +0100366 B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(11), U8(1),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100367 B(LdrContextSlot), R(1), U8(8), R(11),
368 B(LdaNamedProperty), R(11), U8(5), U8(9),
Ben Murdochc5610432016-08-08 18:44:38 +0100369 B(JumpIfToBooleanTrueConstant), U8(10),
370 B(LdaSmi), U8(2),
371 B(StaContextSlot), R(1), U8(9),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100372 B(LdrContextSlot), R(1), U8(8), R(11),
373 B(LdaNamedProperty), R(11), U8(6), U8(11),
Ben Murdochc5610432016-08-08 18:44:38 +0100374 B(StaContextSlot), R(1), U8(6),
375 B(LdaContextSlot), R(1), U8(10),
376 /* 16 E> */ B(StackCheck),
377 B(LdaConstant), U8(7),
378 B(Star), R(11),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100379 B(Mov), R(closure), R(12),
Ben Murdochc5610432016-08-08 18:44:38 +0100380 B(CallRuntime), U16(Runtime::kPushBlockContext), R(11), U8(2),
381 B(PushContext), R(2),
382 B(LdaTheHole),
383 B(StaContextSlot), R(context), U8(4),
384 B(LdaContextSlot), R(1), U8(6),
385 B(StaContextSlot), R(context), U8(4),
386 /* 36 S> */ B(LdaContextSlot), R(context), U8(4),
387 B(JumpIfNotHole), U8(11),
388 B(LdaConstant), U8(8),
389 B(Star), R(12),
390 B(CallRuntime), U16(Runtime::kThrowReferenceError), R(12), U8(1),
391 B(Star), R(11),
392 B(LdaFalse),
393 B(Star), R(12),
394 B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(11), U8(2),
395 B(Star), R(13),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100396 B(LdrContextSlot), R(1), U8(5), R(11),
Ben Murdochc5610432016-08-08 18:44:38 +0100397 B(LdaSmi), U8(1),
398 B(SuspendGenerator), R(11),
399 B(Ldar), R(13),
400 /* 44 S> */ B(Return),
401 B(LdaSmi), U8(-2),
402 B(Star), R(3),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100403 B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(11), U8(1),
Ben Murdochc5610432016-08-08 18:44:38 +0100404 B(Star), R(12),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100405 B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(11), U8(1),
Ben Murdochc5610432016-08-08 18:44:38 +0100406 B(Star), R(14),
407 B(LdaZero),
408 B(TestEqualStrict), R(14),
409 B(JumpIfTrue), U8(45),
410 B(LdaSmi), U8(2),
411 B(TestEqualStrict), R(14),
412 B(JumpIfTrue), U8(36),
413 B(Jump), U8(2),
Ben Murdochc5610432016-08-08 18:44:38 +0100414 B(LdaTrue),
415 B(Star), R(16),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100416 B(Mov), R(12), R(15),
417 B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(15), U8(2),
Ben Murdochc5610432016-08-08 18:44:38 +0100418 B(PopContext), R(2),
419 B(PopContext), R(2),
420 B(PopContext), R(2),
421 B(PopContext), R(2),
422 B(PopContext), R(2),
423 B(PopContext), R(2),
424 B(PopContext), R(2),
425 B(Star), R(8),
426 B(LdaZero),
427 B(Star), R(7),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100428 B(Jump), U8(75),
Ben Murdochc5610432016-08-08 18:44:38 +0100429 B(Ldar), R(12),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100430 /* 36 E> */ B(Throw),
Ben Murdochc5610432016-08-08 18:44:38 +0100431 B(Ldar), R(12),
432 B(PopContext), R(2),
433 B(LdaZero),
434 B(StaContextSlot), R(1), U8(9),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100435 B(Wide), B(Jump), U16(-222),
436 B(Jump), U8(46),
Ben Murdochc5610432016-08-08 18:44:38 +0100437 B(Star), R(12),
438 B(LdaConstant), U8(11),
439 B(Star), R(11),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100440 B(Mov), R(closure), R(13),
Ben Murdochc5610432016-08-08 18:44:38 +0100441 B(CallRuntime), U16(Runtime::kPushCatchContext), R(11), U8(3),
442 B(Star), R(10),
443 B(PushContext), R(2),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100444 B(LdrContextSlot), R(1), U8(9), R(11),
Ben Murdochc5610432016-08-08 18:44:38 +0100445 B(LdaSmi), U8(2),
446 B(TestEqualStrict), R(11),
447 B(JumpIfFalse), U8(7),
448 B(LdaSmi), U8(1),
449 B(StaContextSlot), R(1), U8(9),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100450 B(LdrContextSlot), R(context), U8(4), R(11),
Ben Murdochc5610432016-08-08 18:44:38 +0100451 B(CallRuntime), U16(Runtime::kReThrow), R(11), U8(1),
452 B(PopContext), R(2),
453 B(LdaSmi), U8(-1),
454 B(Star), R(7),
455 B(Jump), U8(8),
456 B(Star), R(8),
457 B(LdaSmi), U8(1),
458 B(Star), R(7),
459 B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
460 B(Star), R(9),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100461 B(LdrContextSlot), R(1), U8(9), R(10),
Ben Murdochc5610432016-08-08 18:44:38 +0100462 B(LdaZero),
463 B(TestEqualStrict), R(10),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100464 B(JumpIfTrue), U8(9),
465 B(LdrContextSlot), R(1), U8(7), R(10),
Ben Murdochc5610432016-08-08 18:44:38 +0100466 B(LdaUndefined),
467 B(TestEqualStrict), R(10),
468 B(ToBooleanLogicalNot),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100469 B(JumpIfFalseConstant), U8(15),
470 B(LdrContextSlot), R(1), U8(7), R(10),
471 B(LdaNamedProperty), R(10), U8(12), U8(13),
Ben Murdochc5610432016-08-08 18:44:38 +0100472 B(StaContextSlot), R(1), U8(11),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100473 B(LdrContextSlot), R(1), U8(11), R(10),
Ben Murdochc5610432016-08-08 18:44:38 +0100474 B(LdaNull),
475 B(TestEqual), R(10),
476 B(JumpIfFalse), U8(4),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100477 B(Jump), U8(124),
478 B(LdrContextSlot), R(1), U8(9), R(10),
Ben Murdochc5610432016-08-08 18:44:38 +0100479 B(LdaSmi), U8(1),
480 B(TestEqualStrict), R(10),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100481 B(JumpIfFalse), U8(78),
Ben Murdochc5610432016-08-08 18:44:38 +0100482 B(LdaContextSlot), R(1), U8(11),
483 B(TypeOf),
484 B(Star), R(10),
485 B(LdaConstant), U8(13),
486 B(TestEqualStrict), R(10),
487 B(JumpIfFalse), U8(4),
488 B(Jump), U8(18),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100489 B(Wide), B(LdaSmi), U16(128),
Ben Murdochc5610432016-08-08 18:44:38 +0100490 B(Star), R(10),
491 B(LdaConstant), U8(14),
492 B(Star), R(11),
493 B(CallRuntime), U16(Runtime::kNewTypeError), R(10), U8(2),
494 B(Throw),
495 B(Mov), R(context), R(10),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100496 B(LdrContextSlot), R(1), U8(11), R(11),
497 B(LdrContextSlot), R(1), U8(7), R(12),
498 B(InvokeIntrinsic), U8(Runtime::k_Call), R(11), U8(2),
499 B(Jump), U8(29),
Ben Murdochc5610432016-08-08 18:44:38 +0100500 B(Star), R(12),
501 B(LdaConstant), U8(11),
502 B(Star), R(11),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100503 B(Mov), R(closure), R(13),
Ben Murdochc5610432016-08-08 18:44:38 +0100504 B(CallRuntime), U16(Runtime::kPushCatchContext), R(11), U8(3),
505 B(Star), R(10),
506 B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
507 B(Ldar), R(10),
508 B(PushContext), R(2),
509 B(PopContext), R(2),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100510 B(Jump), U8(38),
511 B(LdrContextSlot), R(1), U8(11), R(10),
512 B(LdrContextSlot), R(1), U8(7), R(11),
513 B(InvokeIntrinsic), U8(Runtime::k_Call), R(10), U8(2),
Ben Murdochc5610432016-08-08 18:44:38 +0100514 B(StaContextSlot), R(1), U8(12),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100515 B(LdrContextSlot), R(1), U8(12), R(10),
516 B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(10), U8(1),
Ben Murdochc5610432016-08-08 18:44:38 +0100517 B(JumpIfToBooleanFalse), U8(4),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100518 B(Jump), U8(11),
519 B(LdrContextSlot), R(1), U8(12), R(10),
Ben Murdochc5610432016-08-08 18:44:38 +0100520 B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(10), U8(1),
521 B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(9), U8(1),
522 B(LdaZero),
523 B(TestEqualStrict), R(7),
524 B(JumpIfTrue), U8(10),
525 B(LdaSmi), U8(1),
526 B(TestEqualStrict), R(7),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100527 B(JumpIfTrue), U8(17),
528 B(Jump), U8(28),
Ben Murdochc5610432016-08-08 18:44:38 +0100529 B(PopContext), R(1),
530 B(PopContext), R(1),
Ben Murdochc5610432016-08-08 18:44:38 +0100531 B(LdaSmi), U8(1),
532 B(Star), R(4),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100533 B(Mov), R(8), R(5),
534 B(Jump), U8(47),
Ben Murdochc5610432016-08-08 18:44:38 +0100535 B(PopContext), R(1),
536 B(PopContext), R(1),
Ben Murdochc5610432016-08-08 18:44:38 +0100537 B(LdaSmi), U8(2),
538 B(Star), R(4),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100539 B(Mov), R(8), R(5),
540 B(Jump), U8(34),
Ben Murdochc5610432016-08-08 18:44:38 +0100541 B(PopContext), R(1),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100542 B(LdrUndefined), R(7),
Ben Murdochc5610432016-08-08 18:44:38 +0100543 B(LdaTrue),
544 B(Star), R(8),
545 B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(7), U8(2),
546 B(Star), R(5),
547 B(LdaSmi), U8(3),
548 B(Star), R(4),
549 B(Jump), U8(14),
550 B(LdaSmi), U8(-1),
551 B(Star), R(4),
552 B(Jump), U8(8),
553 B(Star), R(5),
554 B(LdaSmi), U8(4),
555 B(Star), R(4),
556 B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
557 B(Star), R(6),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100558 B(LdrContextSlot), R(context), U8(5), R(7),
559 B(CallRuntime), U16(Runtime::k_GeneratorClose), R(7), U8(1),
Ben Murdochc5610432016-08-08 18:44:38 +0100560 B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(6), U8(1),
561 B(LdaZero),
562 B(TestEqualStrict), R(4),
563 B(JumpIfTrue), U8(28),
564 B(LdaSmi), U8(1),
565 B(TestEqualStrict), R(4),
566 B(JumpIfTrue), U8(25),
567 B(LdaSmi), U8(2),
568 B(TestEqualStrict), R(4),
569 B(JumpIfTrue), U8(22),
570 B(LdaSmi), U8(3),
571 B(TestEqualStrict), R(4),
572 B(JumpIfTrue), U8(19),
573 B(LdaSmi), U8(4),
574 B(TestEqualStrict), R(4),
575 B(JumpIfTrue), U8(16),
576 B(Jump), U8(17),
577 B(Ldar), R(5),
578 /* 44 S> */ B(Return),
579 B(Ldar), R(5),
580 /* 44 S> */ B(Return),
581 B(Ldar), R(5),
582 B(ReThrow),
583 B(Ldar), R(5),
584 /* 44 S> */ B(Return),
585 B(Ldar), R(5),
586 B(ReThrow),
587 B(LdaUndefined),
588 /* 44 S> */ B(Return),
589]
590constant pool: [
591 InstanceType::FIXED_ARRAY_TYPE,
592 InstanceType::FIXED_ARRAY_TYPE,
593 InstanceType::SYMBOL_TYPE,
594 kInstanceTypeDontCare,
595 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
596 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
597 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
598 InstanceType::FIXED_ARRAY_TYPE,
599 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
600 kInstanceTypeDontCare,
601 kInstanceTypeDontCare,
602 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
603 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
604 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
605 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
606 kInstanceTypeDontCare,
607 kInstanceTypeDontCare,
Ben Murdochc5610432016-08-08 18:44:38 +0100608]
609handlers: [
Ben Murdoch61f157c2016-09-16 13:49:30 +0100610 [48, 698, 704],
611 [158, 452, 458],
612 [161, 406, 408],
613 [555, 567, 569],
Ben Murdochc5610432016-08-08 18:44:38 +0100614]
615