aboutsummaryrefslogtreecommitdiff
path: root/deps/v8/test/cctest/interpreter
diff options
context:
space:
mode:
authorMichaël Zasso <targos@protonmail.com>2017-03-21 10:16:54 +0100
committerMichaël Zasso <targos@protonmail.com>2017-03-25 09:44:10 +0100
commitc459d8ea5d402c702948c860d9497b2230ff7e8a (patch)
tree56c282fc4d40e5cb613b47cf7be3ea0526ed5b6f /deps/v8/test/cctest/interpreter
parente0bc5a7361b1d29c3ed034155fd779ce6f44fb13 (diff)
downloadandroid-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')
-rw-r--r--deps/v8/test/cctest/interpreter/bytecode-expectations-printer.cc25
-rw-r--r--deps/v8/test/cctest/interpreter/bytecode_expectations/ArrayLiterals.golden16
-rw-r--r--deps/v8/test/cctest/interpreter/bytecode_expectations/ArrayLiteralsWide.golden2
-rw-r--r--deps/v8/test/cctest/interpreter/bytecode_expectations/AssignmentsInBinaryExpression.golden42
-rw-r--r--deps/v8/test/cctest/interpreter/bytecode_expectations/BasicLoops.golden166
-rw-r--r--deps/v8/test/cctest/interpreter/bytecode_expectations/BreakableBlocks.golden15
-rw-r--r--deps/v8/test/cctest/interpreter/bytecode_expectations/CallGlobal.golden10
-rw-r--r--deps/v8/test/cctest/interpreter/bytecode_expectations/CallLookupSlot.golden12
-rw-r--r--deps/v8/test/cctest/interpreter/bytecode_expectations/CallNew.golden15
-rw-r--r--deps/v8/test/cctest/interpreter/bytecode_expectations/CallRuntime.golden4
-rw-r--r--deps/v8/test/cctest/interpreter/bytecode_expectations/ClassAndSuperClass.golden28
-rw-r--r--deps/v8/test/cctest/interpreter/bytecode_expectations/ClassDeclarations.golden177
-rw-r--r--deps/v8/test/cctest/interpreter/bytecode_expectations/CompoundExpressions.golden6
-rw-r--r--deps/v8/test/cctest/interpreter/bytecode_expectations/ConstVariableContextSlot.golden16
-rw-r--r--deps/v8/test/cctest/interpreter/bytecode_expectations/ContextParameters.golden16
-rw-r--r--deps/v8/test/cctest/interpreter/bytecode_expectations/ContextVariables.golden25
-rw-r--r--deps/v8/test/cctest/interpreter/bytecode_expectations/CountOperators.golden14
-rw-r--r--deps/v8/test/cctest/interpreter/bytecode_expectations/CreateRestParameter.golden2
-rw-r--r--deps/v8/test/cctest/interpreter/bytecode_expectations/DeclareGlobals.golden7
-rw-r--r--deps/v8/test/cctest/interpreter/bytecode_expectations/Delete.golden4
-rw-r--r--deps/v8/test/cctest/interpreter/bytecode_expectations/ForIn.golden8
-rw-r--r--deps/v8/test/cctest/interpreter/bytecode_expectations/ForOf.golden199
-rw-r--r--deps/v8/test/cctest/interpreter/bytecode_expectations/FunctionLiterals.golden12
-rw-r--r--deps/v8/test/cctest/interpreter/bytecode_expectations/GenerateTestUndetectable.golden239
-rw-r--r--deps/v8/test/cctest/interpreter/bytecode_expectations/Generators.golden565
-rw-r--r--deps/v8/test/cctest/interpreter/bytecode_expectations/GlobalCompoundExpressions.golden8
-rw-r--r--deps/v8/test/cctest/interpreter/bytecode_expectations/GlobalCountOperators.golden16
-rw-r--r--deps/v8/test/cctest/interpreter/bytecode_expectations/GlobalDelete.golden12
-rw-r--r--deps/v8/test/cctest/interpreter/bytecode_expectations/LetVariableContextSlot.golden16
-rw-r--r--deps/v8/test/cctest/interpreter/bytecode_expectations/LoadGlobal.golden20
-rw-r--r--deps/v8/test/cctest/interpreter/bytecode_expectations/Modules.golden703
-rw-r--r--deps/v8/test/cctest/interpreter/bytecode_expectations/ObjectLiterals.golden98
-rw-r--r--deps/v8/test/cctest/interpreter/bytecode_expectations/OuterContextVariables.golden2
-rw-r--r--deps/v8/test/cctest/interpreter/bytecode_expectations/PrimitiveExpressions.golden40
-rw-r--r--deps/v8/test/cctest/interpreter/bytecode_expectations/PropertyCall.golden2
-rw-r--r--deps/v8/test/cctest/interpreter/bytecode_expectations/RemoveRedundantLdar.golden6
-rw-r--r--deps/v8/test/cctest/interpreter/bytecode_expectations/SuperCallAndSpread.golden155
-rw-r--r--deps/v8/test/cctest/interpreter/bytecode_expectations/Switch.golden2
-rw-r--r--deps/v8/test/cctest/interpreter/bytecode_expectations/TopLevelObjectLiterals.golden6
-rw-r--r--deps/v8/test/cctest/interpreter/bytecode_expectations/TryCatch.golden21
-rw-r--r--deps/v8/test/cctest/interpreter/bytecode_expectations/TryFinally.golden45
-rw-r--r--deps/v8/test/cctest/interpreter/bytecode_expectations/Typeof.golden5
-rw-r--r--deps/v8/test/cctest/interpreter/bytecode_expectations/UnaryOperators.golden21
-rw-r--r--deps/v8/test/cctest/interpreter/interpreter-tester.cc4
-rw-r--r--deps/v8/test/cctest/interpreter/test-bytecode-generator.cc95
-rw-r--r--deps/v8/test/cctest/interpreter/test-interpreter-intrinsics.cc21
-rw-r--r--deps/v8/test/cctest/interpreter/test-interpreter.cc25
-rw-r--r--deps/v8/test/cctest/interpreter/test-source-positions.cc4
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(