Chromium Code Reviews| 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 |