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 367 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
378 1 * kPointerSize, | 378 1 * kPointerSize, |
379 1, | 379 1, |
380 10, | 380 10, |
381 {B(LdaZero), // | 381 {B(LdaZero), // |
382 B(Star), R(0), // | 382 B(Star), R(0), // |
383 B(Ldar), R(0), // | 383 B(Ldar), R(0), // |
384 B(JumpIfToBooleanTrue), U8(4), // | 384 B(JumpIfToBooleanTrue), U8(4), // |
385 B(LdaSmi8), U8(3), // | 385 B(LdaSmi8), U8(3), // |
386 B(Return)}, | 386 B(Return)}, |
387 0}, | 387 0}, |
388 {"var x = 0; return (x == 1) || 3;", | |
389 1 * kPointerSize, | |
390 1, | |
391 12, | |
392 {B(LdaZero), // | |
393 B(Star), R(0), // | |
394 B(LdaSmi8), U8(1), // | |
395 B(TestEqual), R(0), // | |
396 B(JumpIfTrue), U8(4), // | |
397 B(LdaSmi8), U8(3), // | |
398 B(Return)}, | |
399 0}, | |
388 {"var x = 0; return x && 3;", | 400 {"var x = 0; return x && 3;", |
389 1 * kPointerSize, | 401 1 * kPointerSize, |
390 1, | 402 1, |
391 10, | 403 10, |
392 {B(LdaZero), // | 404 {B(LdaZero), // |
393 B(Star), R(0), // | 405 B(Star), R(0), // |
394 B(Ldar), R(0), // | 406 B(Ldar), R(0), // |
395 B(JumpIfToBooleanFalse), U8(4), // | 407 B(JumpIfToBooleanFalse), U8(4), // |
396 B(LdaSmi8), U8(3), // | 408 B(LdaSmi8), U8(3), // |
397 B(Return)}, | 409 B(Return)}, |
398 0}, | 410 0}, |
411 {"var x = 0; return (x == 0) && 3;", | |
412 1 * kPointerSize, | |
413 1, | |
414 11, | |
415 {B(LdaZero), // | |
416 B(Star), R(0), // | |
417 B(LdaZero), // | |
418 B(TestEqual), R(0), // | |
419 B(JumpIfFalse), U8(4), // | |
420 B(LdaSmi8), U8(3), // | |
421 B(Return)}, | |
422 0}, | |
399 {"var x = 0; return x || (1, 2, 3);", | 423 {"var x = 0; return x || (1, 2, 3);", |
400 1 * kPointerSize, | 424 1 * kPointerSize, |
401 1, | 425 1, |
402 10, | 426 10, |
403 {B(LdaZero), // | 427 {B(LdaZero), // |
404 B(Star), R(0), // | 428 B(Star), R(0), // |
405 B(Ldar), R(0), // | 429 B(Ldar), R(0), // |
406 B(JumpIfToBooleanTrue), U8(4), // | 430 B(JumpIfToBooleanTrue), U8(4), // |
407 B(LdaSmi8), U8(3), // | 431 B(LdaSmi8), U8(3), // |
408 B(Return)}, | 432 B(Return)}, |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
459 B(Star), R(0), // | 483 B(Star), R(0), // |
460 B(LdaSmi8), U8(2), // | 484 B(LdaSmi8), U8(2), // |
461 B(Star), R(1), // | 485 B(Star), R(1), // |
462 B(LdaSmi8), U8(3), // | 486 B(LdaSmi8), U8(3), // |
463 B(Star), R(2), // | 487 B(Star), R(2), // |
464 B(Ldar), R(0), // | 488 B(Ldar), R(0), // |
465 B(JumpIfToBooleanFalseConstant), U8(0), // | 489 B(JumpIfToBooleanFalseConstant), U8(0), // |
466 #define X B(LdaSmi8), U8(1), B(Star), R(1), B(LdaSmi8), U8(2), B(Star), R(2), | 490 #define X B(LdaSmi8), U8(1), B(Star), R(1), B(LdaSmi8), U8(2), B(Star), R(2), |
467 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X | 491 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X |
468 #undef X | 492 #undef X |
469 B(LdaSmi8), U8(3), // | 493 B(LdaSmi8), U8(3), // |
470 B(Return)}, | 494 B(Return)}, |
471 1, | 495 1, |
472 {268, 0, 0, 0}}, | 496 {268, 0, 0, 0}}, |
497 {"var x = 1; var a = 2, b = 3; return (x > 3) || (" | |
498 #define X "a = 1, b = 2, " | |
499 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X | |
rmcilroy
2015/10/30 10:50:06
Now that https://codereview.chromium.org/141386301
rmcilroy
2015/10/30 12:09:53
Still this please.
| |
500 #undef X | |
501 "3);", | |
502 3 * kPointerSize, | |
503 1, | |
504 285, | |
505 {B(LdaSmi8), U8(1), // | |
506 B(Star), R(0), // | |
507 B(LdaSmi8), U8(2), // | |
508 B(Star), R(1), // | |
509 B(LdaSmi8), U8(3), // | |
510 B(Star), R(2), // | |
511 B(LdaSmi8), U8(3), // | |
512 B(TestGreaterThan), R(0), // | |
513 B(JumpIfTrueConstant), U8(0), // | |
514 #define X B(LdaSmi8), U8(1), B(Star), R(1), B(LdaSmi8), U8(2), B(Star), R(2), | |
515 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X | |
516 #undef X | |
517 B(LdaSmi8), U8(3), // | |
518 B(Return)}, | |
519 1, | |
520 {268, 0, 0, 0}}, | |
521 {"var x = 0; var a = 2, b = 3; return (x < 5) && (" | |
522 #define X "a = 1, b = 2, " | |
523 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X | |
524 #undef X | |
525 "3);", | |
526 3 * kPointerSize, | |
527 1, | |
528 284, | |
529 {B(LdaZero), // | |
530 B(Star), R(0), // | |
531 B(LdaSmi8), U8(2), // | |
532 B(Star), R(1), // | |
533 B(LdaSmi8), U8(3), // | |
534 B(Star), R(2), // | |
535 B(LdaSmi8), U8(5), // | |
536 B(TestLessThan), R(0), // | |
537 B(JumpIfFalseConstant), U8(0), // | |
538 #define X B(LdaSmi8), U8(1), B(Star), R(1), B(LdaSmi8), U8(2), B(Star), R(2), | |
539 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X | |
540 #undef X | |
541 B(LdaSmi8), U8(3), // | |
542 B(Return)}, | |
543 1, | |
544 {268, 0, 0, 0}}, | |
473 {"return 0 && 3;", | 545 {"return 0 && 3;", |
474 0 * kPointerSize, | 546 0 * kPointerSize, |
475 1, | 547 1, |
476 2, | 548 2, |
477 {B(LdaZero), // | 549 {B(LdaZero), // |
478 B(Return)}, | 550 B(Return)}, |
479 0}, | 551 0}, |
480 {"return 1 || 3;", | 552 {"return 1 || 3;", |
481 0 * kPointerSize, | 553 0 * kPointerSize, |
482 1, | 554 1, |
(...skipping 764 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1247 TEST(IfConditions) { | 1319 TEST(IfConditions) { |
1248 InitializedHandleScope handle_scope; | 1320 InitializedHandleScope handle_scope; |
1249 BytecodeGeneratorHelper helper; | 1321 BytecodeGeneratorHelper helper; |
1250 | 1322 |
1251 Handle<Object> unused = helper.factory()->undefined_value(); | 1323 Handle<Object> unused = helper.factory()->undefined_value(); |
1252 | 1324 |
1253 ExpectedSnippet<Handle<Object>> snippets[] = { | 1325 ExpectedSnippet<Handle<Object>> snippets[] = { |
1254 {"function f() { if (0) { return 1; } else { return -1; } } f()", | 1326 {"function f() { if (0) { return 1; } else { return -1; } } f()", |
1255 0, | 1327 0, |
1256 1, | 1328 1, |
1257 14, | 1329 13, |
1258 {B(LdaZero), // | 1330 {B(LdaZero), // |
1259 B(ToBoolean), // | 1331 B(JumpIfToBooleanFalse), U8(7), // |
1260 B(JumpIfFalse), U8(7), // | 1332 B(LdaSmi8), U8(1), // |
1261 B(LdaSmi8), U8(1), // | 1333 B(Return), // |
1262 B(Return), // | 1334 B(Jump), U8(5), // |
1263 B(Jump), U8(5), // | 1335 B(LdaSmi8), U8(-1), // |
1264 B(LdaSmi8), U8(-1), // | 1336 B(Return), // |
1265 B(Return), // | 1337 B(LdaUndefined), // |
1266 B(LdaUndefined), // | 1338 B(Return)}, // |
1267 B(Return)}, // | |
1268 0, | 1339 0, |
1269 {unused, unused, unused, unused, unused, unused}}, | 1340 {unused, unused, unused, unused, unused, unused}}, |
1270 {"function f() { if ('lucky') { return 1; } else { return -1; } } f();", | 1341 {"function f() { if ('lucky') { return 1; } else { return -1; } } f();", |
1271 0, | 1342 0, |
1272 1, | 1343 1, |
1273 15, | 1344 14, |
1274 {B(LdaConstant), U8(0), // | 1345 {B(LdaConstant), U8(0), // |
1275 B(ToBoolean), // | 1346 B(JumpIfToBooleanFalse), U8(7), // |
1276 B(JumpIfFalse), U8(7), // | 1347 B(LdaSmi8), U8(1), // |
1277 B(LdaSmi8), U8(1), // | 1348 B(Return), // |
1278 B(Return), // | 1349 B(Jump), U8(5), // |
1279 B(Jump), U8(5), // | 1350 B(LdaSmi8), U8(-1), // |
1280 B(LdaSmi8), U8(-1), // | 1351 B(Return), // |
1281 B(Return), // | 1352 B(LdaUndefined), // |
1282 B(LdaUndefined), // | 1353 B(Return)}, // |
1283 B(Return)}, // | |
1284 1, | 1354 1, |
1285 {helper.factory()->NewStringFromStaticChars("lucky"), unused, unused, | 1355 {helper.factory()->NewStringFromStaticChars("lucky"), unused, unused, |
1286 unused, unused, unused}}, | 1356 unused, unused, unused}}, |
1287 {"function f() { if (false) { return 1; } else { return -1; } } f();", | 1357 {"function f() { if (false) { return 1; } else { return -1; } } f();", |
1288 0, | 1358 0, |
1289 1, | 1359 1, |
1290 13, | 1360 13, |
1291 {B(LdaFalse), // | 1361 {B(LdaFalse), // |
1292 B(JumpIfFalse), U8(7), // | 1362 B(JumpIfFalse), U8(7), // |
1293 B(LdaSmi8), U8(1), // | 1363 B(LdaSmi8), U8(1), // |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1359 B(LdaConstant), U8(3), // | 1429 B(LdaConstant), U8(3), // |
1360 B(Return), // | 1430 B(Return), // |
1361 B(LdaUndefined), // | 1431 B(LdaUndefined), // |
1362 B(Return)}, // | 1432 B(Return)}, // |
1363 #undef X | 1433 #undef X |
1364 4, | 1434 4, |
1365 {helper.factory()->NewHeapNumber(0.01), | 1435 {helper.factory()->NewHeapNumber(0.01), |
1366 helper.factory()->NewNumberFromInt(200), | 1436 helper.factory()->NewNumberFromInt(200), |
1367 helper.factory()->NewNumberFromInt(199), | 1437 helper.factory()->NewNumberFromInt(199), |
1368 helper.factory()->NewNumberFromInt(-200), unused, unused}}, | 1438 helper.factory()->NewNumberFromInt(-200), unused, unused}}, |
1439 {"function f() { var a = 0; var b = 0; if (a) { " | |
1440 #define X "b = a; a = b; " | |
1441 X X X X X X X X X X X X X X X X X X X X X X X X | |
1442 #undef X | |
1443 " return 200; } else { return -200; } } f()", | |
1444 2 * kPointerSize, | |
1445 1, | |
1446 212, | |
1447 { | |
1448 #define X B(Ldar), R(0), B(Star), R(1), B(Ldar), R(1), B(Star), R(0) | |
1449 B(LdaZero), // | |
1450 B(Star), R(0), // | |
1451 B(LdaZero), // | |
1452 B(Star), R(1), // | |
1453 B(Ldar), R(0), // | |
1454 B(JumpIfToBooleanFalseConstant), U8(1), // | |
1455 X, X, X, X, X, X, X, X, X, X, // | |
1456 X, X, X, X, X, X, X, X, X, X, // | |
1457 X, X, X, X, // | |
1458 B(LdaConstant), U8(0), // | |
1459 B(Return), // | |
1460 B(Jump), U8(5), // | |
1461 B(LdaConstant), U8(2), // | |
1462 B(Return), // | |
1463 B(LdaUndefined), // | |
1464 B(Return)}, // | |
1465 #undef X | |
1466 3, | |
1467 {helper.factory()->NewNumberFromInt(200), | |
1468 helper.factory()->NewNumberFromInt(199), | |
1469 helper.factory()->NewNumberFromInt(-200), unused, unused, unused}}, | |
1470 | |
1369 {"function f(a, b) {\n" | 1471 {"function f(a, b) {\n" |
1370 " if (a == b) { return 1; }\n" | 1472 " if (a == b) { return 1; }\n" |
1371 " if (a === b) { return 1; }\n" | 1473 " if (a === b) { return 1; }\n" |
1372 " if (a < b) { return 1; }\n" | 1474 " if (a < b) { return 1; }\n" |
1373 " if (a > b) { return 1; }\n" | 1475 " if (a > b) { return 1; }\n" |
1374 " if (a <= b) { return 1; }\n" | 1476 " if (a <= b) { return 1; }\n" |
1375 " if (a >= b) { return 1; }\n" | 1477 " if (a >= b) { return 1; }\n" |
1376 " if (a in b) { return 1; }\n" | 1478 " if (a in b) { return 1; }\n" |
1377 " if (a instanceof b) { return 1; }\n" | 1479 " if (a instanceof b) { return 1; }\n" |
1378 " return 0;\n" | 1480 " return 0;\n" |
(...skipping 349 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1728 B(LdaSmi8), U8(1), // | 1830 B(LdaSmi8), U8(1), // |
1729 B(Add), R(0), // | 1831 B(Add), R(0), // |
1730 B(Star), R(0), // | 1832 B(Star), R(0), // |
1731 B(Jump), U8(5), // | 1833 B(Jump), U8(5), // |
1732 B(LdaTrue), // | 1834 B(LdaTrue), // |
1733 B(JumpIfTrue), U8(-31), // | 1835 B(JumpIfTrue), U8(-31), // |
1734 B(Ldar), R(0), // | 1836 B(Ldar), R(0), // |
1735 B(Return), // | 1837 B(Return), // |
1736 }, | 1838 }, |
1737 0}, | 1839 0}, |
1738 }; | 1840 {"var x = 10;" |
1841 "var y = 1;" | |
1842 "while (x) {" | |
1843 " y = y * 12;" | |
1844 " x = x - 1;" | |
1845 "}" | |
1846 "return y;", | |
1847 2 * kPointerSize, | |
1848 1, | |
1849 29, | |
1850 { | |
1851 B(LdaSmi8), U8(10), // | |
1852 B(Star), R(0), // | |
1853 B(LdaSmi8), U8(1), // | |
1854 B(Star), R(1), // | |
1855 B(Jump), U8(14), // | |
1856 B(LdaSmi8), U8(12), // | |
1857 B(Mul), R(1), // | |
1858 B(Star), R(1), // | |
1859 B(LdaSmi8), U8(1), // | |
1860 B(Sub), R(0), // | |
1861 B(Star), R(0), // | |
1862 B(Ldar), R(0), // | |
1863 B(JumpIfToBooleanTrue), U8(-14), // | |
1864 B(Ldar), R(1), // | |
1865 B(Return), // | |
1866 }, | |
1867 0}, | |
1868 {"var x = 10;" | |
1869 "var y = 1;" | |
1870 "do {" | |
1871 " y = y * 12;" | |
1872 " x = x - 1;" | |
1873 "} while(x);" | |
1874 "return y;", | |
1875 2 * kPointerSize, | |
1876 1, | |
1877 27, | |
1878 { | |
1879 B(LdaSmi8), U8(10), // | |
1880 B(Star), R(0), // | |
1881 B(LdaSmi8), U8(1), // | |
1882 B(Star), R(1), // | |
1883 B(LdaSmi8), U8(12), // | |
1884 B(Mul), R(1), // | |
1885 B(Star), R(1), // | |
1886 B(LdaSmi8), U8(1), // | |
1887 B(Sub), R(0), // | |
1888 B(Star), R(0), // | |
1889 B(Ldar), R(0), // | |
1890 B(JumpIfToBooleanTrue), U8(-14), // | |
1891 B(Ldar), R(1), // | |
1892 B(Return), // | |
1893 }, | |
1894 0}, | |
1895 {"var y = 1;" | |
1896 "for (var x = 10; x; --x) {" | |
1897 " y = y * 12;" | |
1898 "}" | |
1899 "return y;", | |
1900 2 * kPointerSize, | |
1901 1, | |
1902 29, | |
1903 { | |
1904 B(LdaSmi8), U8(1), // | |
1905 B(Star), R(0), // | |
1906 B(LdaSmi8), U8(10), // | |
1907 B(Star), R(1), // | |
1908 B(Jump), U8(14), // | |
1909 B(LdaSmi8), U8(12), // | |
1910 B(Mul), R(0), // | |
1911 B(Star), R(0), // | |
1912 B(Ldar), R(1), // | |
1913 B(ToNumber), // | |
1914 B(Dec), // | |
1915 B(Star), R(1), // | |
1916 B(Ldar), R(1), // | |
1917 B(JumpIfToBooleanTrue), U8(-14), // | |
1918 B(Ldar), R(0), // | |
1919 B(Return), // | |
1920 }, | |
1921 0}}; | |
1739 | 1922 |
1740 for (size_t i = 0; i < arraysize(snippets); i++) { | 1923 for (size_t i = 0; i < arraysize(snippets); i++) { |
1741 Handle<BytecodeArray> bytecode_array = | 1924 Handle<BytecodeArray> bytecode_array = |
1742 helper.MakeBytecodeForFunctionBody(snippets[i].code_snippet); | 1925 helper.MakeBytecodeForFunctionBody(snippets[i].code_snippet); |
1743 CheckBytecodeArrayEqual(snippets[i], bytecode_array); | 1926 CheckBytecodeArrayEqual(snippets[i], bytecode_array); |
1744 } | 1927 } |
1745 } | 1928 } |
1746 | 1929 |
1747 | 1930 |
1748 TEST(UnaryOperators) { | 1931 TEST(UnaryOperators) { |
(...skipping 1080 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2829 3, | 3012 3, |
2830 { | 3013 { |
2831 B(LdaConstant), U8(0), // | 3014 B(LdaConstant), U8(0), // |
2832 B(Throw), // | 3015 B(Throw), // |
2833 }, | 3016 }, |
2834 1, | 3017 1, |
2835 {"Error"}}, | 3018 {"Error"}}, |
2836 {"if ('test') { throw 'Error'; };", | 3019 {"if ('test') { throw 'Error'; };", |
2837 0, | 3020 0, |
2838 1, | 3021 1, |
2839 10, | 3022 9, |
2840 { | 3023 { |
2841 B(LdaConstant), U8(0), // | 3024 B(LdaConstant), U8(0), // |
2842 B(ToBoolean), // | 3025 B(JumpIfToBooleanFalse), U8(5), // |
2843 B(JumpIfFalse), U8(5), // | 3026 B(LdaConstant), U8(1), // |
2844 B(LdaConstant), U8(1), // | 3027 B(Throw), // |
2845 B(Throw), // | 3028 B(LdaUndefined), // |
2846 B(LdaUndefined), // | 3029 B(Return), // |
2847 B(Return), // | |
2848 }, | 3030 }, |
2849 2, | 3031 2, |
2850 {"test", "Error"}}, | 3032 {"test", "Error"}}, |
2851 }; | 3033 }; |
2852 | 3034 |
2853 for (size_t i = 0; i < arraysize(snippets); i++) { | 3035 for (size_t i = 0; i < arraysize(snippets); i++) { |
2854 Handle<BytecodeArray> bytecode_array = | 3036 Handle<BytecodeArray> bytecode_array = |
2855 helper.MakeBytecodeForFunctionBody(snippets[i].code_snippet); | 3037 helper.MakeBytecodeForFunctionBody(snippets[i].code_snippet); |
2856 CheckBytecodeArrayEqual(snippets[i], bytecode_array); | 3038 CheckBytecodeArrayEqual(snippets[i], bytecode_array); |
2857 } | 3039 } |
(...skipping 960 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
3818 | 4000 |
3819 | 4001 |
3820 TEST(Conditional) { | 4002 TEST(Conditional) { |
3821 InitializedHandleScope handle_scope; | 4003 InitializedHandleScope handle_scope; |
3822 BytecodeGeneratorHelper helper; | 4004 BytecodeGeneratorHelper helper; |
3823 | 4005 |
3824 ExpectedSnippet<int> snippets[] = { | 4006 ExpectedSnippet<int> snippets[] = { |
3825 {"return 1 ? 2 : 3;", | 4007 {"return 1 ? 2 : 3;", |
3826 0, | 4008 0, |
3827 1, | 4009 1, |
3828 12, | 4010 11, |
3829 { | 4011 { |
3830 B(LdaSmi8), U8(1), // | 4012 B(LdaSmi8), U8(1), // |
3831 B(ToBoolean), // | 4013 B(JumpIfToBooleanFalse), U8(6), // |
3832 B(JumpIfFalse), U8(6), // | 4014 B(LdaSmi8), U8(2), // |
3833 B(LdaSmi8), U8(2), // | 4015 B(Jump), U8(4), // |
3834 B(Jump), U8(4), // | 4016 B(LdaSmi8), U8(3), // |
3835 B(LdaSmi8), U8(3), // | 4017 B(Return), // |
3836 B(Return), // | |
3837 }}, | 4018 }}, |
3838 {"return 1 ? 2 ? 3 : 4 : 5;", | 4019 {"return 1 ? 2 ? 3 : 4 : 5;", |
3839 0, | 4020 0, |
3840 1, | 4021 1, |
3841 21, | 4022 19, |
3842 { | 4023 { |
3843 B(LdaSmi8), U8(1), // | 4024 B(LdaSmi8), U8(1), // |
3844 B(ToBoolean), // | 4025 B(JumpIfToBooleanFalse), U8(14), // |
3845 B(JumpIfFalse), U8(15), // | 4026 B(LdaSmi8), U8(2), // |
3846 B(LdaSmi8), U8(2), // | 4027 B(JumpIfToBooleanFalse), U8(6), // |
3847 B(ToBoolean), // | 4028 B(LdaSmi8), U8(3), // |
3848 B(JumpIfFalse), U8(6), // | 4029 B(Jump), U8(4), // |
3849 B(LdaSmi8), U8(3), // | 4030 B(LdaSmi8), U8(4), // |
3850 B(Jump), U8(4), // | 4031 B(Jump), U8(4), // |
3851 B(LdaSmi8), U8(4), // | 4032 B(LdaSmi8), U8(5), // |
3852 B(Jump), U8(4), // | 4033 B(Return), // |
3853 B(LdaSmi8), U8(5), // | |
3854 B(Return), // | |
3855 }}, | 4034 }}, |
3856 }; | 4035 }; |
3857 | 4036 |
3858 for (size_t i = 0; i < arraysize(snippets); i++) { | 4037 for (size_t i = 0; i < arraysize(snippets); i++) { |
3859 Handle<BytecodeArray> bytecode_array = | 4038 Handle<BytecodeArray> bytecode_array = |
3860 helper.MakeBytecodeForFunctionBody(snippets[i].code_snippet); | 4039 helper.MakeBytecodeForFunctionBody(snippets[i].code_snippet); |
3861 CheckBytecodeArrayEqual(snippets[i], bytecode_array); | 4040 CheckBytecodeArrayEqual(snippets[i], bytecode_array); |
3862 } | 4041 } |
3863 } | 4042 } |
3864 | 4043 |
3865 } // namespace interpreter | 4044 } // namespace interpreter |
3866 } // namespace internal | 4045 } // namespace internal |
3867 } // namespace v8 | 4046 } // namespace v8 |
OLD | NEW |