| OLD | NEW |
| 1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "src/v8.h" | 5 #include "src/v8.h" |
| 6 | 6 |
| 7 #include "src/compiler.h" | 7 #include "src/compiler.h" |
| 8 #include "src/interpreter/bytecode-array-iterator.h" | 8 #include "src/interpreter/bytecode-array-iterator.h" |
| 9 #include "src/interpreter/bytecode-generator.h" | 9 #include "src/interpreter/bytecode-generator.h" |
| 10 #include "src/interpreter/interpreter.h" | 10 #include "src/interpreter/interpreter.h" |
| (...skipping 1047 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1058 FeedbackVectorSpec feedback_spec(&zone); | 1058 FeedbackVectorSpec feedback_spec(&zone); |
| 1059 FeedbackVectorSlot slot1 = feedback_spec.AddLoadICSlot(); | 1059 FeedbackVectorSlot slot1 = feedback_spec.AddLoadICSlot(); |
| 1060 FeedbackVectorSlot slot2 = feedback_spec.AddLoadICSlot(); | 1060 FeedbackVectorSlot slot2 = feedback_spec.AddLoadICSlot(); |
| 1061 | 1061 |
| 1062 Handle<i::TypeFeedbackVector> vector = | 1062 Handle<i::TypeFeedbackVector> vector = |
| 1063 i::NewTypeFeedbackVector(helper.isolate(), &feedback_spec); | 1063 i::NewTypeFeedbackVector(helper.isolate(), &feedback_spec); |
| 1064 | 1064 |
| 1065 // These are a hack used by the LoadICXXXWide tests below. | 1065 // These are a hack used by the LoadICXXXWide tests below. |
| 1066 int wide_idx_1 = vector->GetIndex(slot1) - 2; | 1066 int wide_idx_1 = vector->GetIndex(slot1) - 2; |
| 1067 int wide_idx_2 = vector->GetIndex(slot1) - 2; | 1067 int wide_idx_2 = vector->GetIndex(slot1) - 2; |
| 1068 int wide_idx_3 = vector->GetIndex(slot1) - 2; | |
| 1069 int wide_idx_4 = vector->GetIndex(slot1) - 2; | |
| 1070 | 1068 |
| 1071 // clang-format off | 1069 // clang-format off |
| 1072 ExpectedSnippet<const char*> snippets[] = { | 1070 ExpectedSnippet<const char*> snippets[] = { |
| 1073 {"function f(a) { return a.name; }\nf({name : \"test\"})", | 1071 {"function f(a) { return a.name; }\nf({name : \"test\"})", |
| 1074 1 * kPointerSize, | 1072 1 * kPointerSize, |
| 1075 2, | 1073 2, |
| 1076 10, | 1074 10, |
| 1077 { | 1075 { |
| 1078 B(StackCheck), // | 1076 B(StackCheck), // |
| 1079 B(Ldar), A(1, 2), // | 1077 B(Ldar), A(1, 2), // |
| 1080 B(Star), R(0), // | 1078 B(Star), R(0), // |
| 1081 B(LoadICSloppy), R(0), U8(0), U8(vector->GetIndex(slot1)), // | 1079 B(LoadIC), R(0), U8(0), U8(vector->GetIndex(slot1)), // |
| 1082 B(Return), // | 1080 B(Return), // |
| 1083 }, | 1081 }, |
| 1084 1, | 1082 1, |
| 1085 {"name"}}, | 1083 {"name"}}, |
| 1086 {"function f(a) { return a[\"key\"]; }\nf({key : \"test\"})", | 1084 {"function f(a) { return a[\"key\"]; }\nf({key : \"test\"})", |
| 1087 1 * kPointerSize, | 1085 1 * kPointerSize, |
| 1088 2, | 1086 2, |
| 1089 10, | 1087 10, |
| 1090 { | 1088 { |
| 1091 B(StackCheck), // | 1089 B(StackCheck), // |
| 1092 B(Ldar), A(1, 2), // | 1090 B(Ldar), A(1, 2), // |
| 1093 B(Star), R(0), // | 1091 B(Star), R(0), // |
| 1094 B(LoadICSloppy), R(0), U8(0), U8(vector->GetIndex(slot1)), // | 1092 B(LoadIC), R(0), U8(0), U8(vector->GetIndex(slot1)), // |
| 1095 B(Return) // | 1093 B(Return) // |
| 1096 }, | 1094 }, |
| 1097 1, | 1095 1, |
| 1098 {"key"}}, | 1096 {"key"}}, |
| 1099 {"function f(a) { return a[100]; }\nf({100 : \"test\"})", | 1097 {"function f(a) { return a[100]; }\nf({100 : \"test\"})", |
| 1100 1 * kPointerSize, | 1098 1 * kPointerSize, |
| 1101 2, | 1099 2, |
| 1102 11, | 1100 11, |
| 1103 { | 1101 { |
| 1104 B(StackCheck), // | 1102 B(StackCheck), // |
| 1105 B(Ldar), A(1, 2), // | 1103 B(Ldar), A(1, 2), // |
| 1106 B(Star), R(0), // | 1104 B(Star), R(0), // |
| 1107 B(LdaSmi8), U8(100), // | 1105 B(LdaSmi8), U8(100), // |
| 1108 B(KeyedLoadICSloppy), R(0), U8(vector->GetIndex(slot1)), // | 1106 B(KeyedLoadIC), R(0), U8(vector->GetIndex(slot1)), // |
| 1109 B(Return) // | 1107 B(Return) // |
| 1110 }, | 1108 }, |
| 1111 0}, | 1109 0}, |
| 1112 {"function f(a, b) { return a[b]; }\nf({arg : \"test\"}, \"arg\")", | 1110 {"function f(a, b) { return a[b]; }\nf({arg : \"test\"}, \"arg\")", |
| 1113 1 * kPointerSize, | 1111 1 * kPointerSize, |
| 1114 3, | 1112 3, |
| 1115 11, | 1113 11, |
| 1116 { | 1114 { |
| 1117 B(StackCheck), // | 1115 B(StackCheck), // |
| 1118 B(Ldar), A(1, 3), // | 1116 B(Ldar), A(1, 3), // |
| 1119 B(Star), R(0), // | 1117 B(Star), R(0), // |
| 1120 B(Ldar), A(1, 2), // | 1118 B(Ldar), A(1, 2), // |
| 1121 B(KeyedLoadICSloppy), R(0), U8(vector->GetIndex(slot1)), // | 1119 B(KeyedLoadIC), R(0), U8(vector->GetIndex(slot1)), // |
| 1122 B(Return) // | 1120 B(Return) // |
| 1123 }, | 1121 }, |
| 1124 0}, | 1122 0}, |
| 1125 {"function f(a) { var b = a.name; return a[-124]; }\n" | 1123 {"function f(a) { var b = a.name; return a[-124]; }\n" |
| 1126 "f({\"-124\" : \"test\", name : 123 })", | 1124 "f({\"-124\" : \"test\", name : 123 })", |
| 1127 2 * kPointerSize, | 1125 2 * kPointerSize, |
| 1128 2, | 1126 2, |
| 1129 21, | 1127 21, |
| 1130 { | 1128 { |
| 1131 B(StackCheck), // | 1129 B(StackCheck), // |
| 1132 B(Ldar), A(1, 2), // | 1130 B(Ldar), A(1, 2), // |
| 1133 B(Star), R(1), // | 1131 B(Star), R(1), // |
| 1134 B(LoadICSloppy), R(1), U8(0), U8(vector->GetIndex(slot1)), // | 1132 B(LoadIC), R(1), U8(0), U8(vector->GetIndex(slot1)), // |
| 1135 B(Star), R(0), // | 1133 B(Star), R(0), // |
| 1136 B(Ldar), A(1, 2), // | 1134 B(Ldar), A(1, 2), // |
| 1137 B(Star), R(1), // | 1135 B(Star), R(1), // |
| 1138 B(LdaSmi8), U8(-124), // | 1136 B(LdaSmi8), U8(-124), // |
| 1139 B(KeyedLoadICSloppy), R(1), U8(vector->GetIndex(slot2)), // | 1137 B(KeyedLoadIC), R(1), U8(vector->GetIndex(slot2)), // |
| 1140 B(Return), // | 1138 B(Return), // |
| 1141 }, | 1139 }, |
| 1142 1, | 1140 1, |
| 1143 {"name"}}, | 1141 {"name"}}, |
| 1144 {"function f(a) { \"use strict\"; return a.name; }\nf({name : \"test\"})", | |
| 1145 1 * kPointerSize, | |
| 1146 2, | |
| 1147 10, | |
| 1148 { | |
| 1149 B(StackCheck), // | |
| 1150 B(Ldar), A(1, 2), // | |
| 1151 B(Star), R(0), // | |
| 1152 B(LoadICStrict), R(0), U8(0), U8(vector->GetIndex(slot1)), // | |
| 1153 B(Return), // | |
| 1154 }, | |
| 1155 1, | |
| 1156 {"name"}}, | |
| 1157 {"function f(a, b) { \"use strict\"; return a[b]; }\n" | |
| 1158 "f({arg : \"test\"}, \"arg\")", | |
| 1159 1 * kPointerSize, | |
| 1160 3, | |
| 1161 11, | |
| 1162 { | |
| 1163 B(StackCheck), // | |
| 1164 B(Ldar), A(1, 3), // | |
| 1165 B(Star), R(0), // | |
| 1166 B(Ldar), A(2, 3), // | |
| 1167 B(KeyedLoadICStrict), R(0), U8(vector->GetIndex(slot1)), // | |
| 1168 B(Return), // | |
| 1169 }, | |
| 1170 0}, | |
| 1171 {"function f(a) {\n" | 1142 {"function f(a) {\n" |
| 1172 " var b;\n" | 1143 " var b;\n" |
| 1173 "b = a.name;" | 1144 "b = a.name;" |
| 1174 REPEAT_127(SPACE, " b = a.name; ") | 1145 REPEAT_127(SPACE, " b = a.name; ") |
| 1175 " return a.name; }\n" | 1146 " return a.name; }\n" |
| 1176 "f({name : \"test\"})\n", | 1147 "f({name : \"test\"})\n", |
| 1177 2 * kPointerSize, | 1148 2 * kPointerSize, |
| 1178 2, | 1149 2, |
| 1179 1292, | 1150 1292, |
| 1180 { | 1151 { |
| 1181 B(StackCheck), // | 1152 B(StackCheck), // |
| 1182 B(Ldar), A(1, 2), // | 1153 B(Ldar), A(1, 2), // |
| 1183 B(Star), R(1), // | 1154 B(Star), R(1), // |
| 1184 B(LoadICSloppy), R(1), U8(0), U8(wide_idx_1 += 2), // | 1155 B(LoadIC), R(1), U8(0), U8(wide_idx_1 += 2), // |
| 1185 B(Star), R(0), // | 1156 B(Star), R(0), // |
| 1186 REPEAT_127(COMMA, // | 1157 REPEAT_127(COMMA, // |
| 1187 B(Ldar), A(1, 2), // | 1158 B(Ldar), A(1, 2), // |
| 1188 B(Star), R(1), // | 1159 B(Star), R(1), // |
| 1189 B(LoadICSloppy), R(1), U8(0), // | 1160 B(LoadIC), R(1), U8(0), // |
| 1190 U8((wide_idx_1 += 2)), // | 1161 U8((wide_idx_1 += 2)), // |
| 1191 B(Star), R(0)), // | 1162 B(Star), R(0)), // |
| 1192 B(Ldar), A(1, 2), // | 1163 B(Ldar), A(1, 2), // |
| 1193 B(Star), R(1), // | 1164 B(Star), R(1), // |
| 1194 B(LoadICSloppyWide), R(1), U16(0), U16(wide_idx_1 + 2), // | 1165 B(LoadICWide), R(1), U16(0), U16(wide_idx_1 + 2), // |
| 1195 B(Return), // | 1166 B(Return), // |
| 1196 }, | 1167 }, |
| 1197 1, | 1168 1, |
| 1198 {"name"}}, | |
| 1199 {"function f(a) {\n" | |
| 1200 " 'use strict'; var b;\n" | |
| 1201 " b = a.name;\n" | |
| 1202 REPEAT_127(SPACE, " b = a.name; ") | |
| 1203 " return a.name; }\n" | |
| 1204 "f({name : \"test\"})\n", | |
| 1205 2 * kPointerSize, | |
| 1206 2, | |
| 1207 1292, | |
| 1208 { | |
| 1209 B(StackCheck), // | |
| 1210 B(Ldar), A(1, 2), // | |
| 1211 B(Star), R(1), // | |
| 1212 B(LoadICStrict), R(1), U8(0), U8((wide_idx_2 += 2)), // | |
| 1213 B(Star), R(0), // | |
| 1214 REPEAT_127(COMMA, // | |
| 1215 B(Ldar), A(1, 2), // | |
| 1216 B(Star), R(1), // | |
| 1217 B(LoadICStrict), R(1), U8(0), // | |
| 1218 U8((wide_idx_2 += 2)), // | |
| 1219 B(Star), R(0)), // | |
| 1220 B(Ldar), A(1, 2), // | |
| 1221 B(Star), R(1), // | |
| 1222 B(LoadICStrictWide), R(1), U16(0), U16(wide_idx_2 + 2), // | |
| 1223 B(Return), // | |
| 1224 }, | |
| 1225 1, | |
| 1226 {"name"}}, | 1169 {"name"}}, |
| 1227 {"function f(a, b) {\n" | 1170 {"function f(a, b) {\n" |
| 1228 " var c;\n" | 1171 " var c;\n" |
| 1229 " c = a[b];" | 1172 " c = a[b];" |
| 1230 REPEAT_127(SPACE, " c = a[b]; ") | 1173 REPEAT_127(SPACE, " c = a[b]; ") |
| 1231 " return a[b]; }\n" | 1174 " return a[b]; }\n" |
| 1232 "f({name : \"test\"}, \"name\")\n", | 1175 "f({name : \"test\"}, \"name\")\n", |
| 1233 2 * kPointerSize, | 1176 2 * kPointerSize, |
| 1234 3, | 1177 3, |
| 1235 1420, | 1178 1420, |
| 1236 { | 1179 { |
| 1237 B(StackCheck), // | 1180 B(StackCheck), // |
| 1238 B(Ldar), A(1, 3), // | 1181 B(Ldar), A(1, 3), // |
| 1239 B(Star), R(1), // | 1182 B(Star), R(1), // |
| 1240 B(Ldar), A(2, 3), // | 1183 B(Ldar), A(2, 3), // |
| 1241 B(KeyedLoadICSloppy), R(1), U8((wide_idx_3 += 2)), // | 1184 B(KeyedLoadIC), R(1), U8((wide_idx_2 += 2)), // |
| 1242 B(Star), R(0), // | 1185 B(Star), R(0), // |
| 1243 REPEAT_127(COMMA, // | 1186 REPEAT_127(COMMA, // |
| 1244 B(Ldar), A(1, 3), // | 1187 B(Ldar), A(1, 3), // |
| 1245 B(Star), R(1), // | 1188 B(Star), R(1), // |
| 1246 B(Ldar), A(2, 3), // | 1189 B(Ldar), A(2, 3), // |
| 1247 B(KeyedLoadICSloppy), R(1), U8((wide_idx_3 += 2)), // | 1190 B(KeyedLoadIC), R(1), U8((wide_idx_2 += 2)), // |
| 1248 B(Star), R(0)), // | 1191 B(Star), R(0)), // |
| 1249 B(Ldar), A(1, 3), // | 1192 B(Ldar), A(1, 3), // |
| 1250 B(Star), R(1), // | 1193 B(Star), R(1), // |
| 1251 B(Ldar), A(2, 3), // | 1194 B(Ldar), A(2, 3), // |
| 1252 B(KeyedLoadICSloppyWide), R(1), U16(wide_idx_3 + 2), // | 1195 B(KeyedLoadICWide), R(1), U16(wide_idx_2 + 2), // |
| 1253 B(Return), // | |
| 1254 }}, | |
| 1255 {"function f(a, b) {\n" | |
| 1256 " 'use strict'; var c;\n" | |
| 1257 " c = a[b];" | |
| 1258 REPEAT_127(SPACE, " c = a[b]; ") | |
| 1259 " return a[b]; }\n" | |
| 1260 "f({name : \"test\"}, \"name\")\n", | |
| 1261 2 * kPointerSize, | |
| 1262 3, | |
| 1263 1420, | |
| 1264 { | |
| 1265 B(StackCheck), // | |
| 1266 B(Ldar), A(1, 3), // | |
| 1267 B(Star), R(1), // | |
| 1268 B(Ldar), A(2, 3), // | |
| 1269 B(KeyedLoadICStrict), R(1), U8((wide_idx_4 += 2)), // | |
| 1270 B(Star), R(0), // | |
| 1271 REPEAT_127(COMMA, // | |
| 1272 B(Ldar), A(1, 3), // | |
| 1273 B(Star), R(1), // | |
| 1274 B(Ldar), A(2, 3), // | |
| 1275 B(KeyedLoadICStrict), R(1), U8((wide_idx_4 += 2)), // | |
| 1276 B(Star), R(0)), // | |
| 1277 B(Ldar), A(1, 3), // | |
| 1278 B(Star), R(1), // | |
| 1279 B(Ldar), A(2, 3), // | |
| 1280 B(KeyedLoadICStrictWide), R(1), U16(wide_idx_4 + 2), // | |
| 1281 B(Return), // | 1196 B(Return), // |
| 1282 }}, | 1197 }}, |
| 1283 }; | 1198 }; |
| 1284 // clang-format on | 1199 // clang-format on |
| 1285 | 1200 |
| 1286 for (size_t i = 0; i < arraysize(snippets); i++) { | 1201 for (size_t i = 0; i < arraysize(snippets); i++) { |
| 1287 Handle<BytecodeArray> bytecode_array = | 1202 Handle<BytecodeArray> bytecode_array = |
| 1288 helper.MakeBytecode(snippets[i].code_snippet, helper.kFunctionName); | 1203 helper.MakeBytecode(snippets[i].code_snippet, helper.kFunctionName); |
| 1289 CheckBytecodeArrayEqual(snippets[i], bytecode_array); | 1204 CheckBytecodeArrayEqual(snippets[i], bytecode_array); |
| 1290 } | 1205 } |
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1382 2 * kPointerSize, | 1297 2 * kPointerSize, |
| 1383 2, | 1298 2, |
| 1384 20, | 1299 20, |
| 1385 { | 1300 { |
| 1386 B(StackCheck), // | 1301 B(StackCheck), // |
| 1387 B(Ldar), A(1, 2), // | 1302 B(Ldar), A(1, 2), // |
| 1388 B(Star), R(0), // | 1303 B(Star), R(0), // |
| 1389 B(Ldar), A(1, 2), // | 1304 B(Ldar), A(1, 2), // |
| 1390 B(Star), R(1), // | 1305 B(Star), R(1), // |
| 1391 B(LdaSmi8), U8(-124), // | 1306 B(LdaSmi8), U8(-124), // |
| 1392 B(KeyedLoadICSloppy), R(1), U8(vector->GetIndex(slot1)), // | 1307 B(KeyedLoadIC), R(1), U8(vector->GetIndex(slot1)), // |
| 1393 B(StoreICSloppy), R(0), U8(0), U8(vector->GetIndex(slot2)), // | 1308 B(StoreICSloppy), R(0), U8(0), U8(vector->GetIndex(slot2)), // |
| 1394 B(LdaUndefined), // | 1309 B(LdaUndefined), // |
| 1395 B(Return), // | 1310 B(Return), // |
| 1396 }, | 1311 }, |
| 1397 1, | 1312 1, |
| 1398 {"name"}}, | 1313 {"name"}}, |
| 1399 {"function f(a) { \"use strict\"; a.name = \"val\"; }\n" | 1314 {"function f(a) { \"use strict\"; a.name = \"val\"; }\n" |
| 1400 "f({name : \"test\"})", | 1315 "f({name : \"test\"})", |
| 1401 kPointerSize, | 1316 kPointerSize, |
| 1402 2, | 1317 2, |
| (...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1588 // clang-format off | 1503 // clang-format off |
| 1589 ExpectedSnippet<const char*> snippets[] = { | 1504 ExpectedSnippet<const char*> snippets[] = { |
| 1590 {"function f(a) { return a.func(); }\nf(" FUNC_ARG ")", | 1505 {"function f(a) { return a.func(); }\nf(" FUNC_ARG ")", |
| 1591 2 * kPointerSize, | 1506 2 * kPointerSize, |
| 1592 2, | 1507 2, |
| 1593 17, | 1508 17, |
| 1594 { | 1509 { |
| 1595 B(StackCheck), // | 1510 B(StackCheck), // |
| 1596 B(Ldar), A(1, 2), // | 1511 B(Ldar), A(1, 2), // |
| 1597 B(Star), R(1), // | 1512 B(Star), R(1), // |
| 1598 B(LoadICSloppy), R(1), U8(0), U8(vector->GetIndex(slot2)), // | 1513 B(LoadIC), R(1), U8(0), U8(vector->GetIndex(slot2)), // |
| 1599 B(Star), R(0), // | 1514 B(Star), R(0), // |
| 1600 B(Call), R(0), R(1), U8(1), U8(vector->GetIndex(slot1)), // | 1515 B(Call), R(0), R(1), U8(1), U8(vector->GetIndex(slot1)), // |
| 1601 B(Return), // | 1516 B(Return), // |
| 1602 }, | 1517 }, |
| 1603 1, | 1518 1, |
| 1604 {"func"}}, | 1519 {"func"}}, |
| 1605 {"function f(a, b, c) { return a.func(b, c); }\nf(" FUNC_ARG ", 1, 2)", | 1520 {"function f(a, b, c) { return a.func(b, c); }\nf(" FUNC_ARG ", 1, 2)", |
| 1606 4 * kPointerSize, | 1521 4 * kPointerSize, |
| 1607 4, | 1522 4, |
| 1608 25, | 1523 25, |
| 1609 { | 1524 { |
| 1610 B(StackCheck), // | 1525 B(StackCheck), // |
| 1611 B(Ldar), A(1, 4), // | 1526 B(Ldar), A(1, 4), // |
| 1612 B(Star), R(1), // | 1527 B(Star), R(1), // |
| 1613 B(LoadICSloppy), R(1), U8(0), U8(vector->GetIndex(slot2)), // | 1528 B(LoadIC), R(1), U8(0), U8(vector->GetIndex(slot2)), // |
| 1614 B(Star), R(0), // | 1529 B(Star), R(0), // |
| 1615 B(Ldar), A(2, 4), // | 1530 B(Ldar), A(2, 4), // |
| 1616 B(Star), R(2), // | 1531 B(Star), R(2), // |
| 1617 B(Ldar), A(3, 4), // | 1532 B(Ldar), A(3, 4), // |
| 1618 B(Star), R(3), // | 1533 B(Star), R(3), // |
| 1619 B(Call), R(0), R(1), U8(3), U8(vector->GetIndex(slot1)), // | 1534 B(Call), R(0), R(1), U8(3), U8(vector->GetIndex(slot1)), // |
| 1620 B(Return) // | 1535 B(Return) // |
| 1621 }, | 1536 }, |
| 1622 1, | 1537 1, |
| 1623 {"func"}}, | 1538 {"func"}}, |
| 1624 {"function f(a, b) { return a.func(b + b, b); }\nf(" FUNC_ARG ", 1)", | 1539 {"function f(a, b) { return a.func(b + b, b); }\nf(" FUNC_ARG ", 1)", |
| 1625 4 * kPointerSize, | 1540 4 * kPointerSize, |
| 1626 3, | 1541 3, |
| 1627 31, | 1542 31, |
| 1628 { | 1543 { |
| 1629 B(StackCheck), // | 1544 B(StackCheck), // |
| 1630 B(Ldar), A(1, 3), // | 1545 B(Ldar), A(1, 3), // |
| 1631 B(Star), R(1), // | 1546 B(Star), R(1), // |
| 1632 B(LoadICSloppy), R(1), U8(0), U8(vector->GetIndex(slot2)), // | 1547 B(LoadIC), R(1), U8(0), U8(vector->GetIndex(slot2)), // |
| 1633 B(Star), R(0), // | 1548 B(Star), R(0), // |
| 1634 B(Ldar), A(2, 3), // | 1549 B(Ldar), A(2, 3), // |
| 1635 B(Star), R(3), // | 1550 B(Star), R(3), // |
| 1636 B(Ldar), A(2, 3), // | 1551 B(Ldar), A(2, 3), // |
| 1637 B(Add), R(3), // | 1552 B(Add), R(3), // |
| 1638 B(Star), R(2), // | 1553 B(Star), R(2), // |
| 1639 B(Ldar), A(2, 3), // | 1554 B(Ldar), A(2, 3), // |
| 1640 B(Star), R(3), // | 1555 B(Star), R(3), // |
| 1641 B(Call), R(0), R(1), U8(3), U8(vector->GetIndex(slot1)), // | 1556 B(Call), R(0), R(1), U8(3), U8(vector->GetIndex(slot1)), // |
| 1642 B(Return), // | 1557 B(Return), // |
| 1643 }, | 1558 }, |
| 1644 1, | 1559 1, |
| 1645 {"func"}}, | 1560 {"func"}}, |
| 1646 {"function f(a) {\n" | 1561 {"function f(a) {\n" |
| 1647 " a.func;\n" REPEAT_127( | 1562 " a.func;\n" REPEAT_127( |
| 1648 SPACE, " a.func;\n") " return a.func(); }\nf(" FUNC_ARG ")", | 1563 SPACE, " a.func;\n") " return a.func(); }\nf(" FUNC_ARG ")", |
| 1649 2 * kPointerSize, | 1564 2 * kPointerSize, |
| 1650 2, | 1565 2, |
| 1651 1047, | 1566 1047, |
| 1652 { | 1567 { |
| 1653 B(StackCheck), // | 1568 B(StackCheck), // |
| 1654 B(Ldar), A(1, 2), // | 1569 B(Ldar), A(1, 2), // |
| 1655 B(Star), R(0), // | 1570 B(Star), R(0), // |
| 1656 B(LoadICSloppy), R(0), U8(0), U8(wide_idx += 2), // | 1571 B(LoadIC), R(0), U8(0), U8(wide_idx += 2), // |
| 1657 REPEAT_127(COMMA, // | 1572 REPEAT_127(COMMA, // |
| 1658 B(Ldar), A(1, 2), // | 1573 B(Ldar), A(1, 2), // |
| 1659 B(Star), R(0), // | 1574 B(Star), R(0), // |
| 1660 B(LoadICSloppy), R(0), U8(0), U8((wide_idx += 2))), // | 1575 B(LoadIC), R(0), U8(0), U8((wide_idx += 2))), // |
| 1661 B(Ldar), A(1, 2), // | 1576 B(Ldar), A(1, 2), // |
| 1662 B(Star), R(1), // | 1577 B(Star), R(1), // |
| 1663 B(LoadICSloppyWide), R(1), U16(0), U16(wide_idx + 4), // | 1578 B(LoadICWide), R(1), U16(0), U16(wide_idx + 4), // |
| 1664 B(Star), R(0), // | 1579 B(Star), R(0), // |
| 1665 B(CallWide), R16(0), R16(1), U16(1), U16(wide_idx + 2), // | 1580 B(CallWide), R16(0), R16(1), U16(1), U16(wide_idx + 2), // |
| 1666 B(Return), // | 1581 B(Return), // |
| 1667 }, | 1582 }, |
| 1668 1, | 1583 1, |
| 1669 {"func"}}, | 1584 {"func"}}, |
| 1670 }; | 1585 }; |
| 1671 // clang-format on | 1586 // clang-format on |
| 1672 | 1587 |
| 1673 for (size_t i = 0; i < arraysize(snippets); i++) { | 1588 for (size_t i = 0; i < arraysize(snippets); i++) { |
| (...skipping 10 matching lines...) Expand all Loading... |
| 1684 Zone zone; | 1599 Zone zone; |
| 1685 | 1600 |
| 1686 FeedbackVectorSpec feedback_spec(&zone); | 1601 FeedbackVectorSpec feedback_spec(&zone); |
| 1687 FeedbackVectorSlot slot = feedback_spec.AddLoadICSlot(); | 1602 FeedbackVectorSlot slot = feedback_spec.AddLoadICSlot(); |
| 1688 | 1603 |
| 1689 Handle<i::TypeFeedbackVector> vector = | 1604 Handle<i::TypeFeedbackVector> vector = |
| 1690 i::NewTypeFeedbackVector(helper.isolate(), &feedback_spec); | 1605 i::NewTypeFeedbackVector(helper.isolate(), &feedback_spec); |
| 1691 | 1606 |
| 1692 // These are a hack used by the LdaGlobalXXXWide tests below. | 1607 // These are a hack used by the LdaGlobalXXXWide tests below. |
| 1693 int wide_idx_1 = vector->GetIndex(slot) - 2; | 1608 int wide_idx_1 = vector->GetIndex(slot) - 2; |
| 1694 int wide_idx_2 = vector->GetIndex(slot) - 2; | |
| 1695 | 1609 |
| 1696 // clang-format off | 1610 // clang-format off |
| 1697 ExpectedSnippet<const char*> snippets[] = { | 1611 ExpectedSnippet<const char*> snippets[] = { |
| 1698 {"var a = 1;\nfunction f() { return a; }\nf()", | 1612 {"var a = 1;\nfunction f() { return a; }\nf()", |
| 1699 0, | 1613 0, |
| 1700 1, | 1614 1, |
| 1701 5, | 1615 5, |
| 1702 { | 1616 { |
| 1703 B(StackCheck), // | 1617 B(StackCheck), // |
| 1704 B(LdaGlobalSloppy), U8(0), U8(vector->GetIndex(slot)), // | 1618 B(LdaGlobal), U8(0), U8(vector->GetIndex(slot)), // |
| 1705 B(Return) // | 1619 B(Return) // |
| 1706 }, | 1620 }, |
| 1707 1, | 1621 1, |
| 1708 {"a"}}, | 1622 {"a"}}, |
| 1709 {"function t() { }\nfunction f() { return t; }\nf()", | 1623 {"function t() { }\nfunction f() { return t; }\nf()", |
| 1710 0, | 1624 0, |
| 1711 1, | 1625 1, |
| 1712 5, | 1626 5, |
| 1713 { | 1627 { |
| 1714 B(StackCheck), // | 1628 B(StackCheck), // |
| 1715 B(LdaGlobalSloppy), U8(0), U8(vector->GetIndex(slot)), // | 1629 B(LdaGlobal), U8(0), U8(vector->GetIndex(slot)), // |
| 1716 B(Return) // | 1630 B(Return) // |
| 1717 }, | 1631 }, |
| 1718 1, | 1632 1, |
| 1719 {"t"}}, | 1633 {"t"}}, |
| 1720 {"'use strict'; var a = 1;\nfunction f() { return a; }\nf()", | |
| 1721 0, | |
| 1722 1, | |
| 1723 5, | |
| 1724 { | |
| 1725 B(StackCheck), // | |
| 1726 B(LdaGlobalStrict), U8(0), U8(vector->GetIndex(slot)), // | |
| 1727 B(Return) // | |
| 1728 }, | |
| 1729 1, | |
| 1730 {"a"}}, | |
| 1731 {"a = 1;\nfunction f() { return a; }\nf()", | 1634 {"a = 1;\nfunction f() { return a; }\nf()", |
| 1732 0, | 1635 0, |
| 1733 1, | 1636 1, |
| 1734 5, | 1637 5, |
| 1735 { | 1638 { |
| 1736 B(StackCheck), // | 1639 B(StackCheck), // |
| 1737 B(LdaGlobalSloppy), U8(0), U8(vector->GetIndex(slot)), // | 1640 B(LdaGlobal), U8(0), U8(vector->GetIndex(slot)), // |
| 1738 B(Return) // | 1641 B(Return) // |
| 1739 }, | 1642 }, |
| 1740 1, | 1643 1, |
| 1741 {"a"}}, | 1644 {"a"}}, |
| 1742 {"a = 1;" | 1645 {"a = 1;" |
| 1743 "function f(b) {\n" | 1646 "function f(b) {\n" |
| 1744 " b.name;\n" | 1647 " b.name;\n" |
| 1745 REPEAT_127(SPACE, "b.name; ") | 1648 REPEAT_127(SPACE, "b.name; ") |
| 1746 " return a;" | 1649 " return a;" |
| 1747 "}\nf({name: 1});", | 1650 "}\nf({name: 1});", |
| 1748 kPointerSize, | 1651 kPointerSize, |
| 1749 2, | 1652 2, |
| 1750 1031, | 1653 1031, |
| 1751 { | 1654 { |
| 1752 B(StackCheck), // | 1655 B(StackCheck), // |
| 1753 B(Ldar), A(1, 2), // | 1656 B(Ldar), A(1, 2), // |
| 1754 B(Star), R(0), // | 1657 B(Star), R(0), // |
| 1755 B(LoadICSloppy), R(0), U8(0), U8(wide_idx_1 += 2), // | 1658 B(LoadIC), R(0), U8(0), U8(wide_idx_1 += 2), // |
| 1756 REPEAT_127(COMMA, // | 1659 REPEAT_127(COMMA, // |
| 1757 B(Ldar), A(1, 2), // | 1660 B(Ldar), A(1, 2), // |
| 1758 B(Star), R(0), // | 1661 B(Star), R(0), // |
| 1759 B(LoadICSloppy), R(0), U8(0), U8(wide_idx_1 += 2)), // | 1662 B(LoadIC), R(0), U8(0), U8(wide_idx_1 += 2)), // |
| 1760 B(LdaGlobalSloppyWide), U16(1), U16(wide_idx_1 + 2), // | 1663 B(LdaGlobalWide), U16(1), U16(wide_idx_1 + 2), // |
| 1761 B(Return), // | 1664 B(Return), // |
| 1762 }, | 1665 }, |
| 1763 2, | 1666 2, |
| 1764 {"name", "a"}}, | |
| 1765 {"a = 1;" | |
| 1766 "function f(b) {\n" | |
| 1767 " 'use strict';\n" | |
| 1768 " b.name\n" | |
| 1769 REPEAT_127(SPACE, "b.name; ") | |
| 1770 " return a;" | |
| 1771 "}\nf({name: 1});", | |
| 1772 kPointerSize, | |
| 1773 2, | |
| 1774 1031, | |
| 1775 { | |
| 1776 B(StackCheck), // | |
| 1777 B(Ldar), A(1, 2), // | |
| 1778 B(Star), R(0), // | |
| 1779 B(LoadICStrict), R(0), U8(0), U8(wide_idx_2 += 2), // | |
| 1780 REPEAT_127(COMMA, // | |
| 1781 B(Ldar), A(1, 2), // | |
| 1782 B(Star), R(0), // | |
| 1783 B(LoadICStrict), R(0), U8(0), U8(wide_idx_2 += 2)), // | |
| 1784 B(LdaGlobalStrictWide), U16(1), U16(wide_idx_2 + 2), // | |
| 1785 B(Return), // | |
| 1786 }, | |
| 1787 2, | |
| 1788 {"name", "a"}}, | 1667 {"name", "a"}}, |
| 1789 }; | 1668 }; |
| 1790 // clang-format on | 1669 // clang-format on |
| 1791 | 1670 |
| 1792 for (size_t i = 0; i < arraysize(snippets); i++) { | 1671 for (size_t i = 0; i < arraysize(snippets); i++) { |
| 1793 Handle<BytecodeArray> bytecode_array = | 1672 Handle<BytecodeArray> bytecode_array = |
| 1794 helper.MakeBytecode(snippets[i].code_snippet, "f"); | 1673 helper.MakeBytecode(snippets[i].code_snippet, "f"); |
| 1795 CheckBytecodeArrayEqual(snippets[i], bytecode_array); | 1674 CheckBytecodeArrayEqual(snippets[i], bytecode_array); |
| 1796 } | 1675 } |
| 1797 } | 1676 } |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1872 REPEAT_127(SPACE, "b.name; ") | 1751 REPEAT_127(SPACE, "b.name; ") |
| 1873 " a = 2; }\n" | 1752 " a = 2; }\n" |
| 1874 "f({name: 1});", | 1753 "f({name: 1});", |
| 1875 kPointerSize, | 1754 kPointerSize, |
| 1876 2, | 1755 2, |
| 1877 1034, | 1756 1034, |
| 1878 { | 1757 { |
| 1879 B(StackCheck), // | 1758 B(StackCheck), // |
| 1880 B(Ldar), A(1, 2), // | 1759 B(Ldar), A(1, 2), // |
| 1881 B(Star), R(0), // | 1760 B(Star), R(0), // |
| 1882 B(LoadICSloppy), R(0), U8(0), U8(wide_idx_1 += 2), // | 1761 B(LoadIC), R(0), U8(0), U8(wide_idx_1 += 2), // |
| 1883 REPEAT_127(COMMA, // | 1762 REPEAT_127(COMMA, // |
| 1884 B(Ldar), A(1, 2), // | 1763 B(Ldar), A(1, 2), // |
| 1885 B(Star), R(0), // | 1764 B(Star), R(0), // |
| 1886 B(LoadICSloppy), R(0), U8(0), U8(wide_idx_1 += 2)), // | 1765 B(LoadIC), R(0), U8(0), U8(wide_idx_1 += 2)), // |
| 1887 B(LdaSmi8), U8(2), // | 1766 B(LdaSmi8), U8(2), // |
| 1888 B(StaGlobalSloppyWide), U16(1), U16(wide_idx_1 + 2), // | 1767 B(StaGlobalSloppyWide), U16(1), U16(wide_idx_1 + 2), // |
| 1889 B(LdaUndefined), // | 1768 B(LdaUndefined), // |
| 1890 B(Return), // | 1769 B(Return), // |
| 1891 }, | 1770 }, |
| 1892 2, | 1771 2, |
| 1893 {"name", "a"}}, | 1772 {"name", "a"}}, |
| 1894 {"a = 1;" | 1773 {"a = 1;" |
| 1895 "function f(b) {\n" | 1774 "function f(b) {\n" |
| 1896 " 'use strict';\n" | 1775 " 'use strict';\n" |
| 1897 " b.name;\n" | 1776 " b.name;\n" |
| 1898 REPEAT_127(SPACE, "b.name; ") | 1777 REPEAT_127(SPACE, "b.name; ") |
| 1899 " a = 2; }\n" | 1778 " a = 2; }\n" |
| 1900 "f({name: 1});", | 1779 "f({name: 1});", |
| 1901 kPointerSize, | 1780 kPointerSize, |
| 1902 2, | 1781 2, |
| 1903 1034, | 1782 1034, |
| 1904 { | 1783 { |
| 1905 B(StackCheck), // | 1784 B(StackCheck), // |
| 1906 B(Ldar), A(1, 2), // | 1785 B(Ldar), A(1, 2), // |
| 1907 B(Star), R(0), // | 1786 B(Star), R(0), // |
| 1908 B(LoadICStrict), R(0), U8(0), U8(wide_idx_2 += 2), // | 1787 B(LoadIC), R(0), U8(0), U8(wide_idx_2 += 2), // |
| 1909 REPEAT_127(COMMA, // | 1788 REPEAT_127(COMMA, // |
| 1910 B(Ldar), A(1, 2), // | 1789 B(Ldar), A(1, 2), // |
| 1911 B(Star), R(0), // | 1790 B(Star), R(0), // |
| 1912 B(LoadICStrict), R(0), U8(0), U8(wide_idx_2 += 2)), // | 1791 B(LoadIC), R(0), U8(0), U8(wide_idx_2 += 2)), // |
| 1913 B(LdaSmi8), U8(2), // | 1792 B(LdaSmi8), U8(2), // |
| 1914 B(StaGlobalStrictWide), U16(1), U16(wide_idx_2 + 2), // | 1793 B(StaGlobalStrictWide), U16(1), U16(wide_idx_2 + 2), // |
| 1915 B(LdaUndefined), // | 1794 B(LdaUndefined), // |
| 1916 B(Return), // | 1795 B(Return), // |
| 1917 }, | 1796 }, |
| 1918 2, | 1797 2, |
| 1919 {"name", "a"}}, | 1798 {"name", "a"}}, |
| 1920 }; | 1799 }; |
| 1921 // clang-format on | 1800 // clang-format on |
| 1922 | 1801 |
| (...skipping 20 matching lines...) Expand all Loading... |
| 1943 // clang-format off | 1822 // clang-format off |
| 1944 ExpectedSnippet<const char*> snippets[] = { | 1823 ExpectedSnippet<const char*> snippets[] = { |
| 1945 {"function t() { }\nfunction f() { return t(); }\nf()", | 1824 {"function t() { }\nfunction f() { return t(); }\nf()", |
| 1946 2 * kPointerSize, | 1825 2 * kPointerSize, |
| 1947 1, | 1826 1, |
| 1948 15, | 1827 15, |
| 1949 { | 1828 { |
| 1950 B(StackCheck), // | 1829 B(StackCheck), // |
| 1951 B(LdaUndefined), // | 1830 B(LdaUndefined), // |
| 1952 B(Star), R(1), // | 1831 B(Star), R(1), // |
| 1953 B(LdaGlobalSloppy), U8(0), U8(vector->GetIndex(slot2)), // | 1832 B(LdaGlobal), U8(0), U8(vector->GetIndex(slot2)), // |
| 1954 B(Star), R(0), // | 1833 B(Star), R(0), // |
| 1955 B(Call), R(0), R(1), U8(1), U8(vector->GetIndex(slot1)), // | 1834 B(Call), R(0), R(1), U8(1), U8(vector->GetIndex(slot1)), // |
| 1956 B(Return) // | 1835 B(Return) // |
| 1957 }, | 1836 }, |
| 1958 1, | 1837 1, |
| 1959 {"t"}}, | 1838 {"t"}}, |
| 1960 {"function t(a, b, c) { }\nfunction f() { return t(1, 2, 3); }\nf()", | 1839 {"function t(a, b, c) { }\nfunction f() { return t(1, 2, 3); }\nf()", |
| 1961 5 * kPointerSize, | 1840 5 * kPointerSize, |
| 1962 1, | 1841 1, |
| 1963 27, | 1842 27, |
| 1964 { | 1843 { |
| 1965 B(StackCheck), // | 1844 B(StackCheck), // |
| 1966 B(LdaUndefined), // | 1845 B(LdaUndefined), // |
| 1967 B(Star), R(1), // | 1846 B(Star), R(1), // |
| 1968 B(LdaGlobalSloppy), U8(0), U8(vector->GetIndex(slot2)), // | 1847 B(LdaGlobal), U8(0), U8(vector->GetIndex(slot2)), // |
| 1969 B(Star), R(0), // | 1848 B(Star), R(0), // |
| 1970 B(LdaSmi8), U8(1), // | 1849 B(LdaSmi8), U8(1), // |
| 1971 B(Star), R(2), // | 1850 B(Star), R(2), // |
| 1972 B(LdaSmi8), U8(2), // | 1851 B(LdaSmi8), U8(2), // |
| 1973 B(Star), R(3), // | 1852 B(Star), R(3), // |
| 1974 B(LdaSmi8), U8(3), // | 1853 B(LdaSmi8), U8(3), // |
| 1975 B(Star), R(4), // | 1854 B(Star), R(4), // |
| 1976 B(Call), R(0), R(1), U8(4), U8(vector->GetIndex(slot1)), // | 1855 B(Call), R(0), R(1), U8(4), U8(vector->GetIndex(slot1)), // |
| 1977 B(Return) // | 1856 B(Return) // |
| 1978 }, | 1857 }, |
| (...skipping 433 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2412 29, | 2291 29, |
| 2413 { | 2292 { |
| 2414 B(LdaConstant), U8(0), // | 2293 B(LdaConstant), U8(0), // |
| 2415 B(Star), R(1), // | 2294 B(Star), R(1), // |
| 2416 B(LdaZero), // | 2295 B(LdaZero), // |
| 2417 B(Star), R(2), // | 2296 B(Star), R(2), // |
| 2418 B(CallRuntime), U16(Runtime::kDeclareGlobals), R(1), U8(2), // | 2297 B(CallRuntime), U16(Runtime::kDeclareGlobals), R(1), U8(2), // |
| 2419 B(StackCheck), // | 2298 B(StackCheck), // |
| 2420 B(LdaUndefined), // | 2299 B(LdaUndefined), // |
| 2421 B(Star), R(2), // | 2300 B(Star), R(2), // |
| 2422 B(LdaGlobalSloppy), U8(1), // | 2301 B(LdaGlobal), U8(1), U8(load_vector->GetIndex(load_slot_1)), // |
| 2423 /* */ U8(load_vector->GetIndex(load_slot_1)), // | |
| 2424 B(Star), R(1), // | 2302 B(Star), R(1), // |
| 2425 B(Call), R(1), R(2), U8(1), // | 2303 B(Call), R(1), R(2), U8(1), // |
| 2426 /* */ U8(load_vector->GetIndex(call_slot_1)), // | 2304 /* */ U8(load_vector->GetIndex(call_slot_1)), // |
| 2427 B(Star), R(0), // | 2305 B(Star), R(0), // |
| 2428 B(Return) // | 2306 B(Return) // |
| 2429 }, | 2307 }, |
| 2430 2, | 2308 2, |
| 2431 {InstanceType::FIXED_ARRAY_TYPE, | 2309 {InstanceType::FIXED_ARRAY_TYPE, |
| 2432 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE}}, | 2310 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE}}, |
| 2433 }; | 2311 }; |
| (...skipping 1218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3652 B(Return), // | 3530 B(Return), // |
| 3653 }}, | 3531 }}, |
| 3654 {"var x = 13;\n" | 3532 {"var x = 13;\n" |
| 3655 "function f() {\n" | 3533 "function f() {\n" |
| 3656 " return typeof(x);\n" | 3534 " return typeof(x);\n" |
| 3657 "}; f();", | 3535 "}; f();", |
| 3658 0, | 3536 0, |
| 3659 1, | 3537 1, |
| 3660 6, | 3538 6, |
| 3661 { | 3539 { |
| 3662 B(StackCheck), // | 3540 B(StackCheck), // |
| 3663 B(LdaGlobalInsideTypeofSloppy), U8(0), // | 3541 B(LdaGlobalInsideTypeof), U8(0), U8(vector->GetIndex(slot)), // |
| 3664 /* */ U8(vector->GetIndex(slot)), // | 3542 B(TypeOf), // |
| 3665 B(TypeOf), // | 3543 B(Return), // |
| 3666 B(Return), // | |
| 3667 }, | 3544 }, |
| 3668 1, | 3545 1, |
| 3669 {"x"}}, | 3546 {"x"}}, |
| 3670 {"var x = 13;\n" | |
| 3671 "function f() {\n" | |
| 3672 " 'use strict';\n" | |
| 3673 " return typeof(x);\n" | |
| 3674 "}; f();", | |
| 3675 0, | |
| 3676 1, | |
| 3677 6, | |
| 3678 { | |
| 3679 B(StackCheck), // | |
| 3680 B(LdaGlobalInsideTypeofStrict), U8(0), // | |
| 3681 /* */ U8(vector->GetIndex(slot)), // | |
| 3682 B(TypeOf), // | |
| 3683 B(Return), // | |
| 3684 }, | |
| 3685 1, | |
| 3686 {"x"}}, | |
| 3687 }; | 3547 }; |
| 3688 // clang-format on | 3548 // clang-format on |
| 3689 | 3549 |
| 3690 for (size_t i = 0; i < arraysize(snippets); i++) { | 3550 for (size_t i = 0; i < arraysize(snippets); i++) { |
| 3691 Handle<BytecodeArray> bytecode_array = | 3551 Handle<BytecodeArray> bytecode_array = |
| 3692 helper.MakeBytecodeForFunction(snippets[i].code_snippet); | 3552 helper.MakeBytecodeForFunction(snippets[i].code_snippet); |
| 3693 CheckBytecodeArrayEqual(snippets[i], bytecode_array); | 3553 CheckBytecodeArrayEqual(snippets[i], bytecode_array); |
| 3694 } | 3554 } |
| 3695 } | 3555 } |
| 3696 | 3556 |
| (...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3818 Handle<i::TypeFeedbackVector> vector = | 3678 Handle<i::TypeFeedbackVector> vector = |
| 3819 i::NewTypeFeedbackVector(helper.isolate(), &feedback_spec); | 3679 i::NewTypeFeedbackVector(helper.isolate(), &feedback_spec); |
| 3820 | 3680 |
| 3821 // clang-format off | 3681 // clang-format off |
| 3822 ExpectedSnippet<InstanceType> snippets[] = { | 3682 ExpectedSnippet<InstanceType> snippets[] = { |
| 3823 {"var a = {x:13, y:14};\n function f() { return delete a.x; };\n f();", | 3683 {"var a = {x:13, y:14};\n function f() { return delete a.x; };\n f();", |
| 3824 1 * kPointerSize, | 3684 1 * kPointerSize, |
| 3825 1, | 3685 1, |
| 3826 11, | 3686 11, |
| 3827 {B(StackCheck), // | 3687 {B(StackCheck), // |
| 3828 B(LdaGlobalSloppy), U8(0), U8(vector->GetIndex(slot)), // | 3688 B(LdaGlobal), U8(0), U8(vector->GetIndex(slot)), // |
| 3829 B(Star), R(0), // | 3689 B(Star), R(0), // |
| 3830 B(LdaConstant), U8(1), // | 3690 B(LdaConstant), U8(1), // |
| 3831 B(DeletePropertySloppy), R(0), // | 3691 B(DeletePropertySloppy), R(0), // |
| 3832 B(Return)}, | 3692 B(Return)}, |
| 3833 2, | 3693 2, |
| 3834 {InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE, | 3694 {InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE, |
| 3835 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE}}, | 3695 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE}}, |
| 3836 {"a = {1:13, 2:14};\n" | 3696 {"a = {1:13, 2:14};\n" |
| 3837 "function f() {'use strict'; return delete a[1];};\n f();", | 3697 "function f() {'use strict'; return delete a[1];};\n f();", |
| 3838 1 * kPointerSize, | 3698 1 * kPointerSize, |
| 3839 1, | 3699 1, |
| 3840 11, | 3700 11, |
| 3841 {B(StackCheck), // | 3701 {B(StackCheck), // |
| 3842 B(LdaGlobalStrict), U8(0), U8(vector->GetIndex(slot)), // | 3702 B(LdaGlobal), U8(0), U8(vector->GetIndex(slot)), // |
| 3843 B(Star), R(0), // | 3703 B(Star), R(0), // |
| 3844 B(LdaSmi8), U8(1), // | 3704 B(LdaSmi8), U8(1), // |
| 3845 B(DeletePropertyStrict), R(0), // | 3705 B(DeletePropertyStrict), R(0), // |
| 3846 B(Return)}, | 3706 B(Return)}, |
| 3847 1, | 3707 1, |
| 3848 {InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE}}, | 3708 {InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE}}, |
| 3849 {"var a = {x:13, y:14};\n function f() { return delete a; };\n f();", | 3709 {"var a = {x:13, y:14};\n function f() { return delete a; };\n f();", |
| 3850 2 * kPointerSize, | 3710 2 * kPointerSize, |
| 3851 1, | 3711 1, |
| 3852 16, | 3712 16, |
| (...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3990 1, | 3850 1, |
| 3991 {"(\\w+)\\s(\\w+)"}}, | 3851 {"(\\w+)\\s(\\w+)"}}, |
| 3992 {"return /ab+d/.exec('abdd');", | 3852 {"return /ab+d/.exec('abdd');", |
| 3993 3 * kPointerSize, | 3853 3 * kPointerSize, |
| 3994 1, | 3854 1, |
| 3995 23, | 3855 23, |
| 3996 { | 3856 { |
| 3997 B(StackCheck), // | 3857 B(StackCheck), // |
| 3998 B(CreateRegExpLiteral), U8(0), U8(0), U8(0), // | 3858 B(CreateRegExpLiteral), U8(0), U8(0), U8(0), // |
| 3999 B(Star), R(1), // | 3859 B(Star), R(1), // |
| 4000 B(LoadICSloppy), R(1), U8(1), U8(vector->GetIndex(slot2)), // | 3860 B(LoadIC), R(1), U8(1), U8(vector->GetIndex(slot2)), // |
| 4001 B(Star), R(0), // | 3861 B(Star), R(0), // |
| 4002 B(LdaConstant), U8(2), // | 3862 B(LdaConstant), U8(2), // |
| 4003 B(Star), R(2), // | 3863 B(Star), R(2), // |
| 4004 B(Call), R(0), R(1), U8(2), U8(vector->GetIndex(slot1)), // | 3864 B(Call), R(0), R(1), U8(2), U8(vector->GetIndex(slot1)), // |
| 4005 B(Return), // | 3865 B(Return), // |
| 4006 }, | 3866 }, |
| 4007 3, | 3867 3, |
| 4008 {"ab+d", "exec", "abdd"}}, | 3868 {"ab+d", "exec", "abdd"}}, |
| 4009 }; | 3869 }; |
| 4010 // clang-format on | 3870 // clang-format on |
| (...skipping 1018 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5029 // clang-format off | 4889 // clang-format off |
| 5030 ExpectedSnippet<InstanceType> snippets[] = { | 4890 ExpectedSnippet<InstanceType> snippets[] = { |
| 5031 {"function bar() { this.value = 0; }\n" | 4891 {"function bar() { this.value = 0; }\n" |
| 5032 "function f() { return new bar(); }\n" | 4892 "function f() { return new bar(); }\n" |
| 5033 "f()", | 4893 "f()", |
| 5034 1 * kPointerSize, | 4894 1 * kPointerSize, |
| 5035 1, | 4895 1, |
| 5036 11, | 4896 11, |
| 5037 { | 4897 { |
| 5038 B(StackCheck), // | 4898 B(StackCheck), // |
| 5039 B(LdaGlobalSloppy), U8(0), U8(vector->GetIndex(slot2)), // | 4899 B(LdaGlobal), U8(0), U8(vector->GetIndex(slot2)), // |
| 5040 B(Star), R(0), // | 4900 B(Star), R(0), // |
| 5041 B(New), R(0), R(0), U8(0), // | 4901 B(New), R(0), R(0), U8(0), // |
| 5042 B(Return), // | 4902 B(Return), // |
| 5043 }, | 4903 }, |
| 5044 1, | 4904 1, |
| 5045 {InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE}}, | 4905 {InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE}}, |
| 5046 {"function bar(x) { this.value = 18; this.x = x;}\n" | 4906 {"function bar(x) { this.value = 18; this.x = x;}\n" |
| 5047 "function f() { return new bar(3); }\n" | 4907 "function f() { return new bar(3); }\n" |
| 5048 "f()", | 4908 "f()", |
| 5049 2 * kPointerSize, | 4909 2 * kPointerSize, |
| 5050 1, | 4910 1, |
| 5051 17, | 4911 17, |
| 5052 { | 4912 { |
| 5053 B(StackCheck), // | 4913 B(StackCheck), // |
| 5054 B(LdaGlobalSloppy), U8(0), U8(vector->GetIndex(slot2)), // | 4914 B(LdaGlobal), U8(0), U8(vector->GetIndex(slot2)), // |
| 5055 B(Star), R(0), // | 4915 B(Star), R(0), // |
| 5056 B(LdaSmi8), U8(3), // | 4916 B(LdaSmi8), U8(3), // |
| 5057 B(Star), R(1), // | 4917 B(Star), R(1), // |
| 5058 B(Ldar), R(0), // | 4918 B(Ldar), R(0), // |
| 5059 B(New), R(0), R(1), U8(1), // | 4919 B(New), R(0), R(1), U8(1), // |
| 5060 B(Return), // | 4920 B(Return), // |
| 5061 }, | 4921 }, |
| 5062 1, | 4922 1, |
| 5063 {InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE}}, | 4923 {InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE}}, |
| 5064 {"function bar(w, x, y, z) {\n" | 4924 {"function bar(w, x, y, z) {\n" |
| 5065 " this.value = 18;\n" | 4925 " this.value = 18;\n" |
| 5066 " this.x = x;\n" | 4926 " this.x = x;\n" |
| 5067 " this.y = y;\n" | 4927 " this.y = y;\n" |
| 5068 " this.z = z;\n" | 4928 " this.z = z;\n" |
| 5069 "}\n" | 4929 "}\n" |
| 5070 "function f() { return new bar(3, 4, 5); }\n" | 4930 "function f() { return new bar(3, 4, 5); }\n" |
| 5071 "f()", | 4931 "f()", |
| 5072 4 * kPointerSize, | 4932 4 * kPointerSize, |
| 5073 1, | 4933 1, |
| 5074 25, | 4934 25, |
| 5075 { | 4935 { |
| 5076 B(StackCheck), // | 4936 B(StackCheck), // |
| 5077 B(LdaGlobalSloppy), U8(0), U8(vector->GetIndex(slot2)), // | 4937 B(LdaGlobal), U8(0), U8(vector->GetIndex(slot2)), // |
| 5078 B(Star), R(0), // | 4938 B(Star), R(0), // |
| 5079 B(LdaSmi8), U8(3), // | 4939 B(LdaSmi8), U8(3), // |
| 5080 B(Star), R(1), // | 4940 B(Star), R(1), // |
| 5081 B(LdaSmi8), U8(4), // | 4941 B(LdaSmi8), U8(4), // |
| 5082 B(Star), R(2), // | 4942 B(Star), R(2), // |
| 5083 B(LdaSmi8), U8(5), // | 4943 B(LdaSmi8), U8(5), // |
| 5084 B(Star), R(3), // | 4944 B(Star), R(3), // |
| 5085 B(Ldar), R(0), // | 4945 B(Ldar), R(0), // |
| 5086 B(New), R(0), R(1), U8(3), // | 4946 B(New), R(0), R(1), U8(3), // |
| 5087 B(Return), // | 4947 B(Return), // |
| (...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5237 B(CreateUnmappedArguments), // | 5097 B(CreateUnmappedArguments), // |
| 5238 B(StaContextSlot), R(context), U8(first_context_slot + 1), // | 5098 B(StaContextSlot), R(context), U8(first_context_slot + 1), // |
| 5239 B(Ldar), R(new_target), // | 5099 B(Ldar), R(new_target), // |
| 5240 B(StaContextSlot), R(context), U8(first_context_slot + 2), // | 5100 B(StaContextSlot), R(context), U8(first_context_slot + 2), // |
| 5241 B(StackCheck), // | 5101 B(StackCheck), // |
| 5242 REPEAT_249(COMMA, // | 5102 REPEAT_249(COMMA, // |
| 5243 B(LdaZero), // | 5103 B(LdaZero), // |
| 5244 B(StaContextSlot), R(context), U8(wide_slot++)), // | 5104 B(StaContextSlot), R(context), U8(wide_slot++)), // |
| 5245 B(LdaUndefined), // | 5105 B(LdaUndefined), // |
| 5246 B(Star), R(2), // | 5106 B(Star), R(2), // |
| 5247 B(LdaGlobalStrict), U8(0), U8(1), // | 5107 B(LdaGlobal), U8(0), U8(1), // |
| 5248 B(Star), R(1), // | 5108 B(Star), R(1), // |
| 5249 B(Call), R(1), R(2), U8(1), U8(0), // | 5109 B(Call), R(1), R(2), U8(1), U8(0), // |
| 5250 B(LdaSmi8), U8(100), // | 5110 B(LdaSmi8), U8(100), // |
| 5251 B(StaContextSlotWide), R(context), U16(256), // | 5111 B(StaContextSlotWide), R(context), U16(256), // |
| 5252 B(LdaContextSlotWide), R(context), U16(256), // | 5112 B(LdaContextSlotWide), R(context), U16(256), // |
| 5253 B(Return), // | 5113 B(Return), // |
| 5254 }, | 5114 }, |
| 5255 1, | 5115 1, |
| 5256 {InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE}}, | 5116 {InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE}}, |
| 5257 }; | 5117 }; |
| (...skipping 249 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5507 {"var a = { val: 1 }; return a.val++;", | 5367 {"var a = { val: 1 }; return a.val++;", |
| 5508 3 * kPointerSize, | 5368 3 * kPointerSize, |
| 5509 1, | 5369 1, |
| 5510 26, | 5370 26, |
| 5511 { | 5371 { |
| 5512 B(StackCheck), // | 5372 B(StackCheck), // |
| 5513 B(CreateObjectLiteral), U8(0), U8(0), U8(object_literal_flags), // | 5373 B(CreateObjectLiteral), U8(0), U8(0), U8(object_literal_flags), // |
| 5514 B(Star), R(1), // | 5374 B(Star), R(1), // |
| 5515 B(Star), R(0), // | 5375 B(Star), R(0), // |
| 5516 B(Star), R(1), // | 5376 B(Star), R(1), // |
| 5517 B(LoadICSloppy), R(1), U8(1), U8(vector->GetIndex(slot1)), // | 5377 B(LoadIC), R(1), U8(1), U8(vector->GetIndex(slot1)), // |
| 5518 B(ToNumber), // | 5378 B(ToNumber), // |
| 5519 B(Star), R(2), // | 5379 B(Star), R(2), // |
| 5520 B(Inc), // | 5380 B(Inc), // |
| 5521 B(StoreICSloppy), R(1), U8(1), U8(vector->GetIndex(slot2)), // | 5381 B(StoreICSloppy), R(1), U8(1), U8(vector->GetIndex(slot2)), // |
| 5522 B(Ldar), R(2), // | 5382 B(Ldar), R(2), // |
| 5523 B(Return), // | 5383 B(Return), // |
| 5524 }, | 5384 }, |
| 5525 2, | 5385 2, |
| 5526 {InstanceType::FIXED_ARRAY_TYPE, | 5386 {InstanceType::FIXED_ARRAY_TYPE, |
| 5527 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE}}, | 5387 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE}}, |
| 5528 {"var a = { val: 1 }; return --a.val;", | 5388 {"var a = { val: 1 }; return --a.val;", |
| 5529 2 * kPointerSize, | 5389 2 * kPointerSize, |
| 5530 1, | 5390 1, |
| 5531 22, | 5391 22, |
| 5532 { | 5392 { |
| 5533 B(StackCheck), // | 5393 B(StackCheck), // |
| 5534 B(CreateObjectLiteral), U8(0), U8(0), U8(object_literal_flags), // | 5394 B(CreateObjectLiteral), U8(0), U8(0), U8(object_literal_flags), // |
| 5535 B(Star), R(1), // | 5395 B(Star), R(1), // |
| 5536 B(Star), R(0), // | 5396 B(Star), R(0), // |
| 5537 B(Star), R(1), // | 5397 B(Star), R(1), // |
| 5538 B(LoadICSloppy), R(1), U8(1), U8(vector->GetIndex(slot1)), // | 5398 B(LoadIC), R(1), U8(1), U8(vector->GetIndex(slot1)), // |
| 5539 B(ToNumber), // | 5399 B(ToNumber), // |
| 5540 B(Dec), // | 5400 B(Dec), // |
| 5541 B(StoreICSloppy), R(1), U8(1), U8(vector->GetIndex(slot2)), // | 5401 B(StoreICSloppy), R(1), U8(1), U8(vector->GetIndex(slot2)), // |
| 5542 B(Return), // | 5402 B(Return), // |
| 5543 }, | 5403 }, |
| 5544 2, | 5404 2, |
| 5545 {InstanceType::FIXED_ARRAY_TYPE, | 5405 {InstanceType::FIXED_ARRAY_TYPE, |
| 5546 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE}}, | 5406 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE}}, |
| 5547 {"var name = 'var'; var a = { val: 1 }; return a[name]--;", | 5407 {"var name = 'var'; var a = { val: 1 }; return a[name]--;", |
| 5548 5 * kPointerSize, | 5408 5 * kPointerSize, |
| 5549 1, | 5409 1, |
| 5550 33, | 5410 33, |
| 5551 { | 5411 { |
| 5552 B(StackCheck), // | 5412 B(StackCheck), // |
| 5553 B(LdaConstant), U8(0), // | 5413 B(LdaConstant), U8(0), // |
| 5554 B(Star), R(0), // | 5414 B(Star), R(0), // |
| 5555 B(CreateObjectLiteral), U8(1), U8(0), U8(object_literal_flags), // | 5415 B(CreateObjectLiteral), U8(1), U8(0), U8(object_literal_flags), // |
| 5556 B(Star), R(2), // | 5416 B(Star), R(2), // |
| 5557 B(Star), R(1), // | 5417 B(Star), R(1), // |
| 5558 B(Star), R(2), // | 5418 B(Star), R(2), // |
| 5559 B(Ldar), R(0), // | 5419 B(Ldar), R(0), // |
| 5560 B(Star), R(3), // | 5420 B(Star), R(3), // |
| 5561 B(KeyedLoadICSloppy), R(2), U8(vector->GetIndex(slot1)), // | 5421 B(KeyedLoadIC), R(2), U8(vector->GetIndex(slot1)), // |
| 5562 B(ToNumber), // | 5422 B(ToNumber), // |
| 5563 B(Star), R(4), // | 5423 B(Star), R(4), // |
| 5564 B(Dec), // | 5424 B(Dec), // |
| 5565 B(KeyedStoreICSloppy), R(2), R(3), U8(vector->GetIndex(slot2)), // | 5425 B(KeyedStoreICSloppy), R(2), R(3), U8(vector->GetIndex(slot2)), // |
| 5566 B(Ldar), R(4), // | 5426 B(Ldar), R(4), // |
| 5567 B(Return), // | 5427 B(Return), // |
| 5568 }, | 5428 }, |
| 5569 2, | 5429 2, |
| 5570 {InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE, | 5430 {InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE, |
| 5571 InstanceType::FIXED_ARRAY_TYPE}}, | 5431 InstanceType::FIXED_ARRAY_TYPE}}, |
| 5572 {"var name = 'var'; var a = { val: 1 }; return ++a[name];", | 5432 {"var name = 'var'; var a = { val: 1 }; return ++a[name];", |
| 5573 4 * kPointerSize, | 5433 4 * kPointerSize, |
| 5574 1, | 5434 1, |
| 5575 29, | 5435 29, |
| 5576 { | 5436 { |
| 5577 B(StackCheck), // | 5437 B(StackCheck), // |
| 5578 B(LdaConstant), U8(0), // | 5438 B(LdaConstant), U8(0), // |
| 5579 B(Star), R(0), // | 5439 B(Star), R(0), // |
| 5580 B(CreateObjectLiteral), U8(1), U8(0), U8(object_literal_flags), // | 5440 B(CreateObjectLiteral), U8(1), U8(0), U8(object_literal_flags), // |
| 5581 B(Star), R(2), // | 5441 B(Star), R(2), // |
| 5582 B(Star), R(1), // | 5442 B(Star), R(1), // |
| 5583 B(Star), R(2), // | 5443 B(Star), R(2), // |
| 5584 B(Ldar), R(0), // | 5444 B(Ldar), R(0), // |
| 5585 B(Star), R(3), // | 5445 B(Star), R(3), // |
| 5586 B(KeyedLoadICSloppy), R(2), U8(vector->GetIndex(slot1)), // | 5446 B(KeyedLoadIC), R(2), U8(vector->GetIndex(slot1)), // |
| 5587 B(ToNumber), // | 5447 B(ToNumber), // |
| 5588 B(Inc), // | 5448 B(Inc), // |
| 5589 B(KeyedStoreICSloppy), R(2), R(3), U8(vector->GetIndex(slot2)), // | 5449 B(KeyedStoreICSloppy), R(2), R(3), U8(vector->GetIndex(slot2)), // |
| 5590 B(Return), // | 5450 B(Return), // |
| 5591 }, | 5451 }, |
| 5592 2, | 5452 2, |
| 5593 {InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE, | 5453 {InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE, |
| 5594 InstanceType::FIXED_ARRAY_TYPE}}, | 5454 InstanceType::FIXED_ARRAY_TYPE}}, |
| 5595 {"var a = 1; var b = function() { return a }; return ++a;", | 5455 {"var a = 1; var b = function() { return a }; return ++a;", |
| 5596 2 * kPointerSize, | 5456 2 * kPointerSize, |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5683 i::NewTypeFeedbackVector(helper.isolate(), &feedback_spec); | 5543 i::NewTypeFeedbackVector(helper.isolate(), &feedback_spec); |
| 5684 | 5544 |
| 5685 // clang-format off | 5545 // clang-format off |
| 5686 ExpectedSnippet<const char*> snippets[] = { | 5546 ExpectedSnippet<const char*> snippets[] = { |
| 5687 {"var global = 1;\nfunction f() { return ++global; }\nf()", | 5547 {"var global = 1;\nfunction f() { return ++global; }\nf()", |
| 5688 0, | 5548 0, |
| 5689 1, | 5549 1, |
| 5690 10, | 5550 10, |
| 5691 { | 5551 { |
| 5692 B(StackCheck), // | 5552 B(StackCheck), // |
| 5693 B(LdaGlobalSloppy), U8(0), U8(vector->GetIndex(slot1)), // | 5553 B(LdaGlobal), U8(0), U8(vector->GetIndex(slot1)), // |
| 5694 B(ToNumber), // | 5554 B(ToNumber), // |
| 5695 B(Inc), // | 5555 B(Inc), // |
| 5696 B(StaGlobalSloppy), U8(0), U8(vector->GetIndex(slot2)), // | 5556 B(StaGlobalSloppy), U8(0), U8(vector->GetIndex(slot2)), // |
| 5697 B(Return), // | 5557 B(Return), // |
| 5698 }, | 5558 }, |
| 5699 1, | 5559 1, |
| 5700 {"global"}}, | 5560 {"global"}}, |
| 5701 {"var global = 1;\nfunction f() { return global--; }\nf()", | 5561 {"var global = 1;\nfunction f() { return global--; }\nf()", |
| 5702 1 * kPointerSize, | 5562 1 * kPointerSize, |
| 5703 1, | 5563 1, |
| 5704 14, | 5564 14, |
| 5705 { | 5565 { |
| 5706 B(StackCheck), // | 5566 B(StackCheck), // |
| 5707 B(LdaGlobalSloppy), U8(0), U8(vector->GetIndex(slot1)), // | 5567 B(LdaGlobal), U8(0), U8(vector->GetIndex(slot1)), // |
| 5708 B(ToNumber), // | 5568 B(ToNumber), // |
| 5709 B(Star), R(0), // | 5569 B(Star), R(0), // |
| 5710 B(Dec), // | 5570 B(Dec), // |
| 5711 B(StaGlobalSloppy), U8(0), U8(vector->GetIndex(slot2)), // | 5571 B(StaGlobalSloppy), U8(0), U8(vector->GetIndex(slot2)), // |
| 5712 B(Ldar), R(0), // | 5572 B(Ldar), R(0), // |
| 5713 B(Return), | 5573 B(Return), |
| 5714 }, | 5574 }, |
| 5715 1, | 5575 1, |
| 5716 {"global"}}, | 5576 {"global"}}, |
| 5717 {"unallocated = 1;\nfunction f() { 'use strict'; return --unallocated; }" | 5577 {"unallocated = 1;\nfunction f() { 'use strict'; return --unallocated; }" |
| 5718 "f()", | 5578 "f()", |
| 5719 0, | 5579 0, |
| 5720 1, | 5580 1, |
| 5721 10, | 5581 10, |
| 5722 { | 5582 { |
| 5723 B(StackCheck), // | 5583 B(StackCheck), // |
| 5724 B(LdaGlobalStrict), U8(0), U8(vector->GetIndex(slot1)), // | 5584 B(LdaGlobal), U8(0), U8(vector->GetIndex(slot1)), // |
| 5725 B(ToNumber), // | 5585 B(ToNumber), // |
| 5726 B(Dec), // | 5586 B(Dec), // |
| 5727 B(StaGlobalStrict), U8(0), U8(vector->GetIndex(slot2)), // | 5587 B(StaGlobalStrict), U8(0), U8(vector->GetIndex(slot2)), // |
| 5728 B(Return), // | 5588 B(Return), // |
| 5729 }, | 5589 }, |
| 5730 1, | 5590 1, |
| 5731 {"unallocated"}}, | 5591 {"unallocated"}}, |
| 5732 {"unallocated = 1;\nfunction f() { return unallocated++; }\nf()", | 5592 {"unallocated = 1;\nfunction f() { return unallocated++; }\nf()", |
| 5733 1 * kPointerSize, | 5593 1 * kPointerSize, |
| 5734 1, | 5594 1, |
| 5735 14, | 5595 14, |
| 5736 { | 5596 { |
| 5737 B(StackCheck), // | 5597 B(StackCheck), // |
| 5738 B(LdaGlobalSloppy), U8(0), U8(vector->GetIndex(slot1)), // | 5598 B(LdaGlobal), U8(0), U8(vector->GetIndex(slot1)), // |
| 5739 B(ToNumber), // | 5599 B(ToNumber), // |
| 5740 B(Star), R(0), // | 5600 B(Star), R(0), // |
| 5741 B(Inc), // | 5601 B(Inc), // |
| 5742 B(StaGlobalSloppy), U8(0), U8(vector->GetIndex(slot2)), // | 5602 B(StaGlobalSloppy), U8(0), U8(vector->GetIndex(slot2)), // |
| 5743 B(Ldar), R(0), // | 5603 B(Ldar), R(0), // |
| 5744 B(Return), | 5604 B(Return), |
| 5745 }, | 5605 }, |
| 5746 1, | 5606 1, |
| 5747 {"unallocated"}}, | 5607 {"unallocated"}}, |
| 5748 }; | 5608 }; |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5810 {"var a = { val: 2 }; a.name *= 2;", | 5670 {"var a = { val: 2 }; a.name *= 2;", |
| 5811 3 * kPointerSize, | 5671 3 * kPointerSize, |
| 5812 1, | 5672 1, |
| 5813 27, | 5673 27, |
| 5814 { | 5674 { |
| 5815 B(StackCheck), // | 5675 B(StackCheck), // |
| 5816 B(CreateObjectLiteral), U8(0), U8(0), U8(object_literal_flags), // | 5676 B(CreateObjectLiteral), U8(0), U8(0), U8(object_literal_flags), // |
| 5817 B(Star), R(1), // | 5677 B(Star), R(1), // |
| 5818 B(Star), R(0), // | 5678 B(Star), R(0), // |
| 5819 B(Star), R(1), // | 5679 B(Star), R(1), // |
| 5820 B(LoadICSloppy), R(1), U8(1), U8(vector->GetIndex(slot1)), // | 5680 B(LoadIC), R(1), U8(1), U8(vector->GetIndex(slot1)), // |
| 5821 B(Star), R(2), // | 5681 B(Star), R(2), // |
| 5822 B(LdaSmi8), U8(2), // | 5682 B(LdaSmi8), U8(2), // |
| 5823 B(Mul), R(2), // | 5683 B(Mul), R(2), // |
| 5824 B(StoreICSloppy), R(1), U8(1), U8(vector->GetIndex(slot2)), // | 5684 B(StoreICSloppy), R(1), U8(1), U8(vector->GetIndex(slot2)), // |
| 5825 B(LdaUndefined), // | 5685 B(LdaUndefined), // |
| 5826 B(Return), // | 5686 B(Return), // |
| 5827 }, | 5687 }, |
| 5828 2, | 5688 2, |
| 5829 {InstanceType::FIXED_ARRAY_TYPE, | 5689 {InstanceType::FIXED_ARRAY_TYPE, |
| 5830 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE}}, | 5690 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE}}, |
| 5831 {"var a = { 1: 2 }; a[1] ^= 2;", | 5691 {"var a = { 1: 2 }; a[1] ^= 2;", |
| 5832 4 * kPointerSize, | 5692 4 * kPointerSize, |
| 5833 1, | 5693 1, |
| 5834 30, | 5694 30, |
| 5835 { | 5695 { |
| 5836 B(StackCheck), // | 5696 B(StackCheck), // |
| 5837 B(CreateObjectLiteral), U8(0), U8(0), U8(object_literal_flags), // | 5697 B(CreateObjectLiteral), U8(0), U8(0), U8(object_literal_flags), // |
| 5838 B(Star), R(1), // | 5698 B(Star), R(1), // |
| 5839 B(Star), R(0), // | 5699 B(Star), R(0), // |
| 5840 B(Star), R(1), // | 5700 B(Star), R(1), // |
| 5841 B(LdaSmi8), U8(1), // | 5701 B(LdaSmi8), U8(1), // |
| 5842 B(Star), R(2), // | 5702 B(Star), R(2), // |
| 5843 B(KeyedLoadICSloppy), R(1), U8(vector->GetIndex(slot1)), // | 5703 B(KeyedLoadIC), R(1), U8(vector->GetIndex(slot1)), // |
| 5844 B(Star), R(3), // | 5704 B(Star), R(3), // |
| 5845 B(LdaSmi8), U8(2), // | 5705 B(LdaSmi8), U8(2), // |
| 5846 B(BitwiseXor), R(3), // | 5706 B(BitwiseXor), R(3), // |
| 5847 B(KeyedStoreICSloppy), R(1), R(2), U8(vector->GetIndex(slot2)), // | 5707 B(KeyedStoreICSloppy), R(1), R(2), U8(vector->GetIndex(slot2)), // |
| 5848 B(LdaUndefined), // | 5708 B(LdaUndefined), // |
| 5849 B(Return), // | 5709 B(Return), // |
| 5850 }, | 5710 }, |
| 5851 1, | 5711 1, |
| 5852 {InstanceType::FIXED_ARRAY_TYPE}}, | 5712 {InstanceType::FIXED_ARRAY_TYPE}}, |
| 5853 {"var a = 1; (function f() { return a; }); a |= 24;", | 5713 {"var a = 1; (function f() { return a; }); a |= 24;", |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5896 i::NewTypeFeedbackVector(helper.isolate(), &feedback_spec); | 5756 i::NewTypeFeedbackVector(helper.isolate(), &feedback_spec); |
| 5897 | 5757 |
| 5898 // clang-format off | 5758 // clang-format off |
| 5899 ExpectedSnippet<const char*> snippets[] = { | 5759 ExpectedSnippet<const char*> snippets[] = { |
| 5900 {"var global = 1;\nfunction f() { return global &= 1; }\nf()", | 5760 {"var global = 1;\nfunction f() { return global &= 1; }\nf()", |
| 5901 1 * kPointerSize, | 5761 1 * kPointerSize, |
| 5902 1, | 5762 1, |
| 5903 14, | 5763 14, |
| 5904 { | 5764 { |
| 5905 B(StackCheck), // | 5765 B(StackCheck), // |
| 5906 B(LdaGlobalSloppy), U8(0), U8(vector->GetIndex(slot1)), // | 5766 B(LdaGlobal), U8(0), U8(vector->GetIndex(slot1)), // |
| 5907 B(Star), R(0), // | 5767 B(Star), R(0), // |
| 5908 B(LdaSmi8), U8(1), // | 5768 B(LdaSmi8), U8(1), // |
| 5909 B(BitwiseAnd), R(0), // | 5769 B(BitwiseAnd), R(0), // |
| 5910 B(StaGlobalSloppy), U8(0), U8(vector->GetIndex(slot2)), // | 5770 B(StaGlobalSloppy), U8(0), U8(vector->GetIndex(slot2)), // |
| 5911 B(Return), // | 5771 B(Return), // |
| 5912 }, | 5772 }, |
| 5913 1, | 5773 1, |
| 5914 {"global"}}, | 5774 {"global"}}, |
| 5915 {"unallocated = 1;\nfunction f() { return unallocated += 1; }\nf()", | 5775 {"unallocated = 1;\nfunction f() { return unallocated += 1; }\nf()", |
| 5916 1 * kPointerSize, | 5776 1 * kPointerSize, |
| 5917 1, | 5777 1, |
| 5918 14, | 5778 14, |
| 5919 { | 5779 { |
| 5920 B(StackCheck), // | 5780 B(StackCheck), // |
| 5921 B(LdaGlobalSloppy), U8(0), U8(vector->GetIndex(slot1)), // | 5781 B(LdaGlobal), U8(0), U8(vector->GetIndex(slot1)), // |
| 5922 B(Star), R(0), // | 5782 B(Star), R(0), // |
| 5923 B(LdaSmi8), U8(1), // | 5783 B(LdaSmi8), U8(1), // |
| 5924 B(Add), R(0), // | 5784 B(Add), R(0), // |
| 5925 B(StaGlobalSloppy), U8(0), U8(vector->GetIndex(slot2)), // | 5785 B(StaGlobalSloppy), U8(0), U8(vector->GetIndex(slot2)), // |
| 5926 B(Return), // | 5786 B(Return), // |
| 5927 }, | 5787 }, |
| 5928 1, | 5788 1, |
| 5929 {"unallocated"}}, | 5789 {"unallocated"}}, |
| 5930 }; | 5790 }; |
| 5931 // clang-format on | 5791 // clang-format on |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5970 2 * kPointerSize, | 5830 2 * kPointerSize, |
| 5971 1, | 5831 1, |
| 5972 13, | 5832 13, |
| 5973 { | 5833 { |
| 5974 B(CreateMappedArguments), // | 5834 B(CreateMappedArguments), // |
| 5975 B(Star), R(0), // | 5835 B(Star), R(0), // |
| 5976 B(StackCheck), // | 5836 B(StackCheck), // |
| 5977 B(Ldar), R(0), // | 5837 B(Ldar), R(0), // |
| 5978 B(Star), R(1), // | 5838 B(Star), R(1), // |
| 5979 B(LdaZero), // | 5839 B(LdaZero), // |
| 5980 B(KeyedLoadICSloppy), R(1), U8(vector->GetIndex(slot)), // | 5840 B(KeyedLoadIC), R(1), U8(vector->GetIndex(slot)), // |
| 5981 B(Return), // | 5841 B(Return), // |
| 5982 }}, | 5842 }}, |
| 5983 {"function f() { 'use strict'; return arguments; }", | 5843 {"function f() { 'use strict'; return arguments; }", |
| 5984 1 * kPointerSize, | 5844 1 * kPointerSize, |
| 5985 1, | 5845 1, |
| 5986 7, | 5846 7, |
| 5987 { | 5847 { |
| 5988 B(CreateUnmappedArguments), // | 5848 B(CreateUnmappedArguments), // |
| 5989 B(Star), R(0), // | 5849 B(Star), R(0), // |
| 5990 B(StackCheck), // | 5850 B(StackCheck), // |
| 5991 B(Ldar), R(0), // | 5851 B(Ldar), R(0), // |
| 5992 B(Return), // | 5852 B(Return), // |
| 5993 }}, | 5853 }}, |
| 5994 {"function f(a) { return arguments[0]; }", | 5854 {"function f(a) { return arguments[0]; }", |
| 5995 3 * kPointerSize, | 5855 3 * kPointerSize, |
| 5996 2, | 5856 2, |
| 5997 25, | 5857 25, |
| 5998 { | 5858 { |
| 5999 B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), // | 5859 B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), // |
| 6000 /* */ U8(1), // | 5860 /* */ U8(1), // |
| 6001 B(PushContext), R(1), // | 5861 B(PushContext), R(1), // |
| 6002 B(Ldar), R(BytecodeGeneratorHelper::kLastParamIndex), // | 5862 B(Ldar), R(BytecodeGeneratorHelper::kLastParamIndex), // |
| 6003 B(StaContextSlot), R(context), U8(first_context_slot), // | 5863 B(StaContextSlot), R(context), U8(first_context_slot), // |
| 6004 B(CreateMappedArguments), // | 5864 B(CreateMappedArguments), // |
| 6005 B(Star), R(0), // | 5865 B(Star), R(0), // |
| 6006 B(StackCheck), // | 5866 B(StackCheck), // |
| 6007 B(Ldar), R(0), // | 5867 B(Ldar), R(0), // |
| 6008 B(Star), R(2), // | 5868 B(Star), R(2), // |
| 6009 B(LdaZero), // | 5869 B(LdaZero), // |
| 6010 B(KeyedLoadICSloppy), R(2), U8(vector->GetIndex(slot)), // | 5870 B(KeyedLoadIC), R(2), U8(vector->GetIndex(slot)), // |
| 6011 B(Return), // | 5871 B(Return), // |
| 6012 }}, | 5872 }}, |
| 6013 {"function f(a, b, c) { return arguments; }", | 5873 {"function f(a, b, c) { return arguments; }", |
| 6014 2 * kPointerSize, | 5874 2 * kPointerSize, |
| 6015 4, | 5875 4, |
| 6016 29, | 5876 29, |
| 6017 { | 5877 { |
| 6018 B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), // | 5878 B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), // |
| 6019 /* */ U8(1), // | 5879 /* */ U8(1), // |
| 6020 B(PushContext), R(1), // | 5880 B(PushContext), R(1), // |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6103 B(CreateRestParameter), // | 5963 B(CreateRestParameter), // |
| 6104 B(Star), R(0), // | 5964 B(Star), R(0), // |
| 6105 B(LdaTheHole), // | 5965 B(LdaTheHole), // |
| 6106 B(Star), R(1), // | 5966 B(Star), R(1), // |
| 6107 B(StackCheck), // | 5967 B(StackCheck), // |
| 6108 B(Ldar), A(1, 2), // | 5968 B(Ldar), A(1, 2), // |
| 6109 B(Star), R(1), // | 5969 B(Star), R(1), // |
| 6110 B(Ldar), R(0), // | 5970 B(Ldar), R(0), // |
| 6111 B(Star), R(2), // | 5971 B(Star), R(2), // |
| 6112 B(LdaZero), // | 5972 B(LdaZero), // |
| 6113 B(KeyedLoadICSloppy), R(2), U8(vector->GetIndex(slot)), // | 5973 B(KeyedLoadIC), R(2), U8(vector->GetIndex(slot)), // |
| 6114 B(Return), // | 5974 B(Return), // |
| 6115 }, | 5975 }, |
| 6116 0, | 5976 0, |
| 6117 {}}, | 5977 {}}, |
| 6118 {"function f(a, ...restArgs) { return restArgs[0] + arguments[0]; }", | 5978 {"function f(a, ...restArgs) { return restArgs[0] + arguments[0]; }", |
| 6119 5 * kPointerSize, | 5979 5 * kPointerSize, |
| 6120 2, | 5980 2, |
| 6121 35, | 5981 35, |
| 6122 { | 5982 { |
| 6123 B(CreateUnmappedArguments), // | 5983 B(CreateUnmappedArguments), // |
| 6124 B(Star), R(0), // | 5984 B(Star), R(0), // |
| 6125 B(CreateRestParameter), // | 5985 B(CreateRestParameter), // |
| 6126 B(Star), R(1), // | 5986 B(Star), R(1), // |
| 6127 B(LdaTheHole), // | 5987 B(LdaTheHole), // |
| 6128 B(Star), R(2), // | 5988 B(Star), R(2), // |
| 6129 B(StackCheck), // | 5989 B(StackCheck), // |
| 6130 B(Ldar), A(1, 2), // | 5990 B(Ldar), A(1, 2), // |
| 6131 B(Star), R(2), // | 5991 B(Star), R(2), // |
| 6132 B(Ldar), R(1), // | 5992 B(Ldar), R(1), // |
| 6133 B(Star), R(3), // | 5993 B(Star), R(3), // |
| 6134 B(LdaZero), // | 5994 B(LdaZero), // |
| 6135 B(KeyedLoadICSloppy), R(3), U8(vector->GetIndex(slot)), // | 5995 B(KeyedLoadIC), R(3), U8(vector->GetIndex(slot)), // |
| 6136 B(Star), R(4), // | 5996 B(Star), R(4), // |
| 6137 B(Ldar), R(0), // | 5997 B(Ldar), R(0), // |
| 6138 B(Star), R(3), // | 5998 B(Star), R(3), // |
| 6139 B(LdaZero), // | 5999 B(LdaZero), // |
| 6140 B(KeyedLoadICSloppy), R(3), U8(vector->GetIndex(slot1)), // | 6000 B(KeyedLoadIC), R(3), U8(vector->GetIndex(slot1)), // |
| 6141 B(Add), R(4), // | 6001 B(Add), R(4), // |
| 6142 B(Return), // | 6002 B(Return), // |
| 6143 }, | 6003 }, |
| 6144 0, | 6004 0, |
| 6145 {}}, | 6005 {}}, |
| 6146 }; | 6006 }; |
| 6147 // clang-format on | 6007 // clang-format on |
| 6148 | 6008 |
| 6149 for (size_t i = 0; i < arraysize(snippets); i++) { | 6009 for (size_t i = 0; i < arraysize(snippets); i++) { |
| 6150 Handle<BytecodeArray> bytecode_array = | 6010 Handle<BytecodeArray> bytecode_array = |
| (...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6343 B(ForInNext), R(1), R(5), R(2), // | 6203 B(ForInNext), R(1), R(5), R(2), // |
| 6344 B(JumpIfUndefined), U8(51), // | 6204 B(JumpIfUndefined), U8(51), // |
| 6345 B(Star), R(6), // | 6205 B(Star), R(6), // |
| 6346 B(Ldar), R(0), // | 6206 B(Ldar), R(0), // |
| 6347 B(Star), R(7), // | 6207 B(Star), R(7), // |
| 6348 B(Ldar), R(6), // | 6208 B(Ldar), R(6), // |
| 6349 B(StoreICSloppy), R(7), U8(2), U8(vector->GetIndex(slot4)), // | 6209 B(StoreICSloppy), R(7), U8(2), U8(vector->GetIndex(slot4)), // |
| 6350 B(StackCheck), // | 6210 B(StackCheck), // |
| 6351 B(Ldar), R(0), // | 6211 B(Ldar), R(0), // |
| 6352 B(Star), R(6), // | 6212 B(Star), R(6), // |
| 6353 B(LoadICSloppy), R(6), U8(2), U8(vector->GetIndex(slot2)), // | 6213 B(LoadIC), R(6), U8(2), U8(vector->GetIndex(slot2)), // |
| 6354 B(Star), R(7), // | 6214 B(Star), R(7), // |
| 6355 B(LdaSmi8), U8(10), // | 6215 B(LdaSmi8), U8(10), // |
| 6356 B(TestEqual), R(7), // | 6216 B(TestEqual), R(7), // |
| 6357 B(JumpIfFalse), U8(4), // | 6217 B(JumpIfFalse), U8(4), // |
| 6358 B(Jump), U8(20), // | 6218 B(Jump), U8(20), // |
| 6359 B(Ldar), R(0), // | 6219 B(Ldar), R(0), // |
| 6360 B(Star), R(6), // | 6220 B(Star), R(6), // |
| 6361 B(LoadICSloppy), R(6), U8(2), U8(vector->GetIndex(slot3)), // | 6221 B(LoadIC), R(6), U8(2), U8(vector->GetIndex(slot3)), // |
| 6362 B(Star), R(7), // | 6222 B(Star), R(7), // |
| 6363 B(LdaSmi8), U8(20), // | 6223 B(LdaSmi8), U8(20), // |
| 6364 B(TestEqual), R(7), // | 6224 B(TestEqual), R(7), // |
| 6365 B(JumpIfFalse), U8(4), // | 6225 B(JumpIfFalse), U8(4), // |
| 6366 B(Jump), U8(8), // | 6226 B(Jump), U8(8), // |
| 6367 B(ForInStep), R(5), // | 6227 B(ForInStep), R(5), // |
| 6368 B(Star), R(5), // | 6228 B(Star), R(5), // |
| 6369 B(Jump), U8(-64), // | 6229 B(Jump), U8(-64), // |
| 6370 B(LdaUndefined), // | 6230 B(LdaUndefined), // |
| 6371 B(Return), // | 6231 B(Return), // |
| (...skipping 27 matching lines...) Expand all Loading... |
| 6399 B(Ldar), R(0), // | 6259 B(Ldar), R(0), // |
| 6400 B(Star), R(7), // | 6260 B(Star), R(7), // |
| 6401 B(LdaZero), // | 6261 B(LdaZero), // |
| 6402 B(Star), R(8), // | 6262 B(Star), R(8), // |
| 6403 B(Ldar), R(6), // | 6263 B(Ldar), R(6), // |
| 6404 B(KeyedStoreICSloppy), R(7), R(8), U8(vector->GetIndex(slot3)), // | 6264 B(KeyedStoreICSloppy), R(7), R(8), U8(vector->GetIndex(slot3)), // |
| 6405 B(StackCheck), // | 6265 B(StackCheck), // |
| 6406 B(Ldar), R(0), // | 6266 B(Ldar), R(0), // |
| 6407 B(Star), R(6), // | 6267 B(Star), R(6), // |
| 6408 B(LdaSmi8), U8(3), // | 6268 B(LdaSmi8), U8(3), // |
| 6409 B(KeyedLoadICSloppy), R(6), U8(vector->GetIndex(slot2)), // | 6269 B(KeyedLoadIC), R(6), U8(vector->GetIndex(slot2)), // |
| 6410 B(Return), // | 6270 B(Return), // |
| 6411 B(ForInStep), R(5), // | 6271 B(ForInStep), R(5), // |
| 6412 B(Star), R(5), // | 6272 B(Star), R(5), // |
| 6413 B(Jump), U8(-41), // | 6273 B(Jump), U8(-41), // |
| 6414 B(LdaUndefined), // | 6274 B(LdaUndefined), // |
| 6415 B(Return), // | 6275 B(Return), // |
| 6416 }, | 6276 }, |
| 6417 2, | 6277 2, |
| 6418 {InstanceType::FIXED_ARRAY_TYPE, InstanceType::FIXED_ARRAY_TYPE}}, | 6278 {InstanceType::FIXED_ARRAY_TYPE, InstanceType::FIXED_ARRAY_TYPE}}, |
| 6419 }; | 6279 }; |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6453 ExpectedSnippet<InstanceType, 8> snippets[] = { | 6313 ExpectedSnippet<InstanceType, 8> snippets[] = { |
| 6454 {"for (var p of [0, 1, 2]) {}", | 6314 {"for (var p of [0, 1, 2]) {}", |
| 6455 7 * kPointerSize, | 6315 7 * kPointerSize, |
| 6456 1, | 6316 1, |
| 6457 86, | 6317 86, |
| 6458 { | 6318 { |
| 6459 B(StackCheck), // | 6319 B(StackCheck), // |
| 6460 B(CreateArrayLiteral), U8(0), U8(0), U8(array_literal_flags), // | 6320 B(CreateArrayLiteral), U8(0), U8(0), U8(array_literal_flags), // |
| 6461 B(Star), R(5), // | 6321 B(Star), R(5), // |
| 6462 B(LdaConstant), U8(1), // | 6322 B(LdaConstant), U8(1), // |
| 6463 B(KeyedLoadICSloppy), R(5), U8(vector->GetIndex(slot2)), // | 6323 B(KeyedLoadIC), R(5), U8(vector->GetIndex(slot2)), // |
| 6464 B(Star), R(4), // | 6324 B(Star), R(4), // |
| 6465 B(Call), R(4), R(5), U8(1), U8(vector->GetIndex(slot1)), // | 6325 B(Call), R(4), R(5), U8(1), U8(vector->GetIndex(slot1)), // |
| 6466 B(Star), R(1), // | 6326 B(Star), R(1), // |
| 6467 B(Ldar), R(1), // | 6327 B(Ldar), R(1), // |
| 6468 B(Star), R(6), // | 6328 B(Star), R(6), // |
| 6469 B(LoadICSloppy), R(6), U8(2), U8(vector->GetIndex(slot4)), // | 6329 B(LoadIC), R(6), U8(2), U8(vector->GetIndex(slot4)), // |
| 6470 B(Star), R(5), // | 6330 B(Star), R(5), // |
| 6471 B(Call), R(5), R(6), U8(1), U8(vector->GetIndex(slot3)), // | 6331 B(Call), R(5), R(6), U8(1), U8(vector->GetIndex(slot3)), // |
| 6472 B(Star), R(2), // | 6332 B(Star), R(2), // |
| 6473 B(Star), R(4), // | 6333 B(Star), R(4), // |
| 6474 B(CallRuntime), U16(Runtime::kInlineIsJSReceiver), R(4), U8(1), // | 6334 B(CallRuntime), U16(Runtime::kInlineIsJSReceiver), R(4), U8(1), // |
| 6475 B(LogicalNot), // | 6335 B(LogicalNot), // |
| 6476 B(JumpIfFalse), U8(11), // | 6336 B(JumpIfFalse), U8(11), // |
| 6477 B(Ldar), R(2), // | 6337 B(Ldar), R(2), // |
| 6478 B(Star), R(4), // | 6338 B(Star), R(4), // |
| 6479 B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), // | 6339 B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), // |
| 6480 /* */ R(4), U8(1), // | 6340 /* */ R(4), U8(1), // |
| 6481 B(Ldar), R(2), // | 6341 B(Ldar), R(2), // |
| 6482 B(Star), R(4), // | 6342 B(Star), R(4), // |
| 6483 B(LoadICSloppy), R(4), U8(3), U8(vector->GetIndex(slot5)), // | 6343 B(LoadIC), R(4), U8(3), U8(vector->GetIndex(slot5)), // |
| 6484 B(JumpIfToBooleanTrue), U8(19), // | 6344 B(JumpIfToBooleanTrue), U8(19), // |
| 6485 B(Ldar), R(2), // | 6345 B(Ldar), R(2), // |
| 6486 B(Star), R(4), // | 6346 B(Star), R(4), // |
| 6487 B(LoadICSloppy), R(4), U8(4), U8(vector->GetIndex(slot6)), // | 6347 B(LoadIC), R(4), U8(4), U8(vector->GetIndex(slot6)), // |
| 6488 B(Star), R(0), // | 6348 B(Star), R(0), // |
| 6489 B(StackCheck), // | 6349 B(StackCheck), // |
| 6490 B(Ldar), R(0), // | 6350 B(Ldar), R(0), // |
| 6491 B(Star), R(3), // | 6351 B(Star), R(3), // |
| 6492 B(Jump), U8(-61), // | 6352 B(Jump), U8(-61), // |
| 6493 B(LdaUndefined), // | 6353 B(LdaUndefined), // |
| 6494 B(Return), // | 6354 B(Return), // |
| 6495 }, | 6355 }, |
| 6496 5, | 6356 5, |
| 6497 {InstanceType::FIXED_ARRAY_TYPE, InstanceType::SYMBOL_TYPE, | 6357 {InstanceType::FIXED_ARRAY_TYPE, InstanceType::SYMBOL_TYPE, |
| 6498 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE, | 6358 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE, |
| 6499 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE, | 6359 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE, |
| 6500 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE}}, | 6360 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE}}, |
| 6501 {"var x = 'potatoes';\n" | 6361 {"var x = 'potatoes';\n" |
| 6502 "for (var p of x) { return p; }", | 6362 "for (var p of x) { return p; }", |
| 6503 8 * kPointerSize, | 6363 8 * kPointerSize, |
| 6504 1, | 6364 1, |
| 6505 85, | 6365 85, |
| 6506 { | 6366 { |
| 6507 B(StackCheck), // | 6367 B(StackCheck), // |
| 6508 B(LdaConstant), U8(0), // | 6368 B(LdaConstant), U8(0), // |
| 6509 B(Star), R(3), // | 6369 B(Star), R(3), // |
| 6510 B(Star), R(6), // | 6370 B(Star), R(6), // |
| 6511 B(LdaConstant), U8(1), // | 6371 B(LdaConstant), U8(1), // |
| 6512 B(KeyedLoadICSloppy), R(6), U8(vector->GetIndex(slot2)), // | 6372 B(KeyedLoadIC), R(6), U8(vector->GetIndex(slot2)), // |
| 6513 B(Star), R(5), // | 6373 B(Star), R(5), // |
| 6514 B(Call), R(5), R(6), U8(1), U8(vector->GetIndex(slot1)), // | 6374 B(Call), R(5), R(6), U8(1), U8(vector->GetIndex(slot1)), // |
| 6515 B(Star), R(1), // | 6375 B(Star), R(1), // |
| 6516 B(Ldar), R(1), // | 6376 B(Ldar), R(1), // |
| 6517 B(Star), R(7), // | 6377 B(Star), R(7), // |
| 6518 B(LoadICSloppy), R(7), U8(2), U8(vector->GetIndex(slot4)), // | 6378 B(LoadIC), R(7), U8(2), U8(vector->GetIndex(slot4)), // |
| 6519 B(Star), R(6), // | 6379 B(Star), R(6), // |
| 6520 B(Call), R(6), R(7), U8(1), U8(vector->GetIndex(slot3)), // | 6380 B(Call), R(6), R(7), U8(1), U8(vector->GetIndex(slot3)), // |
| 6521 B(Star), R(2), // | 6381 B(Star), R(2), // |
| 6522 B(Star), R(5), // | 6382 B(Star), R(5), // |
| 6523 B(CallRuntime), U16(Runtime::kInlineIsJSReceiver), R(5), U8(1), // | 6383 B(CallRuntime), U16(Runtime::kInlineIsJSReceiver), R(5), U8(1), // |
| 6524 B(LogicalNot), // | 6384 B(LogicalNot), // |
| 6525 B(JumpIfFalse), U8(11), // | 6385 B(JumpIfFalse), U8(11), // |
| 6526 B(Ldar), R(2), // | 6386 B(Ldar), R(2), // |
| 6527 B(Star), R(5), // | 6387 B(Star), R(5), // |
| 6528 B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), // | 6388 B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), // |
| 6529 /* */ R(5), U8(1), // | 6389 /* */ R(5), U8(1), // |
| 6530 B(Ldar), R(2), // | 6390 B(Ldar), R(2), // |
| 6531 B(Star), R(5), // | 6391 B(Star), R(5), // |
| 6532 B(LoadICSloppy), R(5), U8(3), U8(vector->GetIndex(slot5)), // | 6392 B(LoadIC), R(5), U8(3), U8(vector->GetIndex(slot5)), // |
| 6533 B(JumpIfToBooleanTrue), U8(18), // | 6393 B(JumpIfToBooleanTrue), U8(18), // |
| 6534 B(Ldar), R(2), // | 6394 B(Ldar), R(2), // |
| 6535 B(Star), R(5), // | 6395 B(Star), R(5), // |
| 6536 B(LoadICSloppy), R(5), U8(4), U8(vector->GetIndex(slot6)), // | 6396 B(LoadIC), R(5), U8(4), U8(vector->GetIndex(slot6)), // |
| 6537 B(Star), R(0), // | 6397 B(Star), R(0), // |
| 6538 B(StackCheck), // | 6398 B(StackCheck), // |
| 6539 B(Ldar), R(0), // | 6399 B(Ldar), R(0), // |
| 6540 B(Star), R(4), // | 6400 B(Star), R(4), // |
| 6541 B(Return), // | 6401 B(Return), // |
| 6542 B(LdaUndefined), // | 6402 B(LdaUndefined), // |
| 6543 B(Return), // | 6403 B(Return), // |
| 6544 }, | 6404 }, |
| 6545 5, | 6405 5, |
| 6546 {InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE, | 6406 {InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE, |
| 6547 InstanceType::SYMBOL_TYPE, | 6407 InstanceType::SYMBOL_TYPE, |
| 6548 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE, | 6408 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE, |
| 6549 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE, | 6409 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE, |
| 6550 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE}}, | 6410 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE}}, |
| 6551 {"for (var x of [10, 20, 30]) {\n" | 6411 {"for (var x of [10, 20, 30]) {\n" |
| 6552 " if (x == 10) continue;\n" | 6412 " if (x == 10) continue;\n" |
| 6553 " if (x == 20) break;\n" | 6413 " if (x == 20) break;\n" |
| 6554 "}", | 6414 "}", |
| 6555 7 * kPointerSize, | 6415 7 * kPointerSize, |
| 6556 1, | 6416 1, |
| 6557 108, | 6417 108, |
| 6558 { | 6418 { |
| 6559 B(StackCheck), // | 6419 B(StackCheck), // |
| 6560 B(CreateArrayLiteral), U8(0), U8(0), U8(array_literal_flags), // | 6420 B(CreateArrayLiteral), U8(0), U8(0), U8(array_literal_flags), // |
| 6561 B(Star), R(5), // | 6421 B(Star), R(5), // |
| 6562 B(LdaConstant), U8(1), // | 6422 B(LdaConstant), U8(1), // |
| 6563 B(KeyedLoadICSloppy), R(5), U8(vector->GetIndex(slot2)), // | 6423 B(KeyedLoadIC), R(5), U8(vector->GetIndex(slot2)), // |
| 6564 B(Star), R(4), // | 6424 B(Star), R(4), // |
| 6565 B(Call), R(4), R(5), U8(1), U8(vector->GetIndex(slot1)), // | 6425 B(Call), R(4), R(5), U8(1), U8(vector->GetIndex(slot1)), // |
| 6566 B(Star), R(1), // | 6426 B(Star), R(1), // |
| 6567 B(Ldar), R(1), // | 6427 B(Ldar), R(1), // |
| 6568 B(Star), R(6), // | 6428 B(Star), R(6), // |
| 6569 B(LoadICSloppy), R(6), U8(2), U8(vector->GetIndex(slot4)), // | 6429 B(LoadIC), R(6), U8(2), U8(vector->GetIndex(slot4)), // |
| 6570 B(Star), R(5), // | 6430 B(Star), R(5), // |
| 6571 B(Call), R(5), R(6), U8(1), U8(vector->GetIndex(slot3)), // | 6431 B(Call), R(5), R(6), U8(1), U8(vector->GetIndex(slot3)), // |
| 6572 B(Star), R(2), // | 6432 B(Star), R(2), // |
| 6573 B(Star), R(4), // | 6433 B(Star), R(4), // |
| 6574 B(CallRuntime), U16(Runtime::kInlineIsJSReceiver), R(4), U8(1), // | 6434 B(CallRuntime), U16(Runtime::kInlineIsJSReceiver), R(4), U8(1), // |
| 6575 B(LogicalNot), // | 6435 B(LogicalNot), // |
| 6576 B(JumpIfFalse), U8(11), // | 6436 B(JumpIfFalse), U8(11), // |
| 6577 B(Ldar), R(2), // | 6437 B(Ldar), R(2), // |
| 6578 B(Star), R(4), // | 6438 B(Star), R(4), // |
| 6579 B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), // | 6439 B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), // |
| 6580 /* */ R(4), U8(1), // | 6440 /* */ R(4), U8(1), // |
| 6581 B(Ldar), R(2), // | 6441 B(Ldar), R(2), // |
| 6582 B(Star), R(4), // | 6442 B(Star), R(4), // |
| 6583 B(LoadICSloppy), R(4), U8(3), U8(vector->GetIndex(slot5)), // | 6443 B(LoadIC), R(4), U8(3), U8(vector->GetIndex(slot5)), // |
| 6584 B(JumpIfToBooleanTrue), U8(41), // | 6444 B(JumpIfToBooleanTrue), U8(41), // |
| 6585 B(Ldar), R(2), // | 6445 B(Ldar), R(2), // |
| 6586 B(Star), R(4), // | 6446 B(Star), R(4), // |
| 6587 B(LoadICSloppy), R(4), U8(4), U8(vector->GetIndex(slot6)), // | 6447 B(LoadIC), R(4), U8(4), U8(vector->GetIndex(slot6)), // |
| 6588 B(Star), R(0), // | 6448 B(Star), R(0), // |
| 6589 B(StackCheck), // | 6449 B(StackCheck), // |
| 6590 B(Ldar), R(0), // | 6450 B(Ldar), R(0), // |
| 6591 B(Star), R(3), // | 6451 B(Star), R(3), // |
| 6592 B(Star), R(4), // | 6452 B(Star), R(4), // |
| 6593 B(LdaSmi8), U8(10), // | 6453 B(LdaSmi8), U8(10), // |
| 6594 B(TestEqual), R(4), // | 6454 B(TestEqual), R(4), // |
| 6595 B(JumpIfFalse), U8(4), // | 6455 B(JumpIfFalse), U8(4), // |
| 6596 B(Jump), U8(-69), // | 6456 B(Jump), U8(-69), // |
| 6597 B(Ldar), R(3), // | 6457 B(Ldar), R(3), // |
| (...skipping 17 matching lines...) Expand all Loading... |
| 6615 1, | 6475 1, |
| 6616 103, | 6476 103, |
| 6617 { | 6477 { |
| 6618 B(StackCheck), // | 6478 B(StackCheck), // |
| 6619 B(CreateObjectLiteral), U8(0), U8(0), U8(object_literal_flags), // | 6479 B(CreateObjectLiteral), U8(0), U8(0), U8(object_literal_flags), // |
| 6620 B(Star), R(3), // | 6480 B(Star), R(3), // |
| 6621 B(Star), R(2), // | 6481 B(Star), R(2), // |
| 6622 B(CreateArrayLiteral), U8(1), U8(1), U8(array_literal_flags), // | 6482 B(CreateArrayLiteral), U8(1), U8(1), U8(array_literal_flags), // |
| 6623 B(Star), R(4), // | 6483 B(Star), R(4), // |
| 6624 B(LdaConstant), U8(2), // | 6484 B(LdaConstant), U8(2), // |
| 6625 B(KeyedLoadICSloppy), R(4), U8(vector->GetIndex(slot2)), // | 6485 B(KeyedLoadIC), R(4), U8(vector->GetIndex(slot2)), // |
| 6626 B(Star), R(3), // | 6486 B(Star), R(3), // |
| 6627 B(Call), R(3), R(4), U8(1), U8(vector->GetIndex(slot1)), // | 6487 B(Call), R(3), R(4), U8(1), U8(vector->GetIndex(slot1)), // |
| 6628 B(Star), R(0), // | 6488 B(Star), R(0), // |
| 6629 B(Ldar), R(0), // | 6489 B(Ldar), R(0), // |
| 6630 B(Star), R(5), // | 6490 B(Star), R(5), // |
| 6631 B(LoadICSloppy), R(5), U8(3), U8(vector->GetIndex(slot4)), // | 6491 B(LoadIC), R(5), U8(3), U8(vector->GetIndex(slot4)), // |
| 6632 B(Star), R(4), // | 6492 B(Star), R(4), // |
| 6633 B(Call), R(4), R(5), U8(1), U8(vector->GetIndex(slot3)), // | 6493 B(Call), R(4), R(5), U8(1), U8(vector->GetIndex(slot3)), // |
| 6634 B(Star), R(1), // | 6494 B(Star), R(1), // |
| 6635 B(Star), R(3), // | 6495 B(Star), R(3), // |
| 6636 B(CallRuntime), U16(Runtime::kInlineIsJSReceiver), R(3), U8(1), // | 6496 B(CallRuntime), U16(Runtime::kInlineIsJSReceiver), R(3), U8(1), // |
| 6637 B(LogicalNot), // | 6497 B(LogicalNot), // |
| 6638 B(JumpIfFalse), U8(11), // | 6498 B(JumpIfFalse), U8(11), // |
| 6639 B(Ldar), R(1), // | 6499 B(Ldar), R(1), // |
| 6640 B(Star), R(3), // | 6500 B(Star), R(3), // |
| 6641 B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), // | 6501 B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), // |
| 6642 /* */ R(3), U8(1), // | 6502 /* */ R(3), U8(1), // |
| 6643 B(Ldar), R(1), // | 6503 B(Ldar), R(1), // |
| 6644 B(Star), R(3), // | 6504 B(Star), R(3), // |
| 6645 B(LoadICSloppy), R(3), U8(4), U8(vector->GetIndex(slot5)), // | 6505 B(LoadIC), R(3), U8(4), U8(vector->GetIndex(slot5)), // |
| 6646 B(JumpIfToBooleanTrue), U8(28), // | 6506 B(JumpIfToBooleanTrue), U8(28), // |
| 6647 B(Ldar), R(2), // | 6507 B(Ldar), R(2), // |
| 6648 B(Star), R(3), // | 6508 B(Star), R(3), // |
| 6649 B(Ldar), R(1), // | 6509 B(Ldar), R(1), // |
| 6650 B(Star), R(4), // | 6510 B(Star), R(4), // |
| 6651 B(LoadICSloppy), R(4), U8(5), U8(vector->GetIndex(slot6)), // | 6511 B(LoadIC), R(4), U8(5), U8(vector->GetIndex(slot6)), // |
| 6652 B(StoreICSloppy), R(3), U8(6), U8(vector->GetIndex(slot7)), // | 6512 B(StoreICSloppy), R(3), U8(6), U8(vector->GetIndex(slot7)), // |
| 6653 B(StackCheck), // | 6513 B(StackCheck), // |
| 6654 B(Ldar), R(2), // | 6514 B(Ldar), R(2), // |
| 6655 B(Star), R(3), // | 6515 B(Star), R(3), // |
| 6656 B(LoadICSloppy), R(3), U8(6), U8(vector->GetIndex(slot8)), // | 6516 B(LoadIC), R(3), U8(6), U8(vector->GetIndex(slot8)), // |
| 6657 B(Return), // | 6517 B(Return), // |
| 6658 B(LdaUndefined), // | 6518 B(LdaUndefined), // |
| 6659 B(Return), // | 6519 B(Return), // |
| 6660 }, | 6520 }, |
| 6661 7, | 6521 7, |
| 6662 {InstanceType::FIXED_ARRAY_TYPE, | 6522 {InstanceType::FIXED_ARRAY_TYPE, |
| 6663 InstanceType::FIXED_ARRAY_TYPE, | 6523 InstanceType::FIXED_ARRAY_TYPE, |
| 6664 InstanceType::SYMBOL_TYPE, | 6524 InstanceType::SYMBOL_TYPE, |
| 6665 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE, | 6525 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE, |
| 6666 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE, | 6526 InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE, |
| (...skipping 2366 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 9033 B(LdaTheHole), // | 8893 B(LdaTheHole), // |
| 9034 B(Star), R(2), // | 8894 B(Star), R(2), // |
| 9035 B(CreateClosure), U8(0), U8(0), // | 8895 B(CreateClosure), U8(0), U8(0), // |
| 9036 B(Star), R(3), // | 8896 B(Star), R(3), // |
| 9037 B(LdaSmi8), U8(15), // | 8897 B(LdaSmi8), U8(15), // |
| 9038 B(Star), R(4), // | 8898 B(Star), R(4), // |
| 9039 B(LdaConstant), U8(1), // | 8899 B(LdaConstant), U8(1), // |
| 9040 B(Star), R(5), // | 8900 B(Star), R(5), // |
| 9041 B(CallRuntime), U16(Runtime::kDefineClass), R(2), U8(4), // | 8901 B(CallRuntime), U16(Runtime::kDefineClass), R(2), U8(4), // |
| 9042 B(Star), R(2), // | 8902 B(Star), R(2), // |
| 9043 B(LoadICSloppy), R(2), U8(2), U8(1), // | 8903 B(LoadIC), R(2), U8(2), U8(1), // |
| 9044 B(Star), R(3), // | 8904 B(Star), R(3), // |
| 9045 B(Mov), R(3), R(4), // | 8905 B(Mov), R(3), R(4), // |
| 9046 B(LdaConstant), U8(3), // | 8906 B(LdaConstant), U8(3), // |
| 9047 B(Star), R(5), // | 8907 B(Star), R(5), // |
| 9048 B(CreateClosure), U8(4), U8(0), // | 8908 B(CreateClosure), U8(4), U8(0), // |
| 9049 B(Star), R(6), // | 8909 B(Star), R(6), // |
| 9050 B(LdaSmi8), U8(2), // | 8910 B(LdaSmi8), U8(2), // |
| 9051 B(Star), R(7), // | 8911 B(Star), R(7), // |
| 9052 B(LdaZero), // | 8912 B(LdaZero), // |
| 9053 B(Star), R(8), // | 8913 B(Star), R(8), // |
| (...skipping 25 matching lines...) Expand all Loading... |
| 9079 B(LdaTheHole), // | 8939 B(LdaTheHole), // |
| 9080 B(Star), R(2), // | 8940 B(Star), R(2), // |
| 9081 B(CreateClosure), U8(0), U8(0), // | 8941 B(CreateClosure), U8(0), U8(0), // |
| 9082 B(Star), R(3), // | 8942 B(Star), R(3), // |
| 9083 B(LdaSmi8), U8(15), // | 8943 B(LdaSmi8), U8(15), // |
| 9084 B(Star), R(4), // | 8944 B(Star), R(4), // |
| 9085 B(LdaConstant), U8(1), // | 8945 B(LdaConstant), U8(1), // |
| 9086 B(Star), R(5), // | 8946 B(Star), R(5), // |
| 9087 B(CallRuntime), U16(Runtime::kDefineClass), R(2), U8(4), // | 8947 B(CallRuntime), U16(Runtime::kDefineClass), R(2), U8(4), // |
| 9088 B(Star), R(2), // | 8948 B(Star), R(2), // |
| 9089 B(LoadICSloppy), R(2), U8(2), U8(1), // | 8949 B(LoadIC), R(2), U8(2), U8(1), // |
| 9090 B(Star), R(3), // | 8950 B(Star), R(3), // |
| 9091 B(Mov), R(3), R(4), // | 8951 B(Mov), R(3), R(4), // |
| 9092 B(LdaConstant), U8(3), // | 8952 B(LdaConstant), U8(3), // |
| 9093 B(Star), R(5), // | 8953 B(Star), R(5), // |
| 9094 B(CreateClosure), U8(4), U8(0), // | 8954 B(CreateClosure), U8(4), U8(0), // |
| 9095 B(Star), R(6), // | 8955 B(Star), R(6), // |
| 9096 B(LdaSmi8), U8(2), // | 8956 B(LdaSmi8), U8(2), // |
| 9097 B(Star), R(7), // | 8957 B(Star), R(7), // |
| 9098 B(LdaZero), // | 8958 B(LdaZero), // |
| 9099 B(Star), R(8), // | 8959 B(Star), R(8), // |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 9134 B(LdaTheHole), // | 8994 B(LdaTheHole), // |
| 9135 B(Star), R(3), // | 8995 B(Star), R(3), // |
| 9136 B(CreateClosure), U8(2), U8(0), // | 8996 B(CreateClosure), U8(2), U8(0), // |
| 9137 B(Star), R(4), // | 8997 B(Star), R(4), // |
| 9138 B(LdaSmi8), U8(41), // | 8998 B(LdaSmi8), U8(41), // |
| 9139 B(Star), R(5), // | 8999 B(Star), R(5), // |
| 9140 B(LdaSmi8), U8(107), // | 9000 B(LdaSmi8), U8(107), // |
| 9141 B(Star), R(6), // | 9001 B(Star), R(6), // |
| 9142 B(CallRuntime), U16(Runtime::kDefineClass), R(3), U8(4), // | 9002 B(CallRuntime), U16(Runtime::kDefineClass), R(3), U8(4), // |
| 9143 B(Star), R(3), // | 9003 B(Star), R(3), // |
| 9144 B(LoadICSloppy), R(3), U8(3), U8(1), // | 9004 B(LoadIC), R(3), U8(3), U8(1), // |
| 9145 B(Star), R(4), // | 9005 B(Star), R(4), // |
| 9146 B(Mov), R(4), R(5), // | 9006 B(Mov), R(4), R(5), // |
| 9147 B(LdaContextSlot), R(context), U8(4), // | 9007 B(LdaContextSlot), R(context), U8(4), // |
| 9148 B(ToName), // | 9008 B(ToName), // |
| 9149 B(Star), R(6), // | 9009 B(Star), R(6), // |
| 9150 B(CreateClosure), U8(4), U8(0), // | 9010 B(CreateClosure), U8(4), U8(0), // |
| 9151 B(Star), R(7), // | 9011 B(Star), R(7), // |
| 9152 B(LdaSmi8), U8(2), // | 9012 B(LdaSmi8), U8(2), // |
| 9153 B(Star), R(8), // | 9013 B(Star), R(8), // |
| 9154 B(LdaSmi8), U8(1), // | 9014 B(LdaSmi8), U8(1), // |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 9200 B(LdaTheHole), // | 9060 B(LdaTheHole), // |
| 9201 B(Star), R(3), // | 9061 B(Star), R(3), // |
| 9202 B(CreateClosure), U8(0), U8(0), // | 9062 B(CreateClosure), U8(0), U8(0), // |
| 9203 B(Star), R(4), // | 9063 B(Star), R(4), // |
| 9204 B(LdaSmi8), U8(30), // | 9064 B(LdaSmi8), U8(30), // |
| 9205 B(Star), R(5), // | 9065 B(Star), R(5), // |
| 9206 B(LdaSmi8), U8(67), // | 9066 B(LdaSmi8), U8(67), // |
| 9207 B(Star), R(6), // | 9067 B(Star), R(6), // |
| 9208 B(CallRuntime), U16(Runtime::kDefineClass), R(3), U8(4), // | 9068 B(CallRuntime), U16(Runtime::kDefineClass), R(3), U8(4), // |
| 9209 B(Star), R(3), // | 9069 B(Star), R(3), // |
| 9210 B(LoadICSloppy), R(3), U8(1), U8(1), // | 9070 B(LoadIC), R(3), U8(1), U8(1), // |
| 9211 B(Star), R(4), // | 9071 B(Star), R(4), // |
| 9212 B(CallRuntime), U16(Runtime::kFinalizeClassDefinition), R(3), U8(2), // | 9072 B(CallRuntime), U16(Runtime::kFinalizeClassDefinition), R(3), U8(2), // |
| 9213 B(Star), R(0), // | 9073 B(Star), R(0), // |
| 9214 B(Star), R(1), // | 9074 B(Star), R(1), // |
| 9215 B(JumpIfNotHole), U8(11), // | 9075 B(JumpIfNotHole), U8(11), // |
| 9216 B(LdaConstant), U8(2), // | 9076 B(LdaConstant), U8(2), // |
| 9217 B(Star), R(4), // | 9077 B(Star), R(4), // |
| 9218 B(CallRuntime), U16(Runtime::kThrowReferenceError), R(4), U8(1), // | 9078 B(CallRuntime), U16(Runtime::kThrowReferenceError), R(4), U8(1), // |
| 9219 B(Star), R(3), // | 9079 B(Star), R(3), // |
| 9220 B(New), R(3), R(0), U8(0), // | 9080 B(New), R(3), R(0), U8(0), // |
| (...skipping 11 matching lines...) Expand all Loading... |
| 9232 helper.MakeBytecodeForFunctionBody(snippets[i].code_snippet); | 9092 helper.MakeBytecodeForFunctionBody(snippets[i].code_snippet); |
| 9233 CheckBytecodeArrayEqual(snippets[i], bytecode_array); | 9093 CheckBytecodeArrayEqual(snippets[i], bytecode_array); |
| 9234 } | 9094 } |
| 9235 } | 9095 } |
| 9236 | 9096 |
| 9237 // TODO(oth): Add tests for super keyword. | 9097 // TODO(oth): Add tests for super keyword. |
| 9238 | 9098 |
| 9239 } // namespace interpreter | 9099 } // namespace interpreter |
| 9240 } // namespace internal | 9100 } // namespace internal |
| 9241 } // namespace v8 | 9101 } // namespace v8 |
| OLD | NEW |