diff options
author | Michaël Zasso <targos@protonmail.com> | 2017-03-21 10:16:54 +0100 |
---|---|---|
committer | Michaël Zasso <targos@protonmail.com> | 2017-03-25 09:44:10 +0100 |
commit | c459d8ea5d402c702948c860d9497b2230ff7e8a (patch) | |
tree | 56c282fc4d40e5cb613b47cf7be3ea0526ed5b6f /deps/v8/test/cctest/interpreter | |
parent | e0bc5a7361b1d29c3ed034155fd779ce6f44fb13 (diff) | |
download | android-node-v8-c459d8ea5d402c702948c860d9497b2230ff7e8a.tar.gz android-node-v8-c459d8ea5d402c702948c860d9497b2230ff7e8a.tar.bz2 android-node-v8-c459d8ea5d402c702948c860d9497b2230ff7e8a.zip |
deps: update V8 to 5.7.492.69
PR-URL: https://github.com/nodejs/node/pull/11752
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com>
Diffstat (limited to 'deps/v8/test/cctest/interpreter')
48 files changed, 1779 insertions, 1173 deletions
diff --git a/deps/v8/test/cctest/interpreter/bytecode-expectations-printer.cc b/deps/v8/test/cctest/interpreter/bytecode-expectations-printer.cc index f7a5bb9467..8f34308ee0 100644 --- a/deps/v8/test/cctest/interpreter/bytecode-expectations-printer.cc +++ b/deps/v8/test/cctest/interpreter/bytecode-expectations-printer.cc @@ -25,6 +25,21 @@ namespace v8 { namespace internal { namespace interpreter { +static const char* NameForNativeContextIntrinsicIndex(uint32_t idx) { + switch (idx) { +#define COMPARE_NATIVE_CONTEXT_INTRINSIC_IDX(NAME, Type, name) \ + case Context::NAME: \ + return #name; + + NATIVE_CONTEXT_INTRINSIC_FUNCTIONS(COMPARE_NATIVE_CONTEXT_INTRINSIC_IDX) + + default: + break; + } + + return "UnknownIntrinsicIndex"; +} + // static const char* const BytecodeExpectationsPrinter::kDefaultTopFunctionName = "__genbckexp_wrapper__"; @@ -162,9 +177,15 @@ void BytecodeExpectationsPrinter::PrintBytecodeOperand( case OperandType::kFlag8: stream << bytecode_iterator.GetFlagOperand(op_index); break; - case OperandType::kIdx: - stream << bytecode_iterator.GetIndexOperand(op_index); + case OperandType::kIdx: { + uint32_t idx = bytecode_iterator.GetIndexOperand(op_index); + if (bytecode == Bytecode::kCallJSRuntime && op_index == 0) { + stream << "%" << NameForNativeContextIntrinsicIndex(idx); + } else { + stream << idx; + } break; + } case OperandType::kUImm: stream << bytecode_iterator.GetUnsignedImmediateOperand(op_index); break; diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/ArrayLiterals.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/ArrayLiterals.golden index 92cdcac1bf..2d57edf4a0 100644 --- a/deps/v8/test/cctest/interpreter/bytecode_expectations/ArrayLiterals.golden +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/ArrayLiterals.golden @@ -18,7 +18,7 @@ bytecodes: [ /* 51 S> */ B(Return), ] constant pool: [ - FIXED_ARRAY_TYPE, + CONSTANT_ELEMENTS_PAIR_TYPE, ] handlers: [ ] @@ -42,13 +42,13 @@ bytecodes: [ /* 54 E> */ B(StaKeyedPropertySloppy), R(2), R(1), U8(3), B(LdaSmi), U8(1), B(Star), R(1), - /* 57 E> */ B(AddSmi), U8(1), R(0), U8(2), + /* 59 E> */ B(AddSmi), U8(1), R(0), U8(2), B(StaKeyedPropertySloppy), R(2), R(1), U8(3), B(Ldar), R(2), /* 66 S> */ B(Return), ] constant pool: [ - FIXED_ARRAY_TYPE, + CONSTANT_ELEMENTS_PAIR_TYPE, ] handlers: [ ] @@ -66,7 +66,7 @@ bytecodes: [ /* 62 S> */ B(Return), ] constant pool: [ - FIXED_ARRAY_TYPE, + CONSTANT_ELEMENTS_PAIR_TYPE, ] handlers: [ ] @@ -100,7 +100,7 @@ bytecodes: [ B(Star), R(4), B(LdaZero), B(Star), R(3), - /* 66 E> */ B(AddSmi), U8(2), R(0), U8(4), + /* 68 E> */ B(AddSmi), U8(2), R(0), U8(4), B(StaKeyedPropertySloppy), R(4), R(3), U8(5), B(Ldar), R(4), B(StaKeyedPropertySloppy), R(2), R(1), U8(7), @@ -108,9 +108,9 @@ bytecodes: [ /* 77 S> */ B(Return), ] constant pool: [ - FIXED_ARRAY_TYPE, - FIXED_ARRAY_TYPE, - FIXED_ARRAY_TYPE, + CONSTANT_ELEMENTS_PAIR_TYPE, + CONSTANT_ELEMENTS_PAIR_TYPE, + CONSTANT_ELEMENTS_PAIR_TYPE, ] handlers: [ ] diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/ArrayLiteralsWide.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/ArrayLiteralsWide.golden index 6431d8adbe..1dcfc48cbc 100644 --- a/deps/v8/test/cctest/interpreter/bytecode_expectations/ArrayLiteralsWide.golden +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/ArrayLiteralsWide.golden @@ -1043,7 +1043,7 @@ constant pool: [ HEAP_NUMBER_TYPE [1.23], HEAP_NUMBER_TYPE [1.23], HEAP_NUMBER_TYPE [1.23], - FIXED_ARRAY_TYPE, + CONSTANT_ELEMENTS_PAIR_TYPE, ] handlers: [ ] diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/AssignmentsInBinaryExpression.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/AssignmentsInBinaryExpression.golden index d36860174c..4ea65897ff 100644 --- a/deps/v8/test/cctest/interpreter/bytecode_expectations/AssignmentsInBinaryExpression.golden +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/AssignmentsInBinaryExpression.golden @@ -74,11 +74,11 @@ bytecodes: [ /* 46 S> */ B(LdaSmi), U8(100), B(Mov), R(0), R(1), B(Star), R(0), - /* 57 E> */ B(Add), R(1), U8(2), + /* 52 E> */ B(Add), R(1), U8(2), B(Star), R(1), B(LdaSmi), U8(101), B(Star), R(0), - /* 69 E> */ B(Add), R(1), U8(3), + /* 64 E> */ B(Add), R(1), U8(3), B(Star), R(0), /* 77 S> */ B(Nop), /* 87 S> */ B(Return), @@ -104,11 +104,11 @@ bytecodes: [ B(Star), R(0), /* 46 S> */ B(LdaSmi), U8(56), B(Star), R(0), - /* 61 E> */ B(Sub), R(0), U8(2), + /* 59 E> */ B(Sub), R(0), U8(2), B(Star), R(1), B(LdaSmi), U8(57), B(Star), R(0), - /* 68 E> */ B(Add), R(1), U8(3), + /* 63 E> */ B(Add), R(1), U8(3), B(Star), R(0), /* 75 S> */ B(Inc), U8(4), B(Star), R(0), @@ -136,15 +136,15 @@ bytecodes: [ /* 76 S> */ B(LdaSmi), U8(1), B(Mov), R(0), R(2), B(Star), R(0), - /* 61 E> */ B(Add), R(2), U8(2), + /* 56 E> */ B(Add), R(2), U8(2), B(Star), R(2), B(LdaSmi), U8(2), B(Star), R(0), - /* 71 E> */ B(Add), R(2), U8(3), + /* 66 E> */ B(Add), R(2), U8(3), B(Star), R(2), B(LdaSmi), U8(3), B(Star), R(0), - /* 81 E> */ B(Add), R(2), U8(4), + /* 76 E> */ B(Add), R(2), U8(4), B(Star), R(1), /* 87 S> */ B(Nop), /* 97 S> */ B(Return), @@ -170,15 +170,15 @@ bytecodes: [ /* 76 S> */ B(LdaSmi), U8(1), B(Mov), R(0), R(1), B(Star), R(0), - /* 61 E> */ B(Add), R(1), U8(2), + /* 56 E> */ B(Add), R(1), U8(2), B(Star), R(1), B(LdaSmi), U8(2), B(Star), R(0), - /* 71 E> */ B(Add), R(1), U8(3), + /* 66 E> */ B(Add), R(1), U8(3), B(Star), R(1), B(LdaSmi), U8(3), B(Star), R(0), - /* 81 E> */ B(Add), R(1), U8(4), + /* 76 E> */ B(Add), R(1), U8(4), B(Star), R(0), /* 87 S> */ B(Nop), /* 97 S> */ B(Return), @@ -205,29 +205,29 @@ bytecodes: [ /* 54 S> */ B(LdaSmi), U8(1), B(Mov), R(0), R(2), B(Star), R(0), - /* 68 E> */ B(Add), R(2), U8(2), + /* 63 E> */ B(Add), R(2), U8(2), B(Star), R(2), - /* 76 E> */ B(AddSmi), U8(1), R(0), U8(3), + /* 78 E> */ B(AddSmi), U8(1), R(0), U8(3), B(Star), R(3), B(LdaSmi), U8(2), B(Star), R(1), - /* 88 E> */ B(Mul), R(3), U8(4), - B(Add), R(2), U8(5), + /* 83 E> */ B(Mul), R(3), U8(4), + /* 73 E> */ B(Add), R(2), U8(5), B(Star), R(2), B(LdaSmi), U8(3), B(Star), R(1), - /* 98 E> */ B(Add), R(2), U8(6), + /* 93 E> */ B(Add), R(2), U8(6), B(Star), R(2), B(LdaSmi), U8(4), B(Star), R(0), - /* 108 E> */ B(Add), R(2), U8(7), + /* 103 E> */ B(Add), R(2), U8(7), B(Star), R(2), B(LdaSmi), U8(5), B(Star), R(1), - /* 118 E> */ B(Add), R(2), U8(8), + /* 113 E> */ B(Add), R(2), U8(8), B(Star), R(2), B(Ldar), R(1), - /* 125 E> */ B(Add), R(2), U8(9), + /* 123 E> */ B(Add), R(2), U8(9), /* 128 S> */ B(Return), ] constant pool: [ @@ -250,7 +250,7 @@ bytecodes: [ /* 46 S> */ B(LdaSmi), U8(1), B(Star), R(1), B(Ldar), R(0), - /* 57 E> */ B(Add), R(1), U8(2), + /* 55 E> */ B(Add), R(1), U8(2), B(Star), R(1), B(Ldar), R(0), B(ToNumber), R(2), @@ -258,12 +258,12 @@ bytecodes: [ B(Inc), U8(3), B(Star), R(0), B(Ldar), R(2), - /* 63 E> */ B(Add), R(1), U8(4), + /* 59 E> */ B(Add), R(1), U8(4), B(Star), R(1), B(Ldar), R(0), B(Inc), U8(5), B(Star), R(0), - /* 72 E> */ B(Add), R(1), U8(6), + /* 67 E> */ B(Add), R(1), U8(6), /* 76 S> */ B(Return), ] constant pool: [ diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/BasicLoops.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/BasicLoops.golden index 1cbd05fcea..d0c7f4934c 100644 --- a/deps/v8/test/cctest/interpreter/bytecode_expectations/BasicLoops.golden +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/BasicLoops.golden @@ -63,7 +63,7 @@ snippet: " " frame size: 2 parameter count: 1 -bytecode array length: 53 +bytecode array length: 54 bytecodes: [ /* 30 E> */ B(StackCheck), /* 42 S> */ B(LdaZero), @@ -72,12 +72,13 @@ bytecodes: [ B(Star), R(1), /* 65 S> */ B(LdaSmi), U8(10), /* 65 E> */ B(TestLessThan), R(0), U8(2), - B(JumpIfFalse), U8(37), + B(JumpIfFalse), U8(38), /* 56 E> */ B(StackCheck), /* 75 S> */ B(LdaSmi), U8(12), - B(Mul), R(1), U8(3), + /* 81 E> */ B(Mul), R(1), U8(3), B(Star), R(1), - /* 89 S> */ B(AddSmi), U8(1), R(0), U8(4), + /* 89 S> */ B(LdaSmi), U8(1), + /* 95 E> */ B(Add), R(0), U8(4), B(Star), R(0), /* 102 S> */ B(LdaSmi), U8(3), /* 108 E> */ B(TestEqual), R(0), U8(5), @@ -87,7 +88,7 @@ bytecodes: [ /* 132 E> */ B(TestEqual), R(0), U8(6), B(JumpIfFalse), U8(4), /* 138 S> */ B(Jump), U8(5), - B(JumpLoop), U8(-39), U8(0), + B(JumpLoop), U8(-40), U8(0), /* 147 S> */ B(Ldar), R(1), /* 157 S> */ B(Return), ] @@ -111,7 +112,7 @@ snippet: " " frame size: 1 parameter count: 1 -bytecode array length: 61 +bytecode array length: 62 bytecodes: [ /* 30 E> */ B(StackCheck), /* 42 S> */ B(LdaZero), @@ -120,26 +121,27 @@ bytecodes: [ /* 62 S> */ B(LdaZero), /* 68 E> */ B(TestLessThan), R(0), U8(2), B(JumpIfFalse), U8(4), - /* 73 S> */ B(Jump), U8(44), + /* 73 S> */ B(Jump), U8(45), /* 85 S> */ B(LdaSmi), U8(3), /* 91 E> */ B(TestEqual), R(0), U8(3), B(JumpIfFalse), U8(4), - /* 97 S> */ B(Jump), U8(38), + /* 97 S> */ B(Jump), U8(39), /* 106 S> */ B(LdaSmi), U8(4), /* 112 E> */ B(TestEqual), R(0), U8(4), B(JumpIfFalse), U8(4), - /* 118 S> */ B(Jump), U8(29), + /* 118 S> */ B(Jump), U8(30), /* 127 S> */ B(LdaSmi), U8(10), /* 133 E> */ B(TestEqual), R(0), U8(5), B(JumpIfFalse), U8(4), - /* 140 S> */ B(Jump), U8(17), + /* 140 S> */ B(Jump), U8(18), /* 152 S> */ B(LdaSmi), U8(5), /* 158 E> */ B(TestEqual), R(0), U8(6), B(JumpIfFalse), U8(4), - /* 164 S> */ B(Jump), U8(11), - /* 173 S> */ B(AddSmi), U8(1), R(0), U8(7), + /* 164 S> */ B(Jump), U8(12), + /* 173 S> */ B(LdaSmi), U8(1), + /* 179 E> */ B(Add), R(0), U8(7), B(Star), R(0), - B(JumpLoop), U8(-51), U8(0), + B(JumpLoop), U8(-52), U8(0), /* 186 S> */ B(Ldar), R(0), /* 196 S> */ B(Return), ] @@ -163,7 +165,7 @@ snippet: " " frame size: 1 parameter count: 1 -bytecode array length: 42 +bytecode array length: 44 bytecodes: [ /* 30 E> */ B(StackCheck), /* 42 S> */ B(LdaZero), @@ -171,16 +173,18 @@ bytecodes: [ /* 45 E> */ B(StackCheck), /* 71 S> */ B(LdaSmi), U8(3), /* 71 E> */ B(TestLessThan), R(0), U8(2), - B(JumpIfFalse), U8(21), + B(JumpIfFalse), U8(22), /* 62 E> */ B(StackCheck), /* 82 S> */ B(LdaSmi), U8(2), /* 88 E> */ B(TestEqual), R(0), U8(3), B(JumpIfFalse), U8(4), - /* 94 S> */ B(Jump), U8(11), - /* 105 S> */ B(AddSmi), U8(1), R(0), U8(4), + /* 94 S> */ B(Jump), U8(12), + /* 105 S> */ B(LdaSmi), U8(1), + /* 111 E> */ B(Add), R(0), U8(4), B(Star), R(0), - B(JumpLoop), U8(-23), U8(1), - /* 122 S> */ B(AddSmi), U8(1), R(0), U8(5), + B(JumpLoop), U8(-24), U8(1), + /* 122 S> */ B(LdaSmi), U8(1), + /* 128 E> */ B(Add), R(0), U8(5), B(Star), R(0), /* 135 S> */ B(Jump), U8(2), /* 144 S> */ B(Ldar), R(0), @@ -203,7 +207,7 @@ snippet: " " frame size: 2 parameter count: 1 -bytecode array length: 33 +bytecode array length: 34 bytecodes: [ /* 30 E> */ B(StackCheck), /* 42 S> */ B(LdaSmi), U8(10), @@ -211,14 +215,15 @@ bytecodes: [ /* 54 S> */ B(LdaSmi), U8(1), B(Star), R(1), /* 64 S> */ B(Ldar), R(0), - B(JumpIfToBooleanFalse), U8(19), + B(JumpIfToBooleanFalse), U8(20), /* 57 E> */ B(StackCheck), /* 71 S> */ B(LdaSmi), U8(12), - B(Mul), R(1), U8(2), + /* 77 E> */ B(Mul), R(1), U8(2), B(Star), R(1), - /* 85 S> */ B(SubSmi), U8(1), R(0), U8(3), + /* 85 S> */ B(LdaSmi), U8(1), + /* 91 E> */ B(Sub), R(0), U8(3), B(Star), R(0), - B(JumpLoop), U8(-18), U8(0), + B(JumpLoop), U8(-19), U8(0), /* 98 S> */ B(Ldar), R(1), /* 108 S> */ B(Return), ] @@ -240,7 +245,7 @@ snippet: " " frame size: 2 parameter count: 1 -bytecode array length: 53 +bytecode array length: 54 bytecodes: [ /* 30 E> */ B(StackCheck), /* 42 S> */ B(LdaZero), @@ -249,22 +254,23 @@ bytecodes: [ B(Star), R(1), /* 56 E> */ B(StackCheck), /* 63 S> */ B(LdaSmi), U8(10), - B(Mul), R(1), U8(2), + /* 69 E> */ B(Mul), R(1), U8(2), B(Star), R(1), /* 77 S> */ B(LdaSmi), U8(5), /* 83 E> */ B(TestEqual), R(0), U8(3), B(JumpIfFalse), U8(4), - /* 89 S> */ B(Jump), U8(27), + /* 89 S> */ B(Jump), U8(28), /* 98 S> */ B(LdaSmi), U8(6), /* 104 E> */ B(TestEqual), R(0), U8(4), B(JumpIfFalse), U8(4), - /* 110 S> */ B(Jump), U8(8), - /* 122 S> */ B(AddSmi), U8(1), R(0), U8(5), + /* 110 S> */ B(Jump), U8(9), + /* 122 S> */ B(LdaSmi), U8(1), + /* 128 E> */ B(Add), R(0), U8(5), B(Star), R(0), /* 144 S> */ B(LdaSmi), U8(10), /* 144 E> */ B(TestLessThan), R(0), U8(6), B(JumpIfFalse), U8(5), - B(JumpLoop), U8(-39), U8(0), + B(JumpLoop), U8(-40), U8(0), /* 151 S> */ B(Ldar), R(1), /* 161 S> */ B(Return), ] @@ -285,7 +291,7 @@ snippet: " " frame size: 2 parameter count: 1 -bytecode array length: 31 +bytecode array length: 32 bytecodes: [ /* 30 E> */ B(StackCheck), /* 42 S> */ B(LdaSmi), U8(10), @@ -294,12 +300,13 @@ bytecodes: [ B(Star), R(1), /* 57 E> */ B(StackCheck), /* 64 S> */ B(LdaSmi), U8(12), - B(Mul), R(1), U8(2), + /* 70 E> */ B(Mul), R(1), U8(2), B(Star), R(1), - /* 78 S> */ B(SubSmi), U8(1), R(0), U8(3), + /* 78 S> */ B(LdaSmi), U8(1), + /* 84 E> */ B(Sub), R(0), U8(3), B(Star), R(0), /* 98 S> */ B(JumpIfToBooleanFalse), U8(5), - B(JumpLoop), U8(-16), U8(0), + B(JumpLoop), U8(-17), U8(0), /* 102 S> */ B(Ldar), R(1), /* 112 S> */ B(Return), ] @@ -321,7 +328,7 @@ snippet: " " frame size: 2 parameter count: 1 -bytecode array length: 43 +bytecode array length: 44 bytecodes: [ /* 30 E> */ B(StackCheck), /* 42 S> */ B(LdaZero), @@ -330,13 +337,14 @@ bytecodes: [ B(Star), R(1), /* 56 E> */ B(StackCheck), /* 63 S> */ B(LdaSmi), U8(10), - B(Mul), R(1), U8(2), + /* 69 E> */ B(Mul), R(1), U8(2), B(Star), R(1), /* 77 S> */ B(LdaSmi), U8(5), /* 83 E> */ B(TestEqual), R(0), U8(3), B(JumpIfFalse), U8(4), - /* 89 S> */ B(Jump), U8(17), - /* 98 S> */ B(AddSmi), U8(1), R(0), U8(4), + /* 89 S> */ B(Jump), U8(18), + /* 98 S> */ B(LdaSmi), U8(1), + /* 104 E> */ B(Add), R(0), U8(4), B(Star), R(0), /* 111 S> */ B(LdaSmi), U8(6), /* 117 E> */ B(TestEqual), R(0), U8(5), @@ -363,7 +371,7 @@ snippet: " " frame size: 2 parameter count: 1 -bytecode array length: 46 +bytecode array length: 47 bytecodes: [ /* 30 E> */ B(StackCheck), /* 42 S> */ B(LdaZero), @@ -372,19 +380,20 @@ bytecodes: [ B(Star), R(1), /* 56 E> */ B(StackCheck), /* 63 S> */ B(LdaSmi), U8(10), - B(Mul), R(1), U8(2), + /* 69 E> */ B(Mul), R(1), U8(2), B(Star), R(1), /* 77 S> */ B(LdaSmi), U8(5), /* 83 E> */ B(TestEqual), R(0), U8(3), B(JumpIfFalse), U8(4), - /* 89 S> */ B(Jump), U8(20), - /* 98 S> */ B(AddSmi), U8(1), R(0), U8(4), + /* 89 S> */ B(Jump), U8(21), + /* 98 S> */ B(LdaSmi), U8(1), + /* 104 E> */ B(Add), R(0), U8(4), B(Star), R(0), /* 111 S> */ B(LdaSmi), U8(6), /* 117 E> */ B(TestEqual), R(0), U8(5), B(JumpIfFalse), U8(4), /* 123 S> */ B(Jump), U8(2), - B(JumpLoop), U8(-32), U8(0), + B(JumpLoop), U8(-33), U8(0), /* 149 S> */ B(Ldar), R(1), /* 159 S> */ B(Return), ] @@ -404,7 +413,7 @@ snippet: " " frame size: 1 parameter count: 1 -bytecode array length: 34 +bytecode array length: 35 bytecodes: [ /* 30 E> */ B(StackCheck), /* 42 S> */ B(LdaZero), @@ -413,14 +422,15 @@ bytecodes: [ /* 58 S> */ B(LdaSmi), U8(1), /* 64 E> */ B(TestEqual), R(0), U8(2), B(JumpIfFalse), U8(4), - /* 70 S> */ B(Jump), U8(20), + /* 70 S> */ B(Jump), U8(21), /* 79 S> */ B(LdaSmi), U8(2), /* 85 E> */ B(TestEqual), R(0), U8(3), B(JumpIfFalse), U8(4), - /* 91 S> */ B(Jump), U8(8), - /* 103 S> */ B(AddSmi), U8(1), R(0), U8(4), + /* 91 S> */ B(Jump), U8(9), + /* 103 S> */ B(LdaSmi), U8(1), + /* 109 E> */ B(Add), R(0), U8(4), B(Star), R(0), - B(JumpLoop), U8(-25), U8(0), + B(JumpLoop), U8(-26), U8(0), B(LdaUndefined), /* 116 S> */ B(Return), ] @@ -439,7 +449,7 @@ snippet: " " frame size: 1 parameter count: 1 -bytecode array length: 34 +bytecode array length: 35 bytecodes: [ /* 30 E> */ B(StackCheck), /* 47 S> */ B(LdaZero), @@ -448,14 +458,15 @@ bytecodes: [ /* 56 S> */ B(LdaSmi), U8(1), /* 62 E> */ B(TestEqual), R(0), U8(2), B(JumpIfFalse), U8(4), - /* 68 S> */ B(Jump), U8(20), + /* 68 S> */ B(Jump), U8(21), /* 77 S> */ B(LdaSmi), U8(2), /* 83 E> */ B(TestEqual), R(0), U8(3), B(JumpIfFalse), U8(4), - /* 89 S> */ B(Jump), U8(8), - /* 101 S> */ B(AddSmi), U8(1), R(0), U8(4), + /* 89 S> */ B(Jump), U8(9), + /* 101 S> */ B(LdaSmi), U8(1), + /* 107 E> */ B(Add), R(0), U8(4), B(Star), R(0), - B(JumpLoop), U8(-25), U8(0), + B(JumpLoop), U8(-26), U8(0), B(LdaUndefined), /* 114 S> */ B(Return), ] @@ -474,7 +485,7 @@ snippet: " " frame size: 1 parameter count: 1 -bytecode array length: 34 +bytecode array length: 35 bytecodes: [ /* 30 E> */ B(StackCheck), /* 42 S> */ B(LdaZero), @@ -483,14 +494,15 @@ bytecodes: [ /* 68 S> */ B(LdaSmi), U8(1), /* 74 E> */ B(TestEqual), R(0), U8(3), B(JumpIfFalse), U8(4), - /* 80 S> */ B(Jump), U8(20), + /* 80 S> */ B(Jump), U8(21), /* 89 S> */ B(LdaSmi), U8(2), /* 95 E> */ B(TestEqual), R(0), U8(4), B(JumpIfFalse), U8(4), /* 101 S> */ B(Jump), U8(2), - /* 55 S> */ B(AddSmi), U8(1), R(0), U8(2), + /* 55 S> */ B(LdaSmi), U8(1), + /* 59 E> */ B(Add), R(0), U8(2), B(Star), R(0), - B(JumpLoop), U8(-25), U8(0), + B(JumpLoop), U8(-26), U8(0), B(LdaUndefined), /* 113 S> */ B(Return), ] @@ -508,7 +520,7 @@ snippet: " " frame size: 1 parameter count: 1 -bytecode array length: 34 +bytecode array length: 35 bytecodes: [ /* 30 E> */ B(StackCheck), /* 47 S> */ B(LdaZero), @@ -517,14 +529,15 @@ bytecodes: [ /* 66 S> */ B(LdaSmi), U8(1), /* 72 E> */ B(TestEqual), R(0), U8(3), B(JumpIfFalse), U8(4), - /* 78 S> */ B(Jump), U8(20), + /* 78 S> */ B(Jump), U8(21), /* 87 S> */ B(LdaSmi), U8(2), /* 93 E> */ B(TestEqual), R(0), U8(4), B(JumpIfFalse), U8(4), /* 99 S> */ B(Jump), U8(2), - /* 53 S> */ B(AddSmi), U8(1), R(0), U8(2), + /* 53 S> */ B(LdaSmi), U8(1), + /* 57 E> */ B(Add), R(0), U8(2), B(Star), R(0), - B(JumpLoop), U8(-25), U8(0), + B(JumpLoop), U8(-26), U8(0), B(LdaUndefined), /* 111 S> */ B(Return), ] @@ -543,7 +556,7 @@ snippet: " " frame size: 2 parameter count: 1 -bytecode array length: 34 +bytecode array length: 36 bytecodes: [ /* 30 E> */ B(StackCheck), /* 42 S> */ B(LdaZero), @@ -552,14 +565,16 @@ bytecodes: [ B(Star), R(1), /* 63 S> */ B(LdaSmi), U8(100), /* 63 E> */ B(TestLessThan), R(1), U8(2), - B(JumpIfFalse), U8(20), + B(JumpIfFalse), U8(22), /* 45 E> */ B(StackCheck), - /* 85 S> */ B(AddSmi), U8(1), R(0), U8(4), + /* 85 S> */ B(LdaSmi), U8(1), + /* 91 E> */ B(Add), R(0), U8(4), B(Star), R(0), /* 98 S> */ B(Jump), U8(2), - /* 72 S> */ B(AddSmi), U8(1), R(1), U8(3), + /* 72 S> */ B(LdaSmi), U8(1), + /* 76 E> */ B(Add), R(1), U8(3), B(Star), R(1), - B(JumpLoop), U8(-22), U8(0), + B(JumpLoop), U8(-24), U8(0), B(LdaUndefined), /* 110 S> */ B(Return), ] @@ -589,7 +604,7 @@ bytecodes: [ B(JumpIfToBooleanFalse), U8(19), /* 45 E> */ B(StackCheck), /* 74 S> */ B(LdaSmi), U8(12), - B(Mul), R(0), U8(3), + /* 80 E> */ B(Mul), R(0), U8(3), B(Star), R(0), /* 67 S> */ B(Ldar), R(1), B(Dec), U8(2), @@ -639,7 +654,7 @@ snippet: " " frame size: 2 parameter count: 1 -bytecode array length: 35 +bytecode array length: 36 bytecodes: [ /* 30 E> */ B(StackCheck), /* 42 S> */ B(LdaZero), @@ -647,7 +662,8 @@ bytecodes: [ /* 58 S> */ B(LdaZero), B(Star), R(1), /* 45 E> */ B(StackCheck), - /* 76 S> */ B(AddSmi), U8(1), R(0), U8(3), + /* 76 S> */ B(LdaSmi), U8(1), + /* 82 E> */ B(Add), R(0), U8(3), B(Star), R(0), /* 89 S> */ B(LdaSmi), U8(20), /* 95 E> */ B(TestEqual), R(0), U8(4), @@ -656,7 +672,7 @@ bytecodes: [ /* 69 S> */ B(Ldar), R(1), B(Inc), U8(2), B(Star), R(1), - B(JumpLoop), U8(-22), U8(0), + B(JumpLoop), U8(-23), U8(0), /* 112 S> */ B(Ldar), R(0), /* 122 S> */ B(Return), ] @@ -679,20 +695,20 @@ snippet: " " frame size: 4 parameter count: 1 -bytecode array length: 53 +bytecode array length: 54 bytecodes: [ /* 30 E> */ B(StackCheck), /* 42 S> */ B(LdaZero), B(Star), R(1), /* 52 S> */ B(Ldar), R(1), - B(JumpIfToBooleanFalse), U8(45), + B(JumpIfToBooleanFalse), U8(46), /* 45 E> */ B(StackCheck), B(Ldar), R(closure), B(CreateBlockContext), U8(0), B(PushContext), R(3), B(LdaTheHole), B(StaCurrentContextSlot), U8(4), - B(CreateClosure), U8(1), U8(2), + B(CreateClosure), U8(1), U8(2), U8(2), B(Star), R(0), /* 73 S> */ B(LdaSmi), U8(1), /* 73 E> */ B(StaCurrentContextSlot), U8(4), @@ -703,10 +719,10 @@ bytecodes: [ B(PopContext), R(3), B(Jump), U8(10), /* 126 S> */ B(LdaCurrentContextSlot), U8(4), - B(Inc), U8(2), + B(Inc), U8(3), /* 127 E> */ B(StaCurrentContextSlot), U8(4), B(PopContext), R(3), - B(JumpLoop), U8(-44), U8(0), + B(JumpLoop), U8(-45), U8(0), B(LdaUndefined), /* 137 S> */ B(Return), ] diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/BreakableBlocks.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/BreakableBlocks.golden index 9058fb8ad1..ce343d01b3 100644 --- a/deps/v8/test/cctest/interpreter/bytecode_expectations/BreakableBlocks.golden +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/BreakableBlocks.golden @@ -17,12 +17,13 @@ snippet: " " frame size: 1 parameter count: 1 -bytecode array length: 15 +bytecode array length: 16 bytecodes: [ /* 30 E> */ B(StackCheck), /* 42 S> */ B(LdaZero), B(Star), R(0), - /* 56 S> */ B(AddSmi), U8(1), R(0), U8(2), + /* 56 S> */ B(LdaSmi), U8(1), + /* 62 E> */ B(Add), R(0), U8(2), B(Star), R(0), /* 69 S> */ B(Jump), U8(2), /* 97 S> */ B(Ldar), R(0), @@ -69,7 +70,7 @@ bytecodes: [ B(Inc), U8(6), B(Star), R(0), /* 142 S> */ B(Ldar), R(2), - /* 150 E> */ B(Add), R(1), U8(7), + /* 148 E> */ B(Add), R(1), U8(7), B(Star), R(3), B(LdaSmi), U8(12), /* 152 E> */ B(TestEqual), R(3), U8(8), @@ -101,7 +102,7 @@ snippet: " " frame size: 3 parameter count: 1 -bytecode array length: 30 +bytecode array length: 31 bytecodes: [ /* 30 E> */ B(StackCheck), B(Ldar), R(closure), @@ -109,7 +110,7 @@ bytecodes: [ B(PushContext), R(2), B(LdaTheHole), B(StaCurrentContextSlot), U8(4), - B(CreateClosure), U8(1), U8(2), + B(CreateClosure), U8(1), U8(2), U8(2), B(Star), R(0), /* 53 S> */ B(LdaSmi), U8(10), /* 53 E> */ B(StaCurrentContextSlot), U8(4), @@ -142,7 +143,7 @@ snippet: " " frame size: 4 parameter count: 1 -bytecode array length: 53 +bytecode array length: 54 bytecodes: [ B(CreateFunctionContext), U8(1), B(PushContext), R(2), @@ -156,7 +157,7 @@ bytecodes: [ B(PushContext), R(3), B(LdaTheHole), B(StaCurrentContextSlot), U8(4), - B(CreateClosure), U8(1), U8(2), + B(CreateClosure), U8(1), U8(2), U8(2), B(Star), R(0), /* 76 S> */ B(LdaSmi), U8(2), /* 76 E> */ B(StaCurrentContextSlot), U8(4), diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/CallGlobal.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/CallGlobal.golden index 40be0533c1..beb9a30222 100644 --- a/deps/v8/test/cctest/interpreter/bytecode_expectations/CallGlobal.golden +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/CallGlobal.golden @@ -14,17 +14,18 @@ snippet: " " frame size: 2 parameter count: 1 -bytecode array length: 14 +bytecode array length: 15 bytecodes: [ /* 27 E> */ B(StackCheck), /* 32 S> */ B(LdaUndefined), B(Star), R(1), - B(LdaGlobal), U8(4), + B(LdaGlobal), U8(0), U8(4), B(Star), R(0), /* 39 E> */ B(Call), R(0), R(1), U8(1), U8(2), /* 44 S> */ B(Return), ] constant pool: [ + ONE_BYTE_INTERNALIZED_STRING_TYPE ["t"], ] handlers: [ ] @@ -37,12 +38,12 @@ snippet: " " frame size: 5 parameter count: 1 -bytecode array length: 26 +bytecode array length: 27 bytecodes: [ /* 34 E> */ B(StackCheck), /* 39 S> */ B(LdaUndefined), B(Star), R(1), - B(LdaGlobal), U8(4), + B(LdaGlobal), U8(0), U8(4), B(Star), R(0), B(LdaSmi), U8(1), B(Star), R(2), @@ -54,6 +55,7 @@ bytecodes: [ /* 58 S> */ B(Return), ] constant pool: [ + ONE_BYTE_INTERNALIZED_STRING_TYPE ["t"], ] handlers: [ ] diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/CallLookupSlot.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/CallLookupSlot.golden index e05419fbff..cad09007e5 100644 --- a/deps/v8/test/cctest/interpreter/bytecode_expectations/CallLookupSlot.golden +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/CallLookupSlot.golden @@ -11,7 +11,7 @@ snippet: " " frame size: 10 parameter count: 1 -bytecode array length: 81 +bytecode array length: 82 bytecodes: [ B(CreateFunctionContext), U8(3), B(PushContext), R(0), @@ -22,11 +22,11 @@ bytecodes: [ B(Ldar), R(new_target), B(StaCurrentContextSlot), U8(5), /* 30 E> */ B(StackCheck), - /* 34 S> */ B(CreateClosure), U8(0), U8(2), + /* 34 S> */ B(CreateClosure), U8(0), U8(2), U8(2), /* 36 E> */ B(StaLookupSlotSloppy), U8(1), /* 52 S> */ B(LdaUndefined), B(Star), R(2), - /* 52 E> */ B(LdaLookupGlobalSlot), U8(2), U8(4), U8(1), + /* 52 E> */ B(LdaLookupGlobalSlot), U8(2), U8(5), U8(1), B(Star), R(1), B(LdaConstant), U8(3), B(Star), R(3), @@ -41,12 +41,12 @@ bytecodes: [ B(Mov), R(closure), R(6), B(CallRuntime), U16(Runtime::kResolvePossiblyDirectEval), R(4), U8(6), B(Star), R(1), - /* 52 E> */ B(Call), R(1), R(2), U8(2), U8(2), + /* 52 E> */ B(Call), R(1), R(2), U8(2), U8(3), /* 62 S> */ B(LdaUndefined), B(Star), R(2), - /* 69 E> */ B(LdaLookupGlobalSlot), U8(1), U8(8), U8(1), + /* 69 E> */ B(LdaLookupGlobalSlot), U8(1), U8(9), U8(1), B(Star), R(1), - /* 69 E> */ B(Call), R(1), R(2), U8(1), U8(6), + /* 69 E> */ B(Call), R(1), R(2), U8(1), U8(7), /* 74 S> */ B(Return), ] constant pool: [ diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/CallNew.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/CallNew.golden index eb5b0630f4..f60f73e065 100644 --- a/deps/v8/test/cctest/interpreter/bytecode_expectations/CallNew.golden +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/CallNew.golden @@ -14,15 +14,16 @@ snippet: " " frame size: 1 parameter count: 1 -bytecode array length: 11 +bytecode array length: 12 bytecodes: [ /* 45 E> */ B(StackCheck), - /* 50 S> */ B(LdaGlobal), U8(4), + /* 50 S> */ B(LdaGlobal), U8(0), U8(4), B(Star), R(0), /* 57 E> */ B(New), R(0), R(0), U8(0), U8(2), /* 68 S> */ B(Return), ] constant pool: [ + ONE_BYTE_INTERNALIZED_STRING_TYPE ["bar"], ] handlers: [ ] @@ -35,10 +36,10 @@ snippet: " " frame size: 2 parameter count: 1 -bytecode array length: 17 +bytecode array length: 18 bytecodes: [ /* 58 E> */ B(StackCheck), - /* 63 S> */ B(LdaGlobal), U8(4), + /* 63 S> */ B(LdaGlobal), U8(0), U8(4), B(Star), R(0), B(LdaSmi), U8(3), B(Star), R(1), @@ -47,6 +48,7 @@ bytecodes: [ /* 82 S> */ B(Return), ] constant pool: [ + ONE_BYTE_INTERNALIZED_STRING_TYPE ["bar"], ] handlers: [ ] @@ -64,10 +66,10 @@ snippet: " " frame size: 4 parameter count: 1 -bytecode array length: 25 +bytecode array length: 26 bytecodes: [ /* 100 E> */ B(StackCheck), - /* 105 S> */ B(LdaGlobal), U8(4), + /* 105 S> */ B(LdaGlobal), U8(0), U8(4), B(Star), R(0), B(LdaSmi), U8(3), B(Star), R(1), @@ -80,6 +82,7 @@ bytecodes: [ /* 130 S> */ B(Return), ] constant pool: [ + ONE_BYTE_INTERNALIZED_STRING_TYPE ["bar"], ] handlers: [ ] diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/CallRuntime.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/CallRuntime.golden index 149e668291..31e697590e 100644 --- a/deps/v8/test/cctest/interpreter/bytecode_expectations/CallRuntime.golden +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/CallRuntime.golden @@ -79,11 +79,11 @@ bytecodes: [ B(Star), R(0), B(CreateArrayLiteral), U8(0), U8(0), U8(9), B(Star), R(1), - B(CallJSRuntime), U8(154), R(0), U8(2), + B(CallJSRuntime), U8(%spread_iterable), R(0), U8(2), /* 44 S> */ B(Return), ] constant pool: [ - FIXED_ARRAY_TYPE, + CONSTANT_ELEMENTS_PAIR_TYPE, ] handlers: [ ] diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/ClassAndSuperClass.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/ClassAndSuperClass.golden index 174641bc74..0c41685b86 100644 --- a/deps/v8/test/cctest/interpreter/bytecode_expectations/ClassAndSuperClass.golden +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/ClassAndSuperClass.golden @@ -36,7 +36,7 @@ bytecodes: [ B(Star), R(1), /* 117 E> */ B(Call), R(1), R(this), U8(1), U8(2), B(Star), R(1), - B(AddSmi), U8(1), R(1), U8(8), + /* 126 E> */ B(AddSmi), U8(1), R(1), U8(8), /* 131 S> */ B(Return), ] constant pool: [ @@ -107,14 +107,14 @@ snippet: " " frame size: 4 parameter count: 1 -bytecode array length: 82 +bytecode array length: 75 bytecodes: [ B(Mov), R(closure), R(1), B(Mov), R(new_target), R(0), B(Ldar), R(new_target), /* 113 E> */ B(StackCheck), - /* 118 S> */ B(CallRuntime), U16(Runtime::k_GetSuperConstructor), R(1), U8(1), - B(Star), R(2), + /* 118 S> */ B(Ldar), R(1), + B(GetSuperConstructor), R(2), B(LdaSmi), U8(1), B(Star), R(3), B(Ldar), R(0), @@ -122,10 +122,8 @@ bytecodes: [ B(Star), R(2), B(Ldar), R(this), B(JumpIfNotHole), U8(4), - B(Jump), U8(11), - B(LdaConstant), U8(0), - B(Star), R(3), - /* 118 E> */ B(CallRuntime), U16(Runtime::kThrowReferenceError), R(3), U8(1), + B(Jump), U8(7), + /* 118 E> */ B(CallRuntime), U16(Runtime::kThrowSuperAlreadyCalledError), R(0), U8(0), B(Mov), R(2), R(this), /* 128 S> */ B(Ldar), R(this), B(JumpIfNotHole), U8(11), @@ -162,25 +160,23 @@ snippet: " test = new B().constructor; })(); " -frame size: 4 +frame size: 3 parameter count: 1 -bytecode array length: 78 +bytecode array length: 71 bytecodes: [ B(Mov), R(closure), R(1), B(Mov), R(new_target), R(0), B(Ldar), R(new_target), /* 112 E> */ B(StackCheck), - /* 117 S> */ B(CallRuntime), U16(Runtime::k_GetSuperConstructor), R(1), U8(1), - B(Star), R(2), + /* 117 S> */ B(Ldar), R(1), + B(GetSuperConstructor), R(2), B(Ldar), R(0), /* 117 E> */ B(New), R(2), R(0), U8(0), U8(2), B(Star), R(2), B(Ldar), R(this), B(JumpIfNotHole), U8(4), - B(Jump), U8(11), - B(LdaConstant), U8(0), - B(Star), R(3), - /* 117 E> */ B(CallRuntime), U16(Runtime::kThrowReferenceError), R(3), U8(1), + B(Jump), U8(7), + /* 117 E> */ B(CallRuntime), U16(Runtime::kThrowSuperAlreadyCalledError), R(0), U8(0), B(Mov), R(2), R(this), /* 126 S> */ B(Ldar), R(this), B(JumpIfNotHole), U8(11), diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/ClassDeclarations.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/ClassDeclarations.golden index 765ce65efd..7b283024c8 100644 --- a/deps/v8/test/cctest/interpreter/bytecode_expectations/ClassDeclarations.golden +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/ClassDeclarations.golden @@ -12,7 +12,7 @@ snippet: " speak() { console.log(this.name + ' is speaking.'); } } " -frame size: 10 +frame size: 9 parameter count: 1 bytecode array length: 75 bytecodes: [ @@ -21,28 +21,26 @@ bytecodes: [ /* 30 E> */ B(StackCheck), B(LdaTheHole), B(Star), R(0), - /* 34 S> */ B(LdaTheHole), + /* 34 S> */ B(CreateClosure), U8(0), U8(2), U8(2), B(Star), R(3), - B(CreateClosure), U8(0), U8(2), + B(LdaTheHole), B(Star), R(4), B(LdaSmi), U8(34), - B(Star), R(5), - B(Wide), B(LdaSmi), U16(148), B(Star), R(6), - B(CallRuntime), U16(Runtime::kDefineClass), R(3), U8(4), - B(Star), R(3), - B(LdaNamedProperty), R(3), U8(1), U8(2), + B(Wide), B(LdaSmi), U16(148), + B(Star), R(7), + B(Mov), R(3), R(5), + B(CallRuntime), U16(Runtime::kDefineClass), R(4), U8(4), B(Star), R(4), - B(LdaConstant), U8(2), - B(ToName), R(6), - B(CreateClosure), U8(3), U8(2), + B(LdaConstant), U8(1), + B(Star), R(6), + B(CreateClosure), U8(2), U8(3), U8(2), B(Star), R(7), B(LdaSmi), U8(2), B(Star), R(8), - B(LdaZero), - B(Star), R(9), - B(Mov), R(4), R(5), - B(CallRuntime), U16(Runtime::kDefineDataPropertyInLiteral), R(5), U8(5), + B(Ldar), R(7), + B(StaDataPropertyInLiteral), R(4), R(6), U8(1), U8(4), + B(CallRuntime), U16(Runtime::kInstallClassNameAccessor), R(3), U8(1), B(CallRuntime), U16(Runtime::kToFastProperties), R(3), U8(1), B(Star), R(0), B(Star), R(1), @@ -52,7 +50,6 @@ bytecodes: [ ] constant pool: [ SHARED_FUNCTION_INFO_TYPE, - ONE_BYTE_INTERNALIZED_STRING_TYPE ["prototype"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["speak"], SHARED_FUNCTION_INFO_TYPE, ] @@ -66,7 +63,7 @@ snippet: " speak() { console.log(this.name + ' is speaking.'); } } " -frame size: 10 +frame size: 9 parameter count: 1 bytecode array length: 75 bytecodes: [ @@ -75,28 +72,26 @@ bytecodes: [ /* 30 E> */ B(StackCheck), B(LdaTheHole), B(Star), R(0), - /* 34 S> */ B(LdaTheHole), + /* 34 S> */ B(CreateClosure), U8(0), U8(2), U8(2), B(Star), R(3), - B(CreateClosure), U8(0), U8(2), + B(LdaTheHole), B(Star), R(4), B(LdaSmi), U8(34), - B(Star), R(5), - B(Wide), B(LdaSmi), U16(148), B(Star), R(6), - B(CallRuntime), U16(Runtime::kDefineClass), R(3), U8(4), - B(Star), R(3), - B(LdaNamedProperty), R(3), U8(1), U8(2), + B(Wide), B(LdaSmi), U16(148), + B(Star), R(7), + B(Mov), R(3), R(5), + B(CallRuntime), U16(Runtime::kDefineClass), R(4), U8(4), B(Star), R(4), - B(LdaConstant), U8(2), - B(ToName), R(6), - B(CreateClosure), U8(3), U8(2), + B(LdaConstant), U8(1), + B(Star), R(6), + B(CreateClosure), U8(2), U8(3), U8(2), B(Star), R(7), B(LdaSmi), U8(2), B(Star), R(8), - B(LdaZero), - B(Star), R(9), - B(Mov), R(4), R(5), - B(CallRuntime), U16(Runtime::kDefineDataPropertyInLiteral), R(5), U8(5), + B(Ldar), R(7), + B(StaDataPropertyInLiteral), R(4), R(6), U8(1), U8(4), + B(CallRuntime), U16(Runtime::kInstallClassNameAccessor), R(3), U8(1), B(CallRuntime), U16(Runtime::kToFastProperties), R(3), U8(1), B(Star), R(0), B(Star), R(1), @@ -106,7 +101,6 @@ bytecodes: [ ] constant pool: [ SHARED_FUNCTION_INFO_TYPE, - ONE_BYTE_INTERNALIZED_STRING_TYPE ["prototype"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["speak"], SHARED_FUNCTION_INFO_TYPE, ] @@ -122,9 +116,9 @@ snippet: " static [n1]() { return n1; } } " -frame size: 11 +frame size: 10 parameter count: 1 -bytecode array length: 121 +bytecode array length: 117 bytecodes: [ B(CreateFunctionContext), U8(2), B(PushContext), R(3), @@ -137,40 +131,36 @@ bytecodes: [ /* 57 E> */ B(StaCurrentContextSlot), U8(5), B(LdaTheHole), B(Star), R(0), - /* 62 S> */ B(LdaTheHole), + /* 62 S> */ B(CreateClosure), U8(2), U8(2), U8(2), B(Star), R(4), - B(CreateClosure), U8(2), U8(2), + B(LdaTheHole), B(Star), R(5), B(LdaSmi), U8(62), - B(Star), R(6), - B(Wide), B(LdaSmi), U16(128), B(Star), R(7), - B(CallRuntime), U16(Runtime::kDefineClass), R(4), U8(4), - B(Star), R(4), - B(LdaNamedProperty), R(4), U8(3), U8(2), + B(Wide), B(LdaSmi), U16(128), + B(Star), R(8), + B(Mov), R(4), R(6), + B(CallRuntime), U16(Runtime::kDefineClass), R(5), U8(4), B(Star), R(5), B(LdaCurrentContextSlot), U8(4), /* 75 E> */ B(ToName), R(7), - B(CreateClosure), U8(4), U8(2), + B(CreateClosure), U8(3), U8(3), U8(2), B(Star), R(8), B(LdaSmi), U8(2), B(Star), R(9), - B(LdaSmi), U8(1), - B(Star), R(10), - B(Mov), R(5), R(6), - B(CallRuntime), U16(Runtime::kDefineDataPropertyInLiteral), R(6), U8(5), + B(Ldar), R(8), + B(StaDataPropertyInLiteral), R(5), R(7), U8(3), U8(5), B(LdaCurrentContextSlot), U8(5), /* 106 E> */ B(ToName), R(7), - B(LdaConstant), U8(3), + B(LdaConstant), U8(4), B(TestEqualStrict), R(7), U8(0), B(Mov), R(4), R(6), B(JumpIfToBooleanFalse), U8(7), B(CallRuntime), U16(Runtime::kThrowStaticPrototypeError), R(0), U8(0), - B(CreateClosure), U8(5), U8(2), + B(CreateClosure), U8(5), U8(4), U8(2), B(Star), R(8), - B(LdaSmi), U8(1), - B(Star), R(10), - B(CallRuntime), U16(Runtime::kDefineDataPropertyInLiteral), R(6), U8(5), + B(StaDataPropertyInLiteral), R(6), R(7), U8(3), U8(7), + B(CallRuntime), U16(Runtime::kInstallClassNameAccessorWithCheck), R(4), U8(1), B(CallRuntime), U16(Runtime::kToFastProperties), R(4), U8(1), B(Star), R(0), B(Star), R(1), @@ -182,8 +172,8 @@ constant pool: [ ONE_BYTE_INTERNALIZED_STRING_TYPE ["a"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["b"], SHARED_FUNCTION_INFO_TYPE, - ONE_BYTE_INTERNALIZED_STRING_TYPE ["prototype"], SHARED_FUNCTION_INFO_TYPE, + ONE_BYTE_INTERNALIZED_STRING_TYPE ["prototype"], SHARED_FUNCTION_INFO_TYPE, ] handlers: [ @@ -195,9 +185,9 @@ snippet: " class C { constructor() { count++; }} return new C(); " -frame size: 8 +frame size: 9 parameter count: 1 -bytecode array length: 61 +bytecode array length: 64 bytecodes: [ B(CreateFunctionContext), U8(1), B(PushContext), R(3), @@ -208,29 +198,90 @@ bytecodes: [ /* 46 E> */ B(StaCurrentContextSlot), U8(4), B(LdaTheHole), B(Star), R(0), - /* 49 S> */ B(LdaTheHole), + /* 49 S> */ B(CreateClosure), U8(0), U8(2), U8(2), B(Star), R(4), - B(CreateClosure), U8(0), U8(2), + B(LdaTheHole), B(Star), R(5), B(LdaSmi), U8(49), - B(Star), R(6), - B(LdaSmi), U8(86), B(Star), R(7), - B(CallRuntime), U16(Runtime::kDefineClass), R(4), U8(4), - B(Star), R(4), - B(LdaNamedProperty), R(4), U8(1), U8(2), + B(LdaSmi), U8(86), + B(Star), R(8), + B(Mov), R(4), R(6), + B(CallRuntime), U16(Runtime::kDefineClass), R(5), U8(4), B(Star), R(5), + B(CallRuntime), U16(Runtime::kInstallClassNameAccessor), R(4), U8(1), B(CallRuntime), U16(Runtime::kToFastProperties), R(4), U8(1), B(Star), R(0), B(Star), R(1), B(Star), R(2), /* 87 S> */ B(Nop), - /* 94 E> */ B(New), R(2), R(0), U8(0), U8(4), + /* 94 E> */ B(New), R(2), R(0), U8(0), U8(3), /* 103 S> */ B(Return), ] constant pool: [ SHARED_FUNCTION_INFO_TYPE, - ONE_BYTE_INTERNALIZED_STRING_TYPE ["prototype"], +] +handlers: [ +] + +--- +snippet: " + (class {}) + class E { static name () {}} +" +frame size: 10 +parameter count: 1 +bytecode array length: 102 +bytecodes: [ + B(LdaTheHole), + B(Star), R(3), + /* 30 E> */ B(StackCheck), + /* 35 S> */ B(CreateClosure), U8(0), U8(2), U8(2), + B(Star), R(4), + B(LdaTheHole), + B(Star), R(5), + B(LdaSmi), U8(35), + B(Star), R(7), + B(LdaSmi), U8(43), + B(Star), R(8), + B(Mov), R(4), R(6), + B(CallRuntime), U16(Runtime::kDefineClass), R(5), U8(4), + B(Star), R(5), + B(CallRuntime), U16(Runtime::kToFastProperties), R(4), U8(1), + B(Star), R(1), + B(LdaTheHole), + B(Star), R(0), + /* 45 S> */ B(CreateClosure), U8(1), U8(3), U8(2), + B(Star), R(4), + B(LdaTheHole), + B(Star), R(5), + B(LdaSmi), U8(45), + B(Star), R(7), + B(LdaSmi), U8(73), + B(Star), R(8), + B(Mov), R(4), R(6), + B(CallRuntime), U16(Runtime::kDefineClass), R(5), U8(4), + B(Star), R(5), + B(LdaConstant), U8(2), + B(Star), R(7), + B(CreateClosure), U8(3), U8(4), U8(2), + B(Star), R(8), + B(LdaSmi), U8(2), + B(Star), R(9), + B(Ldar), R(8), + B(StaDataPropertyInLiteral), R(6), R(7), U8(1), U8(5), + B(CallRuntime), U16(Runtime::kToFastProperties), R(4), U8(1), + B(Star), R(0), + B(Star), R(2), + B(Star), R(3), + B(LdaUndefined), + /* 74 S> */ B(Return), +] +constant pool: [ + SHARED_FUNCTION_INFO_TYPE, + SHARED_FUNCTION_INFO_TYPE, + ONE_BYTE_INTERNALIZED_STRING_TYPE ["name"], + SHARED_FUNCTION_INFO_TYPE, ] handlers: [ ] diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/CompoundExpressions.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/CompoundExpressions.golden index c5ecec9abf..273f3323eb 100644 --- a/deps/v8/test/cctest/interpreter/bytecode_expectations/CompoundExpressions.golden +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/CompoundExpressions.golden @@ -109,17 +109,17 @@ snippet: " " frame size: 2 parameter count: 1 -bytecode array length: 24 +bytecode array length: 25 bytecodes: [ B(CreateFunctionContext), U8(1), B(PushContext), R(0), /* 30 E> */ B(StackCheck), /* 42 S> */ B(LdaSmi), U8(1), /* 42 E> */ B(StaCurrentContextSlot), U8(4), - /* 45 S> */ B(CreateClosure), U8(0), U8(2), + /* 45 S> */ B(CreateClosure), U8(0), U8(2), U8(2), /* 75 S> */ B(LdaCurrentContextSlot), U8(4), B(Star), R(1), - B(BitwiseOrSmi), U8(24), R(1), U8(2), + B(BitwiseOrSmi), U8(24), R(1), U8(3), /* 77 E> */ B(StaCurrentContextSlot), U8(4), B(LdaUndefined), /* 84 S> */ B(Return), diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/ConstVariableContextSlot.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/ConstVariableContextSlot.golden index 8ee13434af..8dc85b3326 100644 --- a/deps/v8/test/cctest/interpreter/bytecode_expectations/ConstVariableContextSlot.golden +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/ConstVariableContextSlot.golden @@ -11,13 +11,13 @@ snippet: " " frame size: 2 parameter count: 1 -bytecode array length: 19 +bytecode array length: 20 bytecodes: [ B(CreateFunctionContext), U8(1), B(PushContext), R(1), B(LdaTheHole), B(StaCurrentContextSlot), U8(4), - B(CreateClosure), U8(0), U8(2), + B(CreateClosure), U8(0), U8(2), U8(2), B(Star), R(0), /* 30 E> */ B(StackCheck), /* 44 S> */ B(LdaSmi), U8(10), @@ -37,13 +37,13 @@ snippet: " " frame size: 2 parameter count: 1 -bytecode array length: 20 +bytecode array length: 21 bytecodes: [ B(CreateFunctionContext), U8(1), B(PushContext), R(1), B(LdaTheHole), B(StaCurrentContextSlot), U8(4), - B(CreateClosure), U8(0), U8(2), + B(CreateClosure), U8(0), U8(2), U8(2), B(Star), R(0), /* 30 E> */ B(StackCheck), /* 44 S> */ B(LdaSmi), U8(10), @@ -63,13 +63,13 @@ snippet: " " frame size: 4 parameter count: 1 -bytecode array length: 39 +bytecode array length: 40 bytecodes: [ B(CreateFunctionContext), U8(1), B(PushContext), R(1), B(LdaTheHole), B(StaCurrentContextSlot), U8(4), - B(CreateClosure), U8(0), U8(2), + B(CreateClosure), U8(0), U8(2), U8(2), B(Star), R(0), /* 30 E> */ B(StackCheck), /* 47 S> */ B(LdaSmi), U8(20), @@ -97,13 +97,13 @@ snippet: " " frame size: 2 parameter count: 1 -bytecode array length: 26 +bytecode array length: 27 bytecodes: [ B(CreateFunctionContext), U8(1), B(PushContext), R(1), B(LdaTheHole), B(StaCurrentContextSlot), U8(4), - B(CreateClosure), U8(0), U8(2), + B(CreateClosure), U8(0), U8(2), U8(2), B(Star), R(0), /* 30 E> */ B(StackCheck), /* 44 S> */ B(LdaSmi), U8(10), diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/ContextParameters.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/ContextParameters.golden index 9a05916e14..63e48fd10a 100644 --- a/deps/v8/test/cctest/interpreter/bytecode_expectations/ContextParameters.golden +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/ContextParameters.golden @@ -13,14 +13,14 @@ snippet: " " frame size: 1 parameter count: 2 -bytecode array length: 13 +bytecode array length: 14 bytecodes: [ B(CreateFunctionContext), U8(1), B(PushContext), R(0), B(Ldar), R(arg0), B(StaCurrentContextSlot), U8(4), /* 10 E> */ B(StackCheck), - /* 19 S> */ B(CreateClosure), U8(0), U8(2), + /* 19 S> */ B(CreateClosure), U8(0), U8(2), U8(2), /* 52 S> */ B(Return), ] constant pool: [ @@ -36,14 +36,14 @@ snippet: " " frame size: 2 parameter count: 2 -bytecode array length: 17 +bytecode array length: 18 bytecodes: [ B(CreateFunctionContext), U8(1), B(PushContext), R(1), B(Ldar), R(arg0), B(StaCurrentContextSlot), U8(4), /* 10 E> */ B(StackCheck), - /* 27 S> */ B(CreateClosure), U8(0), U8(2), + /* 27 S> */ B(CreateClosure), U8(0), U8(2), U8(2), B(Star), R(0), /* 53 S> */ B(LdaCurrentContextSlot), U8(4), /* 66 S> */ B(Return), @@ -61,7 +61,7 @@ snippet: " " frame size: 1 parameter count: 5 -bytecode array length: 17 +bytecode array length: 18 bytecodes: [ B(CreateFunctionContext), U8(2), B(PushContext), R(0), @@ -70,7 +70,7 @@ bytecodes: [ B(Ldar), R(arg2), B(StaCurrentContextSlot), U8(4), /* 10 E> */ B(StackCheck), - /* 29 S> */ B(CreateClosure), U8(0), U8(2), + /* 29 S> */ B(CreateClosure), U8(0), U8(2), U8(2), /* 61 S> */ B(Return), ] constant pool: [ @@ -86,14 +86,14 @@ snippet: " " frame size: 1 parameter count: 1 -bytecode array length: 13 +bytecode array length: 14 bytecodes: [ B(CreateFunctionContext), U8(1), B(PushContext), R(0), /* 10 E> */ B(StackCheck), /* 26 S> */ B(Ldar), R(this), /* 26 E> */ B(StaCurrentContextSlot), U8(4), - /* 32 S> */ B(CreateClosure), U8(0), U8(2), + /* 32 S> */ B(CreateClosure), U8(0), U8(2), U8(2), /* 65 S> */ B(Return), ] constant pool: [ diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/ContextVariables.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/ContextVariables.golden index f4b7943740..b0df006a63 100644 --- a/deps/v8/test/cctest/interpreter/bytecode_expectations/ContextVariables.golden +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/ContextVariables.golden @@ -11,12 +11,12 @@ snippet: " " frame size: 1 parameter count: 1 -bytecode array length: 9 +bytecode array length: 10 bytecodes: [ B(CreateFunctionContext), U8(1), B(PushContext), R(0), /* 30 E> */ B(StackCheck), - /* 41 S> */ B(CreateClosure), U8(0), U8(2), + /* 41 S> */ B(CreateClosure), U8(0), U8(2), U8(2), /* 71 S> */ B(Return), ] constant pool: [ @@ -31,14 +31,14 @@ snippet: " " frame size: 1 parameter count: 1 -bytecode array length: 13 +bytecode array length: 14 bytecodes: [ B(CreateFunctionContext), U8(1), B(PushContext), R(0), /* 30 E> */ B(StackCheck), /* 42 S> */ B(LdaSmi), U8(1), /* 42 E> */ B(StaCurrentContextSlot), U8(4), - /* 45 S> */ B(CreateClosure), U8(0), U8(2), + /* 45 S> */ B(CreateClosure), U8(0), U8(2), U8(2), /* 75 S> */ B(Return), ] constant pool: [ @@ -53,7 +53,7 @@ snippet: " " frame size: 1 parameter count: 1 -bytecode array length: 17 +bytecode array length: 18 bytecodes: [ B(CreateFunctionContext), U8(2), B(PushContext), R(0), @@ -62,7 +62,7 @@ bytecodes: [ /* 42 E> */ B(StaCurrentContextSlot), U8(4), /* 53 S> */ B(LdaSmi), U8(2), /* 53 E> */ B(StaCurrentContextSlot), U8(5), - /* 56 S> */ B(CreateClosure), U8(0), U8(2), + /* 56 S> */ B(CreateClosure), U8(0), U8(2), U8(2), /* 92 S> */ B(Return), ] constant pool: [ @@ -77,14 +77,14 @@ snippet: " " frame size: 3 parameter count: 1 -bytecode array length: 21 +bytecode array length: 22 bytecodes: [ B(CreateFunctionContext), U8(1), B(PushContext), R(0), /* 30 E> */ B(StackCheck), /* 41 S> */ B(LdaUndefined), B(Star), R(2), - B(CreateClosure), U8(0), U8(2), + B(CreateClosure), U8(0), U8(4), U8(2), B(Star), R(1), /* 64 E> */ B(Call), R(1), R(2), U8(1), U8(2), /* 68 S> */ B(LdaCurrentContextSlot), U8(4), @@ -104,7 +104,7 @@ snippet: " " frame size: 2 parameter count: 1 -bytecode array length: 31 +bytecode array length: 32 bytecodes: [ B(CreateFunctionContext), U8(1), B(PushContext), R(0), @@ -120,7 +120,7 @@ bytecodes: [ B(StaCurrentContextSlot), U8(4), /* 69 S> */ B(LdaSmi), U8(2), /* 69 E> */ B(StaCurrentContextSlot), U8(4), - /* 72 S> */ B(CreateClosure), U8(1), U8(2), + /* 72 S> */ B(CreateClosure), U8(1), U8(2), U8(2), B(PopContext), R(0), /* 104 S> */ B(Return), ] @@ -390,7 +390,7 @@ snippet: " " frame size: 3 parameter count: 1 -bytecode array length: 791 +bytecode array length: 792 bytecodes: [ B(CreateFunctionContext), U8(254), B(PushContext), R(0), @@ -903,7 +903,7 @@ bytecodes: [ /* 3435 E> */ B(StaCurrentContextSlot), U8(255), /* 3438 S> */ B(LdaUndefined), B(Star), R(2), - B(LdaGlobal), U8(4), + B(LdaGlobal), U8(0), U8(4), B(Star), R(1), /* 3438 E> */ B(Call), R(1), R(2), U8(1), U8(2), /* 3454 S> */ B(LdaSmi), U8(100), @@ -912,6 +912,7 @@ bytecodes: [ /* 3468 S> */ B(Return), ] constant pool: [ + ONE_BYTE_INTERNALIZED_STRING_TYPE ["eval"], ] handlers: [ ] diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/CountOperators.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/CountOperators.golden index b17f3ecf20..61186cd887 100644 --- a/deps/v8/test/cctest/interpreter/bytecode_expectations/CountOperators.golden +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/CountOperators.golden @@ -201,17 +201,17 @@ snippet: " " frame size: 2 parameter count: 1 -bytecode array length: 21 +bytecode array length: 22 bytecodes: [ B(CreateFunctionContext), U8(1), B(PushContext), R(1), /* 30 E> */ B(StackCheck), /* 42 S> */ B(LdaSmi), U8(1), /* 42 E> */ B(StaCurrentContextSlot), U8(4), - /* 53 S> */ B(CreateClosure), U8(0), U8(2), + /* 53 S> */ B(CreateClosure), U8(0), U8(2), U8(2), B(Star), R(0), /* 78 S> */ B(LdaCurrentContextSlot), U8(4), - B(Inc), U8(2), + B(Inc), U8(3), /* 87 E> */ B(StaCurrentContextSlot), U8(4), /* 90 S> */ B(Return), ] @@ -227,19 +227,19 @@ snippet: " " frame size: 3 parameter count: 1 -bytecode array length: 27 +bytecode array length: 28 bytecodes: [ B(CreateFunctionContext), U8(1), B(PushContext), R(1), /* 30 E> */ B(StackCheck), /* 42 S> */ B(LdaSmi), U8(1), /* 42 E> */ B(StaCurrentContextSlot), U8(4), - /* 53 S> */ B(CreateClosure), U8(0), U8(2), + /* 53 S> */ B(CreateClosure), U8(0), U8(2), U8(2), B(Star), R(0), /* 78 S> */ B(LdaCurrentContextSlot), U8(4), B(ToNumber), R(2), B(Ldar), R(2), - B(Dec), U8(2), + B(Dec), U8(3), /* 86 E> */ B(StaCurrentContextSlot), U8(4), B(Ldar), R(2), /* 90 S> */ B(Return), @@ -273,7 +273,7 @@ bytecodes: [ /* 84 S> */ B(Return), ] constant pool: [ - FIXED_ARRAY_TYPE, + CONSTANT_ELEMENTS_PAIR_TYPE, ] handlers: [ ] diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/CreateRestParameter.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/CreateRestParameter.golden index 851b953309..2abe2d8022 100644 --- a/deps/v8/test/cctest/interpreter/bytecode_expectations/CreateRestParameter.golden +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/CreateRestParameter.golden @@ -95,7 +95,7 @@ bytecodes: [ B(Star), R(3), B(LdaZero), /* 59 E> */ B(LdaKeyedProperty), R(2), U8(4), - B(Add), R(3), U8(6), + /* 48 E> */ B(Add), R(3), U8(6), /* 64 S> */ B(Return), ] constant pool: [ diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/DeclareGlobals.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/DeclareGlobals.golden index 00fa0180e6..91c3bb99d4 100644 --- a/deps/v8/test/cctest/interpreter/bytecode_expectations/DeclareGlobals.golden +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/DeclareGlobals.golden @@ -104,7 +104,7 @@ snippet: " " frame size: 4 parameter count: 1 -bytecode array length: 31 +bytecode array length: 32 bytecodes: [ B(LdaConstant), U8(0), B(Star), R(1), @@ -115,14 +115,15 @@ bytecodes: [ /* 0 E> */ B(StackCheck), /* 16 S> */ B(LdaUndefined), B(Star), R(2), - B(LdaGlobal), U8(2), + B(LdaGlobal), U8(1), U8(2), B(Star), R(1), - /* 16 E> */ B(Call), R(1), R(2), U8(1), U8(4), + /* 16 E> */ B(Call), R(1), R(2), U8(1), U8(5), B(Star), R(0), /* 20 S> */ B(Return), ] constant pool: [ FIXED_ARRAY_TYPE, + ONE_BYTE_INTERNALIZED_STRING_TYPE ["f"], ] handlers: [ ] diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/Delete.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/Delete.golden index 12e421e883..e139fd65d1 100644 --- a/deps/v8/test/cctest/interpreter/bytecode_expectations/Delete.golden +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/Delete.golden @@ -98,7 +98,7 @@ snippet: " " frame size: 2 parameter count: 1 -bytecode array length: 26 +bytecode array length: 27 bytecodes: [ B(CreateFunctionContext), U8(1), B(PushContext), R(0), @@ -106,7 +106,7 @@ bytecodes: [ /* 56 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(1), R(1), B(Ldar), R(1), /* 56 E> */ B(StaCurrentContextSlot), U8(4), - /* 64 S> */ B(CreateClosure), U8(1), U8(2), + /* 64 S> */ B(CreateClosure), U8(1), U8(2), U8(2), /* 93 S> */ B(LdaCurrentContextSlot), U8(4), B(Star), R(1), B(LdaSmi), U8(1), diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/ForIn.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/ForIn.golden index c8cbc7a61d..e03f83d3fc 100644 --- a/deps/v8/test/cctest/interpreter/bytecode_expectations/ForIn.golden +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/ForIn.golden @@ -132,7 +132,7 @@ bytecodes: [ /* 80 S> */ B(Return), ] constant pool: [ - FIXED_ARRAY_TYPE, + CONSTANT_ELEMENTS_PAIR_TYPE, ] handlers: [ ] @@ -188,7 +188,7 @@ bytecodes: [ ] constant pool: [ FIXED_ARRAY_TYPE, - FIXED_ARRAY_TYPE, + CONSTANT_ELEMENTS_PAIR_TYPE, ONE_BYTE_INTERNALIZED_STRING_TYPE ["a"], ] handlers: [ @@ -233,8 +233,8 @@ bytecodes: [ /* 98 S> */ B(Return), ] constant pool: [ - FIXED_ARRAY_TYPE, - FIXED_ARRAY_TYPE, + CONSTANT_ELEMENTS_PAIR_TYPE, + CONSTANT_ELEMENTS_PAIR_TYPE, ] handlers: [ ] diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/ForOf.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/ForOf.golden index 96545a94d8..610b8b1a06 100644 --- a/deps/v8/test/cctest/interpreter/bytecode_expectations/ForOf.golden +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/ForOf.golden @@ -11,7 +11,7 @@ snippet: " " frame size: 15 parameter count: 1 -bytecode array length: 282 +bytecode array length: 272 bytecodes: [ /* 30 E> */ B(StackCheck), B(LdaZero), @@ -19,11 +19,12 @@ bytecodes: [ B(Mov), R(context), R(11), B(Mov), R(context), R(12), /* 48 S> */ B(CreateArrayLiteral), U8(0), U8(0), U8(9), - B(Star), R(14), - B(LdaConstant), U8(1), - /* 48 E> */ B(LdaKeyedProperty), R(14), U8(4), B(Star), R(13), - /* 48 E> */ B(CallProperty), R(13), R(14), U8(1), U8(2), + B(LdaNamedProperty), R(13), U8(1), U8(2), + B(Star), R(14), + B(CallProperty), R(14), R(13), U8(1), U8(4), + B(JumpIfJSReceiver), U8(7), + B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0), B(Star), R(2), /* 45 S> */ B(LdaNamedProperty), R(2), U8(2), U8(8), B(Star), R(13), @@ -66,31 +67,28 @@ bytecodes: [ B(Star), R(10), B(LdaZero), B(Star), R(9), - B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0), + B(LdaTheHole), + B(SetPendingMessage), B(Star), R(11), B(LdaZero), B(TestEqualStrict), R(4), U8(15), - B(JumpIfTrue), U8(122), - B(LdaUndefined), - B(TestEqualStrict), R(2), U8(16), - B(JumpIfTrue), U8(116), - B(LdaNamedProperty), R(2), U8(7), U8(17), + B(JumpIfTrue), U8(111), + B(LdaNamedProperty), R(2), U8(7), U8(16), B(Star), R(6), - B(LdaNull), - B(TestEqual), R(6), U8(19), + B(TestUndetectable), R(6), B(JumpIfFalse), U8(4), - B(Jump), U8(102), + B(Jump), U8(99), B(LdaSmi), U8(1), - B(TestEqualStrict), R(4), U8(20), - B(JumpIfFalse), U8(70), + B(TestEqualStrict), R(4), U8(19), + B(JumpIfFalse), U8(67), B(Ldar), R(6), B(TypeOf), B(Star), R(12), B(LdaConstant), U8(8), - B(TestEqualStrict), R(12), U8(21), + B(TestEqualStrict), R(12), U8(20), B(JumpIfFalse), U8(4), B(Jump), U8(18), - B(Wide), B(LdaSmi), U16(130), + B(Wide), B(LdaSmi), U16(129), B(Star), R(12), B(LdaConstant), U8(9), B(Star), R(13), @@ -100,12 +98,13 @@ bytecodes: [ B(Mov), R(6), R(13), B(Mov), R(2), R(14), B(InvokeIntrinsic), U8(Runtime::k_Call), R(13), U8(2), - B(Jump), U8(23), + B(Jump), U8(20), B(Star), R(13), B(Ldar), R(closure), B(CreateCatchContext), R(13), U8(5), U8(10), B(Star), R(12), - B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0), + B(LdaTheHole), + B(SetPendingMessage), B(Ldar), R(12), B(PushContext), R(8), B(PopContext), R(8), @@ -118,7 +117,8 @@ bytecodes: [ B(JumpIfToBooleanFalse), U8(4), B(Jump), U8(7), B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(7), U8(1), - B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(11), U8(1), + B(Ldar), R(11), + B(SetPendingMessage), B(LdaZero), B(TestEqualStrict), R(9), U8(0), B(JumpIfTrue), U8(4), @@ -129,7 +129,7 @@ bytecodes: [ /* 62 S> */ B(Return), ] constant pool: [ - FIXED_ARRAY_TYPE, + CONSTANT_ELEMENTS_PAIR_TYPE, SYMBOL_TYPE, ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"], @@ -142,9 +142,9 @@ constant pool: [ FIXED_ARRAY_TYPE, ] handlers: [ - [7, 120, 126], - [10, 84, 86], - [204, 214, 216], + [7, 126, 132], + [10, 90, 92], + [199, 209, 211], ] --- @@ -154,7 +154,7 @@ snippet: " " frame size: 16 parameter count: 1 -bytecode array length: 293 +bytecode array length: 286 bytecodes: [ /* 30 E> */ B(StackCheck), /* 42 S> */ B(LdaConstant), U8(0), @@ -163,10 +163,12 @@ bytecodes: [ B(Star), R(5), B(Mov), R(context), R(12), B(Mov), R(context), R(13), - /* 68 S> */ B(LdaConstant), U8(1), - /* 68 E> */ B(LdaKeyedProperty), R(0), U8(4), - B(Star), R(14), - /* 68 E> */ B(CallProperty), R(14), R(0), U8(1), U8(2), + /* 68 S> */ B(LdaNamedProperty), R(0), U8(1), U8(2), + B(Star), R(15), + B(CallProperty), R(15), R(0), U8(1), U8(4), + B(Mov), R(0), R(14), + B(JumpIfJSReceiver), U8(7), + B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0), B(Star), R(3), /* 65 S> */ B(LdaNamedProperty), R(3), U8(2), U8(8), B(Star), R(14), @@ -210,31 +212,28 @@ bytecodes: [ B(Star), R(11), B(LdaSmi), U8(1), B(Star), R(10), - B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0), + B(LdaTheHole), + B(SetPendingMessage), B(Star), R(12), B(LdaZero), B(TestEqualStrict), R(5), U8(15), - B(JumpIfTrue), U8(122), - B(LdaUndefined), - B(TestEqualStrict), R(3), U8(16), - B(JumpIfTrue), U8(116), - B(LdaNamedProperty), R(3), U8(7), U8(17), + B(JumpIfTrue), U8(111), + B(LdaNamedProperty), R(3), U8(7), U8(16), B(Star), R(7), - B(LdaNull), - B(TestEqual), R(7), U8(19), + B(TestUndetectable), R(7), B(JumpIfFalse), U8(4), - B(Jump), U8(102), + B(Jump), U8(99), B(LdaSmi), U8(1), - B(TestEqualStrict), R(5), U8(20), - B(JumpIfFalse), U8(70), + B(TestEqualStrict), R(5), U8(19), + B(JumpIfFalse), U8(67), B(Ldar), R(7), B(TypeOf), B(Star), R(13), B(LdaConstant), U8(8), - B(TestEqualStrict), R(13), U8(21), + B(TestEqualStrict), R(13), U8(20), B(JumpIfFalse), U8(4), B(Jump), U8(18), - B(Wide), B(LdaSmi), U16(130), + B(Wide), B(LdaSmi), U16(129), B(Star), R(13), B(LdaConstant), U8(9), B(Star), R(14), @@ -244,12 +243,13 @@ bytecodes: [ B(Mov), R(7), R(14), B(Mov), R(3), R(15), B(InvokeIntrinsic), U8(Runtime::k_Call), R(14), U8(2), - B(Jump), U8(23), + B(Jump), U8(20), B(Star), R(14), B(Ldar), R(closure), B(CreateCatchContext), R(14), U8(5), U8(10), B(Star), R(13), - B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0), + B(LdaTheHole), + B(SetPendingMessage), B(Ldar), R(13), B(PushContext), R(9), B(PopContext), R(9), @@ -262,7 +262,8 @@ bytecodes: [ B(JumpIfToBooleanFalse), U8(4), B(Jump), U8(7), B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(8), U8(1), - B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(12), U8(1), + B(Ldar), R(12), + B(SetPendingMessage), B(LdaZero), B(TestEqualStrict), R(10), U8(0), B(JumpIfTrue), U8(11), @@ -291,9 +292,9 @@ constant pool: [ FIXED_ARRAY_TYPE, ] handlers: [ - [11, 120, 126], - [14, 84, 86], - [205, 215, 217], + [11, 129, 135], + [14, 93, 95], + [203, 213, 215], ] --- @@ -305,7 +306,7 @@ snippet: " " frame size: 15 parameter count: 1 -bytecode array length: 300 +bytecode array length: 290 bytecodes: [ /* 30 E> */ B(StackCheck), B(LdaZero), @@ -313,11 +314,12 @@ bytecodes: [ B(Mov), R(context), R(11), B(Mov), R(context), R(12), /* 48 S> */ B(CreateArrayLiteral), U8(0), U8(0), U8(9), - B(Star), R(14), - B(LdaConstant), U8(1), - /* 48 E> */ B(LdaKeyedProperty), R(14), U8(4), B(Star), R(13), - /* 48 E> */ B(CallProperty), R(13), R(14), U8(1), U8(2), + B(LdaNamedProperty), R(13), U8(1), U8(2), + B(Star), R(14), + B(CallProperty), R(14), R(13), U8(1), U8(4), + B(JumpIfJSReceiver), U8(7), + B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0), B(Star), R(2), /* 45 S> */ B(LdaNamedProperty), R(2), U8(2), U8(8), B(Star), R(13), @@ -368,31 +370,28 @@ bytecodes: [ B(Star), R(10), B(LdaZero), B(Star), R(9), - B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0), + B(LdaTheHole), + B(SetPendingMessage), B(Star), R(11), B(LdaZero), B(TestEqualStrict), R(4), U8(17), - B(JumpIfTrue), U8(122), - B(LdaUndefined), - B(TestEqualStrict), R(2), U8(18), - B(JumpIfTrue), U8(116), - B(LdaNamedProperty), R(2), U8(7), U8(19), + B(JumpIfTrue), U8(111), + B(LdaNamedProperty), R(2), U8(7), U8(18), B(Star), R(6), - B(LdaNull), - B(TestEqual), R(6), U8(21), + B(TestUndetectable), R(6), B(JumpIfFalse), U8(4), - B(Jump), U8(102), + B(Jump), U8(99), B(LdaSmi), U8(1), - B(TestEqualStrict), R(4), U8(22), - B(JumpIfFalse), U8(70), + B(TestEqualStrict), R(4), U8(21), + B(JumpIfFalse), U8(67), B(Ldar), R(6), B(TypeOf), B(Star), R(12), B(LdaConstant), U8(8), - B(TestEqualStrict), R(12), U8(23), + B(TestEqualStrict), R(12), U8(22), B(JumpIfFalse), U8(4), B(Jump), U8(18), - B(Wide), B(LdaSmi), U16(130), + B(Wide), B(LdaSmi), U16(129), B(Star), R(12), B(LdaConstant), U8(9), B(Star), R(13), @@ -402,12 +401,13 @@ bytecodes: [ B(Mov), R(6), R(13), B(Mov), R(2), R(14), B(InvokeIntrinsic), U8(Runtime::k_Call), R(13), U8(2), - B(Jump), U8(23), + B(Jump), U8(20), B(Star), R(13), B(Ldar), R(closure), B(CreateCatchContext), R(13), U8(5), U8(10), B(Star), R(12), - B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0), + B(LdaTheHole), + B(SetPendingMessage), B(Ldar), R(12), B(PushContext), R(8), B(PopContext), R(8), @@ -420,7 +420,8 @@ bytecodes: [ B(JumpIfToBooleanFalse), U8(4), B(Jump), U8(7), B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(7), U8(1), - B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(11), U8(1), + B(Ldar), R(11), + B(SetPendingMessage), B(LdaZero), B(TestEqualStrict), R(9), U8(0), B(JumpIfTrue), U8(4), @@ -431,7 +432,7 @@ bytecodes: [ /* 113 S> */ B(Return), ] constant pool: [ - FIXED_ARRAY_TYPE, + CONSTANT_ELEMENTS_PAIR_TYPE, SYMBOL_TYPE, ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"], @@ -444,9 +445,9 @@ constant pool: [ FIXED_ARRAY_TYPE, ] handlers: [ - [7, 138, 144], - [10, 102, 104], - [222, 232, 234], + [7, 144, 150], + [10, 108, 110], + [217, 227, 229], ] --- @@ -456,7 +457,7 @@ snippet: " " frame size: 14 parameter count: 1 -bytecode array length: 307 +bytecode array length: 297 bytecodes: [ /* 30 E> */ B(StackCheck), /* 42 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(1), R(8), @@ -466,11 +467,12 @@ bytecodes: [ B(Mov), R(context), R(10), B(Mov), R(context), R(11), /* 77 S> */ B(CreateArrayLiteral), U8(1), U8(1), U8(9), - B(Star), R(13), - B(LdaConstant), U8(2), - /* 77 E> */ B(LdaKeyedProperty), R(13), U8(4), B(Star), R(12), - /* 77 E> */ B(CallProperty), R(12), R(13), U8(1), U8(2), + B(LdaNamedProperty), R(12), U8(2), U8(2), + B(Star), R(13), + B(CallProperty), R(13), R(12), U8(1), U8(4), + B(JumpIfJSReceiver), U8(7), + B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0), B(Star), R(1), /* 74 S> */ B(LdaNamedProperty), R(1), U8(3), U8(8), B(Star), R(12), @@ -516,31 +518,28 @@ bytecodes: [ B(Star), R(9), B(LdaSmi), U8(1), B(Star), R(8), - B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0), + B(LdaTheHole), + B(SetPendingMessage), B(Star), R(10), B(LdaZero), B(TestEqualStrict), R(3), U8(19), - B(JumpIfTrue), U8(122), - B(LdaUndefined), - B(TestEqualStrict), R(1), U8(20), - B(JumpIfTrue), U8(116), - B(LdaNamedProperty), R(1), U8(9), U8(21), + B(JumpIfTrue), U8(111), + B(LdaNamedProperty), R(1), U8(9), U8(20), B(Star), R(5), - B(LdaNull), - B(TestEqual), R(5), U8(23), + B(TestUndetectable), R(5), B(JumpIfFalse), U8(4), - B(Jump), U8(102), + B(Jump), U8(99), B(LdaSmi), U8(1), - B(TestEqualStrict), R(3), U8(24), - B(JumpIfFalse), U8(70), + B(TestEqualStrict), R(3), U8(23), + B(JumpIfFalse), U8(67), B(Ldar), R(5), B(TypeOf), B(Star), R(11), B(LdaConstant), U8(10), - B(TestEqualStrict), R(11), U8(25), + B(TestEqualStrict), R(11), U8(24), B(JumpIfFalse), U8(4), B(Jump), U8(18), - B(Wide), B(LdaSmi), U16(130), + B(Wide), B(LdaSmi), U16(129), B(Star), R(11), B(LdaConstant), U8(11), B(Star), R(12), @@ -550,12 +549,13 @@ bytecodes: [ B(Mov), R(5), R(12), B(Mov), R(1), R(13), B(InvokeIntrinsic), U8(Runtime::k_Call), R(12), U8(2), - B(Jump), U8(23), + B(Jump), U8(20), B(Star), R(12), B(Ldar), R(closure), B(CreateCatchContext), R(12), U8(7), U8(12), B(Star), R(11), - B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0), + B(LdaTheHole), + B(SetPendingMessage), B(Ldar), R(11), B(PushContext), R(7), B(PopContext), R(7), @@ -568,7 +568,8 @@ bytecodes: [ B(JumpIfToBooleanFalse), U8(4), B(Jump), U8(7), B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(6), U8(1), - B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(10), U8(1), + B(Ldar), R(10), + B(SetPendingMessage), B(LdaZero), B(TestEqualStrict), R(8), U8(0), B(JumpIfTrue), U8(11), @@ -585,7 +586,7 @@ bytecodes: [ ] constant pool: [ FIXED_ARRAY_TYPE, - FIXED_ARRAY_TYPE, + CONSTANT_ELEMENTS_PAIR_TYPE, SYMBOL_TYPE, ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"], @@ -599,8 +600,8 @@ constant pool: [ FIXED_ARRAY_TYPE, ] handlers: [ - [15, 134, 140], - [18, 98, 100], - [219, 229, 231], + [15, 140, 146], + [18, 104, 106], + [214, 224, 226], ] diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/FunctionLiterals.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/FunctionLiterals.golden index 19aa219ac1..f897381d86 100644 --- a/deps/v8/test/cctest/interpreter/bytecode_expectations/FunctionLiterals.golden +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/FunctionLiterals.golden @@ -11,10 +11,10 @@ snippet: " " frame size: 0 parameter count: 1 -bytecode array length: 5 +bytecode array length: 6 bytecodes: [ /* 30 E> */ B(StackCheck), - /* 34 S> */ B(CreateClosure), U8(0), U8(2), + /* 34 S> */ B(CreateClosure), U8(0), U8(2), U8(2), /* 55 S> */ B(Return), ] constant pool: [ @@ -29,12 +29,12 @@ snippet: " " frame size: 2 parameter count: 1 -bytecode array length: 15 +bytecode array length: 16 bytecodes: [ /* 30 E> */ B(StackCheck), /* 34 S> */ B(LdaUndefined), B(Star), R(1), - B(CreateClosure), U8(0), U8(2), + B(CreateClosure), U8(0), U8(4), U8(2), B(Star), R(0), /* 56 E> */ B(Call), R(0), R(1), U8(1), U8(2), /* 59 S> */ B(Return), @@ -51,12 +51,12 @@ snippet: " " frame size: 3 parameter count: 1 -bytecode array length: 19 +bytecode array length: 20 bytecodes: [ /* 30 E> */ B(StackCheck), /* 34 S> */ B(LdaUndefined), B(Star), R(1), - B(CreateClosure), U8(0), U8(2), + B(CreateClosure), U8(0), U8(4), U8(2), B(Star), R(0), B(LdaSmi), U8(1), B(Star), R(2), diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/GenerateTestUndetectable.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/GenerateTestUndetectable.golden new file mode 100644 index 0000000000..1ee3738f2e --- /dev/null +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/GenerateTestUndetectable.golden @@ -0,0 +1,239 @@ +# +# Autogenerated by generate-bytecode-expectations. +# + +--- +wrap: yes + +--- +snippet: " + var obj_a = {val:1}; + var b = 10; + if (obj_a == null) { b = 20;} + return b; +" +frame size: 3 +parameter count: 1 +bytecode array length: 24 +bytecodes: [ + /* 30 E> */ B(StackCheck), + /* 46 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(1), R(2), + B(Mov), R(2), R(0), + /* 63 S> */ B(LdaSmi), U8(10), + B(Star), R(1), + /* 67 S> */ B(TestUndetectable), R(0), + B(JumpIfFalse), U8(6), + /* 88 S> */ B(LdaSmi), U8(20), + B(Star), R(1), + /* 97 S> */ B(Ldar), R(1), + /* 107 S> */ B(Return), +] +constant pool: [ + FIXED_ARRAY_TYPE, +] +handlers: [ +] + +--- +snippet: " + var obj_a = {val:1}; + var b = 10; + if (obj_a == undefined) { b = 20;} + return b; +" +frame size: 3 +parameter count: 1 +bytecode array length: 24 +bytecodes: [ + /* 30 E> */ B(StackCheck), + /* 46 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(1), R(2), + B(Mov), R(2), R(0), + /* 63 S> */ B(LdaSmi), U8(10), + B(Star), R(1), + /* 67 S> */ B(TestUndetectable), R(0), + B(JumpIfFalse), U8(6), + /* 93 S> */ B(LdaSmi), U8(20), + B(Star), R(1), + /* 102 S> */ B(Ldar), R(1), + /* 112 S> */ B(Return), +] +constant pool: [ + FIXED_ARRAY_TYPE, +] +handlers: [ +] + +--- +snippet: " + var obj_a = {val:1}; + var b = 10; + if (obj_a != null) { b = 20;} + return b; +" +frame size: 3 +parameter count: 1 +bytecode array length: 24 +bytecodes: [ + /* 30 E> */ B(StackCheck), + /* 46 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(1), R(2), + B(Mov), R(2), R(0), + /* 63 S> */ B(LdaSmi), U8(10), + B(Star), R(1), + /* 67 S> */ B(TestUndetectable), R(0), + B(JumpIfTrue), U8(6), + /* 88 S> */ B(LdaSmi), U8(20), + B(Star), R(1), + /* 97 S> */ B(Ldar), R(1), + /* 107 S> */ B(Return), +] +constant pool: [ + FIXED_ARRAY_TYPE, +] +handlers: [ +] + +--- +snippet: " + var obj_a = {val:1}; + var b = 10; + if (obj_a != undefined) { b = 20;} + return b; +" +frame size: 3 +parameter count: 1 +bytecode array length: 24 +bytecodes: [ + /* 30 E> */ B(StackCheck), + /* 46 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(1), R(2), + B(Mov), R(2), R(0), + /* 63 S> */ B(LdaSmi), U8(10), + B(Star), R(1), + /* 67 S> */ B(TestUndetectable), R(0), + B(JumpIfTrue), U8(6), + /* 93 S> */ B(LdaSmi), U8(20), + B(Star), R(1), + /* 102 S> */ B(Ldar), R(1), + /* 112 S> */ B(Return), +] +constant pool: [ + FIXED_ARRAY_TYPE, +] +handlers: [ +] + +--- +snippet: " + var obj_a = {val:1}; + var b = 10; + if (obj_a === null) { b = 20;} + return b; +" +frame size: 3 +parameter count: 1 +bytecode array length: 24 +bytecodes: [ + /* 30 E> */ B(StackCheck), + /* 46 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(1), R(2), + B(Mov), R(2), R(0), + /* 63 S> */ B(LdaSmi), U8(10), + B(Star), R(1), + /* 67 S> */ B(TestNull), R(0), + B(JumpIfFalse), U8(6), + /* 89 S> */ B(LdaSmi), U8(20), + B(Star), R(1), + /* 98 S> */ B(Ldar), R(1), + /* 108 S> */ B(Return), +] +constant pool: [ + FIXED_ARRAY_TYPE, +] +handlers: [ +] + +--- +snippet: " + var obj_a = {val:1}; + var b = 10; + if (obj_a === undefined) { b = 20;} + return b; +" +frame size: 3 +parameter count: 1 +bytecode array length: 24 +bytecodes: [ + /* 30 E> */ B(StackCheck), + /* 46 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(1), R(2), + B(Mov), R(2), R(0), + /* 63 S> */ B(LdaSmi), U8(10), + B(Star), R(1), + /* 67 S> */ B(TestUndefined), R(0), + B(JumpIfFalse), U8(6), + /* 94 S> */ B(LdaSmi), U8(20), + B(Star), R(1), + /* 103 S> */ B(Ldar), R(1), + /* 113 S> */ B(Return), +] +constant pool: [ + FIXED_ARRAY_TYPE, +] +handlers: [ +] + +--- +snippet: " + var obj_a = {val:1}; + var b = 10; + if (obj_a !== null) { b = 20;} + return b; +" +frame size: 3 +parameter count: 1 +bytecode array length: 24 +bytecodes: [ + /* 30 E> */ B(StackCheck), + /* 46 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(1), R(2), + B(Mov), R(2), R(0), + /* 63 S> */ B(LdaSmi), U8(10), + B(Star), R(1), + /* 67 S> */ B(TestNull), R(0), + B(JumpIfTrue), U8(6), + /* 89 S> */ B(LdaSmi), U8(20), + B(Star), R(1), + /* 98 S> */ B(Ldar), R(1), + /* 108 S> */ B(Return), +] +constant pool: [ + FIXED_ARRAY_TYPE, +] +handlers: [ +] + +--- +snippet: " + var obj_a = {val:1}; + var b = 10; + if (obj_a !== undefined) { b = 20;} + return b; +" +frame size: 3 +parameter count: 1 +bytecode array length: 24 +bytecodes: [ + /* 30 E> */ B(StackCheck), + /* 46 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(1), R(2), + B(Mov), R(2), R(0), + /* 63 S> */ B(LdaSmi), U8(10), + B(Star), R(1), + /* 67 S> */ B(TestUndefined), R(0), + B(JumpIfTrue), U8(6), + /* 94 S> */ B(LdaSmi), U8(20), + B(Star), R(1), + /* 103 S> */ B(Ldar), R(1), + /* 113 S> */ B(Return), +] +constant pool: [ + FIXED_ARRAY_TYPE, +] +handlers: [ +] + diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/Generators.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/Generators.golden index 7ca3be2345..a53f7f622f 100644 --- a/deps/v8/test/cctest/interpreter/bytecode_expectations/Generators.golden +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/Generators.golden @@ -11,20 +11,22 @@ snippet: " function* f() { } f(); " -frame size: 11 +frame size: 12 parameter count: 1 bytecode array length: 204 bytecodes: [ B(Ldar), R(new_target), - B(JumpIfUndefined), U8(21), + B(JumpIfUndefined), U8(28), + B(CallRuntime), U16(Runtime::k_GeneratorGetContext), R(new_target), U8(1), + B(PushContext), R(2), B(ResumeGenerator), R(new_target), B(Star), R(1), B(LdaZero), B(TestEqualStrict), R(1), U8(0), B(JumpIfTrue), U8(53), - B(LdaSmi), U8(77), - B(Star), R(2), - B(CallRuntime), U16(Runtime::kAbort), R(2), U8(1), + B(LdaSmi), U8(78), + B(Star), R(3), + B(CallRuntime), U16(Runtime::kAbort), R(3), U8(1), B(LdaSmi), U8(-2), B(Star), R(1), B(CreateFunctionContext), U8(2), @@ -32,78 +34,80 @@ bytecodes: [ B(Ldar), R(this), B(StaCurrentContextSlot), U8(4), /* 11 E> */ B(StackCheck), - B(Mov), R(context), R(4), + B(Mov), R(context), R(5), B(LdaCurrentContextSlot), U8(4), - B(Star), R(6), - B(Mov), R(closure), R(5), - /* 11 E> */ B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(5), U8(2), + B(Star), R(7), + B(Mov), R(closure), R(6), + /* 11 E> */ B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(6), U8(2), B(StaCurrentContextSlot), U8(5), - B(Star), R(5), - B(LdaCurrentContextSlot), U8(5), B(Star), R(6), + B(LdaCurrentContextSlot), U8(5), + B(Star), R(7), B(LdaZero), - B(SuspendGenerator), R(6), - B(Ldar), R(5), + B(SuspendGenerator), R(7), + B(Ldar), R(6), /* 16 S> */ B(Return), B(LdaSmi), U8(-2), B(Star), R(1), - B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(6), U8(1), - B(Star), R(7), - B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(6), U8(1), + B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(7), U8(1), B(Star), R(8), + B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(7), U8(1), + B(Star), R(9), B(LdaZero), - B(TestEqualStrict), R(8), U8(0), - B(JumpIfTrue), U8(32), + B(TestEqualStrict), R(9), U8(0), + B(JumpIfTrue), U8(31), B(LdaSmi), U8(2), - B(TestEqualStrict), R(8), U8(0), - B(JumpIfTrue), U8(22), + B(TestEqualStrict), R(9), U8(0), + B(JumpIfTrue), U8(21), B(Jump), U8(2), B(LdaTrue), - B(Star), R(10), - B(Mov), R(7), R(9), - B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(9), U8(2), - B(Star), R(3), + B(Star), R(11), + B(Mov), R(8), R(10), + B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(10), U8(2), + B(Star), R(4), B(LdaZero), - B(Star), R(2), - B(Jump), U8(36), - B(Ldar), R(7), + B(Star), R(3), + B(Jump), U8(35), + B(Ldar), R(8), /* 11 E> */ B(Throw), B(LdaUndefined), - B(Star), R(5), - B(LdaTrue), B(Star), R(6), - B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(5), U8(2), - B(Star), R(3), + B(LdaTrue), + B(Star), R(7), + B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(6), U8(2), + B(Star), R(4), B(LdaSmi), U8(1), - B(Star), R(2), + B(Star), R(3), B(Jump), U8(14), B(LdaSmi), U8(-1), - B(Star), R(2), - B(Jump), U8(8), B(Star), R(3), - B(LdaSmi), U8(2), - B(Star), R(2), - B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0), + B(Jump), U8(8), B(Star), R(4), - B(LdaCurrentContextSlot), U8(5), + B(LdaSmi), U8(2), + B(Star), R(3), + B(LdaTheHole), + B(SetPendingMessage), B(Star), R(5), - B(CallRuntime), U16(Runtime::k_GeneratorClose), R(5), U8(1), - B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(4), U8(1), + B(LdaCurrentContextSlot), U8(5), + B(Star), R(6), + B(CallRuntime), U16(Runtime::k_GeneratorClose), R(6), U8(1), + B(Ldar), R(5), + B(SetPendingMessage), B(LdaZero), - B(TestEqualStrict), R(2), U8(0), + B(TestEqualStrict), R(3), U8(0), B(JumpIfTrue), U8(18), B(LdaSmi), U8(1), - B(TestEqualStrict), R(2), U8(0), + B(TestEqualStrict), R(3), U8(0), B(JumpIfTrue), U8(14), B(LdaSmi), U8(2), - B(TestEqualStrict), R(2), U8(0), + B(TestEqualStrict), R(3), U8(0), B(JumpIfTrue), U8(10), B(Jump), U8(11), - B(Ldar), R(3), + B(Ldar), R(4), /* 16 S> */ B(Return), - B(Ldar), R(3), + B(Ldar), R(4), /* 16 S> */ B(Return), - B(Ldar), R(3), + B(Ldar), R(4), B(ReThrow), B(LdaUndefined), /* 16 S> */ B(Return), @@ -111,7 +115,7 @@ bytecodes: [ constant pool: [ ] handlers: [ - [39, 138, 144], + [46, 143, 149], ] --- @@ -119,12 +123,14 @@ snippet: " function* f() { yield 42 } f(); " -frame size: 11 +frame size: 12 parameter count: 1 -bytecode array length: 301 +bytecode array length: 299 bytecodes: [ B(Ldar), R(new_target), - B(JumpIfUndefined), U8(28), + B(JumpIfUndefined), U8(35), + B(CallRuntime), U16(Runtime::k_GeneratorGetContext), R(new_target), U8(1), + B(PushContext), R(2), B(ResumeGenerator), R(new_target), B(Star), R(1), B(LdaZero), @@ -133,9 +139,9 @@ bytecodes: [ B(LdaSmi), U8(1), B(TestEqualStrict), R(1), U8(0), B(JumpIfTrueConstant), U8(0), - B(LdaSmi), U8(77), - B(Star), R(2), - B(CallRuntime), U16(Runtime::kAbort), R(2), U8(1), + B(LdaSmi), U8(78), + B(Star), R(3), + B(CallRuntime), U16(Runtime::kAbort), R(3), U8(1), B(LdaSmi), U8(-2), B(Star), R(1), B(CreateFunctionContext), U8(2), @@ -143,127 +149,129 @@ bytecodes: [ B(Ldar), R(this), B(StaCurrentContextSlot), U8(4), /* 11 E> */ B(StackCheck), - B(Mov), R(context), R(4), + B(Mov), R(context), R(5), B(LdaCurrentContextSlot), U8(4), - B(Star), R(6), - B(Mov), R(closure), R(5), - /* 11 E> */ B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(5), U8(2), + B(Star), R(7), + B(Mov), R(closure), R(6), + /* 11 E> */ B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(6), U8(2), B(StaCurrentContextSlot), U8(5), - B(Star), R(5), - B(LdaCurrentContextSlot), U8(5), B(Star), R(6), + B(LdaCurrentContextSlot), U8(5), + B(Star), R(7), B(LdaZero), - B(SuspendGenerator), R(6), - B(Ldar), R(5), + B(SuspendGenerator), R(7), + B(Ldar), R(6), /* 25 S> */ B(Return), B(LdaSmi), U8(-2), B(Star), R(1), - B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(6), U8(1), - B(Star), R(7), - B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(6), U8(1), + B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(7), U8(1), B(Star), R(8), + B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(7), U8(1), + B(Star), R(9), B(LdaZero), - B(TestEqualStrict), R(8), U8(0), - B(JumpIfTrue), U8(32), + B(TestEqualStrict), R(9), U8(0), + B(JumpIfTrue), U8(31), B(LdaSmi), U8(2), - B(TestEqualStrict), R(8), U8(0), - B(JumpIfTrue), U8(22), + B(TestEqualStrict), R(9), U8(0), + B(JumpIfTrue), U8(21), B(Jump), U8(2), B(LdaTrue), - B(Star), R(10), - B(Mov), R(7), R(9), - B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(9), U8(2), - B(Star), R(3), + B(Star), R(11), + B(Mov), R(8), R(10), + B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(10), U8(2), + B(Star), R(4), B(LdaZero), - B(Star), R(2), - B(Jump), U8(116), - B(Ldar), R(7), + B(Star), R(3), + B(Jump), U8(113), + B(Ldar), R(8), /* 11 E> */ B(Throw), /* 16 S> */ B(LdaSmi), U8(42), - B(Star), R(5), + B(Star), R(6), B(LdaFalse), + B(Star), R(7), + B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(6), U8(2), B(Star), R(6), - B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(5), U8(2), - B(Star), R(5), B(LdaCurrentContextSlot), U8(5), - B(Star), R(6), + B(Star), R(7), B(LdaSmi), U8(1), - B(SuspendGenerator), R(6), - B(Ldar), R(5), + B(SuspendGenerator), R(7), + B(Ldar), R(6), /* 25 S> */ B(Return), B(LdaSmi), U8(-2), B(Star), R(1), - B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(6), U8(1), - B(Star), R(7), - B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(6), U8(1), + B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(7), U8(1), B(Star), R(8), + B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(7), U8(1), + B(Star), R(9), B(LdaZero), - B(TestEqualStrict), R(8), U8(0), - B(JumpIfTrue), U8(33), + B(TestEqualStrict), R(9), U8(0), + B(JumpIfTrue), U8(32), B(LdaSmi), U8(2), - B(TestEqualStrict), R(8), U8(0), - B(JumpIfTrue), U8(23), + B(TestEqualStrict), R(9), U8(0), + B(JumpIfTrue), U8(22), B(Jump), U8(2), B(LdaTrue), - B(Star), R(10), - B(Mov), R(7), R(9), - B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(9), U8(2), - B(Star), R(3), + B(Star), R(11), + B(Mov), R(8), R(10), + B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(10), U8(2), + B(Star), R(4), B(LdaSmi), U8(1), - B(Star), R(2), - B(Jump), U8(36), - B(Ldar), R(7), + B(Star), R(3), + B(Jump), U8(35), + B(Ldar), R(8), /* 16 E> */ B(Throw), B(LdaUndefined), - B(Star), R(5), - B(LdaTrue), B(Star), R(6), - B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(5), U8(2), - B(Star), R(3), + B(LdaTrue), + B(Star), R(7), + B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(6), U8(2), + B(Star), R(4), B(LdaSmi), U8(2), - B(Star), R(2), + B(Star), R(3), B(Jump), U8(14), B(LdaSmi), U8(-1), - B(Star), R(2), - B(Jump), U8(8), B(Star), R(3), - B(LdaSmi), U8(3), - B(Star), R(2), - B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0), + B(Jump), U8(8), B(Star), R(4), - B(LdaCurrentContextSlot), U8(5), + B(LdaSmi), U8(3), + B(Star), R(3), + B(LdaTheHole), + B(SetPendingMessage), B(Star), R(5), - B(CallRuntime), U16(Runtime::k_GeneratorClose), R(5), U8(1), - B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(4), U8(1), + B(LdaCurrentContextSlot), U8(5), + B(Star), R(6), + B(CallRuntime), U16(Runtime::k_GeneratorClose), R(6), U8(1), + B(Ldar), R(5), + B(SetPendingMessage), B(LdaZero), - B(TestEqualStrict), R(2), U8(0), + B(TestEqualStrict), R(3), U8(0), B(JumpIfTrue), U8(25), B(LdaSmi), U8(1), - B(TestEqualStrict), R(2), U8(0), + B(TestEqualStrict), R(3), U8(0), B(JumpIfTrue), U8(21), B(LdaSmi), U8(2), - B(TestEqualStrict), R(2), U8(0), + B(TestEqualStrict), R(3), U8(0), B(JumpIfTrue), U8(17), B(LdaSmi), U8(3), - B(TestEqualStrict), R(2), U8(0), + B(TestEqualStrict), R(3), U8(0), B(JumpIfTrue), U8(13), B(Jump), U8(14), - B(Ldar), R(3), + B(Ldar), R(4), /* 25 S> */ B(Return), - B(Ldar), R(3), + B(Ldar), R(4), /* 25 S> */ B(Return), - B(Ldar), R(3), + B(Ldar), R(4), /* 25 S> */ B(Return), - B(Ldar), R(3), + B(Ldar), R(4), B(ReThrow), B(LdaUndefined), /* 25 S> */ B(Return), ] constant pool: [ - Smi [132], + Smi [130], ] handlers: [ - [46, 225, 231], + [53, 228, 234], ] --- @@ -271,12 +279,14 @@ snippet: " function* f() { for (let x of [42]) yield x } f(); " -frame size: 17 +frame size: 18 parameter count: 1 -bytecode array length: 796 +bytecode array length: 778 bytecodes: [ B(Ldar), R(new_target), - B(JumpIfUndefined), U8(28), + B(JumpIfUndefined), U8(35), + B(CallRuntime), U16(Runtime::k_GeneratorGetContext), R(new_target), U8(1), + B(PushContext), R(4), B(ResumeGenerator), R(new_target), B(Star), R(3), B(LdaZero), @@ -285,9 +295,9 @@ bytecodes: [ B(LdaSmi), U8(1), B(TestEqualStrict), R(3), U8(0), B(JumpIfTrueConstant), U8(3), - B(LdaSmi), U8(77), - B(Star), R(4), - B(CallRuntime), U16(Runtime::kAbort), R(4), U8(1), + B(LdaSmi), U8(78), + B(Star), R(5), + B(CallRuntime), U16(Runtime::kAbort), R(5), U8(1), B(LdaSmi), U8(-2), B(Star), R(3), B(CreateFunctionContext), U8(9), @@ -295,41 +305,41 @@ bytecodes: [ B(Ldar), R(this), B(StaCurrentContextSlot), U8(4), /* 11 E> */ B(StackCheck), - B(Mov), R(context), R(6), + B(Mov), R(context), R(7), B(LdaCurrentContextSlot), U8(4), - B(Star), R(8), - B(Mov), R(closure), R(7), - /* 11 E> */ B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(7), U8(2), + B(Star), R(9), + B(Mov), R(closure), R(8), + /* 11 E> */ B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(8), U8(2), B(StaCurrentContextSlot), U8(5), - B(Star), R(7), - B(LdaCurrentContextSlot), U8(5), B(Star), R(8), + B(LdaCurrentContextSlot), U8(5), + B(Star), R(9), B(LdaZero), - B(SuspendGenerator), R(8), - B(Ldar), R(7), + B(SuspendGenerator), R(9), + B(Ldar), R(8), /* 44 S> */ B(Return), B(LdaSmi), U8(-2), B(Star), R(3), - B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(8), U8(1), - B(Star), R(9), - B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(8), U8(1), + B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(9), U8(1), B(Star), R(10), + B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(9), U8(1), + B(Star), R(11), B(LdaZero), - B(TestEqualStrict), R(10), U8(0), - B(JumpIfTrue), U8(32), + B(TestEqualStrict), R(11), U8(0), + B(JumpIfTrue), U8(31), B(LdaSmi), U8(2), - B(TestEqualStrict), R(10), U8(0), - B(JumpIfTrue), U8(22), + B(TestEqualStrict), R(11), U8(0), + B(JumpIfTrue), U8(21), B(Jump), U8(2), B(LdaTrue), - B(Star), R(12), - B(Mov), R(9), R(11), - B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(11), U8(2), - B(Star), R(5), + B(Star), R(13), + B(Mov), R(10), R(12), + B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(12), U8(2), + B(Star), R(6), B(LdaZero), - B(Star), R(4), - B(JumpConstant), U8(19), - B(Ldar), R(9), + B(Star), R(5), + B(JumpConstant), U8(18), + B(Ldar), R(10), /* 11 E> */ B(Throw), B(Ldar), R(closure), B(CreateBlockContext), U8(0), @@ -338,14 +348,15 @@ bytecodes: [ B(StaCurrentContextSlot), U8(4), B(LdaZero), B(StaContextSlot), R(1), U8(9), U8(0), - B(Mov), R(context), R(9), B(Mov), R(context), R(10), + B(Mov), R(context), R(11), /* 30 S> */ B(CreateArrayLiteral), U8(1), U8(0), U8(9), B(Star), R(12), - B(LdaConstant), U8(2), - /* 30 E> */ B(LdaKeyedProperty), R(12), U8(4), - B(Star), R(11), - /* 30 E> */ B(CallProperty), R(11), R(12), U8(1), U8(2), + B(LdaNamedProperty), R(12), U8(2), U8(2), + B(Star), R(13), + B(CallProperty), R(13), R(12), U8(1), U8(4), + B(JumpIfJSReceiver), U8(7), + B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0), /* 30 E> */ B(StaContextSlot), R(1), U8(7), U8(0), B(LdaSmi), U8(-2), B(TestEqual), R(3), U8(0), @@ -353,29 +364,29 @@ bytecodes: [ B(LdaSmi), U8(1), B(TestEqualStrict), R(3), U8(0), B(JumpIfTrueConstant), U8(8), - B(LdaSmi), U8(77), - B(Star), R(11), - B(CallRuntime), U16(Runtime::kAbort), R(11), U8(1), + B(LdaSmi), U8(78), + B(Star), R(12), + B(CallRuntime), U16(Runtime::kAbort), R(12), U8(1), /* 27 S> */ B(LdaContextSlot), R(1), U8(7), U8(0), + B(Star), R(13), + B(LdaNamedProperty), R(13), U8(4), U8(8), B(Star), R(12), - B(LdaNamedProperty), R(12), U8(4), U8(8), - B(Star), R(11), - /* 27 E> */ B(CallProperty), R(11), R(12), U8(1), U8(6), + /* 27 E> */ B(CallProperty), R(12), R(13), U8(1), U8(6), /* 27 E> */ B(StaContextSlot), R(1), U8(8), U8(0), - B(Star), R(11), - B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(11), U8(1), + B(Star), R(12), + B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(12), U8(1), B(ToBooleanLogicalNot), B(JumpIfFalse), U8(13), B(LdaContextSlot), R(1), U8(8), U8(0), - B(Star), R(11), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(11), U8(1), + B(Star), R(12), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(12), U8(1), B(LdaContextSlot), R(1), U8(8), U8(0), - B(Star), R(11), - B(LdaNamedProperty), R(11), U8(5), U8(10), + B(Star), R(12), + B(LdaNamedProperty), R(12), U8(5), U8(10), B(JumpIfToBooleanTrueConstant), U8(9), B(LdaContextSlot), R(1), U8(8), U8(0), - B(Star), R(11), - B(LdaNamedProperty), R(11), U8(6), U8(12), + B(Star), R(12), + B(LdaNamedProperty), R(12), U8(6), U8(12), B(StaContextSlot), R(1), U8(10), U8(0), B(LdaSmi), U8(2), B(StaContextSlot), R(1), U8(9), U8(0), @@ -390,240 +401,238 @@ bytecodes: [ B(LdaContextSlot), R(1), U8(6), U8(0), B(StaCurrentContextSlot), U8(4), /* 36 S> */ B(LdaCurrentContextSlot), U8(4), - B(Star), R(11), + B(Star), R(12), B(LdaFalse), + B(Star), R(13), + B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(12), U8(2), B(Star), R(12), - B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(11), U8(2), - B(Star), R(11), B(LdaContextSlot), R(1), U8(5), U8(0), - B(Star), R(12), + B(Star), R(13), B(LdaSmi), U8(1), - B(SuspendGenerator), R(12), - B(Ldar), R(11), + B(SuspendGenerator), R(13), + B(Ldar), R(12), /* 44 S> */ B(Return), B(LdaSmi), U8(-2), B(Star), R(3), - B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(12), U8(1), - B(Star), R(13), - B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(12), U8(1), + B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(13), U8(1), B(Star), R(14), + B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(13), U8(1), + B(Star), R(15), B(LdaZero), - B(TestEqualStrict), R(14), U8(0), - B(JumpIfTrue), U8(44), + B(TestEqualStrict), R(15), U8(0), + B(JumpIfTrue), U8(43), B(LdaSmi), U8(2), - B(TestEqualStrict), R(14), U8(0), - B(JumpIfTrue), U8(34), + B(TestEqualStrict), R(15), U8(0), + B(JumpIfTrue), U8(33), B(Jump), U8(2), B(LdaTrue), - B(Star), R(16), - B(Mov), R(13), R(15), - B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(15), U8(2), + B(Star), R(17), + B(Mov), R(14), R(16), + B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(16), U8(2), B(PopContext), R(2), B(PopContext), R(2), B(PopContext), R(2), B(PopContext), R(2), B(PopContext), R(2), B(PopContext), R(2), - B(Star), R(8), + B(Star), R(9), B(LdaZero), - B(Star), R(7), + B(Star), R(8), B(Jump), U8(74), - B(Ldar), R(13), + B(Ldar), R(14), /* 36 E> */ B(Throw), B(PopContext), R(2), B(LdaZero), B(StaContextSlot), R(1), U8(9), U8(0), - B(Wide), B(JumpLoop), U16(-221), U16(0), + B(Wide), B(JumpLoop), U16(-219), U16(0), B(Jump), U8(44), - B(Star), R(11), + B(Star), R(12), B(Ldar), R(closure), - B(CreateCatchContext), R(11), U8(10), U8(11), - B(Star), R(10), + B(CreateCatchContext), R(12), U8(10), U8(11), + B(Star), R(11), B(PushContext), R(2), B(LdaContextSlot), R(1), U8(9), U8(0), - B(Star), R(11), + B(Star), R(12), B(LdaSmi), U8(2), - B(TestEqualStrict), R(11), U8(14), + B(TestEqualStrict), R(12), U8(14), B(JumpIfFalse), U8(8), B(LdaSmi), U8(1), B(StaContextSlot), R(1), U8(9), U8(0), B(LdaCurrentContextSlot), U8(4), - B(Star), R(11), - B(CallRuntime), U16(Runtime::kReThrow), R(11), U8(1), + B(Star), R(12), + B(CallRuntime), U16(Runtime::kReThrow), R(12), U8(1), B(PopContext), R(2), B(LdaSmi), U8(-1), - B(Star), R(7), - B(Jump), U8(8), B(Star), R(8), - B(LdaSmi), U8(1), - B(Star), R(7), - B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0), + B(Jump), U8(8), B(Star), R(9), - B(LdaContextSlot), R(1), U8(9), U8(0), + B(LdaSmi), U8(1), + B(Star), R(8), + B(LdaTheHole), + B(SetPendingMessage), B(Star), R(10), + B(LdaContextSlot), R(1), U8(9), U8(0), + B(Star), R(11), B(LdaZero), - B(TestEqualStrict), R(10), U8(15), + B(TestEqualStrict), R(11), U8(15), B(JumpIfTrueConstant), U8(17), B(LdaContextSlot), R(1), U8(7), U8(0), - B(Star), R(10), - B(LdaUndefined), - B(TestEqualStrict), R(10), U8(16), - B(JumpIfTrueConstant), U8(18), - B(LdaContextSlot), R(1), U8(7), U8(0), - B(Star), R(10), - B(LdaNamedProperty), R(10), U8(12), U8(17), + B(Star), R(11), + B(LdaNamedProperty), R(11), U8(12), U8(16), B(StaContextSlot), R(1), U8(11), U8(0), B(LdaContextSlot), R(1), U8(11), U8(0), - B(Star), R(10), - B(LdaNull), - B(TestEqual), R(10), U8(19), + B(Star), R(11), + B(TestUndetectable), R(11), B(JumpIfFalse), U8(4), B(JumpConstant), U8(16), B(LdaContextSlot), R(1), U8(9), U8(0), - B(Star), R(10), + B(Star), R(11), B(LdaSmi), U8(1), - B(TestEqualStrict), R(10), U8(20), - B(JumpIfFalse), U8(78), + B(TestEqualStrict), R(11), U8(19), + B(JumpIfFalse), U8(75), B(LdaContextSlot), R(1), U8(11), U8(0), B(TypeOf), - B(Star), R(10), + B(Star), R(11), B(LdaConstant), U8(13), - B(TestEqualStrict), R(10), U8(21), + B(TestEqualStrict), R(11), U8(20), B(JumpIfFalse), U8(4), B(Jump), U8(18), - B(Wide), B(LdaSmi), U16(130), - B(Star), R(10), - B(LdaConstant), U8(14), + B(Wide), B(LdaSmi), U16(129), B(Star), R(11), - B(CallRuntime), U16(Runtime::kNewTypeError), R(10), U8(2), + B(LdaConstant), U8(14), + B(Star), R(12), + B(CallRuntime), U16(Runtime::kNewTypeError), R(11), U8(2), B(Throw), - B(Mov), R(context), R(10), + B(Mov), R(context), R(11), B(LdaContextSlot), R(1), U8(11), U8(0), - B(Star), R(11), + B(Star), R(12), B(LdaContextSlot), R(1), U8(7), U8(0), + B(Star), R(13), + B(InvokeIntrinsic), U8(Runtime::k_Call), R(12), U8(2), + B(Jump), U8(20), B(Star), R(12), - B(InvokeIntrinsic), U8(Runtime::k_Call), R(11), U8(2), - B(Jump), U8(23), - B(Star), R(11), B(Ldar), R(closure), - B(CreateCatchContext), R(11), U8(10), U8(15), - B(Star), R(10), - B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0), - B(Ldar), R(10), + B(CreateCatchContext), R(12), U8(10), U8(15), + B(Star), R(11), + B(LdaTheHole), + B(SetPendingMessage), + B(Ldar), R(11), B(PushContext), R(2), B(PopContext), R(2), B(Jump), U8(47), B(LdaContextSlot), R(1), U8(11), U8(0), - B(Star), R(10), - B(LdaContextSlot), R(1), U8(7), U8(0), B(Star), R(11), - B(InvokeIntrinsic), U8(Runtime::k_Call), R(10), U8(2), + B(LdaContextSlot), R(1), U8(7), U8(0), + B(Star), R(12), + B(InvokeIntrinsic), U8(Runtime::k_Call), R(11), U8(2), B(StaContextSlot), R(1), U8(12), U8(0), B(LdaContextSlot), R(1), U8(12), U8(0), - B(Star), R(10), - B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(10), U8(1), + B(Star), R(11), + B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(11), U8(1), B(JumpIfToBooleanFalse), U8(4), B(Jump), U8(13), B(LdaContextSlot), R(1), U8(12), U8(0), - B(Star), R(10), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(10), U8(1), - B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(9), U8(1), + B(Star), R(11), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(11), U8(1), + B(Ldar), R(10), + B(SetPendingMessage), B(LdaZero), - B(TestEqualStrict), R(7), U8(0), + B(TestEqualStrict), R(8), U8(0), B(JumpIfTrue), U8(11), B(LdaSmi), U8(1), - B(TestEqualStrict), R(7), U8(0), + B(TestEqualStrict), R(8), U8(0), B(JumpIfTrue), U8(17), B(Jump), U8(28), B(PopContext), R(1), B(PopContext), R(1), B(LdaSmi), U8(1), - B(Star), R(4), - B(Mov), R(8), R(5), - B(Jump), U8(48), + B(Star), R(5), + B(Mov), R(9), R(6), + B(Jump), U8(47), B(PopContext), R(1), B(PopContext), R(1), B(LdaSmi), U8(2), - B(Star), R(4), - B(Mov), R(8), R(5), - B(Jump), U8(35), + B(Star), R(5), + B(Mov), R(9), R(6), + B(Jump), U8(34), B(PopContext), R(1), B(LdaUndefined), - B(Star), R(7), - B(LdaTrue), B(Star), R(8), - B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(7), U8(2), - B(Star), R(5), + B(LdaTrue), + B(Star), R(9), + B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(8), U8(2), + B(Star), R(6), B(LdaSmi), U8(3), - B(Star), R(4), + B(Star), R(5), B(Jump), U8(14), B(LdaSmi), U8(-1), - B(Star), R(4), - B(Jump), U8(8), B(Star), R(5), - B(LdaSmi), U8(4), - B(Star), R(4), - B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0), + B(Jump), U8(8), B(Star), R(6), - B(LdaCurrentContextSlot), U8(5), + B(LdaSmi), U8(4), + B(Star), R(5), + B(LdaTheHole), + B(SetPendingMessage), B(Star), R(7), - B(CallRuntime), U16(Runtime::k_GeneratorClose), R(7), U8(1), - B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(6), U8(1), + B(LdaCurrentContextSlot), U8(5), + B(Star), R(8), + B(CallRuntime), U16(Runtime::k_GeneratorClose), R(8), U8(1), + B(Ldar), R(7), + B(SetPendingMessage), B(LdaZero), - B(TestEqualStrict), R(4), U8(0), + B(TestEqualStrict), R(5), U8(0), B(JumpIfTrue), U8(32), B(LdaSmi), U8(1), - B(TestEqualStrict), R(4), U8(0), + B(TestEqualStrict), R(5), U8(0), B(JumpIfTrue), U8(28), B(LdaSmi), U8(2), - B(TestEqualStrict), R(4), U8(0), + B(TestEqualStrict), R(5), U8(0), B(JumpIfTrue), U8(24), B(LdaSmi), U8(3), - B(TestEqualStrict), R(4), U8(0), + B(TestEqualStrict), R(5), U8(0), B(JumpIfTrue), U8(20), B(LdaSmi), U8(4), - B(TestEqualStrict), R(4), U8(0), + B(TestEqualStrict), R(5), U8(0), B(JumpIfTrue), U8(16), B(Jump), U8(17), - B(Ldar), R(5), + B(Ldar), R(6), /* 44 S> */ B(Return), - B(Ldar), R(5), + B(Ldar), R(6), /* 44 S> */ B(Return), - B(Ldar), R(5), + B(Ldar), R(6), B(ReThrow), - B(Ldar), R(5), + B(Ldar), R(6), /* 44 S> */ B(Return), - B(Ldar), R(5), + B(Ldar), R(6), B(ReThrow), B(LdaUndefined), /* 44 S> */ B(Return), ] constant pool: [ FIXED_ARRAY_TYPE, - FIXED_ARRAY_TYPE, + CONSTANT_ELEMENTS_PAIR_TYPE, SYMBOL_TYPE, - Smi [149], + Smi [154], ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"], FIXED_ARRAY_TYPE, - Smi [135], - Smi [152], + Smi [134], + Smi [150], ONE_BYTE_INTERNALIZED_STRING_TYPE [".catch"], FIXED_ARRAY_TYPE, ONE_BYTE_INTERNALIZED_STRING_TYPE ["return"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["function"], ONE_BYTE_INTERNALIZED_STRING_TYPE [""], FIXED_ARRAY_TYPE, - Smi [136], - Smi [176], - Smi [164], - Smi [601], + Smi [133], + Smi [159], + Smi [582], ] handlers: [ - [46, 710, 716], - [143, 438, 444], - [146, 394, 396], - [557, 573, 575], + [53, 697, 703], + [149, 448, 454], + [152, 404, 406], + [550, 566, 568], ] diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/GlobalCompoundExpressions.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/GlobalCompoundExpressions.golden index f8bece5c39..57403bc402 100644 --- a/deps/v8/test/cctest/interpreter/bytecode_expectations/GlobalCompoundExpressions.golden +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/GlobalCompoundExpressions.golden @@ -14,10 +14,10 @@ snippet: " " frame size: 1 parameter count: 1 -bytecode array length: 13 +bytecode array length: 14 bytecodes: [ /* 26 E> */ B(StackCheck), - /* 31 S> */ B(LdaGlobal), U8(2), + /* 31 S> */ B(LdaGlobal), U8(0), U8(2), B(Star), R(0), B(BitwiseAndSmi), U8(1), R(0), U8(4), /* 45 E> */ B(StaGlobalSloppy), U8(0), U8(5), @@ -37,10 +37,10 @@ snippet: " " frame size: 1 parameter count: 1 -bytecode array length: 13 +bytecode array length: 14 bytecodes: [ /* 27 E> */ B(StackCheck), - /* 32 S> */ B(LdaGlobal), U8(2), + /* 32 S> */ B(LdaGlobal), U8(0), U8(2), B(Star), R(0), B(AddSmi), U8(1), R(0), U8(4), /* 51 E> */ B(StaGlobalSloppy), U8(0), U8(5), diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/GlobalCountOperators.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/GlobalCountOperators.golden index 1e0d530af5..a6090aadf0 100644 --- a/deps/v8/test/cctest/interpreter/bytecode_expectations/GlobalCountOperators.golden +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/GlobalCountOperators.golden @@ -14,10 +14,10 @@ snippet: " " frame size: 0 parameter count: 1 -bytecode array length: 9 +bytecode array length: 10 bytecodes: [ /* 26 E> */ B(StackCheck), - /* 31 S> */ B(LdaGlobal), U8(2), + /* 31 S> */ B(LdaGlobal), U8(0), U8(2), B(Inc), U8(6), /* 40 E> */ B(StaGlobalSloppy), U8(0), U8(4), /* 48 S> */ B(Return), @@ -36,10 +36,10 @@ snippet: " " frame size: 1 parameter count: 1 -bytecode array length: 15 +bytecode array length: 16 bytecodes: [ /* 26 E> */ B(StackCheck), - /* 31 S> */ B(LdaGlobal), U8(2), + /* 31 S> */ B(LdaGlobal), U8(0), U8(2), B(ToNumber), R(0), B(Ldar), R(0), B(Dec), U8(6), @@ -61,10 +61,10 @@ snippet: " " frame size: 0 parameter count: 1 -bytecode array length: 9 +bytecode array length: 10 bytecodes: [ /* 27 E> */ B(StackCheck), - /* 46 S> */ B(LdaGlobal), U8(2), + /* 46 S> */ B(LdaGlobal), U8(0), U8(2), B(Dec), U8(6), /* 55 E> */ B(StaGlobalStrict), U8(0), U8(4), /* 68 S> */ B(Return), @@ -83,10 +83,10 @@ snippet: " " frame size: 1 parameter count: 1 -bytecode array length: 15 +bytecode array length: 16 bytecodes: [ /* 27 E> */ B(StackCheck), - /* 32 S> */ B(LdaGlobal), U8(2), + /* 32 S> */ B(LdaGlobal), U8(0), U8(2), B(ToNumber), R(0), B(Ldar), R(0), B(Inc), U8(6), diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/GlobalDelete.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/GlobalDelete.golden index e9540bb446..b717c71bea 100644 --- a/deps/v8/test/cctest/interpreter/bytecode_expectations/GlobalDelete.golden +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/GlobalDelete.golden @@ -16,16 +16,17 @@ snippet: " " frame size: 1 parameter count: 1 -bytecode array length: 10 +bytecode array length: 11 bytecodes: [ /* 32 E> */ B(StackCheck), - /* 39 S> */ B(LdaGlobal), U8(2), + /* 39 S> */ B(LdaGlobal), U8(0), U8(2), B(Star), R(0), - B(LdaConstant), U8(0), + B(LdaConstant), U8(1), B(DeletePropertySloppy), R(0), /* 58 S> */ B(Return), ] constant pool: [ + ONE_BYTE_INTERNALIZED_STRING_TYPE ["a"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["x"], ] handlers: [ @@ -42,16 +43,17 @@ snippet: " " frame size: 1 parameter count: 1 -bytecode array length: 10 +bytecode array length: 11 bytecodes: [ /* 28 E> */ B(StackCheck), - /* 51 S> */ B(LdaGlobal), U8(2), + /* 51 S> */ B(LdaGlobal), U8(0), U8(2), B(Star), R(0), B(LdaSmi), U8(1), B(DeletePropertyStrict), R(0), /* 71 S> */ B(Return), ] constant pool: [ + ONE_BYTE_INTERNALIZED_STRING_TYPE ["a"], ] handlers: [ ] diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/LetVariableContextSlot.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/LetVariableContextSlot.golden index d45386e58b..c1c979c0ac 100644 --- a/deps/v8/test/cctest/interpreter/bytecode_expectations/LetVariableContextSlot.golden +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/LetVariableContextSlot.golden @@ -11,13 +11,13 @@ snippet: " " frame size: 2 parameter count: 1 -bytecode array length: 19 +bytecode array length: 20 bytecodes: [ B(CreateFunctionContext), U8(1), B(PushContext), R(1), B(LdaTheHole), B(StaCurrentContextSlot), U8(4), - B(CreateClosure), U8(0), U8(2), + B(CreateClosure), U8(0), U8(2), U8(2), B(Star), R(0), /* 30 E> */ B(StackCheck), /* 42 S> */ B(LdaSmi), U8(10), @@ -37,13 +37,13 @@ snippet: " " frame size: 2 parameter count: 1 -bytecode array length: 20 +bytecode array length: 21 bytecodes: [ B(CreateFunctionContext), U8(1), B(PushContext), R(1), B(LdaTheHole), B(StaCurrentContextSlot), U8(4), - B(CreateClosure), U8(0), U8(2), + B(CreateClosure), U8(0), U8(2), U8(2), B(Star), R(0), /* 30 E> */ B(StackCheck), /* 42 S> */ B(LdaSmi), U8(10), @@ -63,13 +63,13 @@ snippet: " " frame size: 4 parameter count: 1 -bytecode array length: 38 +bytecode array length: 39 bytecodes: [ B(CreateFunctionContext), U8(1), B(PushContext), R(1), B(LdaTheHole), B(StaCurrentContextSlot), U8(4), - B(CreateClosure), U8(0), U8(2), + B(CreateClosure), U8(0), U8(2), U8(2), B(Star), R(0), /* 30 E> */ B(StackCheck), /* 45 S> */ B(LdaSmi), U8(20), @@ -98,13 +98,13 @@ snippet: " " frame size: 2 parameter count: 1 -bytecode array length: 23 +bytecode array length: 24 bytecodes: [ B(CreateFunctionContext), U8(1), B(PushContext), R(1), B(LdaTheHole), B(StaCurrentContextSlot), U8(4), - B(CreateClosure), U8(0), U8(2), + B(CreateClosure), U8(0), U8(2), U8(2), B(Star), R(0), /* 30 E> */ B(StackCheck), /* 42 S> */ B(LdaSmi), U8(10), diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/LoadGlobal.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/LoadGlobal.golden index 9c1c1b3701..addfa78a98 100644 --- a/deps/v8/test/cctest/interpreter/bytecode_expectations/LoadGlobal.golden +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/LoadGlobal.golden @@ -14,13 +14,14 @@ snippet: " " frame size: 0 parameter count: 1 -bytecode array length: 4 +bytecode array length: 5 bytecodes: [ /* 21 E> */ B(StackCheck), - /* 26 S> */ B(LdaGlobal), U8(2), + /* 26 S> */ B(LdaGlobal), U8(0), U8(2), /* 36 S> */ B(Return), ] constant pool: [ + ONE_BYTE_INTERNALIZED_STRING_TYPE ["a"], ] handlers: [ ] @@ -33,13 +34,14 @@ snippet: " " frame size: 0 parameter count: 1 -bytecode array length: 4 +bytecode array length: 5 bytecodes: [ /* 27 E> */ B(StackCheck), - /* 32 S> */ B(LdaGlobal), U8(2), + /* 32 S> */ B(LdaGlobal), U8(0), U8(2), /* 42 S> */ B(Return), ] constant pool: [ + ONE_BYTE_INTERNALIZED_STRING_TYPE ["t"], ] handlers: [ ] @@ -52,13 +54,14 @@ snippet: " " frame size: 0 parameter count: 1 -bytecode array length: 4 +bytecode array length: 5 bytecodes: [ /* 17 E> */ B(StackCheck), - /* 22 S> */ B(LdaGlobal), U8(2), + /* 22 S> */ B(LdaGlobal), U8(0), U8(2), /* 32 S> */ B(Return), ] constant pool: [ + ONE_BYTE_INTERNALIZED_STRING_TYPE ["a"], ] handlers: [ ] @@ -201,7 +204,7 @@ snippet: " " frame size: 0 parameter count: 2 -bytecode array length: 650 +bytecode array length: 652 bytecodes: [ /* 17 E> */ B(StackCheck), /* 25 S> */ B(Nop), @@ -460,11 +463,12 @@ bytecodes: [ /* 1286 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(254), /* 1295 S> */ B(Nop), /* 1296 E> */ B(Wide), B(LdaNamedProperty), R16(arg0), U16(0), U16(256), - /* 1305 S> */ B(Wide), B(LdaGlobal), U16(258), + /* 1305 S> */ B(Wide), B(LdaGlobal), U16(1), U16(258), /* 1315 S> */ B(Return), ] constant pool: [ ONE_BYTE_INTERNALIZED_STRING_TYPE ["name"], + ONE_BYTE_INTERNALIZED_STRING_TYPE ["a"], ] handlers: [ ] diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/Modules.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/Modules.golden index 7f13b4a3d5..db5b72c6ee 100644 --- a/deps/v8/test/cctest/interpreter/bytecode_expectations/Modules.golden +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/Modules.golden @@ -11,62 +11,64 @@ top level: yes snippet: " import \"bar\"; " -frame size: 8 +frame size: 9 parameter count: 2 -bytecode array length: 125 +bytecode array length: 131 bytecodes: [ B(Ldar), R(new_target), - B(JumpIfUndefined), U8(21), + B(JumpIfUndefined), U8(28), + B(CallRuntime), U16(Runtime::k_GeneratorGetContext), R(new_target), U8(1), + B(PushContext), R(2), B(ResumeGenerator), R(new_target), B(Star), R(1), B(LdaZero), B(TestEqualStrict), R(1), U8(0), B(JumpIfTrue), U8(63), - B(LdaSmi), U8(77), - B(Star), R(2), - B(CallRuntime), U16(Runtime::kAbort), R(2), U8(1), + B(LdaSmi), U8(78), + B(Star), R(3), + B(CallRuntime), U16(Runtime::kAbort), R(3), U8(1), B(LdaSmi), U8(-2), B(Star), R(1), B(LdaConstant), U8(0), - B(Star), R(4), - B(Mov), R(arg0), R(2), - B(Mov), R(closure), R(3), - B(CallRuntime), U16(Runtime::kPushModuleContext), R(2), U8(3), + B(Star), R(5), + B(Mov), R(arg0), R(3), + B(Mov), R(closure), R(4), + B(CallRuntime), U16(Runtime::kPushModuleContext), R(3), U8(3), B(PushContext), R(0), B(Ldar), R(this), B(StaCurrentContextSlot), U8(4), /* 0 E> */ B(StackCheck), B(LdaCurrentContextSlot), U8(4), - B(Star), R(3), - B(Mov), R(closure), R(2), - /* 0 E> */ B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(2), U8(2), + B(Star), R(4), + B(Mov), R(closure), R(3), + /* 0 E> */ B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(3), U8(2), B(StaCurrentContextSlot), U8(5), - B(Star), R(2), - B(LdaCurrentContextSlot), U8(5), B(Star), R(3), + B(LdaCurrentContextSlot), U8(5), + B(Star), R(4), B(LdaZero), - B(SuspendGenerator), R(3), - B(Ldar), R(2), + B(SuspendGenerator), R(4), + B(Ldar), R(3), /* 13 S> */ B(Return), B(LdaSmi), U8(-2), B(Star), R(1), - B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(3), U8(1), - B(Star), R(4), - B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(3), U8(1), + B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(4), U8(1), B(Star), R(5), + B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(4), U8(1), + B(Star), R(6), B(LdaZero), - B(TestEqualStrict), R(5), U8(0), - B(JumpIfTrue), U8(26), + B(TestEqualStrict), R(6), U8(0), + B(JumpIfTrue), U8(25), B(LdaSmi), U8(2), - B(TestEqualStrict), R(5), U8(0), - B(JumpIfTrue), U8(16), + B(TestEqualStrict), R(6), U8(0), + B(JumpIfTrue), U8(15), B(Jump), U8(2), B(LdaTrue), - B(Star), R(7), - B(Mov), R(4), R(6), - B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(6), U8(2), + B(Star), R(8), + B(Mov), R(5), R(7), + B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(7), U8(2), /* 13 S> */ B(Return), - B(Ldar), R(4), + B(Ldar), R(5), /* 0 E> */ B(Throw), B(LdaUndefined), /* 13 S> */ B(Return), @@ -81,62 +83,64 @@ handlers: [ snippet: " import {foo} from \"bar\"; " -frame size: 8 +frame size: 9 parameter count: 2 -bytecode array length: 125 +bytecode array length: 131 bytecodes: [ B(Ldar), R(new_target), - B(JumpIfUndefined), U8(21), + B(JumpIfUndefined), U8(28), + B(CallRuntime), U16(Runtime::k_GeneratorGetContext), R(new_target), U8(1), + B(PushContext), R(2), B(ResumeGenerator), R(new_target), B(Star), R(1), B(LdaZero), B(TestEqualStrict), R(1), U8(0), B(JumpIfTrue), U8(63), - B(LdaSmi), U8(77), - B(Star), R(2), - B(CallRuntime), U16(Runtime::kAbort), R(2), U8(1), + B(LdaSmi), U8(78), + B(Star), R(3), + B(CallRuntime), U16(Runtime::kAbort), R(3), U8(1), B(LdaSmi), U8(-2), B(Star), R(1), B(LdaConstant), U8(0), - B(Star), R(4), - B(Mov), R(arg0), R(2), - B(Mov), R(closure), R(3), - B(CallRuntime), U16(Runtime::kPushModuleContext), R(2), U8(3), + B(Star), R(5), + B(Mov), R(arg0), R(3), + B(Mov), R(closure), R(4), + B(CallRuntime), U16(Runtime::kPushModuleContext), R(3), U8(3), B(PushContext), R(0), B(Ldar), R(this), B(StaCurrentContextSlot), U8(4), /* 0 E> */ B(StackCheck), B(LdaCurrentContextSlot), U8(4), - B(Star), R(3), - B(Mov), R(closure), R(2), - /* 0 E> */ B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(2), U8(2), + B(Star), R(4), + B(Mov), R(closure), R(3), + /* 0 E> */ B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(3), U8(2), B(StaCurrentContextSlot), U8(5), - B(Star), R(2), - B(LdaCurrentContextSlot), U8(5), B(Star), R(3), + B(LdaCurrentContextSlot), U8(5), + B(Star), R(4), B(LdaZero), - B(SuspendGenerator), R(3), - B(Ldar), R(2), + B(SuspendGenerator), R(4), + B(Ldar), R(3), /* 24 S> */ B(Return), B(LdaSmi), U8(-2), B(Star), R(1), - B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(3), U8(1), - B(Star), R(4), - B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(3), U8(1), + B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(4), U8(1), B(Star), R(5), + B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(4), U8(1), + B(Star), R(6), B(LdaZero), - B(TestEqualStrict), R(5), U8(0), - B(JumpIfTrue), U8(26), + B(TestEqualStrict), R(6), U8(0), + B(JumpIfTrue), U8(25), B(LdaSmi), U8(2), - B(TestEqualStrict), R(5), U8(0), - B(JumpIfTrue), U8(16), + B(TestEqualStrict), R(6), U8(0), + B(JumpIfTrue), U8(15), B(Jump), U8(2), B(LdaTrue), - B(Star), R(7), - B(Mov), R(4), R(6), - B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(6), U8(2), + B(Star), R(8), + B(Mov), R(5), R(7), + B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(7), U8(2), /* 24 S> */ B(Return), - B(Ldar), R(4), + B(Ldar), R(5), /* 0 E> */ B(Throw), B(LdaUndefined), /* 24 S> */ B(Return), @@ -153,74 +157,76 @@ snippet: " goo(42); { let x; { goo(42) } }; " -frame size: 9 +frame size: 10 parameter count: 2 -bytecode array length: 195 +bytecode array length: 201 bytecodes: [ B(Ldar), R(new_target), - B(JumpIfUndefined), U8(21), + B(JumpIfUndefined), U8(28), + B(CallRuntime), U16(Runtime::k_GeneratorGetContext), R(new_target), U8(1), + B(PushContext), R(3), B(ResumeGenerator), R(new_target), B(Star), R(2), B(LdaZero), B(TestEqualStrict), R(2), U8(0), B(JumpIfTrue), U8(63), - B(LdaSmi), U8(77), - B(Star), R(3), - B(CallRuntime), U16(Runtime::kAbort), R(3), U8(1), + B(LdaSmi), U8(78), + B(Star), R(4), + B(CallRuntime), U16(Runtime::kAbort), R(4), U8(1), B(LdaSmi), U8(-2), B(Star), R(2), B(LdaConstant), U8(0), - B(Star), R(5), - B(Mov), R(arg0), R(3), - B(Mov), R(closure), R(4), - B(CallRuntime), U16(Runtime::kPushModuleContext), R(3), U8(3), + B(Star), R(6), + B(Mov), R(arg0), R(4), + B(Mov), R(closure), R(5), + B(CallRuntime), U16(Runtime::kPushModuleContext), R(4), U8(3), B(PushContext), R(0), B(Ldar), R(this), B(StaCurrentContextSlot), U8(4), /* 0 E> */ B(StackCheck), B(LdaCurrentContextSlot), U8(4), - B(Star), R(4), - B(Mov), R(closure), R(3), - /* 0 E> */ B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(3), U8(2), + B(Star), R(5), + B(Mov), R(closure), R(4), + /* 0 E> */ B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(4), U8(2), B(StaCurrentContextSlot), U8(5), - B(Star), R(3), - B(LdaCurrentContextSlot), U8(5), B(Star), R(4), + B(LdaCurrentContextSlot), U8(5), + B(Star), R(5), B(LdaZero), - B(SuspendGenerator), R(4), - B(Ldar), R(3), + B(SuspendGenerator), R(5), + B(Ldar), R(4), /* 64 S> */ B(Return), B(LdaSmi), U8(-2), B(Star), R(2), - B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(4), U8(1), - B(Star), R(5), - B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(4), U8(1), + B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(5), U8(1), B(Star), R(6), + B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(5), U8(1), + B(Star), R(7), B(LdaZero), - B(TestEqualStrict), R(6), U8(0), - B(JumpIfTrue), U8(26), + B(TestEqualStrict), R(7), U8(0), + B(JumpIfTrue), U8(25), B(LdaSmi), U8(2), - B(TestEqualStrict), R(6), U8(0), - B(JumpIfTrue), U8(16), + B(TestEqualStrict), R(7), U8(0), + B(JumpIfTrue), U8(15), B(Jump), U8(2), B(LdaTrue), - B(Star), R(8), - B(Mov), R(5), R(7), - B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(7), U8(2), + B(Star), R(9), + B(Mov), R(6), R(8), + B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(8), U8(2), /* 64 S> */ B(Return), - B(Ldar), R(5), + B(Ldar), R(6), /* 0 E> */ B(Throw), /* 32 S> */ B(LdaUndefined), - B(Star), R(4), + B(Star), R(5), /* 32 E> */ B(LdaModuleVariable), U8(-1), U8(0), B(JumpIfNotHole), U8(11), B(LdaConstant), U8(1), - B(Star), R(5), - B(CallRuntime), U16(Runtime::kThrowReferenceError), R(5), U8(1), - B(Star), R(3), + B(Star), R(6), + B(CallRuntime), U16(Runtime::kThrowReferenceError), R(6), U8(1), + B(Star), R(4), B(LdaSmi), U8(42), - B(Star), R(5), - /* 32 E> */ B(Call), R(3), R(4), U8(2), U8(2), + B(Star), R(6), + /* 32 E> */ B(Call), R(4), R(5), U8(2), U8(2), B(Ldar), R(closure), B(CreateBlockContext), U8(2), B(PushContext), R(1), @@ -229,16 +235,16 @@ bytecodes: [ /* 47 S> */ B(LdaUndefined), /* 47 E> */ B(StaCurrentContextSlot), U8(4), /* 52 S> */ B(LdaUndefined), - B(Star), R(4), + B(Star), R(5), /* 52 E> */ B(LdaModuleVariable), U8(-1), U8(1), B(JumpIfNotHole), U8(11), B(LdaConstant), U8(1), - B(Star), R(5), - B(CallRuntime), U16(Runtime::kThrowReferenceError), R(5), U8(1), - B(Star), R(3), + B(Star), R(6), + B(CallRuntime), U16(Runtime::kThrowReferenceError), R(6), U8(1), + B(Star), R(4), B(LdaSmi), U8(42), - B(Star), R(5), - /* 52 E> */ B(Call), R(3), R(4), U8(2), U8(4), + B(Star), R(6), + /* 52 E> */ B(Call), R(4), R(5), U8(2), U8(4), B(PopContext), R(1), B(LdaUndefined), /* 64 S> */ B(Return), @@ -257,62 +263,64 @@ snippet: " foo++; { let x; { foo++ } }; " -frame size: 9 +frame size: 10 parameter count: 2 -bytecode array length: 160 +bytecode array length: 166 bytecodes: [ B(Ldar), R(new_target), - B(JumpIfUndefined), U8(21), + B(JumpIfUndefined), U8(28), + B(CallRuntime), U16(Runtime::k_GeneratorGetContext), R(new_target), U8(1), + B(PushContext), R(3), B(ResumeGenerator), R(new_target), B(Star), R(2), B(LdaZero), B(TestEqualStrict), R(2), U8(0), B(JumpIfTrue), U8(63), - B(LdaSmi), U8(77), - B(Star), R(3), - B(CallRuntime), U16(Runtime::kAbort), R(3), U8(1), + B(LdaSmi), U8(78), + B(Star), R(4), + B(CallRuntime), U16(Runtime::kAbort), R(4), U8(1), B(LdaSmi), U8(-2), B(Star), R(2), B(LdaConstant), U8(0), - B(Star), R(5), - B(Mov), R(arg0), R(3), - B(Mov), R(closure), R(4), - B(CallRuntime), U16(Runtime::kPushModuleContext), R(3), U8(3), + B(Star), R(6), + B(Mov), R(arg0), R(4), + B(Mov), R(closure), R(5), + B(CallRuntime), U16(Runtime::kPushModuleContext), R(4), U8(3), B(PushContext), R(0), B(Ldar), R(this), B(StaCurrentContextSlot), U8(4), /* 0 E> */ B(StackCheck), B(LdaCurrentContextSlot), U8(4), - B(Star), R(4), - B(Mov), R(closure), R(3), - /* 0 E> */ B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(3), U8(2), + B(Star), R(5), + B(Mov), R(closure), R(4), + /* 0 E> */ B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(4), U8(2), B(StaCurrentContextSlot), U8(5), - B(Star), R(3), - B(LdaCurrentContextSlot), U8(5), B(Star), R(4), + B(LdaCurrentContextSlot), U8(5), + B(Star), R(5), B(LdaZero), - B(SuspendGenerator), R(4), - B(Ldar), R(3), + B(SuspendGenerator), R(5), + B(Ldar), R(4), /* 49 S> */ B(Return), B(LdaSmi), U8(-2), B(Star), R(2), - B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(4), U8(1), - B(Star), R(5), - B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(4), U8(1), + B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(5), U8(1), B(Star), R(6), + B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(5), U8(1), + B(Star), R(7), B(LdaZero), - B(TestEqualStrict), R(6), U8(0), - B(JumpIfTrue), U8(26), + B(TestEqualStrict), R(7), U8(0), + B(JumpIfTrue), U8(25), B(LdaSmi), U8(2), - B(TestEqualStrict), R(6), U8(0), - B(JumpIfTrue), U8(16), + B(TestEqualStrict), R(7), U8(0), + B(JumpIfTrue), U8(15), B(Jump), U8(2), B(LdaTrue), - B(Star), R(8), - B(Mov), R(5), R(7), - B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(7), U8(2), + B(Star), R(9), + B(Mov), R(6), R(8), + B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(8), U8(2), /* 49 S> */ B(Return), - B(Ldar), R(5), + B(Ldar), R(6), /* 0 E> */ B(Throw), /* 17 S> */ B(LdaSmi), U8(42), /* 17 E> */ B(StaModuleVariable), U8(1), U8(0), @@ -346,27 +354,29 @@ snippet: " foo++; { let x; { foo++ } }; " -frame size: 9 +frame size: 10 parameter count: 2 -bytecode array length: 164 +bytecode array length: 170 bytecodes: [ B(Ldar), R(new_target), - B(JumpIfUndefined), U8(21), + B(JumpIfUndefined), U8(28), + B(CallRuntime), U16(Runtime::k_GeneratorGetContext), R(new_target), U8(1), + B(PushContext), R(3), B(ResumeGenerator), R(new_target), B(Star), R(2), B(LdaZero), B(TestEqualStrict), R(2), U8(0), B(JumpIfTrue), U8(67), - B(LdaSmi), U8(77), - B(Star), R(3), - B(CallRuntime), U16(Runtime::kAbort), R(3), U8(1), + B(LdaSmi), U8(78), + B(Star), R(4), + B(CallRuntime), U16(Runtime::kAbort), R(4), U8(1), B(LdaSmi), U8(-2), B(Star), R(2), B(LdaConstant), U8(0), - B(Star), R(5), - B(Mov), R(arg0), R(3), - B(Mov), R(closure), R(4), - B(CallRuntime), U16(Runtime::kPushModuleContext), R(3), U8(3), + B(Star), R(6), + B(Mov), R(arg0), R(4), + B(Mov), R(closure), R(5), + B(CallRuntime), U16(Runtime::kPushModuleContext), R(4), U8(3), B(PushContext), R(0), B(Ldar), R(this), B(StaCurrentContextSlot), U8(4), @@ -374,36 +384,36 @@ bytecodes: [ B(StaModuleVariable), U8(1), U8(0), /* 0 E> */ B(StackCheck), B(LdaCurrentContextSlot), U8(4), - B(Star), R(4), - B(Mov), R(closure), R(3), - /* 0 E> */ B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(3), U8(2), + B(Star), R(5), + B(Mov), R(closure), R(4), + /* 0 E> */ B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(4), U8(2), B(StaCurrentContextSlot), U8(5), - B(Star), R(3), - B(LdaCurrentContextSlot), U8(5), B(Star), R(4), + B(LdaCurrentContextSlot), U8(5), + B(Star), R(5), B(LdaZero), - B(SuspendGenerator), R(4), - B(Ldar), R(3), + B(SuspendGenerator), R(5), + B(Ldar), R(4), /* 49 S> */ B(Return), B(LdaSmi), U8(-2), B(Star), R(2), - B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(4), U8(1), - B(Star), R(5), - B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(4), U8(1), + B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(5), U8(1), B(Star), R(6), + B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(5), U8(1), + B(Star), R(7), B(LdaZero), - B(TestEqualStrict), R(6), U8(0), - B(JumpIfTrue), U8(26), + B(TestEqualStrict), R(7), U8(0), + B(JumpIfTrue), U8(25), B(LdaSmi), U8(2), - B(TestEqualStrict), R(6), U8(0), - B(JumpIfTrue), U8(16), + B(TestEqualStrict), R(7), U8(0), + B(JumpIfTrue), U8(15), B(Jump), U8(2), B(LdaTrue), - B(Star), R(8), - B(Mov), R(5), R(7), - B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(7), U8(2), + B(Star), R(9), + B(Mov), R(6), R(8), + B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(8), U8(2), /* 49 S> */ B(Return), - B(Ldar), R(5), + B(Ldar), R(6), /* 0 E> */ B(Throw), /* 17 S> */ B(LdaSmi), U8(42), /* 17 E> */ B(StaModuleVariable), U8(1), U8(0), @@ -437,27 +447,29 @@ snippet: " foo++; { let x; { foo++ } }; " -frame size: 9 +frame size: 10 parameter count: 2 -bytecode array length: 168 +bytecode array length: 174 bytecodes: [ B(Ldar), R(new_target), - B(JumpIfUndefined), U8(21), + B(JumpIfUndefined), U8(28), + B(CallRuntime), U16(Runtime::k_GeneratorGetContext), R(new_target), U8(1), + B(PushContext), R(3), B(ResumeGenerator), R(new_target), B(Star), R(2), B(LdaZero), B(TestEqualStrict), R(2), U8(0), B(JumpIfTrue), U8(67), - B(LdaSmi), U8(77), - B(Star), R(3), - B(CallRuntime), U16(Runtime::kAbort), R(3), U8(1), + B(LdaSmi), U8(78), + B(Star), R(4), + B(CallRuntime), U16(Runtime::kAbort), R(4), U8(1), B(LdaSmi), U8(-2), B(Star), R(2), B(LdaConstant), U8(0), - B(Star), R(5), - B(Mov), R(arg0), R(3), - B(Mov), R(closure), R(4), - B(CallRuntime), U16(Runtime::kPushModuleContext), R(3), U8(3), + B(Star), R(6), + B(Mov), R(arg0), R(4), + B(Mov), R(closure), R(5), + B(CallRuntime), U16(Runtime::kPushModuleContext), R(4), U8(3), B(PushContext), R(0), B(Ldar), R(this), B(StaCurrentContextSlot), U8(4), @@ -465,36 +477,36 @@ bytecodes: [ B(StaModuleVariable), U8(1), U8(0), /* 0 E> */ B(StackCheck), B(LdaCurrentContextSlot), U8(4), - B(Star), R(4), - B(Mov), R(closure), R(3), - /* 0 E> */ B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(3), U8(2), + B(Star), R(5), + B(Mov), R(closure), R(4), + /* 0 E> */ B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(4), U8(2), B(StaCurrentContextSlot), U8(5), - B(Star), R(3), - B(LdaCurrentContextSlot), U8(5), B(Star), R(4), + B(LdaCurrentContextSlot), U8(5), + B(Star), R(5), B(LdaZero), - B(SuspendGenerator), R(4), - B(Ldar), R(3), + B(SuspendGenerator), R(5), + B(Ldar), R(4), /* 51 S> */ B(Return), B(LdaSmi), U8(-2), B(Star), R(2), - B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(4), U8(1), - B(Star), R(5), - B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(4), U8(1), + B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(5), U8(1), B(Star), R(6), + B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(5), U8(1), + B(Star), R(7), B(LdaZero), - B(TestEqualStrict), R(6), U8(0), - B(JumpIfTrue), U8(26), + B(TestEqualStrict), R(7), U8(0), + B(JumpIfTrue), U8(25), B(LdaSmi), U8(2), - B(TestEqualStrict), R(6), U8(0), - B(JumpIfTrue), U8(16), + B(TestEqualStrict), R(7), U8(0), + B(JumpIfTrue), U8(15), B(Jump), U8(2), B(LdaTrue), - B(Star), R(8), - B(Mov), R(5), R(7), - B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(7), U8(2), + B(Star), R(9), + B(Mov), R(6), R(8), + B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(8), U8(2), /* 51 S> */ B(Return), - B(Ldar), R(5), + B(Ldar), R(6), /* 0 E> */ B(Throw), /* 19 S> */ B(LdaSmi), U8(42), /* 19 E> */ B(StaModuleVariable), U8(1), U8(0), @@ -526,27 +538,29 @@ handlers: [ snippet: " export default (function () {}); " -frame size: 8 +frame size: 9 parameter count: 2 -bytecode array length: 135 +bytecode array length: 142 bytecodes: [ B(Ldar), R(new_target), - B(JumpIfUndefined), U8(21), + B(JumpIfUndefined), U8(28), + B(CallRuntime), U16(Runtime::k_GeneratorGetContext), R(new_target), U8(1), + B(PushContext), R(2), B(ResumeGenerator), R(new_target), B(Star), R(1), B(LdaZero), B(TestEqualStrict), R(1), U8(0), B(JumpIfTrue), U8(67), - B(LdaSmi), U8(77), - B(Star), R(2), - B(CallRuntime), U16(Runtime::kAbort), R(2), U8(1), + B(LdaSmi), U8(78), + B(Star), R(3), + B(CallRuntime), U16(Runtime::kAbort), R(3), U8(1), B(LdaSmi), U8(-2), B(Star), R(1), B(LdaConstant), U8(0), - B(Star), R(4), - B(Mov), R(arg0), R(2), - B(Mov), R(closure), R(3), - B(CallRuntime), U16(Runtime::kPushModuleContext), R(2), U8(3), + B(Star), R(5), + B(Mov), R(arg0), R(3), + B(Mov), R(closure), R(4), + B(CallRuntime), U16(Runtime::kPushModuleContext), R(3), U8(3), B(PushContext), R(0), B(Ldar), R(this), B(StaCurrentContextSlot), U8(4), @@ -554,38 +568,38 @@ bytecodes: [ B(StaModuleVariable), U8(1), U8(0), /* 0 E> */ B(StackCheck), B(LdaCurrentContextSlot), U8(4), - B(Star), R(3), - B(Mov), R(closure), R(2), - /* 0 E> */ B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(2), U8(2), + B(Star), R(4), + B(Mov), R(closure), R(3), + /* 0 E> */ B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(3), U8(2), B(StaCurrentContextSlot), U8(5), - B(Star), R(2), - B(LdaCurrentContextSlot), U8(5), B(Star), R(3), + B(LdaCurrentContextSlot), U8(5), + B(Star), R(4), B(LdaZero), - B(SuspendGenerator), R(3), - B(Ldar), R(2), + B(SuspendGenerator), R(4), + B(Ldar), R(3), /* 32 S> */ B(Return), B(LdaSmi), U8(-2), B(Star), R(1), - B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(3), U8(1), - B(Star), R(4), - B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(3), U8(1), + B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(4), U8(1), B(Star), R(5), + B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(4), U8(1), + B(Star), R(6), B(LdaZero), - B(TestEqualStrict), R(5), U8(0), - B(JumpIfTrue), U8(26), + B(TestEqualStrict), R(6), U8(0), + B(JumpIfTrue), U8(25), B(LdaSmi), U8(2), - B(TestEqualStrict), R(5), U8(0), - B(JumpIfTrue), U8(16), + B(TestEqualStrict), R(6), U8(0), + B(JumpIfTrue), U8(15), B(Jump), U8(2), B(LdaTrue), - B(Star), R(7), - B(Mov), R(4), R(6), - B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(6), U8(2), + B(Star), R(8), + B(Mov), R(5), R(7), + B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(7), U8(2), /* 32 S> */ B(Return), - B(Ldar), R(4), + B(Ldar), R(5), /* 0 E> */ B(Throw), - B(CreateClosure), U8(1), U8(0), + B(CreateClosure), U8(1), U8(2), U8(0), B(StaModuleVariable), U8(1), U8(0), B(LdaUndefined), /* 32 S> */ B(Return), @@ -601,27 +615,29 @@ handlers: [ snippet: " export default (class {}); " -frame size: 8 +frame size: 9 parameter count: 2 -bytecode array length: 170 +bytecode array length: 179 bytecodes: [ B(Ldar), R(new_target), - B(JumpIfUndefined), U8(21), + B(JumpIfUndefined), U8(28), + B(CallRuntime), U16(Runtime::k_GeneratorGetContext), R(new_target), U8(1), + B(PushContext), R(2), B(ResumeGenerator), R(new_target), B(Star), R(1), B(LdaZero), B(TestEqualStrict), R(1), U8(0), B(JumpIfTrue), U8(67), - B(LdaSmi), U8(77), - B(Star), R(2), - B(CallRuntime), U16(Runtime::kAbort), R(2), U8(1), + B(LdaSmi), U8(78), + B(Star), R(3), + B(CallRuntime), U16(Runtime::kAbort), R(3), U8(1), B(LdaSmi), U8(-2), B(Star), R(1), B(LdaConstant), U8(0), - B(Star), R(4), - B(Mov), R(arg0), R(2), - B(Mov), R(closure), R(3), - B(CallRuntime), U16(Runtime::kPushModuleContext), R(2), U8(3), + B(Star), R(5), + B(Mov), R(arg0), R(3), + B(Mov), R(closure), R(4), + B(CallRuntime), U16(Runtime::kPushModuleContext), R(3), U8(3), B(PushContext), R(0), B(Ldar), R(this), B(StaCurrentContextSlot), U8(4), @@ -629,50 +645,50 @@ bytecodes: [ B(StaModuleVariable), U8(1), U8(0), /* 0 E> */ B(StackCheck), B(LdaCurrentContextSlot), U8(4), - B(Star), R(3), - B(Mov), R(closure), R(2), - /* 0 E> */ B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(2), U8(2), + B(Star), R(4), + B(Mov), R(closure), R(3), + /* 0 E> */ B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(3), U8(2), B(StaCurrentContextSlot), U8(5), - B(Star), R(2), - B(LdaCurrentContextSlot), U8(5), B(Star), R(3), + B(LdaCurrentContextSlot), U8(5), + B(Star), R(4), B(LdaZero), - B(SuspendGenerator), R(3), - B(Ldar), R(2), + B(SuspendGenerator), R(4), + B(Ldar), R(3), /* 26 S> */ B(Return), B(LdaSmi), U8(-2), B(Star), R(1), - B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(3), U8(1), - B(Star), R(4), - B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(3), U8(1), + B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(4), U8(1), B(Star), R(5), + B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(4), U8(1), + B(Star), R(6), B(LdaZero), - B(TestEqualStrict), R(5), U8(0), - B(JumpIfTrue), U8(26), + B(TestEqualStrict), R(6), U8(0), + B(JumpIfTrue), U8(25), B(LdaSmi), U8(2), - B(TestEqualStrict), R(5), U8(0), - B(JumpIfTrue), U8(16), + B(TestEqualStrict), R(6), U8(0), + B(JumpIfTrue), U8(15), B(Jump), U8(2), B(LdaTrue), - B(Star), R(7), - B(Mov), R(4), R(6), - B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(6), U8(2), + B(Star), R(8), + B(Mov), R(5), R(7), + B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(7), U8(2), /* 26 S> */ B(Return), - B(Ldar), R(4), + B(Ldar), R(5), /* 0 E> */ B(Throw), - /* 16 S> */ B(LdaTheHole), - B(Star), R(2), - B(CreateClosure), U8(1), U8(0), + /* 16 S> */ B(CreateClosure), U8(1), U8(2), U8(0), B(Star), R(3), - B(LdaSmi), U8(16), + B(LdaTheHole), B(Star), R(4), + B(LdaSmi), U8(16), + B(Star), R(6), B(LdaSmi), U8(24), - B(Star), R(5), - B(CallRuntime), U16(Runtime::kDefineClass), R(2), U8(4), - B(Star), R(2), - B(LdaNamedProperty), R(2), U8(2), U8(2), - B(Star), R(3), - B(CallRuntime), U16(Runtime::kToFastProperties), R(2), U8(1), + B(Star), R(7), + B(Mov), R(3), R(5), + B(CallRuntime), U16(Runtime::kDefineClass), R(4), U8(4), + B(Star), R(4), + B(CallRuntime), U16(Runtime::kInstallClassNameAccessor), R(3), U8(1), + B(CallRuntime), U16(Runtime::kToFastProperties), R(3), U8(1), B(StaCurrentContextSlot), U8(6), B(LdaCurrentContextSlot), U8(6), /* 16 E> */ B(StaModuleVariable), U8(1), U8(0), @@ -682,7 +698,6 @@ bytecodes: [ constant pool: [ FIXED_ARRAY_TYPE, SHARED_FUNCTION_INFO_TYPE, - ONE_BYTE_INTERNALIZED_STRING_TYPE ["prototype"], ] handlers: [ ] @@ -691,62 +706,64 @@ handlers: [ snippet: " export {foo as goo} from \"bar\" " -frame size: 8 +frame size: 9 parameter count: 2 -bytecode array length: 125 +bytecode array length: 131 bytecodes: [ B(Ldar), R(new_target), - B(JumpIfUndefined), U8(21), + B(JumpIfUndefined), U8(28), + B(CallRuntime), U16(Runtime::k_GeneratorGetContext), R(new_target), U8(1), + B(PushContext), R(2), B(ResumeGenerator), R(new_target), B(Star), R(1), B(LdaZero), B(TestEqualStrict), R(1), U8(0), B(JumpIfTrue), U8(63), - B(LdaSmi), U8(77), - B(Star), R(2), - B(CallRuntime), U16(Runtime::kAbort), R(2), U8(1), + B(LdaSmi), U8(78), + B(Star), R(3), + B(CallRuntime), U16(Runtime::kAbort), R(3), U8(1), B(LdaSmi), U8(-2), B(Star), R(1), B(LdaConstant), U8(0), - B(Star), R(4), - B(Mov), R(arg0), R(2), - B(Mov), R(closure), R(3), - B(CallRuntime), U16(Runtime::kPushModuleContext), R(2), U8(3), + B(Star), R(5), + B(Mov), R(arg0), R(3), + B(Mov), R(closure), R(4), + B(CallRuntime), U16(Runtime::kPushModuleContext), R(3), U8(3), B(PushContext), R(0), B(Ldar), R(this), B(StaCurrentContextSlot), U8(4), /* 0 E> */ B(StackCheck), B(LdaCurrentContextSlot), U8(4), - B(Star), R(3), - B(Mov), R(closure), R(2), - /* 0 E> */ B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(2), U8(2), + B(Star), R(4), + B(Mov), R(closure), R(3), + /* 0 E> */ B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(3), U8(2), B(StaCurrentContextSlot), U8(5), - B(Star), R(2), - B(LdaCurrentContextSlot), U8(5), B(Star), R(3), + B(LdaCurrentContextSlot), U8(5), + B(Star), R(4), B(LdaZero), - B(SuspendGenerator), R(3), - B(Ldar), R(2), + B(SuspendGenerator), R(4), + B(Ldar), R(3), /* 30 S> */ B(Return), B(LdaSmi), U8(-2), B(Star), R(1), - B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(3), U8(1), - B(Star), R(4), - B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(3), U8(1), + B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(4), U8(1), B(Star), R(5), + B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(4), U8(1), + B(Star), R(6), B(LdaZero), - B(TestEqualStrict), R(5), U8(0), - B(JumpIfTrue), U8(26), + B(TestEqualStrict), R(6), U8(0), + B(JumpIfTrue), U8(25), B(LdaSmi), U8(2), - B(TestEqualStrict), R(5), U8(0), - B(JumpIfTrue), U8(16), + B(TestEqualStrict), R(6), U8(0), + B(JumpIfTrue), U8(15), B(Jump), U8(2), B(LdaTrue), - B(Star), R(7), - B(Mov), R(4), R(6), - B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(6), U8(2), + B(Star), R(8), + B(Mov), R(5), R(7), + B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(7), U8(2), /* 30 S> */ B(Return), - B(Ldar), R(4), + B(Ldar), R(5), /* 0 E> */ B(Throw), B(LdaUndefined), /* 30 S> */ B(Return), @@ -761,62 +778,64 @@ handlers: [ snippet: " export * from \"bar\" " -frame size: 8 +frame size: 9 parameter count: 2 -bytecode array length: 125 +bytecode array length: 131 bytecodes: [ B(Ldar), R(new_target), - B(JumpIfUndefined), U8(21), + B(JumpIfUndefined), U8(28), + B(CallRuntime), U16(Runtime::k_GeneratorGetContext), R(new_target), U8(1), + B(PushContext), R(2), B(ResumeGenerator), R(new_target), B(Star), R(1), B(LdaZero), B(TestEqualStrict), R(1), U8(0), B(JumpIfTrue), U8(63), - B(LdaSmi), U8(77), - B(Star), R(2), - B(CallRuntime), U16(Runtime::kAbort), R(2), U8(1), + B(LdaSmi), U8(78), + B(Star), R(3), + B(CallRuntime), U16(Runtime::kAbort), R(3), U8(1), B(LdaSmi), U8(-2), B(Star), R(1), B(LdaConstant), U8(0), - B(Star), R(4), - B(Mov), R(arg0), R(2), - B(Mov), R(closure), R(3), - B(CallRuntime), U16(Runtime::kPushModuleContext), R(2), U8(3), + B(Star), R(5), + B(Mov), R(arg0), R(3), + B(Mov), R(closure), R(4), + B(CallRuntime), U16(Runtime::kPushModuleContext), R(3), U8(3), B(PushContext), R(0), B(Ldar), R(this), B(StaCurrentContextSlot), U8(4), /* 0 E> */ B(StackCheck), B(LdaCurrentContextSlot), U8(4), - B(Star), R(3), - B(Mov), R(closure), R(2), - /* 0 E> */ B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(2), U8(2), + B(Star), R(4), + B(Mov), R(closure), R(3), + /* 0 E> */ B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(3), U8(2), B(StaCurrentContextSlot), U8(5), - B(Star), R(2), - B(LdaCurrentContextSlot), U8(5), B(Star), R(3), + B(LdaCurrentContextSlot), U8(5), + B(Star), R(4), B(LdaZero), - B(SuspendGenerator), R(3), - B(Ldar), R(2), + B(SuspendGenerator), R(4), + B(Ldar), R(3), /* 19 S> */ B(Return), B(LdaSmi), U8(-2), B(Star), R(1), - B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(3), U8(1), - B(Star), R(4), - B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(3), U8(1), + B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(4), U8(1), B(Star), R(5), + B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(4), U8(1), + B(Star), R(6), B(LdaZero), - B(TestEqualStrict), R(5), U8(0), - B(JumpIfTrue), U8(26), + B(TestEqualStrict), R(6), U8(0), + B(JumpIfTrue), U8(25), B(LdaSmi), U8(2), - B(TestEqualStrict), R(5), U8(0), - B(JumpIfTrue), U8(16), + B(TestEqualStrict), R(6), U8(0), + B(JumpIfTrue), U8(15), B(Jump), U8(2), B(LdaTrue), - B(Star), R(7), - B(Mov), R(4), R(6), - B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(6), U8(2), + B(Star), R(8), + B(Mov), R(5), R(7), + B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(7), U8(2), /* 19 S> */ B(Return), - B(Ldar), R(4), + B(Ldar), R(5), /* 0 E> */ B(Throw), B(LdaUndefined), /* 19 S> */ B(Return), @@ -832,78 +851,80 @@ snippet: " import * as foo from \"bar\" foo.f(foo, foo.x); " -frame size: 8 +frame size: 9 parameter count: 2 -bytecode array length: 164 +bytecode array length: 170 bytecodes: [ B(Ldar), R(new_target), - B(JumpIfUndefined), U8(21), + B(JumpIfUndefined), U8(28), + B(CallRuntime), U16(Runtime::k_GeneratorGetContext), R(new_target), U8(1), + B(PushContext), R(2), B(ResumeGenerator), R(new_target), B(Star), R(1), B(LdaZero), B(TestEqualStrict), R(1), U8(0), B(JumpIfTrue), U8(73), - B(LdaSmi), U8(77), - B(Star), R(2), - B(CallRuntime), U16(Runtime::kAbort), R(2), U8(1), + B(LdaSmi), U8(78), + B(Star), R(3), + B(CallRuntime), U16(Runtime::kAbort), R(3), U8(1), B(LdaSmi), U8(-2), B(Star), R(1), B(LdaConstant), U8(0), - B(Star), R(4), - B(Mov), R(arg0), R(2), - B(Mov), R(closure), R(3), - B(CallRuntime), U16(Runtime::kPushModuleContext), R(2), U8(3), + B(Star), R(5), + B(Mov), R(arg0), R(3), + B(Mov), R(closure), R(4), + B(CallRuntime), U16(Runtime::kPushModuleContext), R(3), U8(3), B(PushContext), R(0), B(Ldar), R(this), B(StaCurrentContextSlot), U8(4), B(LdaZero), - B(Star), R(2), - B(CallRuntime), U16(Runtime::kGetModuleNamespace), R(2), U8(1), + B(Star), R(3), + B(CallRuntime), U16(Runtime::kGetModuleNamespace), R(3), U8(1), B(StaCurrentContextSlot), U8(6), /* 0 E> */ B(StackCheck), B(LdaCurrentContextSlot), U8(4), - B(Star), R(3), - B(Mov), R(closure), R(2), - /* 0 E> */ B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(2), U8(2), + B(Star), R(4), + B(Mov), R(closure), R(3), + /* 0 E> */ B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(3), U8(2), B(StaCurrentContextSlot), U8(5), - B(Star), R(2), - B(LdaCurrentContextSlot), U8(5), B(Star), R(3), + B(LdaCurrentContextSlot), U8(5), + B(Star), R(4), B(LdaZero), - B(SuspendGenerator), R(3), - B(Ldar), R(2), + B(SuspendGenerator), R(4), + B(Ldar), R(3), /* 45 S> */ B(Return), B(LdaSmi), U8(-2), B(Star), R(1), - B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(3), U8(1), - B(Star), R(4), - B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(3), U8(1), + B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(4), U8(1), B(Star), R(5), + B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(4), U8(1), + B(Star), R(6), B(LdaZero), - B(TestEqualStrict), R(5), U8(0), - B(JumpIfTrue), U8(26), + B(TestEqualStrict), R(6), U8(0), + B(JumpIfTrue), U8(25), B(LdaSmi), U8(2), - B(TestEqualStrict), R(5), U8(0), - B(JumpIfTrue), U8(16), + B(TestEqualStrict), R(6), U8(0), + B(JumpIfTrue), U8(15), B(Jump), U8(2), B(LdaTrue), - B(Star), R(7), - B(Mov), R(4), R(6), - B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(6), U8(2), + B(Star), R(8), + B(Mov), R(5), R(7), + B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(7), U8(2), /* 45 S> */ B(Return), - B(Ldar), R(4), + B(Ldar), R(5), /* 0 E> */ B(Throw), /* 27 S> */ B(LdaCurrentContextSlot), U8(6), - B(Star), R(3), - /* 30 E> */ B(LdaNamedProperty), R(3), U8(1), U8(4), - B(Star), R(2), - B(LdaCurrentContextSlot), U8(6), B(Star), R(4), + /* 30 E> */ B(LdaNamedProperty), R(4), U8(1), U8(4), + B(Star), R(3), B(LdaCurrentContextSlot), U8(6), B(Star), R(5), - /* 41 E> */ B(LdaNamedProperty), R(5), U8(2), U8(6), - B(Star), R(5), - /* 31 E> */ B(CallProperty), R(2), R(3), U8(3), U8(2), + B(LdaCurrentContextSlot), U8(6), + B(Star), R(6), + /* 41 E> */ B(LdaNamedProperty), R(6), U8(2), U8(6), + B(Star), R(6), + /* 31 E> */ B(CallProperty), R(3), R(4), U8(3), U8(2), B(LdaUndefined), /* 45 S> */ B(Return), ] diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/ObjectLiterals.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/ObjectLiterals.golden index 7f81d82a2d..75c6ff57be 100644 --- a/deps/v8/test/cctest/interpreter/bytecode_expectations/ObjectLiterals.golden +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/ObjectLiterals.golden @@ -78,7 +78,7 @@ bytecodes: [ /* 42 S> */ B(LdaSmi), U8(1), B(Star), R(0), /* 45 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(1), R(1), - /* 67 E> */ B(AddSmi), U8(1), R(0), U8(2), + /* 69 E> */ B(AddSmi), U8(1), R(0), U8(2), B(StaNamedPropertySloppy), R(1), U8(1), U8(3), B(Ldar), R(1), /* 76 S> */ B(Return), @@ -96,12 +96,12 @@ snippet: " " frame size: 1 parameter count: 1 -bytecode array length: 16 +bytecode array length: 17 bytecodes: [ /* 30 E> */ B(StackCheck), /* 34 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(1), R(0), - B(CreateClosure), U8(1), U8(2), - B(StaNamedPropertySloppy), R(0), U8(2), U8(2), + B(CreateClosure), U8(1), U8(2), U8(2), + B(StaNamedPropertySloppy), R(0), U8(2), U8(3), B(Ldar), R(0), /* 67 S> */ B(Return), ] @@ -119,12 +119,12 @@ snippet: " " frame size: 1 parameter count: 1 -bytecode array length: 16 +bytecode array length: 17 bytecodes: [ /* 30 E> */ B(StackCheck), /* 34 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(1), R(0), - B(CreateClosure), U8(1), U8(2), - B(StaNamedPropertySloppy), R(0), U8(2), U8(2), + B(CreateClosure), U8(1), U8(2), U8(2), + B(StaNamedPropertySloppy), R(0), U8(2), U8(3), B(Ldar), R(0), /* 68 S> */ B(Return), ] @@ -142,13 +142,13 @@ snippet: " " frame size: 6 parameter count: 1 -bytecode array length: 32 +bytecode array length: 33 bytecodes: [ /* 30 E> */ B(StackCheck), /* 34 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(1), R(0), B(LdaConstant), U8(1), B(Star), R(2), - B(CreateClosure), U8(2), U8(2), + B(CreateClosure), U8(2), U8(2), U8(2), B(Star), R(3), B(LdaNull), B(Star), R(4), @@ -173,15 +173,15 @@ snippet: " " frame size: 6 parameter count: 1 -bytecode array length: 34 +bytecode array length: 36 bytecodes: [ /* 30 E> */ B(StackCheck), /* 34 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(1), R(0), B(LdaConstant), U8(1), B(Star), R(2), - B(CreateClosure), U8(2), U8(2), + B(CreateClosure), U8(2), U8(2), U8(2), B(Star), R(3), - B(CreateClosure), U8(3), U8(2), + B(CreateClosure), U8(3), U8(3), U8(2), B(Star), R(4), B(LdaZero), B(Star), R(5), @@ -205,7 +205,7 @@ snippet: " " frame size: 6 parameter count: 1 -bytecode array length: 32 +bytecode array length: 33 bytecodes: [ /* 30 E> */ B(StackCheck), /* 34 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(1), R(0), @@ -213,7 +213,7 @@ bytecodes: [ B(Star), R(2), B(LdaNull), B(Star), R(3), - B(CreateClosure), U8(2), U8(2), + B(CreateClosure), U8(2), U8(2), U8(2), B(Star), R(4), B(LdaZero), B(Star), R(5), @@ -285,24 +285,19 @@ handlers: [ snippet: " var a = 'test'; return { [a]: 1 }; " -frame size: 7 +frame size: 4 parameter count: 1 -bytecode array length: 33 +bytecode array length: 24 bytecodes: [ /* 30 E> */ B(StackCheck), /* 42 S> */ B(LdaConstant), U8(0), B(Star), R(0), /* 50 S> */ B(CreateObjectLiteral), U8(1), U8(0), U8(35), R(1), - /* 60 E> */ B(ToName), R(3), + /* 60 E> */ B(ToName), R(2), B(LdaSmi), U8(1), - B(Star), R(4), - B(LdaZero), - B(Star), R(5), - B(LdaZero), - B(Star), R(6), - B(Mov), R(1), R(2), - B(CallRuntime), U16(Runtime::kDefineDataPropertyInLiteral), R(2), U8(5), - B(Ldar), R(2), + B(Star), R(3), + B(StaDataPropertyInLiteral), R(1), R(2), U8(0), U8(2), + B(Ldar), R(1), /* 69 S> */ B(Return), ] constant pool: [ @@ -316,25 +311,20 @@ handlers: [ snippet: " var a = 'test'; return { val: a, [a]: 1 }; " -frame size: 7 +frame size: 4 parameter count: 1 -bytecode array length: 37 +bytecode array length: 28 bytecodes: [ /* 30 E> */ B(StackCheck), /* 42 S> */ B(LdaConstant), U8(0), B(Star), R(0), /* 50 S> */ B(CreateObjectLiteral), U8(1), U8(0), U8(1), R(1), /* 64 E> */ B(StaNamedPropertySloppy), R(1), U8(2), U8(2), - /* 68 E> */ B(ToName), R(3), + /* 68 E> */ B(ToName), R(2), B(LdaSmi), U8(1), - B(Star), R(4), - B(LdaZero), - B(Star), R(5), - B(LdaZero), - B(Star), R(6), - B(Mov), R(1), R(2), - B(CallRuntime), U16(Runtime::kDefineDataPropertyInLiteral), R(2), U8(5), - B(Ldar), R(2), + B(Star), R(3), + B(StaDataPropertyInLiteral), R(1), R(2), U8(0), U8(4), + B(Ldar), R(1), /* 77 S> */ B(Return), ] constant pool: [ @@ -349,24 +339,20 @@ handlers: [ snippet: " var a = 'test'; return { [a]: 1, __proto__: {} }; " -frame size: 7 +frame size: 5 parameter count: 1 -bytecode array length: 46 +bytecode array length: 40 bytecodes: [ /* 30 E> */ B(StackCheck), /* 42 S> */ B(LdaConstant), U8(0), B(Star), R(0), /* 50 S> */ B(CreateObjectLiteral), U8(1), U8(1), U8(35), R(1), - /* 60 E> */ B(ToName), R(3), + /* 60 E> */ B(ToName), R(2), B(LdaSmi), U8(1), - B(Star), R(4), - B(LdaZero), - B(Star), R(5), - B(LdaZero), - B(Star), R(6), - B(Mov), R(1), R(2), - B(CallRuntime), U16(Runtime::kDefineDataPropertyInLiteral), R(2), U8(5), + B(Star), R(3), + B(StaDataPropertyInLiteral), R(1), R(2), U8(0), U8(2), B(CreateObjectLiteral), U8(1), U8(0), U8(35), R(4), + B(Mov), R(1), R(2), B(Mov), R(4), R(3), B(CallRuntime), U16(Runtime::kInternalSetPrototype), R(2), U8(2), B(Ldar), R(2), @@ -383,33 +369,29 @@ handlers: [ snippet: " var n = 'name'; return { [n]: 'val', get a() { }, set a(b) {} }; " -frame size: 7 +frame size: 6 parameter count: 1 -bytecode array length: 67 +bytecode array length: 63 bytecodes: [ /* 30 E> */ B(StackCheck), /* 42 S> */ B(LdaConstant), U8(0), B(Star), R(0), /* 50 S> */ B(CreateObjectLiteral), U8(1), U8(0), U8(35), R(1), - /* 60 E> */ B(ToName), R(3), + /* 60 E> */ B(ToName), R(2), B(LdaConstant), U8(2), - B(Star), R(4), - B(LdaZero), - B(Star), R(5), - B(LdaZero), - B(Star), R(6), - B(Mov), R(1), R(2), - B(CallRuntime), U16(Runtime::kDefineDataPropertyInLiteral), R(2), U8(5), + B(Star), R(3), + B(StaDataPropertyInLiteral), R(1), R(2), U8(0), U8(4), B(LdaConstant), U8(3), B(ToName), R(3), - B(CreateClosure), U8(4), U8(2), + B(CreateClosure), U8(4), U8(2), U8(2), B(Star), R(4), B(LdaZero), B(Star), R(5), + B(Mov), R(1), R(2), B(CallRuntime), U16(Runtime::kDefineGetterPropertyUnchecked), R(2), U8(4), B(LdaConstant), U8(3), B(ToName), R(3), - B(CreateClosure), U8(5), U8(2), + B(CreateClosure), U8(5), U8(3), U8(2), B(Star), R(4), B(LdaZero), B(Star), R(5), diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/OuterContextVariables.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/OuterContextVariables.golden index 30b148b1d6..52ea01f910 100644 --- a/deps/v8/test/cctest/interpreter/bytecode_expectations/OuterContextVariables.golden +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/OuterContextVariables.golden @@ -26,7 +26,7 @@ bytecodes: [ /* 102 S> */ B(LdaContextSlot), R(context), U8(4), U8(1), B(Star), R(0), B(LdaCurrentContextSlot), U8(4), - /* 120 E> */ B(Mul), R(0), U8(2), + /* 118 E> */ B(Mul), R(0), U8(2), /* 130 S> */ B(Return), ] constant pool: [ diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/PrimitiveExpressions.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/PrimitiveExpressions.golden index adcf911cdd..90fb7b9dbb 100644 --- a/deps/v8/test/cctest/interpreter/bytecode_expectations/PrimitiveExpressions.golden +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/PrimitiveExpressions.golden @@ -30,12 +30,13 @@ snippet: " " frame size: 1 parameter count: 1 -bytecode array length: 9 +bytecode array length: 10 bytecodes: [ /* 30 E> */ B(StackCheck), /* 42 S> */ B(LdaZero), B(Star), R(0), - /* 45 S> */ B(AddSmi), U8(3), R(0), U8(2), + /* 45 S> */ B(LdaSmi), U8(3), + /* 54 E> */ B(Add), R(0), U8(2), /* 59 S> */ B(Return), ] constant pool: [ @@ -49,12 +50,13 @@ snippet: " " frame size: 1 parameter count: 1 -bytecode array length: 9 +bytecode array length: 10 bytecodes: [ /* 30 E> */ B(StackCheck), /* 42 S> */ B(LdaZero), B(Star), R(0), - /* 45 S> */ B(SubSmi), U8(3), R(0), U8(2), + /* 45 S> */ B(LdaSmi), U8(3), + /* 54 E> */ B(Sub), R(0), U8(2), /* 59 S> */ B(Return), ] constant pool: [ @@ -74,7 +76,7 @@ bytecodes: [ /* 42 S> */ B(LdaSmi), U8(4), B(Star), R(0), /* 45 S> */ B(LdaSmi), U8(3), - B(Mul), R(0), U8(2), + /* 54 E> */ B(Mul), R(0), U8(2), /* 59 S> */ B(Return), ] constant pool: [ @@ -94,7 +96,7 @@ bytecodes: [ /* 42 S> */ B(LdaSmi), U8(4), B(Star), R(0), /* 45 S> */ B(LdaSmi), U8(3), - B(Div), R(0), U8(2), + /* 54 E> */ B(Div), R(0), U8(2), /* 59 S> */ B(Return), ] constant pool: [ @@ -114,7 +116,7 @@ bytecodes: [ /* 42 S> */ B(LdaSmi), U8(4), B(Star), R(0), /* 45 S> */ B(LdaSmi), U8(3), - B(Mod), R(0), U8(2), + /* 54 E> */ B(Mod), R(0), U8(2), /* 59 S> */ B(Return), ] constant pool: [ @@ -128,12 +130,13 @@ snippet: " " frame size: 1 parameter count: 1 -bytecode array length: 10 +bytecode array length: 11 bytecodes: [ /* 30 E> */ B(StackCheck), /* 42 S> */ B(LdaSmi), U8(1), B(Star), R(0), - /* 45 S> */ B(BitwiseOrSmi), U8(2), R(0), U8(2), + /* 45 S> */ B(LdaSmi), U8(2), + /* 54 E> */ B(BitwiseOr), R(0), U8(2), /* 59 S> */ B(Return), ] constant pool: [ @@ -153,7 +156,7 @@ bytecodes: [ /* 42 S> */ B(LdaSmi), U8(1), B(Star), R(0), /* 45 S> */ B(LdaSmi), U8(2), - B(BitwiseXor), R(0), U8(2), + /* 54 E> */ B(BitwiseXor), R(0), U8(2), /* 59 S> */ B(Return), ] constant pool: [ @@ -167,12 +170,13 @@ snippet: " " frame size: 1 parameter count: 1 -bytecode array length: 10 +bytecode array length: 11 bytecodes: [ /* 30 E> */ B(StackCheck), /* 42 S> */ B(LdaSmi), U8(1), B(Star), R(0), - /* 45 S> */ B(BitwiseAndSmi), U8(2), R(0), U8(2), + /* 45 S> */ B(LdaSmi), U8(2), + /* 54 E> */ B(BitwiseAnd), R(0), U8(2), /* 59 S> */ B(Return), ] constant pool: [ @@ -186,12 +190,13 @@ snippet: " " frame size: 1 parameter count: 1 -bytecode array length: 10 +bytecode array length: 11 bytecodes: [ /* 30 E> */ B(StackCheck), /* 42 S> */ B(LdaSmi), U8(10), B(Star), R(0), - /* 46 S> */ B(ShiftLeftSmi), U8(3), R(0), U8(2), + /* 46 S> */ B(LdaSmi), U8(3), + /* 55 E> */ B(ShiftLeft), R(0), U8(2), /* 61 S> */ B(Return), ] constant pool: [ @@ -205,12 +210,13 @@ snippet: " " frame size: 1 parameter count: 1 -bytecode array length: 10 +bytecode array length: 11 bytecodes: [ /* 30 E> */ B(StackCheck), /* 42 S> */ B(LdaSmi), U8(10), B(Star), R(0), - /* 46 S> */ B(ShiftRightSmi), U8(3), R(0), U8(2), + /* 46 S> */ B(LdaSmi), U8(3), + /* 55 E> */ B(ShiftRight), R(0), U8(2), /* 61 S> */ B(Return), ] constant pool: [ @@ -230,7 +236,7 @@ bytecodes: [ /* 42 S> */ B(LdaSmi), U8(10), B(Star), R(0), /* 46 S> */ B(LdaSmi), U8(3), - B(ShiftRightLogical), R(0), U8(2), + /* 55 E> */ B(ShiftRightLogical), R(0), U8(2), /* 62 S> */ B(Return), ] constant pool: [ diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/PropertyCall.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/PropertyCall.golden index e401dbf88b..f0a51af8bd 100644 --- a/deps/v8/test/cctest/interpreter/bytecode_expectations/PropertyCall.golden +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/PropertyCall.golden @@ -67,7 +67,7 @@ bytecodes: [ /* 27 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(4), B(Star), R(0), B(Ldar), R(arg1), - /* 37 E> */ B(Add), R(arg1), U8(6), + /* 35 E> */ B(Add), R(arg1), U8(6), B(Star), R(2), B(Mov), R(arg0), R(1), B(Mov), R(arg1), R(3), diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/RemoveRedundantLdar.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/RemoveRedundantLdar.golden index de6e8935b3..1c806b7f46 100644 --- a/deps/v8/test/cctest/interpreter/bytecode_expectations/RemoveRedundantLdar.golden +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/RemoveRedundantLdar.golden @@ -23,7 +23,7 @@ bytecodes: [ B(Star), R(0), /* 48 E> */ B(StackCheck), /* 64 S> */ B(Ldar), R(0), - /* 78 E> */ B(Add), R(0), U8(2), + /* 76 E> */ B(Add), R(0), U8(2), B(Star), R(0), /* 86 S> */ B(LdaSmi), U8(10), /* 95 E> */ B(TestGreaterThan), R(0), U8(3), @@ -56,7 +56,7 @@ bytecodes: [ B(Star), R(0), /* 48 E> */ B(StackCheck), /* 55 S> */ B(Nop), - /* 69 E> */ B(Add), R(0), U8(2), + /* 67 E> */ B(Add), R(0), U8(2), B(Star), R(0), /* 77 S> */ B(LdaSmi), U8(10), /* 86 E> */ B(TestGreaterThan), R(0), U8(3), @@ -84,7 +84,7 @@ bytecodes: [ /* 45 S> */ B(LdaSmi), U8(1), B(Star), R(0), /* 50 S> */ B(Nop), - /* 64 E> */ B(Add), R(0), U8(2), + /* 62 E> */ B(Add), R(0), U8(2), B(Star), R(0), /* 72 S> */ B(Nop), /* 85 S> */ B(Return), diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/SuperCallAndSpread.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/SuperCallAndSpread.golden new file mode 100644 index 0000000000..2dd9ec5383 --- /dev/null +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/SuperCallAndSpread.golden @@ -0,0 +1,155 @@ +# +# Autogenerated by generate-bytecode-expectations. +# + +--- +wrap: no +test function name: test + +--- +snippet: " + var test; + (function() { + class A { + constructor(...args) { this.baseArgs = args; } + } + class B extends A {} + test = new B(1, 2, 3).constructor; + })(); +" +frame size: 7 +parameter count: 1 +bytecode array length: 29 +bytecodes: [ + B(CreateRestParameter), + B(Star), R(2), + B(Mov), R(closure), R(1), + B(Mov), R(new_target), R(0), + B(Ldar), R(new_target), + /* 93 E> */ B(StackCheck), + /* 93 S> */ B(Ldar), R(1), + B(GetSuperConstructor), R(3), + B(Mov), R(3), R(4), + B(Mov), R(0), R(5), + B(Mov), R(2), R(6), + /* 93 E> */ B(NewWithSpread), R(4), U8(3), + /* 93 S> */ B(Return), +] +constant pool: [ +] +handlers: [ +] + +--- +snippet: " + var test; + (function() { + class A { + constructor(...args) { this.baseArgs = args; } + } + class B extends A { + constructor(...args) { super(1, ...args); } + } + test = new B(1, 2, 3).constructor; + })(); +" +frame size: 8 +parameter count: 1 +bytecode array length: 62 +bytecodes: [ + B(CreateRestParameter), + B(Star), R(2), + B(Mov), R(closure), R(1), + B(Mov), R(new_target), R(0), + B(Ldar), R(new_target), + /* 128 E> */ B(StackCheck), + /* 140 S> */ B(Ldar), R(1), + B(GetSuperConstructor), R(3), + B(LdaSmi), U8(1), + B(Star), R(6), + B(Mov), R(3), R(4), + B(Mov), R(0), R(5), + B(Mov), R(2), R(7), + /* 140 E> */ B(NewWithSpread), R(4), U8(4), + B(Star), R(3), + B(Ldar), R(this), + B(JumpIfNotHole), U8(4), + B(Jump), U8(7), + /* 140 E> */ B(CallRuntime), U16(Runtime::kThrowSuperAlreadyCalledError), R(0), U8(0), + B(Mov), R(3), R(this), + B(Ldar), R(this), + B(JumpIfNotHole), U8(11), + B(LdaConstant), U8(0), + B(Star), R(3), + B(CallRuntime), U16(Runtime::kThrowReferenceError), R(3), U8(1), + /* 159 S> */ B(Return), +] +constant pool: [ + ONE_BYTE_INTERNALIZED_STRING_TYPE ["this"], +] +handlers: [ +] + +--- +snippet: " + var test; + (function() { + class A { + constructor(...args) { this.baseArgs = args; } + } + class B extends A { + constructor(...args) { super(1, ...args, 1); } + } + test = new B(1, 2, 3).constructor; + })(); +" +frame size: 9 +parameter count: 1 +bytecode array length: 92 +bytecodes: [ + B(CreateRestParameter), + B(Star), R(2), + B(Mov), R(closure), R(1), + B(Mov), R(new_target), R(0), + B(Ldar), R(new_target), + /* 128 E> */ B(StackCheck), + /* 140 S> */ B(LdaUndefined), + B(Star), R(3), + /* 140 E> */ B(CallRuntime), U16(Runtime::k_GetSuperConstructor), R(1), U8(1), + B(Star), R(4), + B(LdaUndefined), + B(Star), R(5), + B(CreateArrayLiteral), U8(0), U8(0), U8(9), + B(Star), R(6), + B(LdaUndefined), + B(Star), R(7), + B(Mov), R(2), R(8), + /* 152 E> */ B(CallJSRuntime), U8(%spread_iterable), R(7), U8(2), + B(Star), R(7), + B(CreateArrayLiteral), U8(1), U8(1), U8(9), + B(Star), R(8), + B(CallJSRuntime), U8(%spread_arguments), R(5), U8(4), + B(Star), R(5), + B(Mov), R(0), R(6), + /* 140 E> */ B(CallJSRuntime), U8(%reflect_construct), R(3), U8(4), + B(Star), R(3), + B(Ldar), R(this), + B(JumpIfNotHole), U8(4), + B(Jump), U8(7), + /* 140 E> */ B(CallRuntime), U16(Runtime::kThrowSuperAlreadyCalledError), R(0), U8(0), + B(Mov), R(3), R(this), + B(Ldar), R(this), + B(JumpIfNotHole), U8(11), + B(LdaConstant), U8(2), + B(Star), R(3), + B(CallRuntime), U16(Runtime::kThrowReferenceError), R(3), U8(1), + /* 162 S> */ B(Return), +] +constant pool: [ + CONSTANT_ELEMENTS_PAIR_TYPE, + CONSTANT_ELEMENTS_PAIR_TYPE, + ONE_BYTE_INTERNALIZED_STRING_TYPE ["this"], +] +handlers: [ +] + diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/Switch.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/Switch.golden index 9334dbebfd..77bee13e14 100644 --- a/deps/v8/test/cctest/interpreter/bytecode_expectations/Switch.golden +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/Switch.golden @@ -493,7 +493,7 @@ bytecodes: [ B(TestEqualStrict), R(3), U8(6), B(JumpIfTrue), U8(34), B(Jump), U8(36), - /* 77 E> */ B(AddSmi), U8(1), R(0), U8(2), + /* 79 E> */ B(AddSmi), U8(1), R(0), U8(2), B(Star), R(1), /* 70 S> */ B(LdaSmi), U8(2), B(TestEqualStrict), R(1), U8(3), diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/TopLevelObjectLiterals.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/TopLevelObjectLiterals.golden index d7b7917baf..1594422e49 100644 --- a/deps/v8/test/cctest/interpreter/bytecode_expectations/TopLevelObjectLiterals.golden +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/TopLevelObjectLiterals.golden @@ -12,7 +12,7 @@ snippet: " " frame size: 4 parameter count: 1 -bytecode array length: 42 +bytecode array length: 43 bytecodes: [ B(LdaConstant), U8(0), B(Star), R(1), @@ -26,8 +26,8 @@ bytecodes: [ B(LdaZero), B(CreateObjectLiteral), U8(2), U8(0), U8(1), R(3), B(Star), R(2), - B(CreateClosure), U8(3), U8(0), - B(StaNamedPropertySloppy), R(3), U8(4), U8(4), + B(CreateClosure), U8(3), U8(4), U8(0), + B(StaNamedPropertySloppy), R(3), U8(4), U8(5), B(CallRuntime), U16(Runtime::kInitializeVarGlobal), R(1), U8(3), B(LdaUndefined), /* 33 S> */ B(Return), diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/TryCatch.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/TryCatch.golden index c2f6113e71..b687ed24ca 100644 --- a/deps/v8/test/cctest/interpreter/bytecode_expectations/TryCatch.golden +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/TryCatch.golden @@ -11,18 +11,19 @@ snippet: " " frame size: 3 parameter count: 1 -bytecode array length: 35 +bytecode array length: 32 bytecodes: [ /* 30 E> */ B(StackCheck), B(Mov), R(context), R(1), /* 40 S> */ B(LdaSmi), U8(1), /* 75 S> */ B(Return), - B(Jump), U8(26), + B(Jump), U8(23), B(Star), R(2), B(Ldar), R(closure), B(CreateCatchContext), R(2), U8(0), U8(1), B(Star), R(1), - B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0), + B(LdaTheHole), + B(SetPendingMessage), B(Ldar), R(1), B(PushContext), R(0), /* 63 S> */ B(LdaSmi), U8(2), @@ -47,30 +48,32 @@ snippet: " " frame size: 4 parameter count: 1 -bytecode array length: 67 +bytecode array length: 61 bytecodes: [ /* 30 E> */ B(StackCheck), B(Mov), R(context), R(2), /* 47 S> */ B(LdaSmi), U8(1), B(Star), R(0), - B(Jump), U8(23), + B(Jump), U8(20), B(Star), R(3), B(Ldar), R(closure), /* 49 E> */ B(CreateCatchContext), R(3), U8(0), U8(1), B(Star), R(2), - B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0), + B(LdaTheHole), + B(SetPendingMessage), B(Ldar), R(2), B(PushContext), R(1), B(PopContext), R(1), B(Mov), R(context), R(2), /* 75 S> */ B(LdaSmi), U8(2), B(Star), R(0), - B(Jump), U8(27), + B(Jump), U8(24), B(Star), R(3), B(Ldar), R(closure), /* 77 E> */ B(CreateCatchContext), R(3), U8(2), U8(3), B(Star), R(2), - B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0), + B(LdaTheHole), + B(SetPendingMessage), B(Ldar), R(2), B(PushContext), R(1), /* 95 S> */ B(LdaSmi), U8(3), @@ -87,6 +90,6 @@ constant pool: [ ] handlers: [ [4, 8, 10], - [34, 38, 40], + [31, 35, 37], ] diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/TryFinally.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/TryFinally.golden index 61deb6e69c..b85ae8c51a 100644 --- a/deps/v8/test/cctest/interpreter/bytecode_expectations/TryFinally.golden +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/TryFinally.golden @@ -12,7 +12,7 @@ snippet: " " frame size: 4 parameter count: 1 -bytecode array length: 52 +bytecode array length: 47 bytecodes: [ /* 30 E> */ B(StackCheck), /* 42 S> */ B(LdaSmi), U8(1), @@ -26,11 +26,13 @@ bytecodes: [ B(Star), R(2), B(LdaZero), B(Star), R(1), - /* 53 E> */ B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0), + B(LdaTheHole), + /* 53 E> */ B(SetPendingMessage), B(Star), R(3), /* 70 S> */ B(LdaSmi), U8(3), B(Star), R(0), - /* 72 E> */ B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(3), U8(1), + B(Ldar), R(3), + /* 72 E> */ B(SetPendingMessage), B(LdaZero), B(TestEqualStrict), R(1), U8(0), B(JumpIfTrue), U8(4), @@ -53,7 +55,7 @@ snippet: " " frame size: 7 parameter count: 1 -bytecode array length: 82 +bytecode array length: 74 bytecodes: [ /* 30 E> */ B(StackCheck), /* 42 S> */ B(LdaSmi), U8(1), @@ -62,12 +64,13 @@ bytecodes: [ B(Mov), R(context), R(5), /* 51 S> */ B(LdaSmi), U8(2), B(Star), R(0), - B(Jump), U8(27), + B(Jump), U8(24), B(Star), R(6), B(Ldar), R(closure), /* 53 E> */ B(CreateCatchContext), R(6), U8(0), U8(1), B(Star), R(5), - B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0), + B(LdaTheHole), + B(SetPendingMessage), B(Ldar), R(5), B(PushContext), R(1), /* 71 S> */ B(LdaSmi), U8(20), @@ -79,11 +82,13 @@ bytecodes: [ B(Star), R(3), B(LdaZero), B(Star), R(2), - /* 73 E> */ B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0), + B(LdaTheHole), + /* 73 E> */ B(SetPendingMessage), B(Star), R(4), /* 90 S> */ B(LdaSmi), U8(3), B(Star), R(0), - /* 92 E> */ B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(4), U8(1), + B(Ldar), R(4), + /* 92 E> */ B(SetPendingMessage), B(LdaZero), B(TestEqualStrict), R(2), U8(0), B(JumpIfTrue), U8(4), @@ -98,7 +103,7 @@ constant pool: [ FIXED_ARRAY_TYPE, ] handlers: [ - [8, 42, 48], + [8, 39, 45], [11, 15, 17], ] @@ -110,7 +115,7 @@ snippet: " " frame size: 8 parameter count: 1 -bytecode array length: 108 +bytecode array length: 97 bytecodes: [ /* 30 E> */ B(StackCheck), B(Mov), R(context), R(4), @@ -118,23 +123,25 @@ bytecodes: [ B(Mov), R(context), R(6), /* 55 S> */ B(LdaSmi), U8(1), B(Star), R(0), - B(Jump), U8(27), + B(Jump), U8(24), B(Star), R(7), B(Ldar), R(closure), /* 57 E> */ B(CreateCatchContext), R(7), U8(0), U8(1), B(Star), R(6), - B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0), + B(LdaTheHole), + B(SetPendingMessage), B(Ldar), R(6), B(PushContext), R(1), /* 74 S> */ B(LdaSmi), U8(2), B(Star), R(0), B(PopContext), R(1), - B(Jump), U8(27), + B(Jump), U8(24), B(Star), R(6), B(Ldar), R(closure), /* 76 E> */ B(CreateCatchContext), R(6), U8(0), U8(2), B(Star), R(5), - B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0), + B(LdaTheHole), + B(SetPendingMessage), B(Ldar), R(5), B(PushContext), R(1), /* 95 S> */ B(LdaSmi), U8(20), @@ -146,11 +153,13 @@ bytecodes: [ B(Star), R(3), B(LdaZero), B(Star), R(2), - /* 97 E> */ B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0), + B(LdaTheHole), + /* 97 E> */ B(SetPendingMessage), B(Star), R(4), /* 114 S> */ B(LdaSmi), U8(3), B(Star), R(0), - /* 116 E> */ B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(4), U8(1), + B(Ldar), R(4), + /* 116 E> */ B(SetPendingMessage), B(LdaZero), B(TestEqualStrict), R(2), U8(0), B(JumpIfTrue), U8(4), @@ -166,8 +175,8 @@ constant pool: [ FIXED_ARRAY_TYPE, ] handlers: [ - [4, 68, 74], - [7, 41, 43], + [4, 62, 68], + [7, 38, 40], [10, 14, 16], ] diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/Typeof.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/Typeof.golden index 5e15e5981e..d5ab090594 100644 --- a/deps/v8/test/cctest/interpreter/bytecode_expectations/Typeof.golden +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/Typeof.golden @@ -39,14 +39,15 @@ snippet: " " frame size: 0 parameter count: 1 -bytecode array length: 5 +bytecode array length: 6 bytecodes: [ /* 22 E> */ B(StackCheck), - /* 28 S> */ B(LdaGlobalInsideTypeof), U8(2), + /* 28 S> */ B(LdaGlobalInsideTypeof), U8(0), U8(2), B(TypeOf), /* 46 S> */ B(Return), ] constant pool: [ + ONE_BYTE_INTERNALIZED_STRING_TYPE ["x"], ] handlers: [ ] diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/UnaryOperators.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/UnaryOperators.golden index 660a01b242..1620f93f5e 100644 --- a/deps/v8/test/cctest/interpreter/bytecode_expectations/UnaryOperators.golden +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/UnaryOperators.golden @@ -15,18 +15,19 @@ snippet: " " frame size: 1 parameter count: 1 -bytecode array length: 24 +bytecode array length: 25 bytecodes: [ /* 30 E> */ B(StackCheck), /* 42 S> */ B(LdaZero), B(Star), R(0), /* 54 S> */ B(LdaSmi), U8(10), /* 54 E> */ B(TestEqual), R(0), U8(2), - B(JumpIfTrue), U8(12), + B(JumpIfTrue), U8(13), /* 45 E> */ B(StackCheck), - /* 65 S> */ B(AddSmi), U8(10), R(0), U8(3), + /* 65 S> */ B(LdaSmi), U8(10), + /* 71 E> */ B(Add), R(0), U8(3), B(Star), R(0), - B(JumpLoop), U8(-14), U8(0), + B(JumpLoop), U8(-15), U8(0), /* 79 S> */ B(Ldar), R(0), /* 89 S> */ B(Return), ] @@ -79,7 +80,7 @@ bytecodes: [ /* 42 S> */ B(LdaSmi), U8(101), B(Star), R(0), /* 47 S> */ B(LdaSmi), U8(3), - B(Mul), R(0), U8(2), + /* 61 E> */ B(Mul), R(0), U8(2), B(LdaUndefined), /* 67 S> */ B(Return), ] @@ -102,9 +103,9 @@ bytecodes: [ /* 42 S> */ B(Wide), B(LdaSmi), U16(1234), B(Star), R(0), /* 56 S> */ B(Nop), - /* 66 E> */ B(Mul), R(0), U8(2), + /* 64 E> */ B(Mul), R(0), U8(2), B(Star), R(2), - B(SubSmi), U8(1), R(2), U8(3), + /* 68 E> */ B(SubSmi), U8(1), R(2), U8(3), B(LdaUndefined), B(Star), R(1), /* 74 S> */ B(Nop), @@ -128,7 +129,7 @@ bytecodes: [ /* 42 S> */ B(LdaSmi), U8(13), B(Star), R(0), /* 46 S> */ B(LdaSmi), U8(-1), - B(BitwiseXor), R(0), U8(2), + /* 53 E> */ B(BitwiseXor), R(0), U8(2), /* 57 S> */ B(Return), ] constant pool: [ @@ -149,7 +150,7 @@ bytecodes: [ /* 42 S> */ B(LdaSmi), U8(13), B(Star), R(0), /* 46 S> */ B(LdaSmi), U8(1), - B(Mul), R(0), U8(2), + /* 53 E> */ B(Mul), R(0), U8(2), /* 57 S> */ B(Return), ] constant pool: [ @@ -170,7 +171,7 @@ bytecodes: [ /* 42 S> */ B(LdaSmi), U8(13), B(Star), R(0), /* 46 S> */ B(LdaSmi), U8(-1), - B(Mul), R(0), U8(2), + /* 53 E> */ B(Mul), R(0), U8(2), /* 57 S> */ B(Return), ] constant pool: [ diff --git a/deps/v8/test/cctest/interpreter/interpreter-tester.cc b/deps/v8/test/cctest/interpreter/interpreter-tester.cc index df60c452cd..3896ff53ad 100644 --- a/deps/v8/test/cctest/interpreter/interpreter-tester.cc +++ b/deps/v8/test/cctest/interpreter/interpreter-tester.cc @@ -4,6 +4,8 @@ #include "test/cctest/interpreter/interpreter-tester.h" +#include "src/objects-inl.h" + namespace v8 { namespace internal { namespace interpreter { @@ -23,8 +25,6 @@ InterpreterTester::InterpreterTester( feedback_vector_(feedback_vector) { i::FLAG_ignition = true; i::FLAG_always_opt = false; - // Ensure handler table is generated. - isolate->interpreter()->Initialize(); } InterpreterTester::InterpreterTester( diff --git a/deps/v8/test/cctest/interpreter/test-bytecode-generator.cc b/deps/v8/test/cctest/interpreter/test-bytecode-generator.cc index 5a20d86297..b43384e946 100644 --- a/deps/v8/test/cctest/interpreter/test-bytecode-generator.cc +++ b/deps/v8/test/cctest/interpreter/test-bytecode-generator.cc @@ -9,6 +9,7 @@ #include "src/interpreter/bytecode-array-iterator.h" #include "src/interpreter/bytecode-generator.h" #include "src/interpreter/interpreter.h" +#include "src/objects-inl.h" #include "test/cctest/cctest.h" #include "test/cctest/interpreter/bytecode-expectations-printer.h" #include "test/cctest/test-feedback-vector.h" @@ -74,7 +75,6 @@ class InitializedIgnitionHandleScope : public InitializedHandleScope { i::FLAG_ignition = true; i::FLAG_always_opt = false; i::FLAG_allow_natives_syntax = true; - CcTest::i_isolate()->interpreter()->Initialize(); } }; @@ -1746,6 +1746,54 @@ TEST(RemoveRedundantLdar) { LoadGolden("RemoveRedundantLdar.golden"))); } +TEST(GenerateTestUndetectable) { + InitializedIgnitionHandleScope scope; + BytecodeExpectationsPrinter printer(CcTest::isolate()); + const char* snippets[] = { + "var obj_a = {val:1};\n" + "var b = 10;\n" + "if (obj_a == null) { b = 20;}\n" + "return b;\n", + + "var obj_a = {val:1};\n" + "var b = 10;\n" + "if (obj_a == undefined) { b = 20;}\n" + "return b;\n", + + "var obj_a = {val:1};\n" + "var b = 10;\n" + "if (obj_a != null) { b = 20;}\n" + "return b;\n", + + "var obj_a = {val:1};\n" + "var b = 10;\n" + "if (obj_a != undefined) { b = 20;}\n" + "return b;\n", + + "var obj_a = {val:1};\n" + "var b = 10;\n" + "if (obj_a === null) { b = 20;}\n" + "return b;\n", + + "var obj_a = {val:1};\n" + "var b = 10;\n" + "if (obj_a === undefined) { b = 20;}\n" + "return b;\n", + + "var obj_a = {val:1};\n" + "var b = 10;\n" + "if (obj_a !== null) { b = 20;}\n" + "return b;\n", + + "var obj_a = {val:1};\n" + "var b = 10;\n" + "if (obj_a !== undefined) { b = 20;}\n" + "return b;\n"}; + + CHECK(CompareTexts(BuildActual(printer, snippets), + LoadGolden("GenerateTestUndetectable.golden"))); +} + TEST(AssignmentsInBinaryExpression) { InitializedIgnitionHandleScope scope; BytecodeExpectationsPrinter printer(CcTest::isolate()); @@ -2121,6 +2169,9 @@ TEST(ClassDeclarations) { "var count = 0;\n" "class C { constructor() { count++; }}\n" "return new C();\n", + + "(class {})\n" + "class E { static name () {}}\n", }; CHECK(CompareTexts(BuildActual(printer, snippets), @@ -2250,6 +2301,48 @@ TEST(Modules) { LoadGolden("Modules.golden"))); } +TEST(SuperCallAndSpread) { + InitializedIgnitionHandleScope scope; + BytecodeExpectationsPrinter printer(CcTest::isolate()); + printer.set_wrap(false); + printer.set_test_function_name("test"); + const char* snippets[] = { + "var test;\n" + "(function() {\n" + " class A {\n" + " constructor(...args) { this.baseArgs = args; }\n" + " }\n" + " class B extends A {}\n" + " test = new B(1, 2, 3).constructor;\n" + "})();\n", + + "var test;\n" + "(function() {\n" + " class A {\n" + " constructor(...args) { this.baseArgs = args; }\n" + " }\n" + " class B extends A {\n" + " constructor(...args) { super(1, ...args); }\n" + " }\n" + " test = new B(1, 2, 3).constructor;\n" + "})();\n", + + "var test;\n" + "(function() {\n" + " class A {\n" + " constructor(...args) { this.baseArgs = args; }\n" + " }\n" + " class B extends A {\n" + " constructor(...args) { super(1, ...args, 1); }\n" + " }\n" + " test = new B(1, 2, 3).constructor;\n" + "})();\n", + }; + + CHECK(CompareTexts(BuildActual(printer, snippets), + LoadGolden("SuperCallAndSpread.golden"))); +} + } // namespace interpreter } // namespace internal } // namespace v8 diff --git a/deps/v8/test/cctest/interpreter/test-interpreter-intrinsics.cc b/deps/v8/test/cctest/interpreter/test-interpreter-intrinsics.cc index 3cb2beffd4..70051253cc 100644 --- a/deps/v8/test/cctest/interpreter/test-interpreter-intrinsics.cc +++ b/deps/v8/test/cctest/interpreter/test-interpreter-intrinsics.cc @@ -114,27 +114,6 @@ TEST(IsJSProxy) { *helper.Invoke(helper.NewObject("new Proxy({},{})"))); } -TEST(IsRegExp) { - HandleAndZoneScope handles; - - InvokeIntrinsicHelper helper(handles.main_isolate(), handles.main_zone(), - Runtime::kInlineIsRegExp); - Factory* factory = handles.main_isolate()->factory(); - - CHECK_EQ(*factory->false_value(), - *helper.Invoke(helper.NewObject("new Date()"))); - CHECK_EQ(*factory->false_value(), - *helper.Invoke(helper.NewObject("(function() {})"))); - CHECK_EQ(*factory->false_value(), *helper.Invoke(helper.NewObject("([1])"))); - CHECK_EQ(*factory->false_value(), *helper.Invoke(helper.NewObject("({})"))); - CHECK_EQ(*factory->true_value(), *helper.Invoke(helper.NewObject("(/x/)"))); - CHECK_EQ(*factory->false_value(), *helper.Invoke(helper.Undefined())); - CHECK_EQ(*factory->false_value(), *helper.Invoke(helper.Null())); - CHECK_EQ(*factory->false_value(), - *helper.Invoke(helper.NewObject("'string'"))); - CHECK_EQ(*factory->false_value(), *helper.Invoke(helper.NewObject("42"))); -} - TEST(IsTypedArray) { HandleAndZoneScope handles; diff --git a/deps/v8/test/cctest/interpreter/test-interpreter.cc b/deps/v8/test/cctest/interpreter/test-interpreter.cc index f3f4021f88..ad2577aeab 100644 --- a/deps/v8/test/cctest/interpreter/test-interpreter.cc +++ b/deps/v8/test/cctest/interpreter/test-interpreter.cc @@ -12,6 +12,8 @@ #include "src/interpreter/bytecode-array-iterator.h" #include "src/interpreter/bytecode-label.h" #include "src/interpreter/interpreter.h" +#include "src/objects-inl.h" +#include "src/unicode-cache.h" #include "test/cctest/cctest.h" #include "test/cctest/interpreter/interpreter-tester.h" #include "test/cctest/test-feedback-vector.h" @@ -555,6 +557,10 @@ TEST(InterpreterBinaryOpTypeFeedback) { isolate->factory()->NewHeapNumber(1.4142), isolate->factory()->NewHeapNumber(3.1415 + 1.4142), BinaryOperationFeedback::kNumber}, + {Token::Value::ADD, isolate->factory()->NewStringFromAsciiChecked("foo"), + isolate->factory()->NewStringFromAsciiChecked("bar"), + isolate->factory()->NewStringFromAsciiChecked("foobar"), + BinaryOperationFeedback::kString}, {Token::Value::ADD, Handle<Smi>(Smi::FromInt(2), isolate), isolate->factory()->NewStringFromAsciiChecked("2"), isolate->factory()->NewStringFromAsciiChecked("22"), @@ -1794,9 +1800,9 @@ TEST(InterpreterStringComparisons) { BytecodeArrayBuilder builder(isolate, handles.main_zone(), 0, 0, 1); Register r0(0); - builder.LoadLiteral(factory->NewStringFromAsciiChecked(lhs)) + builder.LoadLiteral(factory->InternalizeUtf8String(lhs)) .StoreAccumulatorInRegister(r0) - .LoadLiteral(factory->NewStringFromAsciiChecked(rhs)) + .LoadLiteral(factory->InternalizeUtf8String(rhs)) .CompareOperation(comparison, r0, vector->GetIndex(slot)) .Return(); @@ -1809,8 +1815,11 @@ TEST(InterpreterStringComparisons) { CompareC(comparison, inputs[i], inputs[j])); Object* feedback = vector->Get(slot); CHECK(feedback->IsSmi()); - CHECK_EQ(CompareOperationFeedback::kAny, - static_cast<Smi*>(feedback)->value()); + int const expected_feedback = + Token::IsOrderedRelationalCompareOp(comparison) + ? CompareOperationFeedback::kString + : CompareOperationFeedback::kInternalizedString; + CHECK_EQ(expected_feedback, static_cast<Smi*>(feedback)->value()); } } } @@ -1822,7 +1831,7 @@ TEST(InterpreterMixedComparisons) { // convertible to a HeapNumber so comparison will be between numeric // values except for the strict comparisons where no conversion is // performed. - const char* inputs[] = {"-1.77", "-40.333", "0.01", "55.77e5", "2.01"}; + const char* inputs[] = {"-1.77", "-40.333", "0.01", "55.77e50", "2.01"}; UnicodeCache unicode_cache; @@ -1875,8 +1884,10 @@ TEST(InterpreterMixedComparisons) { CompareC(comparison, lhs, rhs, true)); Object* feedback = vector->Get(slot); CHECK(feedback->IsSmi()); - CHECK_EQ(CompareOperationFeedback::kAny, - static_cast<Smi*>(feedback)->value()); + // kNumber | kString gets converted to CompareOperationHint::kAny. + int expected_feedback = CompareOperationFeedback::kNumber | + CompareOperationFeedback::kString; + CHECK_EQ(expected_feedback, static_cast<Smi*>(feedback)->value()); } } } diff --git a/deps/v8/test/cctest/interpreter/test-source-positions.cc b/deps/v8/test/cctest/interpreter/test-source-positions.cc index 2b7f5c368a..22fd4991ac 100644 --- a/deps/v8/test/cctest/interpreter/test-source-positions.cc +++ b/deps/v8/test/cctest/interpreter/test-source-positions.cc @@ -9,6 +9,7 @@ #include "src/interpreter/bytecode-generator.h" #include "src/interpreter/interpreter.h" #include "src/isolate.h" +#include "src/objects-inl.h" #include "test/cctest/cctest.h" #include "test/cctest/interpreter/source-position-matcher.h" @@ -226,9 +227,6 @@ bool OptimizedBytecodeSourcePositionTester::SourcePositionsMatch( void TestSourcePositionsEquivalent(int optimization_bitmap) { HandleAndZoneScope handles; - // Ensure handler table is generated. - handles.main_isolate()->interpreter()->Initialize(); - OptimizedBytecodeSourcePositionTester tester(handles.main_isolate()); for (auto test_case_data : kTestCaseData) { CHECK(tester.SourcePositionsMatch( |