Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(70)

Side by Side Diff: test/cctest/interpreter/test-bytecode-generator.cc

Issue 1546683002: [Interpreter] Add support for jumps using constants with wide operands. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Rationalize jumps in bytecode-graph-builder.cc. Created 4 years, 12 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
58 Handle<BytecodeArray> MakeBytecode(const char* script, const char* filter, 58 Handle<BytecodeArray> MakeBytecode(const char* script, const char* filter,
59 const char* function_name) { 59 const char* function_name) {
60 const char* old_ignition_filter = i::FLAG_ignition_filter; 60 const char* old_ignition_filter = i::FLAG_ignition_filter;
61 i::FLAG_ignition_filter = filter; 61 i::FLAG_ignition_filter = filter;
62 Handle<BytecodeArray> return_val = MakeBytecode(script, function_name); 62 Handle<BytecodeArray> return_val = MakeBytecode(script, function_name);
63 i::FLAG_ignition_filter = old_ignition_filter; 63 i::FLAG_ignition_filter = old_ignition_filter;
64 return return_val; 64 return return_val;
65 } 65 }
66 66
67 Handle<BytecodeArray> MakeBytecodeForFunctionBody(const char* body) { 67 Handle<BytecodeArray> MakeBytecodeForFunctionBody(const char* body) {
68 ScopedVector<char> program(3072); 68 static const char kFormat[] = "function %s() { %s }\n%s();";
69 SNPrintF(program, "function %s() { %s }\n%s();", kFunctionName, body, 69 static const int kFormatLength = arraysize(kFormat);
70 kFunctionName); 70 int length = kFormatLength + 2 * StrLength(kFunctionName) + StrLength(body);
71 ScopedVector<char> program(length);
72 length = SNPrintF(program, kFormat, kFunctionName, body, kFunctionName);
73 CHECK_GT(length, 0);
71 return MakeBytecode(program.start(), kFunctionName); 74 return MakeBytecode(program.start(), kFunctionName);
72 } 75 }
73 76
74 Handle<BytecodeArray> MakeBytecodeForFunction(const char* function) { 77 Handle<BytecodeArray> MakeBytecodeForFunction(const char* function) {
75 ScopedVector<char> program(3072); 78 ScopedVector<char> program(3072);
76 SNPrintF(program, "%s\n%s();", function, kFunctionName); 79 SNPrintF(program, "%s\n%s();", function, kFunctionName);
77 return MakeBytecode(program.start(), kFunctionName); 80 return MakeBytecode(program.start(), kFunctionName);
78 } 81 }
79 82
80 Handle<BytecodeArray> MakeBytecodeForFunctionNoFilter(const char* function) { 83 Handle<BytecodeArray> MakeBytecodeForFunctionNoFilter(const char* function) {
(...skipping 2499 matching lines...) Expand 10 before | Expand all | Expand 10 after
2580 }; 2583 };
2581 2584
2582 for (size_t i = 0; i < arraysize(snippets); i++) { 2585 for (size_t i = 0; i < arraysize(snippets); i++) {
2583 Handle<BytecodeArray> bytecode_array = 2586 Handle<BytecodeArray> bytecode_array =
2584 helper.MakeBytecodeForFunctionBody(snippets[i].code_snippet); 2587 helper.MakeBytecodeForFunctionBody(snippets[i].code_snippet);
2585 CheckBytecodeArrayEqual(snippets[i], bytecode_array); 2588 CheckBytecodeArrayEqual(snippets[i], bytecode_array);
2586 } 2589 }
2587 } 2590 }
2588 2591
2589 2592
2593 TEST(JumpsRequiringConstantWideOperands) {
2594 InitializedHandleScope handle_scope;
2595 BytecodeGeneratorHelper helper;
2596 ExpectedSnippet<Handle<Object>, 315> snippets[] = {
2597 {"var a = 'a0', b = 'b0', c = 'c0', d = 'd0', e = 'e0', _ = 'f0',\n"
2598 " g = 'g0', h = 'h0', i = 'i0', j = 'j0', k = 'k0', l = 'l0',\n"
2599 " m = 'm0', n = 'n0', o = 'o0', p = 'p0', q = 'q0', r = 'r0',\n"
2600 " s = 's0', t = 't0', u = 'u0', v = 'v0', w = 'w0', x = 'x0',\n"
2601 " y = 'y0', z = 'z0', A = 'A0', B = 'B0', C = 'C0', D = 'D0',\n"
2602 " E = 'E0', F = 'F0', G = 'G0', H = 'H0', I = 'I0', J = 'J0',\n"
2603 " K = 'K0', L = 'L0', M = 'M0', N = 'N0', O = 'O0', P = 'P0',\n"
2604 " Q = 'Q0', R = 'R0', S = 'S0', T = 'T0', U = 'U0', V = 'V0',\n"
2605 " W = 'W0', X = 'X0', Y = 'Y0', Z = 'Z0';\n"
2606 "var a = 'a1', b = 'b1', c = 'c1', d = 'd1', e = 'e1', _ = 'f1',\n"
2607 " g = 'g1', h = 'h1', i = 'i1', j = 'j1', k = 'k1', l = 'l1',\n"
2608 " m = 'm1', n = 'n1', o = 'o1', p = 'p1', q = 'q1', r = 'r1',\n"
2609 " s = 's1', t = 't1', u = 'u1', v = 'v1', w = 'w1', x = 'x1',\n"
2610 " y = 'y1', z = 'z1', A = 'A1', B = 'B1', C = 'C1', D = 'D1',\n"
2611 " E = 'E1', F = 'F1', G = 'G1', H = 'H1', I = 'I1', J = 'J1',\n"
2612 " K = 'K1', L = 'L1', M = 'M1', N = 'N1', O = 'O1', P = 'P1',\n"
2613 " Q = 'Q1', R = 'R1', S = 'S1', T = 'T1', U = 'U1', V = 'V1',\n"
2614 " W = 'W1', X = 'X1', Y = 'Y1', Z = 'Z1';\n"
2615 "var a = 'a2', b = 'b2', c = 'c2', d = 'd2', e = 'e2', _ = 'f2',\n"
2616 " g = 'g2', h = 'h2', i = 'i2', j = 'j2', k = 'k2', l = 'l2',\n"
2617 " m = 'm2', n = 'n2', o = 'o2', p = 'p2', q = 'q2', r = 'r2',\n"
2618 " s = 's2', t = 't2', u = 'u2', v = 'v2', w = 'w2', x = 'x2',\n"
2619 " y = 'y2', z = 'z2', A = 'A2', B = 'B2', C = 'C2', D = 'D2',\n"
2620 " E = 'E2', F = 'F2', G = 'G2', H = 'H2', I = 'I2', J = 'J2',\n"
2621 " K = 'K2', L = 'L2', M = 'M2', N = 'N2', O = 'O2', P = 'P2',\n"
2622 " Q = 'Q2', R = 'R2', S = 'S2', T = 'T2', U = 'U2', V = 'V2',\n"
2623 " W = 'W2', X = 'X2', Y = 'Y2', Z = 'Z2';\n"
2624 "var a = 'a3', b = 'b3', c = 'c3', d = 'd3', e = 'e3', _ = 'f3',\n"
2625 " g = 'g3', h = 'h3', i = 'i3', j = 'j3', k = 'k3', l = 'l3',\n"
2626 " m = 'm3', n = 'n3', o = 'o3', p = 'p3', q = 'q3', r = 'r3',\n"
2627 " s = 's3', t = 't3', u = 'u3', v = 'v3', w = 'w3', x = 'x3',\n"
2628 " y = 'y3', z = 'z3', A = 'A3', B = 'B3', C = 'C3', D = 'D3',\n"
2629 " E = 'E3', F = 'F3', G = 'G3', H = 'H3', I = 'I3', J = 'J3',\n"
2630 " K = 'K3', L = 'L3', M = 'M3', N = 'N3', O = 'O3', P = 'P3',\n"
2631 " Q = 'Q3', R = 'R3', S = 'S3', T = 'T3', U = 'U3', V = 'V3',\n"
2632 " W = 'W3', X = 'X3', Y = 'Y3', Z = 'Z3';\n"
2633 "var a = 'a4', b = 'b4', c = 'c4', d = 'd4', e = 'e4', _ = 'f4',\n"
2634 " g = 'g4', h = 'h4', i = 'i4', j = 'j4', k = 'k4', l = 'l4',\n"
2635 " m = 'm4', n = 'n4', o = 'o4', p = 'p4', q = 'q4', r = 'r4',\n"
2636 " s = 's4', t = 't4', u = 'u4', v = 'v4', w = 'w4', x = 'x4',\n"
2637 " y = 'y4', z = 'z4', A = 'A4', B = 'B4', C = 'C4', D = 'D4',\n"
2638 " E = 'E4', F = 'F4', G = 'G4', H = 'H4', I = 'I4', J = 'J4',\n"
2639 " K = 'K4', L = 'L4', M = 'M4', N = 'N4', O = 'O4', P = 'P4',\n"
2640 " Q = 'Q4', R = 'R4', S = 'S4', T = 'T4', U = 'U4', V = 'V4',\n"
2641 " W = 'W4', X = 'X4', Y = 'Y4', Z = 'Z4';\n"
2642 "var a = 'a5', b = 'b5', c = 'c5', d = 'd5', e = 'e5', _ = 'f5',\n"
2643 " g = 'g5', h = 'h5', i = 'i5', j = 'j5', k = 'k5', l = 'l5',\n"
2644 " m = 'm5', n = 'n5', o = 'o5', p = 'p5', q = 'q5', r = 'r5',\n"
2645 " s = 's5', t = 't5', u = 'u5', v = 'v5', w = 'w5', x = 'x5',\n"
2646 " y = 'y5', z = 'z5', A = 'A5', B = 'B5', C = 'C5', D = 'D5',\n"
2647 " E = 'E5', F = 'F5', G = 'G5', H = 'H5', I = 'I5', J = 'J5',\n"
2648 " K = 'K5', L = 'L5', M = 'M5', N = 'N5', O = 'O5', P = 'P5',\n"
2649 " Q = 'Q5', R = 'R5', S = 'S5', T = 'T5', U = 'U5', V = 'V5',\n"
2650 " W = 'W5', X = 'X5', Y = 'Y5', Z = 'Z5';\n"
2651 "for (var i = 0; i < 3; i++) {\n"
2652 " if (i == 1) continue;\n"
2653 " if (i == 2) break;\n"
2654 "}\n"
2655 "return 3;",
2656 kPointerSize * 53,
2657 1,
2658 1347,
2659 {
2660 #define L(c, r) B(LdaConstant), U8(c), B(Star), R(r)
2661 #define LW(c, r) B(LdaConstantWide), U16(c), B(Star), R(r)
2662 L(0, 0), L(1, 1), L(2, 2), L(3, 3), L(4, 4), L(5, 5), L(6, 6),
2663 L(7, 7), L(8, 8), L(9, 9), L(10, 10), L(11, 11), L(12, 12),
2664 L(13, 13), L(14, 14), L(15, 15), L(16, 16), L(17, 17), L(18, 18),
2665 L(19, 19), L(20, 20), L(21, 21), L(22, 22), L(23, 23), L(24, 24),
2666 L(25, 25), L(26, 26), L(27, 27), L(28, 28), L(29, 29), L(30, 30),
2667 L(31, 31), L(32, 32), L(33, 33), L(34, 34), L(35, 35), L(36, 36),
2668 L(37, 37), L(38, 38), L(39, 39), L(40, 40), L(41, 41), L(42, 42),
2669 L(43, 43), L(44, 44), L(45, 45), L(46, 46), L(47, 47), L(48, 48),
2670 L(49, 49), L(50, 50), L(51, 51), L(52, 0), L(53, 1), L(54, 2),
2671 L(55, 3), L(56, 4), L(57, 5), L(58, 6), L(59, 7), L(60, 8), L(61, 9),
2672 L(62, 10), L(63, 11), L(64, 12), L(65, 13), L(66, 14), L(67, 15),
2673 L(68, 16), L(69, 17), L(70, 18), L(71, 19), L(72, 20), L(73, 21),
2674 L(74, 22), L(75, 23), L(76, 24), L(77, 25), L(78, 26), L(79, 27),
2675 L(80, 28), L(81, 29), L(82, 30), L(83, 31), L(84, 32), L(85, 33),
2676 L(86, 34), L(87, 35), L(88, 36), L(89, 37), L(90, 38), L(91, 39),
2677 L(92, 40), L(93, 41), L(94, 42), L(95, 43), L(96, 44), L(97, 45),
2678 L(98, 46), L(99, 47), L(100, 48), L(101, 49), L(102, 50), L(103, 51),
2679 L(104, 0), L(105, 1), L(106, 2), L(107, 3), L(108, 4), L(109, 5),
2680 L(110, 6), L(111, 7), L(112, 8), L(113, 9), L(114, 10), L(115, 11),
2681 L(116, 12), L(117, 13), L(118, 14), L(119, 15), L(120, 16),
2682 L(121, 17), L(122, 18), L(123, 19), L(124, 20), L(125, 21),
2683 L(126, 22), L(127, 23), L(128, 24), L(129, 25), L(130, 26),
2684 L(131, 27), L(132, 28), L(133, 29), L(134, 30), L(135, 31),
2685 L(136, 32), L(137, 33), L(138, 34), L(139, 35), L(140, 36),
2686 L(141, 37), L(142, 38), L(143, 39), L(144, 40), L(145, 41),
2687 L(146, 42), L(147, 43), L(148, 44), L(149, 45), L(150, 46),
2688 L(151, 47), L(152, 48), L(153, 49), L(154, 50), L(155, 51),
2689 L(156, 0), L(157, 1), L(158, 2), L(159, 3), L(160, 4), L(161, 5),
2690 L(162, 6), L(163, 7), L(164, 8), L(165, 9), L(166, 10), L(167, 11),
2691 L(168, 12), L(169, 13), L(170, 14), L(171, 15), L(172, 16),
2692 L(173, 17), L(174, 18), L(175, 19), L(176, 20), L(177, 21),
2693 L(178, 22), L(179, 23), L(180, 24), L(181, 25), L(182, 26),
2694 L(183, 27), L(184, 28), L(185, 29), L(186, 30), L(187, 31),
2695 L(188, 32), L(189, 33), L(190, 34), L(191, 35), L(192, 36),
2696 L(193, 37), L(194, 38), L(195, 39), L(196, 40), L(197, 41),
2697 L(198, 42), L(199, 43), L(200, 44), L(201, 45), L(202, 46),
2698 L(203, 47), L(204, 48), L(205, 49), L(206, 50), L(207, 51),
2699 L(208, 0), L(209, 1), L(210, 2), L(211, 3), L(212, 4), L(213, 5),
2700 L(214, 6), L(215, 7), L(216, 8), L(217, 9), L(218, 10), L(219, 11),
2701 L(220, 12), L(221, 13), L(222, 14), L(223, 15), L(224, 16),
2702 L(225, 17), L(226, 18), L(227, 19), L(228, 20), L(229, 21),
2703 L(230, 22), L(231, 23), L(232, 24), L(233, 25), L(234, 26),
2704 L(235, 27), L(236, 28), L(237, 29), L(238, 30), L(239, 31),
2705 L(240, 32), L(241, 33), L(242, 34), L(243, 35), L(244, 36),
2706 L(245, 37), L(246, 38), L(247, 39), L(248, 40), L(249, 41),
2707 L(250, 42), L(251, 43), L(252, 44), L(253, 45), L(254, 46),
2708 L(255, 47), LW(256, 48), LW(257, 49), LW(258, 50), LW(259, 51),
2709 LW(260, 0), LW(261, 1), LW(262, 2), LW(263, 3), LW(264, 4),
2710 LW(265, 5), LW(266, 6), LW(267, 7), LW(268, 8), LW(269, 9),
2711 LW(270, 10), LW(271, 11), LW(272, 12), LW(273, 13), LW(274, 14),
2712 LW(275, 15), LW(276, 16), LW(277, 17), LW(278, 18), LW(279, 19),
2713 LW(280, 20), LW(281, 21), LW(282, 22), LW(283, 23), LW(284, 24),
2714 LW(285, 25), LW(286, 26), LW(287, 27), LW(288, 28), LW(289, 29),
2715 LW(290, 30), LW(291, 31), LW(292, 32), LW(293, 33), LW(294, 34),
2716 LW(295, 35), LW(296, 36), LW(297, 37), LW(298, 38), LW(299, 39),
2717 LW(300, 40), LW(301, 41), LW(302, 42), LW(303, 43), LW(304, 44),
2718 LW(305, 45), LW(306, 46), LW(307, 47), LW(308, 48), LW(309, 49),
2719 LW(310, 50), LW(311, 51),
2720 #undef LW
2721 #undef L
2722 B(LdaZero), //
2723 B(Star), R(8), //
2724 B(LdaSmi8), U8(3), //
2725 B(TestLessThan), R(8), //
2726 B(JumpIfFalseConstantWide), U16(313), //
2727 B(LdaSmi8), U8(1), //
2728 B(TestEqual), R(8), //
2729 B(JumpIfFalseConstantWide), U16(312), //
2730 B(JumpConstantWide), U16(314), //
2731 B(LdaSmi8), U8(2), //
2732 B(TestEqual), R(8), //
2733 B(JumpIfFalseConstantWide), U16(312), //
2734 B(JumpConstantWide), U16(314), //
2735 B(Ldar), R(8), //
2736 B(ToNumber), //
2737 B(Star), R(52), //
2738 B(Inc), //
2739 B(Star), R(8), //
2740 B(Jump), U8(-35), //
2741 B(LdaSmi8), U8(3), //
2742 B(Return) //
2743 },
2744 315,
2745 {
2746 #define S(x) CcTest::i_isolate()->factory()->NewStringFromAsciiChecked(x)
2747 #define N(x) CcTest::i_isolate()->factory()->NewNumberFromInt(x)
2748 S("a0"), S("b0"), S("c0"), S("d0"), S("e0"), S("f0"), S("g0"),
2749 S("h0"), S("i0"), S("j0"), S("k0"), S("l0"), S("m0"), S("n0"),
2750 S("o0"), S("p0"), S("q0"), S("r0"), S("s0"), S("t0"), S("u0"),
2751 S("v0"), S("w0"), S("x0"), S("y0"), S("z0"), S("A0"), S("B0"),
2752 S("C0"), S("D0"), S("E0"), S("F0"), S("G0"), S("H0"), S("I0"),
2753 S("J0"), S("K0"), S("L0"), S("M0"), S("N0"), S("O0"), S("P0"),
2754 S("Q0"), S("R0"), S("S0"), S("T0"), S("U0"), S("V0"), S("W0"),
2755 S("X0"), S("Y0"), S("Z0"), S("a1"), S("b1"), S("c1"), S("d1"),
2756 S("e1"), S("f1"), S("g1"), S("h1"), S("i1"), S("j1"), S("k1"),
2757 S("l1"), S("m1"), S("n1"), S("o1"), S("p1"), S("q1"), S("r1"),
2758 S("s1"), S("t1"), S("u1"), S("v1"), S("w1"), S("x1"), S("y1"),
2759 S("z1"), S("A1"), S("B1"), S("C1"), S("D1"), S("E1"), S("F1"),
2760 S("G1"), S("H1"), S("I1"), S("J1"), S("K1"), S("L1"), S("M1"),
2761 S("N1"), S("O1"), S("P1"), S("Q1"), S("R1"), S("S1"), S("T1"),
2762 S("U1"), S("V1"), S("W1"), S("X1"), S("Y1"), S("Z1"), S("a2"),
2763 S("b2"), S("c2"), S("d2"), S("e2"), S("f2"), S("g2"), S("h2"),
2764 S("i2"), S("j2"), S("k2"), S("l2"), S("m2"), S("n2"), S("o2"),
2765 S("p2"), S("q2"), S("r2"), S("s2"), S("t2"), S("u2"), S("v2"),
2766 S("w2"), S("x2"), S("y2"), S("z2"), S("A2"), S("B2"), S("C2"),
2767 S("D2"), S("E2"), S("F2"), S("G2"), S("H2"), S("I2"), S("J2"),
2768 S("K2"), S("L2"), S("M2"), S("N2"), S("O2"), S("P2"), S("Q2"),
2769 S("R2"), S("S2"), S("T2"), S("U2"), S("V2"), S("W2"), S("X2"),
2770 S("Y2"), S("Z2"), S("a3"), S("b3"), S("c3"), S("d3"), S("e3"),
2771 S("f3"), S("g3"), S("h3"), S("i3"), S("j3"), S("k3"), S("l3"),
2772 S("m3"), S("n3"), S("o3"), S("p3"), S("q3"), S("r3"), S("s3"),
2773 S("t3"), S("u3"), S("v3"), S("w3"), S("x3"), S("y3"), S("z3"),
2774 S("A3"), S("B3"), S("C3"), S("D3"), S("E3"), S("F3"), S("G3"),
2775 S("H3"), S("I3"), S("J3"), S("K3"), S("L3"), S("M3"), S("N3"),
2776 S("O3"), S("P3"), S("Q3"), S("R3"), S("S3"), S("T3"), S("U3"),
2777 S("V3"), S("W3"), S("X3"), S("Y3"), S("Z3"), S("a4"), S("b4"),
2778 S("c4"), S("d4"), S("e4"), S("f4"), S("g4"), S("h4"), S("i4"),
2779 S("j4"), S("k4"), S("l4"), S("m4"), S("n4"), S("o4"), S("p4"),
2780 S("q4"), S("r4"), S("s4"), S("t4"), S("u4"), S("v4"), S("w4"),
2781 S("x4"), S("y4"), S("z4"), S("A4"), S("B4"), S("C4"), S("D4"),
2782 S("E4"), S("F4"), S("G4"), S("H4"), S("I4"), S("J4"), S("K4"),
2783 S("L4"), S("M4"), S("N4"), S("O4"), S("P4"), S("Q4"), S("R4"),
2784 S("S4"), S("T4"), S("U4"), S("V4"), S("W4"), S("X4"), S("Y4"),
2785 S("Z4"), S("a5"), S("b5"), S("c5"), S("d5"), S("e5"), S("f5"),
2786 S("g5"), S("h5"), S("i5"), S("j5"), S("k5"), S("l5"), S("m5"),
2787 S("n5"), S("o5"), S("p5"), S("q5"), S("r5"), S("s5"), S("t5"),
2788 S("u5"), S("v5"), S("w5"), S("x5"), S("y5"), S("z5"), S("A5"),
2789 S("B5"), S("C5"), S("D5"), S("E5"), S("F5"), S("G5"), S("H5"),
2790 S("I5"), S("J5"), S("K5"), S("L5"), S("M5"), S("N5"), S("O5"),
2791 S("P5"), S("Q5"), S("R5"), S("S5"), S("T5"), S("U5"), S("V5"),
2792 S("W5"), S("X5"), S("Y5"), S("Z5"), N(6), N(33), N(13),
2793 #undef N
2794 #undef S
2795 }}};
2796
2797 for (size_t i = 0; i < arraysize(snippets); i++) {
2798 Handle<BytecodeArray> bytecode_array =
2799 helper.MakeBytecodeForFunctionBody(snippets[i].code_snippet);
2800 CheckBytecodeArrayEqual(snippets[i], bytecode_array);
2801 }
2802 }
2803
2804
2590 TEST(UnaryOperators) { 2805 TEST(UnaryOperators) {
2591 InitializedHandleScope handle_scope; 2806 InitializedHandleScope handle_scope;
2592 BytecodeGeneratorHelper helper; 2807 BytecodeGeneratorHelper helper;
2593 2808
2594 ExpectedSnippet<int> snippets[] = { 2809 ExpectedSnippet<int> snippets[] = {
2595 {"var x = 0;" 2810 {"var x = 0;"
2596 "while (x != 10) {" 2811 "while (x != 10) {"
2597 " x = x + 10;" 2812 " x = x + 10;"
2598 "}" 2813 "}"
2599 "return x;", 2814 "return x;",
(...skipping 3190 matching lines...) Expand 10 before | Expand all | Expand 10 after
5790 // inside eval. 6005 // inside eval.
5791 Handle<BytecodeArray> bytecode_array = 6006 Handle<BytecodeArray> bytecode_array =
5792 helper.MakeBytecode(script.c_str(), "t", "f"); 6007 helper.MakeBytecode(script.c_str(), "t", "f");
5793 CheckBytecodeArrayEqual(snippets[i], bytecode_array); 6008 CheckBytecodeArrayEqual(snippets[i], bytecode_array);
5794 } 6009 }
5795 } 6010 }
5796 6011
5797 } // namespace interpreter 6012 } // namespace interpreter
5798 } // namespace internal 6013 } // namespace internal
5799 } // namespace v8 6014 } // namespace v8
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698