blob: 06cdb3d3b3252f07edf4d58ce0fc571f4da894fc [file] [log] [blame]
Ben Murdochda12d292016-06-02 14:46:10 +01001#
2# Autogenerated by generate-bytecode-expectations.
3#
4
5---
6pool type: mixed
7execute: yes
8wrap: yes
9
10---
11snippet: "
12 for (var p of [0, 1, 2]) {}
13"
14frame size: 16
15parameter count: 1
Ben Murdoch61f157c2016-09-16 13:49:30 +010016bytecode array length: 284
Ben Murdochda12d292016-06-02 14:46:10 +010017bytecodes: [
Ben Murdochc5610432016-08-08 18:44:38 +010018 /* 30 E> */ B(StackCheck),
Ben Murdoch61f157c2016-09-16 13:49:30 +010019 B(LdrUndefined), R(4),
Ben Murdochc5610432016-08-08 18:44:38 +010020 B(LdaZero),
21 B(Star), R(3),
22 B(Mov), R(context), R(11),
23 B(Mov), R(context), R(12),
24 /* 48 S> */ B(CreateArrayLiteral), U8(0), U8(0), U8(3),
25 B(Star), R(14),
Ben Murdoch61f157c2016-09-16 13:49:30 +010026 B(LdaConstant), U8(1),
27 /* 48 E> */ B(LdrKeyedProperty), R(14), U8(3), R(13),
Ben Murdochc5610432016-08-08 18:44:38 +010028 /* 48 E> */ B(Call), R(13), R(14), U8(1), U8(1),
Ben Murdoch61f157c2016-09-16 13:49:30 +010029 B(Star), R(1),
30 /* 45 S> */ B(LdrNamedProperty), R(1), U8(2), U8(7), R(14),
31 /* 45 E> */ B(Call), R(14), R(1), U8(1), U8(5),
32 B(Star), R(2),
33 /* 45 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(2), U8(1),
Ben Murdochc5610432016-08-08 18:44:38 +010034 B(ToBooleanLogicalNot),
Ben Murdoch61f157c2016-09-16 13:49:30 +010035 B(JumpIfFalse), U8(7),
36 B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(2), U8(1),
37 B(LdaNamedProperty), R(2), U8(3), U8(9),
38 B(JumpIfToBooleanTrue), U8(22),
Ben Murdochc5610432016-08-08 18:44:38 +010039 B(LdaSmi), U8(2),
40 B(Star), R(3),
Ben Murdoch61f157c2016-09-16 13:49:30 +010041 B(LdrNamedProperty), R(2), U8(4), U8(11), R(0),
Ben Murdochc5610432016-08-08 18:44:38 +010042 B(Ldar), R(0),
Ben Murdoch61f157c2016-09-16 13:49:30 +010043 /* 34 E> */ B(StackCheck),
44 B(Mov), R(0), R(7),
Ben Murdochc5610432016-08-08 18:44:38 +010045 B(LdaZero),
46 B(Star), R(3),
Ben Murdoch61f157c2016-09-16 13:49:30 +010047 B(Jump), U8(-48),
48 B(Jump), U8(41),
Ben Murdochc5610432016-08-08 18:44:38 +010049 B(Star), R(14),
50 B(LdaConstant), U8(5),
51 B(Star), R(13),
Ben Murdoch61f157c2016-09-16 13:49:30 +010052 B(Mov), R(closure), R(15),
Ben Murdochc5610432016-08-08 18:44:38 +010053 B(CallRuntime), U16(Runtime::kPushCatchContext), R(13), U8(3),
54 B(Star), R(12),
55 B(PushContext), R(8),
Ben Murdochc5610432016-08-08 18:44:38 +010056 B(LdaSmi), U8(2),
Ben Murdoch61f157c2016-09-16 13:49:30 +010057 B(TestEqualStrict), R(3),
Ben Murdochc5610432016-08-08 18:44:38 +010058 B(JumpIfFalse), U8(6),
59 B(LdaSmi), U8(1),
60 B(Star), R(3),
Ben Murdoch61f157c2016-09-16 13:49:30 +010061 B(LdrContextSlot), R(context), U8(4), R(13),
Ben Murdochc5610432016-08-08 18:44:38 +010062 B(CallRuntime), U16(Runtime::kReThrow), R(13), U8(1),
63 B(PopContext), R(8),
64 B(LdaSmi), U8(-1),
65 B(Star), R(9),
66 B(Jump), U8(7),
67 B(Star), R(10),
68 B(LdaZero),
69 B(Star), R(9),
70 B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
71 B(Star), R(11),
Ben Murdochc5610432016-08-08 18:44:38 +010072 B(LdaZero),
Ben Murdoch61f157c2016-09-16 13:49:30 +010073 B(TestEqualStrict), R(3),
74 B(JumpIfTrue), U8(5),
Ben Murdochc5610432016-08-08 18:44:38 +010075 B(LdaUndefined),
Ben Murdoch61f157c2016-09-16 13:49:30 +010076 B(TestEqualStrict), R(1),
Ben Murdochc5610432016-08-08 18:44:38 +010077 B(ToBooleanLogicalNot),
Ben Murdoch61f157c2016-09-16 13:49:30 +010078 B(JumpIfFalse), U8(118),
79 B(LdrNamedProperty), R(1), U8(6), U8(13), R(5),
Ben Murdochc5610432016-08-08 18:44:38 +010080 B(LdaNull),
Ben Murdoch61f157c2016-09-16 13:49:30 +010081 B(TestEqual), R(5),
Ben Murdochc5610432016-08-08 18:44:38 +010082 B(JumpIfFalse), U8(4),
Ben Murdoch61f157c2016-09-16 13:49:30 +010083 B(Jump), U8(106),
Ben Murdochc5610432016-08-08 18:44:38 +010084 B(LdaSmi), U8(1),
Ben Murdoch61f157c2016-09-16 13:49:30 +010085 B(TestEqualStrict), R(3),
86 B(JumpIfFalse), U8(75),
Ben Murdochc5610432016-08-08 18:44:38 +010087 B(Ldar), R(5),
88 B(TypeOf),
89 B(Star), R(12),
90 B(LdaConstant), U8(7),
91 B(TestEqualStrict), R(12),
92 B(JumpIfFalse), U8(4),
93 B(Jump), U8(18),
Ben Murdoch61f157c2016-09-16 13:49:30 +010094 B(Wide), B(LdaSmi), U16(128),
Ben Murdochc5610432016-08-08 18:44:38 +010095 B(Star), R(12),
96 B(LdaConstant), U8(8),
97 B(Star), R(13),
98 B(CallRuntime), U16(Runtime::kNewTypeError), R(12), U8(2),
99 B(Throw),
100 B(Mov), R(context), R(12),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100101 B(Mov), R(5), R(13),
102 B(Mov), R(1), R(14),
103 B(InvokeIntrinsic), U8(Runtime::k_Call), R(13), U8(2),
104 B(Jump), U8(29),
Ben Murdochc5610432016-08-08 18:44:38 +0100105 B(Star), R(14),
106 B(LdaConstant), U8(5),
107 B(Star), R(13),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100108 B(Mov), R(closure), R(15),
Ben Murdochc5610432016-08-08 18:44:38 +0100109 B(CallRuntime), U16(Runtime::kPushCatchContext), R(13), U8(3),
110 B(Star), R(12),
111 B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
112 B(Ldar), R(12),
113 B(PushContext), R(8),
114 B(PopContext), R(8),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100115 B(Jump), U8(27),
116 B(Mov), R(5), R(12),
117 B(Mov), R(1), R(13),
118 B(InvokeIntrinsic), U8(Runtime::k_Call), R(12), U8(2),
Ben Murdochc5610432016-08-08 18:44:38 +0100119 B(Star), R(6),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100120 B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(6), U8(1),
Ben Murdochc5610432016-08-08 18:44:38 +0100121 B(JumpIfToBooleanFalse), U8(4),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100122 B(Jump), U8(7),
123 B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(6), U8(1),
Ben Murdochc5610432016-08-08 18:44:38 +0100124 B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(11), U8(1),
125 B(LdaZero),
126 B(TestEqualStrict), R(9),
127 B(JumpIfTrue), U8(4),
128 B(Jump), U8(5),
129 B(Ldar), R(10),
130 B(ReThrow),
131 B(LdaUndefined),
132 /* 62 S> */ B(Return),
Ben Murdochda12d292016-06-02 14:46:10 +0100133]
134constant pool: [
135 InstanceType::FIXED_ARRAY_TYPE,
136 InstanceType::SYMBOL_TYPE,
137 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
138 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
139 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
140 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
141 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
142 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
143 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
Ben Murdochda12d292016-06-02 14:46:10 +0100144]
145handlers: [
Ben Murdoch61f157c2016-09-16 13:49:30 +0100146 [9, 122, 128],
147 [12, 81, 83],
148 [201, 211, 213],
Ben Murdochda12d292016-06-02 14:46:10 +0100149]
150
151---
152snippet: "
153 var x = 'potatoes';
154 for (var p of x) { return p; }
155"
156frame size: 17
157parameter count: 1
Ben Murdoch61f157c2016-09-16 13:49:30 +0100158bytecode array length: 297
Ben Murdochda12d292016-06-02 14:46:10 +0100159bytecodes: [
Ben Murdochc5610432016-08-08 18:44:38 +0100160 /* 30 E> */ B(StackCheck),
161 /* 42 S> */ B(LdaConstant), U8(0),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100162 B(Star), R(7),
163 B(LdrUndefined), R(4),
Ben Murdochc5610432016-08-08 18:44:38 +0100164 B(LdaZero),
165 B(Star), R(3),
166 B(Mov), R(context), R(12),
167 B(Mov), R(context), R(13),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100168 /* 68 S> */ B(LdaConstant), U8(1),
169 /* 68 E> */ B(LdrKeyedProperty), R(7), U8(3), R(14),
170 /* 68 E> */ B(Call), R(14), R(7), U8(1), U8(1),
171 B(Star), R(1),
172 /* 65 S> */ B(LdrNamedProperty), R(1), U8(2), U8(7), R(15),
173 /* 65 E> */ B(Call), R(15), R(1), U8(1), U8(5),
174 B(Star), R(2),
175 /* 65 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(2), U8(1),
Ben Murdochc5610432016-08-08 18:44:38 +0100176 B(ToBooleanLogicalNot),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100177 B(JumpIfFalse), U8(7),
178 B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(2), U8(1),
179 B(LdaNamedProperty), R(2), U8(3), U8(9),
180 B(JumpIfToBooleanTrue), U8(27),
Ben Murdochc5610432016-08-08 18:44:38 +0100181 B(LdaSmi), U8(2),
182 B(Star), R(3),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100183 B(LdrNamedProperty), R(2), U8(4), U8(11), R(0),
Ben Murdochc5610432016-08-08 18:44:38 +0100184 B(Ldar), R(0),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100185 /* 54 E> */ B(StackCheck),
186 B(Mov), R(0), R(8),
187 /* 73 S> */ B(LdaZero),
Ben Murdochc5610432016-08-08 18:44:38 +0100188 B(Star), R(10),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100189 B(Mov), R(0), R(11),
190 B(Jump), U8(57),
191 B(Jump), U8(-53),
192 B(Jump), U8(41),
Ben Murdochc5610432016-08-08 18:44:38 +0100193 B(Star), R(15),
194 B(LdaConstant), U8(5),
195 B(Star), R(14),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100196 B(Mov), R(closure), R(16),
Ben Murdochc5610432016-08-08 18:44:38 +0100197 B(CallRuntime), U16(Runtime::kPushCatchContext), R(14), U8(3),
198 B(Star), R(13),
199 B(PushContext), R(9),
Ben Murdochc5610432016-08-08 18:44:38 +0100200 B(LdaSmi), U8(2),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100201 B(TestEqualStrict), R(3),
Ben Murdochc5610432016-08-08 18:44:38 +0100202 B(JumpIfFalse), U8(6),
203 B(LdaSmi), U8(1),
204 B(Star), R(3),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100205 B(LdrContextSlot), R(context), U8(4), R(14),
Ben Murdochc5610432016-08-08 18:44:38 +0100206 B(CallRuntime), U16(Runtime::kReThrow), R(14), U8(1),
207 B(PopContext), R(9),
208 B(LdaSmi), U8(-1),
209 B(Star), R(10),
210 B(Jump), U8(8),
211 B(Star), R(11),
212 B(LdaSmi), U8(1),
213 B(Star), R(10),
214 B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
215 B(Star), R(12),
Ben Murdochc5610432016-08-08 18:44:38 +0100216 B(LdaZero),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100217 B(TestEqualStrict), R(3),
218 B(JumpIfTrue), U8(5),
Ben Murdochc5610432016-08-08 18:44:38 +0100219 B(LdaUndefined),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100220 B(TestEqualStrict), R(1),
Ben Murdochc5610432016-08-08 18:44:38 +0100221 B(ToBooleanLogicalNot),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100222 B(JumpIfFalse), U8(118),
223 B(LdrNamedProperty), R(1), U8(6), U8(13), R(5),
Ben Murdochc5610432016-08-08 18:44:38 +0100224 B(LdaNull),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100225 B(TestEqual), R(5),
Ben Murdochc5610432016-08-08 18:44:38 +0100226 B(JumpIfFalse), U8(4),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100227 B(Jump), U8(106),
Ben Murdochc5610432016-08-08 18:44:38 +0100228 B(LdaSmi), U8(1),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100229 B(TestEqualStrict), R(3),
230 B(JumpIfFalse), U8(75),
Ben Murdochc5610432016-08-08 18:44:38 +0100231 B(Ldar), R(5),
232 B(TypeOf),
233 B(Star), R(13),
234 B(LdaConstant), U8(7),
235 B(TestEqualStrict), R(13),
236 B(JumpIfFalse), U8(4),
237 B(Jump), U8(18),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100238 B(Wide), B(LdaSmi), U16(128),
Ben Murdochc5610432016-08-08 18:44:38 +0100239 B(Star), R(13),
240 B(LdaConstant), U8(8),
241 B(Star), R(14),
242 B(CallRuntime), U16(Runtime::kNewTypeError), R(13), U8(2),
243 B(Throw),
244 B(Mov), R(context), R(13),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100245 B(Mov), R(5), R(14),
246 B(Mov), R(1), R(15),
247 B(InvokeIntrinsic), U8(Runtime::k_Call), R(14), U8(2),
248 B(Jump), U8(29),
Ben Murdochc5610432016-08-08 18:44:38 +0100249 B(Star), R(15),
250 B(LdaConstant), U8(5),
251 B(Star), R(14),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100252 B(Mov), R(closure), R(16),
Ben Murdochc5610432016-08-08 18:44:38 +0100253 B(CallRuntime), U16(Runtime::kPushCatchContext), R(14), U8(3),
254 B(Star), R(13),
255 B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
256 B(Ldar), R(13),
257 B(PushContext), R(9),
258 B(PopContext), R(9),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100259 B(Jump), U8(27),
260 B(Mov), R(5), R(13),
261 B(Mov), R(1), R(14),
262 B(InvokeIntrinsic), U8(Runtime::k_Call), R(13), U8(2),
Ben Murdochc5610432016-08-08 18:44:38 +0100263 B(Star), R(6),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100264 B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(6), U8(1),
Ben Murdochc5610432016-08-08 18:44:38 +0100265 B(JumpIfToBooleanFalse), U8(4),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100266 B(Jump), U8(7),
267 B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(6), U8(1),
Ben Murdochc5610432016-08-08 18:44:38 +0100268 B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(12), U8(1),
269 B(LdaZero),
270 B(TestEqualStrict), R(10),
271 B(JumpIfTrue), U8(10),
272 B(LdaSmi), U8(1),
273 B(TestEqualStrict), R(10),
274 B(JumpIfTrue), U8(7),
275 B(Jump), U8(8),
276 B(Ldar), R(11),
277 /* 85 S> */ B(Return),
278 B(Ldar), R(11),
279 B(ReThrow),
280 B(LdaUndefined),
281 /* 85 S> */ B(Return),
Ben Murdochda12d292016-06-02 14:46:10 +0100282]
283constant pool: [
284 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
285 InstanceType::SYMBOL_TYPE,
286 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
287 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
288 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
289 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
290 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
291 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
292 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
Ben Murdochda12d292016-06-02 14:46:10 +0100293]
294handlers: [
Ben Murdoch61f157c2016-09-16 13:49:30 +0100295 [13, 125, 131],
296 [16, 84, 86],
297 [205, 215, 217],
Ben Murdochda12d292016-06-02 14:46:10 +0100298]
299
300---
301snippet: "
302 for (var x of [10, 20, 30]) {
303 if (x == 10) continue;
304 if (x == 20) break;
305 }
306"
307frame size: 16
308parameter count: 1
Ben Murdoch61f157c2016-09-16 13:49:30 +0100309bytecode array length: 300
Ben Murdochda12d292016-06-02 14:46:10 +0100310bytecodes: [
Ben Murdochc5610432016-08-08 18:44:38 +0100311 /* 30 E> */ B(StackCheck),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100312 B(LdrUndefined), R(4),
Ben Murdochc5610432016-08-08 18:44:38 +0100313 B(LdaZero),
314 B(Star), R(3),
315 B(Mov), R(context), R(11),
316 B(Mov), R(context), R(12),
317 /* 48 S> */ B(CreateArrayLiteral), U8(0), U8(0), U8(3),
318 B(Star), R(14),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100319 B(LdaConstant), U8(1),
320 /* 48 E> */ B(LdrKeyedProperty), R(14), U8(3), R(13),
Ben Murdochc5610432016-08-08 18:44:38 +0100321 /* 48 E> */ B(Call), R(13), R(14), U8(1), U8(1),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100322 B(Star), R(1),
323 /* 45 S> */ B(LdrNamedProperty), R(1), U8(2), U8(7), R(14),
324 /* 45 E> */ B(Call), R(14), R(1), U8(1), U8(5),
325 B(Star), R(2),
326 /* 45 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(2), U8(1),
Ben Murdochc5610432016-08-08 18:44:38 +0100327 B(ToBooleanLogicalNot),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100328 B(JumpIfFalse), U8(7),
329 B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(2), U8(1),
330 B(LdaNamedProperty), R(2), U8(3), U8(9),
331 B(JumpIfToBooleanTrue), U8(38),
Ben Murdochc5610432016-08-08 18:44:38 +0100332 B(LdaSmi), U8(2),
333 B(Star), R(3),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100334 B(LdrNamedProperty), R(2), U8(4), U8(11), R(0),
Ben Murdochc5610432016-08-08 18:44:38 +0100335 B(Ldar), R(0),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100336 /* 34 E> */ B(StackCheck),
337 B(Mov), R(0), R(7),
338 /* 66 S> */ B(LdaSmi), U8(10),
339 /* 72 E> */ B(TestEqual), R(7),
Ben Murdochc5610432016-08-08 18:44:38 +0100340 B(JumpIfFalse), U8(4),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100341 /* 79 S> */ B(Jump), U8(13),
342 /* 91 S> */ B(LdaSmi), U8(20),
343 /* 97 E> */ B(TestEqual), R(7),
Ben Murdochc5610432016-08-08 18:44:38 +0100344 B(JumpIfFalse), U8(4),
345 /* 104 S> */ B(Jump), U8(7),
346 B(LdaZero),
347 B(Star), R(3),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100348 B(Jump), U8(-64),
349 B(Jump), U8(41),
Ben Murdochc5610432016-08-08 18:44:38 +0100350 B(Star), R(14),
351 B(LdaConstant), U8(5),
352 B(Star), R(13),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100353 B(Mov), R(closure), R(15),
Ben Murdochc5610432016-08-08 18:44:38 +0100354 B(CallRuntime), U16(Runtime::kPushCatchContext), R(13), U8(3),
355 B(Star), R(12),
356 B(PushContext), R(8),
Ben Murdochc5610432016-08-08 18:44:38 +0100357 B(LdaSmi), U8(2),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100358 B(TestEqualStrict), R(3),
Ben Murdochc5610432016-08-08 18:44:38 +0100359 B(JumpIfFalse), U8(6),
360 B(LdaSmi), U8(1),
361 B(Star), R(3),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100362 B(LdrContextSlot), R(context), U8(4), R(13),
Ben Murdochc5610432016-08-08 18:44:38 +0100363 B(CallRuntime), U16(Runtime::kReThrow), R(13), U8(1),
364 B(PopContext), R(8),
365 B(LdaSmi), U8(-1),
366 B(Star), R(9),
367 B(Jump), U8(7),
368 B(Star), R(10),
369 B(LdaZero),
370 B(Star), R(9),
371 B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
372 B(Star), R(11),
Ben Murdochc5610432016-08-08 18:44:38 +0100373 B(LdaZero),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100374 B(TestEqualStrict), R(3),
375 B(JumpIfTrue), U8(5),
Ben Murdochc5610432016-08-08 18:44:38 +0100376 B(LdaUndefined),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100377 B(TestEqualStrict), R(1),
Ben Murdochc5610432016-08-08 18:44:38 +0100378 B(ToBooleanLogicalNot),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100379 B(JumpIfFalse), U8(118),
380 B(LdrNamedProperty), R(1), U8(6), U8(13), R(5),
Ben Murdochc5610432016-08-08 18:44:38 +0100381 B(LdaNull),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100382 B(TestEqual), R(5),
Ben Murdochc5610432016-08-08 18:44:38 +0100383 B(JumpIfFalse), U8(4),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100384 B(Jump), U8(106),
Ben Murdochc5610432016-08-08 18:44:38 +0100385 B(LdaSmi), U8(1),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100386 B(TestEqualStrict), R(3),
387 B(JumpIfFalse), U8(75),
Ben Murdochc5610432016-08-08 18:44:38 +0100388 B(Ldar), R(5),
389 B(TypeOf),
390 B(Star), R(12),
391 B(LdaConstant), U8(7),
392 B(TestEqualStrict), R(12),
393 B(JumpIfFalse), U8(4),
394 B(Jump), U8(18),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100395 B(Wide), B(LdaSmi), U16(128),
Ben Murdochc5610432016-08-08 18:44:38 +0100396 B(Star), R(12),
397 B(LdaConstant), U8(8),
398 B(Star), R(13),
399 B(CallRuntime), U16(Runtime::kNewTypeError), R(12), U8(2),
400 B(Throw),
401 B(Mov), R(context), R(12),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100402 B(Mov), R(5), R(13),
403 B(Mov), R(1), R(14),
404 B(InvokeIntrinsic), U8(Runtime::k_Call), R(13), U8(2),
405 B(Jump), U8(29),
Ben Murdochc5610432016-08-08 18:44:38 +0100406 B(Star), R(14),
407 B(LdaConstant), U8(5),
408 B(Star), R(13),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100409 B(Mov), R(closure), R(15),
Ben Murdochc5610432016-08-08 18:44:38 +0100410 B(CallRuntime), U16(Runtime::kPushCatchContext), R(13), U8(3),
411 B(Star), R(12),
412 B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
413 B(Ldar), R(12),
414 B(PushContext), R(8),
415 B(PopContext), R(8),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100416 B(Jump), U8(27),
417 B(Mov), R(5), R(12),
418 B(Mov), R(1), R(13),
419 B(InvokeIntrinsic), U8(Runtime::k_Call), R(12), U8(2),
Ben Murdochc5610432016-08-08 18:44:38 +0100420 B(Star), R(6),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100421 B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(6), U8(1),
Ben Murdochc5610432016-08-08 18:44:38 +0100422 B(JumpIfToBooleanFalse), U8(4),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100423 B(Jump), U8(7),
424 B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(6), U8(1),
Ben Murdochc5610432016-08-08 18:44:38 +0100425 B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(11), U8(1),
426 B(LdaZero),
427 B(TestEqualStrict), R(9),
428 B(JumpIfTrue), U8(4),
429 B(Jump), U8(5),
430 B(Ldar), R(10),
431 B(ReThrow),
432 B(LdaUndefined),
433 /* 113 S> */ B(Return),
Ben Murdochda12d292016-06-02 14:46:10 +0100434]
435constant pool: [
436 InstanceType::FIXED_ARRAY_TYPE,
437 InstanceType::SYMBOL_TYPE,
438 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
439 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
440 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
441 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
442 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
443 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
444 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
Ben Murdochda12d292016-06-02 14:46:10 +0100445]
446handlers: [
Ben Murdoch61f157c2016-09-16 13:49:30 +0100447 [9, 138, 144],
448 [12, 97, 99],
449 [217, 227, 229],
Ben Murdochda12d292016-06-02 14:46:10 +0100450]
451
452---
453snippet: "
454 var x = { 'a': 1, 'b': 2 };
455 for (x['a'] of [1,2,3]) { return x['a']; }
456"
457frame size: 15
458parameter count: 1
Ben Murdoch61f157c2016-09-16 13:49:30 +0100459bytecode array length: 308
Ben Murdochda12d292016-06-02 14:46:10 +0100460bytecodes: [
Ben Murdochc5610432016-08-08 18:44:38 +0100461 /* 30 E> */ B(StackCheck),
462 /* 42 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(1),
463 B(Star), R(8),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100464 B(Star), R(6),
465 B(LdrUndefined), R(3),
Ben Murdochc5610432016-08-08 18:44:38 +0100466 B(LdaZero),
467 B(Star), R(2),
468 B(Mov), R(context), R(10),
469 B(Mov), R(context), R(11),
470 /* 77 S> */ B(CreateArrayLiteral), U8(1), U8(1), U8(3),
471 B(Star), R(13),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100472 B(LdaConstant), U8(2),
473 /* 77 E> */ B(LdrKeyedProperty), R(13), U8(3), R(12),
Ben Murdochc5610432016-08-08 18:44:38 +0100474 /* 77 E> */ B(Call), R(12), R(13), U8(1), U8(1),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100475 B(Star), R(0),
476 /* 74 S> */ B(LdrNamedProperty), R(0), U8(3), U8(7), R(13),
477 /* 74 E> */ B(Call), R(13), R(0), U8(1), U8(5),
478 B(Star), R(1),
479 /* 74 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(1), U8(1),
Ben Murdochc5610432016-08-08 18:44:38 +0100480 B(ToBooleanLogicalNot),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100481 B(JumpIfFalse), U8(7),
482 B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(1), U8(1),
483 B(LdaNamedProperty), R(1), U8(4), U8(9),
484 B(JumpIfToBooleanTrue), U8(28),
Ben Murdochc5610432016-08-08 18:44:38 +0100485 B(LdaSmi), U8(2),
486 B(Star), R(2),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100487 /* 67 E> */ B(LdaNamedProperty), R(1), U8(5), U8(11),
488 B(StaNamedPropertySloppy), R(6), U8(6), U8(13),
Ben Murdochc5610432016-08-08 18:44:38 +0100489 /* 62 E> */ B(StackCheck),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100490 /* 88 S> */ B(Nop),
491 /* 96 E> */ B(LdrNamedProperty), R(6), U8(6), U8(15), R(9),
Ben Murdochc5610432016-08-08 18:44:38 +0100492 B(LdaZero),
493 B(Star), R(8),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100494 B(Jump), U8(57),
495 B(Jump), U8(-54),
496 B(Jump), U8(41),
Ben Murdochc5610432016-08-08 18:44:38 +0100497 B(Star), R(13),
498 B(LdaConstant), U8(7),
499 B(Star), R(12),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100500 B(Mov), R(closure), R(14),
Ben Murdochc5610432016-08-08 18:44:38 +0100501 B(CallRuntime), U16(Runtime::kPushCatchContext), R(12), U8(3),
502 B(Star), R(11),
503 B(PushContext), R(7),
Ben Murdochc5610432016-08-08 18:44:38 +0100504 B(LdaSmi), U8(2),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100505 B(TestEqualStrict), R(2),
Ben Murdochc5610432016-08-08 18:44:38 +0100506 B(JumpIfFalse), U8(6),
507 B(LdaSmi), U8(1),
508 B(Star), R(2),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100509 B(LdrContextSlot), R(context), U8(4), R(12),
Ben Murdochc5610432016-08-08 18:44:38 +0100510 B(CallRuntime), U16(Runtime::kReThrow), R(12), U8(1),
511 B(PopContext), R(7),
512 B(LdaSmi), U8(-1),
513 B(Star), R(8),
514 B(Jump), U8(8),
515 B(Star), R(9),
516 B(LdaSmi), U8(1),
517 B(Star), R(8),
518 B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
519 B(Star), R(10),
Ben Murdochc5610432016-08-08 18:44:38 +0100520 B(LdaZero),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100521 B(TestEqualStrict), R(2),
522 B(JumpIfTrue), U8(5),
Ben Murdochc5610432016-08-08 18:44:38 +0100523 B(LdaUndefined),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100524 B(TestEqualStrict), R(0),
Ben Murdochc5610432016-08-08 18:44:38 +0100525 B(ToBooleanLogicalNot),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100526 B(JumpIfFalse), U8(118),
527 B(LdrNamedProperty), R(0), U8(8), U8(17), R(4),
Ben Murdochc5610432016-08-08 18:44:38 +0100528 B(LdaNull),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100529 B(TestEqual), R(4),
Ben Murdochc5610432016-08-08 18:44:38 +0100530 B(JumpIfFalse), U8(4),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100531 B(Jump), U8(106),
Ben Murdochc5610432016-08-08 18:44:38 +0100532 B(LdaSmi), U8(1),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100533 B(TestEqualStrict), R(2),
534 B(JumpIfFalse), U8(75),
Ben Murdochc5610432016-08-08 18:44:38 +0100535 B(Ldar), R(4),
536 B(TypeOf),
537 B(Star), R(11),
538 B(LdaConstant), U8(9),
539 B(TestEqualStrict), R(11),
540 B(JumpIfFalse), U8(4),
541 B(Jump), U8(18),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100542 B(Wide), B(LdaSmi), U16(128),
Ben Murdochc5610432016-08-08 18:44:38 +0100543 B(Star), R(11),
544 B(LdaConstant), U8(10),
545 B(Star), R(12),
546 B(CallRuntime), U16(Runtime::kNewTypeError), R(11), U8(2),
547 B(Throw),
548 B(Mov), R(context), R(11),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100549 B(Mov), R(4), R(12),
550 B(Mov), R(0), R(13),
551 B(InvokeIntrinsic), U8(Runtime::k_Call), R(12), U8(2),
552 B(Jump), U8(29),
Ben Murdochc5610432016-08-08 18:44:38 +0100553 B(Star), R(13),
554 B(LdaConstant), U8(7),
555 B(Star), R(12),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100556 B(Mov), R(closure), R(14),
Ben Murdochc5610432016-08-08 18:44:38 +0100557 B(CallRuntime), U16(Runtime::kPushCatchContext), R(12), U8(3),
558 B(Star), R(11),
559 B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
560 B(Ldar), R(11),
561 B(PushContext), R(7),
562 B(PopContext), R(7),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100563 B(Jump), U8(27),
564 B(Mov), R(4), R(11),
565 B(Mov), R(0), R(12),
566 B(InvokeIntrinsic), U8(Runtime::k_Call), R(11), U8(2),
Ben Murdochc5610432016-08-08 18:44:38 +0100567 B(Star), R(5),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100568 B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(5), U8(1),
Ben Murdochc5610432016-08-08 18:44:38 +0100569 B(JumpIfToBooleanFalse), U8(4),
Ben Murdoch61f157c2016-09-16 13:49:30 +0100570 B(Jump), U8(7),
571 B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(5), U8(1),
Ben Murdochc5610432016-08-08 18:44:38 +0100572 B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(10), U8(1),
573 B(LdaZero),
574 B(TestEqualStrict), R(8),
575 B(JumpIfTrue), U8(10),
576 B(LdaSmi), U8(1),
577 B(TestEqualStrict), R(8),
578 B(JumpIfTrue), U8(7),
579 B(Jump), U8(8),
580 B(Ldar), R(9),
581 /* 105 S> */ B(Return),
582 B(Ldar), R(9),
583 B(ReThrow),
584 B(LdaUndefined),
585 /* 105 S> */ B(Return),
Ben Murdochda12d292016-06-02 14:46:10 +0100586]
587constant pool: [
588 InstanceType::FIXED_ARRAY_TYPE,
589 InstanceType::FIXED_ARRAY_TYPE,
590 InstanceType::SYMBOL_TYPE,
591 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
592 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
593 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
594 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
595 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
596 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
597 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
598 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
Ben Murdochda12d292016-06-02 14:46:10 +0100599]
600handlers: [
Ben Murdoch61f157c2016-09-16 13:49:30 +0100601 [17, 136, 142],
602 [20, 95, 97],
603 [216, 226, 228],
Ben Murdochda12d292016-06-02 14:46:10 +0100604]
605