OLD | NEW |
---|---|
1 # | 1 # |
2 # Autogenerated by generate-bytecode-expectations. | 2 # Autogenerated by generate-bytecode-expectations. |
3 # | 3 # |
4 | 4 |
5 --- | 5 --- |
6 pool type: mixed | 6 pool type: mixed |
7 execute: yes | 7 execute: yes |
8 wrap: yes | 8 wrap: yes |
9 | 9 |
10 --- | 10 --- |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
66 frame size: 8 | 66 frame size: 8 |
67 parameter count: 1 | 67 parameter count: 1 |
68 bytecode array length: 45 | 68 bytecode array length: 45 |
69 bytecodes: [ | 69 bytecodes: [ |
70 /* 30 E> */ B(StackCheck), | 70 /* 30 E> */ B(StackCheck), |
71 /* 42 S> */ B(LdaConstant), U8(0), | 71 /* 42 S> */ B(LdaConstant), U8(0), |
72 /* 42 E> */ B(Star), R(1), | 72 /* 42 E> */ B(Star), R(1), |
73 /* 68 S> */ B(JumpIfUndefined), U8(38), | 73 /* 68 S> */ B(JumpIfUndefined), U8(38), |
74 B(JumpIfNull), U8(36), | 74 B(JumpIfNull), U8(36), |
75 B(ToObject), | 75 B(ToObject), |
76 B(ForInPrepare), R(4), | |
76 B(Star), R(3), | 77 B(Star), R(3), |
77 B(ForInPrepare), R(4), | |
78 B(LdaZero), | 78 B(LdaZero), |
79 B(Star), R(7), | 79 B(Star), R(7), |
80 /* 63 S> */ B(ForInDone), R(7), R(6), | 80 /* 63 S> */ B(ForInDone), R(7), R(6), |
81 B(JumpIfTrue), U8(23), | 81 B(JumpIfTrue), U8(23), |
82 B(ForInNext), R(3), R(7), R(4), U8(1), | 82 B(ForInNext), R(3), R(7), R(4), U8(1), |
83 B(JumpIfUndefined), U8(10), | 83 B(JumpIfUndefined), U8(10), |
84 B(Star), R(0), | 84 B(Star), R(0), |
85 /* 54 E> */ B(StackCheck), | 85 /* 54 E> */ B(StackCheck), |
86 B(Ldar), R(0), | |
87 B(Star), R(2), | 86 B(Star), R(2), |
87 /* 73 S> */ B(Ldar), R(2), | |
Yang
2016/05/20 08:00:55
How come we end up with an additional statement po
oth
2016/05/20 09:01:04
The older code has peephole optimized out the stat
| |
88 /* 85 S> */ B(Return), | 88 /* 85 S> */ B(Return), |
89 B(ForInStep), R(7), | 89 B(ForInStep), R(7), |
90 B(Star), R(7), | 90 B(Star), R(7), |
91 B(Jump), U8(-24), | 91 B(Jump), U8(-24), |
92 B(LdaUndefined), | 92 B(LdaUndefined), |
93 /* 85 S> */ B(Return), | 93 /* 85 S> */ B(Return), |
94 ] | 94 ] |
95 constant pool: [ | 95 constant pool: [ |
96 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE, | 96 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE, |
97 ] | 97 ] |
98 handlers: [ | 98 handlers: [ |
99 ] | 99 ] |
100 | 100 |
101 --- | 101 --- |
102 snippet: " | 102 snippet: " |
103 var x = 0; | 103 var x = 0; |
104 for (var p in [1,2,3]) { x += p; } | 104 for (var p in [1,2,3]) { x += p; } |
105 " | 105 " |
106 frame size: 9 | 106 frame size: 9 |
107 parameter count: 1 | 107 parameter count: 1 |
108 bytecode array length: 57 | 108 bytecode array length: 54 |
109 bytecodes: [ | 109 bytecodes: [ |
110 /* 30 E> */ B(StackCheck), | 110 /* 30 E> */ B(StackCheck), |
111 /* 42 S> */ B(LdaZero), | 111 /* 42 S> */ B(LdaZero), |
112 /* 42 E> */ B(Star), R(1), | 112 /* 42 E> */ B(Star), R(1), |
113 /* 59 S> */ B(CreateArrayLiteral), U8(0), U8(0), U8(3), | 113 /* 59 S> */ B(CreateArrayLiteral), U8(0), U8(0), U8(3), |
114 B(JumpIfUndefined), U8(47), | 114 B(JumpIfUndefined), U8(44), |
115 B(JumpIfNull), U8(45), | 115 B(JumpIfNull), U8(42), |
116 B(ToObject), | 116 B(ToObject), |
117 B(ForInPrepare), R(4), | |
117 B(Star), R(3), | 118 B(Star), R(3), |
118 B(ForInPrepare), R(4), | |
119 B(LdaZero), | 119 B(LdaZero), |
120 B(Star), R(7), | 120 B(Star), R(7), |
121 /* 54 S> */ B(ForInDone), R(7), R(6), | 121 /* 54 S> */ B(ForInDone), R(7), R(6), |
122 B(JumpIfTrue), U8(32), | 122 B(JumpIfTrue), U8(29), |
123 B(ForInNext), R(3), R(7), R(4), U8(1), | 123 B(ForInNext), R(3), R(7), R(4), U8(1), |
124 B(JumpIfUndefined), U8(19), | 124 B(JumpIfUndefined), U8(16), |
125 B(Star), R(0), | 125 B(Star), R(0), |
126 /* 45 E> */ B(StackCheck), | 126 /* 45 E> */ B(StackCheck), |
127 B(Ldar), R(0), | |
128 B(Star), R(2), | 127 B(Star), R(2), |
129 /* 70 S> */ B(Ldar), R(1), | 128 /* 70 S> */ B(Ldar), R(0), |
130 B(Star), R(8), | 129 B(Add), R(1), |
131 /* 75 E> */ B(Ldar), R(2), | 130 /* 72 E> */ B(Mov), R(1), R(8), |
132 B(Add), R(8), | 131 B(Star), R(1), |
133 /* 72 E> */ B(Star), R(1), | |
134 B(ForInStep), R(7), | 132 B(ForInStep), R(7), |
135 B(Star), R(7), | 133 B(Star), R(7), |
136 B(Jump), U8(-33), | 134 B(Jump), U8(-30), |
137 B(LdaUndefined), | 135 B(LdaUndefined), |
138 /* 80 S> */ B(Return), | 136 /* 80 S> */ B(Return), |
139 ] | 137 ] |
140 constant pool: [ | 138 constant pool: [ |
141 InstanceType::FIXED_ARRAY_TYPE, | 139 InstanceType::FIXED_ARRAY_TYPE, |
142 ] | 140 ] |
143 handlers: [ | 141 handlers: [ |
144 ] | 142 ] |
145 | 143 |
146 --- | 144 --- |
147 snippet: " | 145 snippet: " |
148 var x = { 'a': 1, 'b': 2 }; | 146 var x = { 'a': 1, 'b': 2 }; |
149 for (x['a'] in [10, 20, 30]) { | 147 for (x['a'] in [10, 20, 30]) { |
150 if (x['a'] == 10) continue; | 148 if (x['a'] == 10) continue; |
151 if (x['a'] == 20) break; | 149 if (x['a'] == 20) break; |
152 } | 150 } |
153 " | 151 " |
154 frame size: 8 | 152 frame size: 8 |
155 parameter count: 1 | 153 parameter count: 1 |
156 bytecode array length: 94 | 154 bytecode array length: 82 |
157 bytecodes: [ | 155 bytecodes: [ |
158 /* 30 E> */ B(StackCheck), | 156 /* 30 E> */ B(StackCheck), |
159 /* 42 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(1), | 157 /* 42 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(1), |
160 B(Star), R(1), | 158 B(Star), R(1), |
161 /* 42 E> */ B(Star), R(0), | 159 /* 42 E> */ B(Star), R(0), |
162 /* 77 S> */ B(CreateArrayLiteral), U8(1), U8(1), U8(3), | 160 /* 77 S> */ B(CreateArrayLiteral), U8(1), U8(1), U8(3), |
163 B(JumpIfUndefined), U8(79), | 161 B(JumpIfUndefined), U8(67), |
164 B(JumpIfNull), U8(77), | 162 B(JumpIfNull), U8(65), |
165 B(ToObject), | 163 B(ToObject), |
164 B(ForInPrepare), R(2), | |
166 B(Star), R(1), | 165 B(Star), R(1), |
167 B(ForInPrepare), R(2), | |
168 B(LdaZero), | 166 B(LdaZero), |
169 B(Star), R(5), | 167 B(Star), R(5), |
170 /* 68 S> */ B(ForInDone), R(5), R(4), | 168 /* 68 S> */ B(ForInDone), R(5), R(4), |
171 B(JumpIfTrue), U8(64), | 169 B(JumpIfTrue), U8(52), |
172 B(ForInNext), R(1), R(5), R(2), U8(9), | 170 B(ForInNext), R(1), R(5), R(2), U8(9), |
173 B(JumpIfUndefined), U8(51), | 171 B(JumpIfUndefined), U8(39), |
174 B(Star), R(6), | 172 B(Star), R(6), |
175 /* 67 E> */ B(Ldar), R(0), | 173 /* 67 E> */ B(Ldar), R(6), |
176 B(Star), R(7), | 174 B(StoreICSloppy), R(0), U8(2), U8(7), |
177 B(Ldar), R(6), | |
178 B(StoreICSloppy), R(7), U8(2), U8(7), | |
179 /* 62 E> */ B(StackCheck), | 175 /* 62 E> */ B(StackCheck), |
180 /* 95 S> */ B(Ldar), R(0), | 176 /* 95 S> */ B(LoadIC), R(0), U8(2), U8(3), |
181 B(Star), R(6), | |
182 /* 100 E> */ B(LoadIC), R(6), U8(2), U8(3), | |
183 B(Star), R(7), | 177 B(Star), R(7), |
184 B(LdaSmi), U8(10), | 178 B(LdaSmi), U8(10), |
185 /* 106 E> */ B(TestEqual), R(7), | 179 /* 106 E> */ B(TestEqual), R(7), |
186 B(JumpIfFalse), U8(4), | 180 B(JumpIfFalse), U8(4), |
187 /* 113 S> */ B(Jump), U8(20), | 181 /* 113 S> */ B(Jump), U8(16), |
188 /* 125 S> */ B(Ldar), R(0), | 182 /* 125 S> */ B(LoadIC), R(0), U8(2), U8(5), |
189 B(Star), R(6), | |
190 /* 130 E> */ B(LoadIC), R(6), U8(2), U8(5), | |
191 B(Star), R(7), | 183 B(Star), R(7), |
192 B(LdaSmi), U8(20), | 184 B(LdaSmi), U8(20), |
193 /* 136 E> */ B(TestEqual), R(7), | 185 /* 136 E> */ B(TestEqual), R(7), |
194 B(JumpIfFalse), U8(4), | 186 B(JumpIfFalse), U8(4), |
195 /* 143 S> */ B(Jump), U8(8), | 187 /* 143 S> */ B(Jump), U8(8), |
196 B(ForInStep), R(5), | 188 B(ForInStep), R(5), |
197 B(Star), R(5), | 189 B(Star), R(5), |
198 B(Jump), U8(-65), | 190 B(Jump), U8(-53), |
199 B(LdaUndefined), | 191 B(LdaUndefined), |
200 /* 152 S> */ B(Return), | 192 /* 152 S> */ B(Return), |
201 ] | 193 ] |
202 constant pool: [ | 194 constant pool: [ |
203 InstanceType::FIXED_ARRAY_TYPE, | 195 InstanceType::FIXED_ARRAY_TYPE, |
204 InstanceType::FIXED_ARRAY_TYPE, | 196 InstanceType::FIXED_ARRAY_TYPE, |
205 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE, | 197 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE, |
206 ] | 198 ] |
207 handlers: [ | 199 handlers: [ |
208 ] | 200 ] |
209 | 201 |
210 --- | 202 --- |
211 snippet: " | 203 snippet: " |
212 var x = [ 10, 11, 12 ] ; | 204 var x = [ 10, 11, 12 ] ; |
213 for (x[0] in [1,2,3]) { return x[3]; } | 205 for (x[0] in [1,2,3]) { return x[3]; } |
214 " | 206 " |
215 frame size: 9 | 207 frame size: 9 |
216 parameter count: 1 | 208 parameter count: 1 |
217 bytecode array length: 69 | 209 bytecode array length: 61 |
218 bytecodes: [ | 210 bytecodes: [ |
219 /* 30 E> */ B(StackCheck), | 211 /* 30 E> */ B(StackCheck), |
220 /* 42 S> */ B(CreateArrayLiteral), U8(0), U8(0), U8(3), | 212 /* 42 S> */ B(CreateArrayLiteral), U8(0), U8(0), U8(3), |
221 /* 42 E> */ B(Star), R(0), | 213 /* 42 E> */ B(Star), R(0), |
222 /* 72 S> */ B(CreateArrayLiteral), U8(1), U8(1), U8(3), | 214 /* 72 S> */ B(CreateArrayLiteral), U8(1), U8(1), U8(3), |
223 B(JumpIfUndefined), U8(56), | 215 B(JumpIfUndefined), U8(48), |
224 B(JumpIfNull), U8(54), | 216 B(JumpIfNull), U8(46), |
225 B(ToObject), | 217 B(ToObject), |
218 B(ForInPrepare), R(2), | |
226 B(Star), R(1), | 219 B(Star), R(1), |
227 B(ForInPrepare), R(2), | |
228 B(LdaZero), | 220 B(LdaZero), |
229 B(Star), R(5), | 221 B(Star), R(5), |
230 /* 65 S> */ B(ForInDone), R(5), R(4), | 222 /* 65 S> */ B(ForInDone), R(5), R(4), |
231 B(JumpIfTrue), U8(41), | 223 B(JumpIfTrue), U8(33), |
232 B(ForInNext), R(1), R(5), R(2), U8(7), | 224 B(ForInNext), R(1), R(5), R(2), U8(7), |
233 B(JumpIfUndefined), U8(28), | 225 B(JumpIfUndefined), U8(20), |
234 B(Star), R(6), | 226 B(Star), R(6), |
235 /* 64 E> */ B(Ldar), R(0), | 227 /* 64 E> */ B(LdaZero), |
236 B(Star), R(7), | |
237 B(LdaZero), | |
238 B(Star), R(8), | 228 B(Star), R(8), |
239 B(Ldar), R(6), | 229 B(Ldar), R(6), |
240 B(KeyedStoreICSloppy), R(7), R(8), U8(5), | 230 B(KeyedStoreICSloppy), R(0), R(8), U8(5), |
241 /* 59 E> */ B(StackCheck), | 231 /* 59 E> */ B(StackCheck), |
242 /* 83 S> */ B(Ldar), R(0), | 232 /* 83 S> */ B(LdaSmi), U8(3), |
243 B(Star), R(6), | 233 B(KeyedLoadIC), R(0), U8(3), |
244 /* 91 E> */ B(LdaSmi), U8(3), | |
245 B(KeyedLoadIC), R(6), U8(3), | |
246 /* 98 S> */ B(Return), | 234 /* 98 S> */ B(Return), |
247 B(ForInStep), R(5), | 235 B(ForInStep), R(5), |
248 B(Star), R(5), | 236 B(Star), R(5), |
249 B(Jump), U8(-42), | 237 B(Jump), U8(-34), |
250 B(LdaUndefined), | 238 B(LdaUndefined), |
251 /* 98 S> */ B(Return), | 239 /* 98 S> */ B(Return), |
252 ] | 240 ] |
253 constant pool: [ | 241 constant pool: [ |
254 InstanceType::FIXED_ARRAY_TYPE, | 242 InstanceType::FIXED_ARRAY_TYPE, |
255 InstanceType::FIXED_ARRAY_TYPE, | 243 InstanceType::FIXED_ARRAY_TYPE, |
256 ] | 244 ] |
257 handlers: [ | 245 handlers: [ |
258 ] | 246 ] |
259 | 247 |
OLD | NEW |