aboutsummaryrefslogtreecommitdiff
path: root/deps/v8/test/cctest/interpreter
diff options
context:
space:
mode:
authorMichaël Zasso <targos@protonmail.com>2018-12-04 08:20:37 +0100
committerMichaël Zasso <targos@protonmail.com>2018-12-06 15:23:33 +0100
commit9b4bf7de6c9a7c25f116c7a502384c20b5cfaea3 (patch)
tree2b0c843168dafb939d8df8a15b2aa72b76dee51d /deps/v8/test/cctest/interpreter
parentb8fbe69db1292307adb2c2b2e0d5ef48c4ab2faf (diff)
downloadandroid-node-v8-9b4bf7de6c9a7c25f116c7a502384c20b5cfaea3.tar.gz
android-node-v8-9b4bf7de6c9a7c25f116c7a502384c20b5cfaea3.tar.bz2
android-node-v8-9b4bf7de6c9a7c25f116c7a502384c20b5cfaea3.zip
deps: update V8 to 7.1.302.28
PR-URL: https://github.com/nodejs/node/pull/23423 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Gus Caplan <me@gus.host> Reviewed-By: Myles Borins <myles.borins@gmail.com>
Diffstat (limited to 'deps/v8/test/cctest/interpreter')
-rw-r--r--deps/v8/test/cctest/interpreter/bytecode_expectations/ArrayLiterals.golden150
-rw-r--r--deps/v8/test/cctest/interpreter/bytecode_expectations/AsyncGenerators.golden40
-rw-r--r--deps/v8/test/cctest/interpreter/bytecode_expectations/CallAndSpread.golden34
-rw-r--r--deps/v8/test/cctest/interpreter/bytecode_expectations/ClassDeclarations.golden8
-rw-r--r--deps/v8/test/cctest/interpreter/bytecode_expectations/ForAwaitOf.golden458
-rw-r--r--deps/v8/test/cctest/interpreter/bytecode_expectations/ForOf.golden8
-rw-r--r--deps/v8/test/cctest/interpreter/bytecode_expectations/ForOfLoop.golden220
-rw-r--r--deps/v8/test/cctest/interpreter/bytecode_expectations/Generators.golden2
-rw-r--r--deps/v8/test/cctest/interpreter/bytecode_expectations/IIFEWithOneshotOpt.golden423
-rw-r--r--deps/v8/test/cctest/interpreter/bytecode_expectations/IIFEWithoutOneshotOpt.golden183
-rw-r--r--deps/v8/test/cctest/interpreter/bytecode_expectations/NewAndSpread.golden34
-rw-r--r--deps/v8/test/cctest/interpreter/bytecode_expectations/ObjectLiterals.golden2
-rw-r--r--deps/v8/test/cctest/interpreter/bytecode_expectations/PropertyLoadStoreOneShot.golden86
-rw-r--r--deps/v8/test/cctest/interpreter/bytecode_expectations/PublicClassFields.golden10
-rw-r--r--deps/v8/test/cctest/interpreter/bytecode_expectations/StandardForLoop.golden116
-rw-r--r--deps/v8/test/cctest/interpreter/bytecode_expectations/StaticClassFields.golden20
-rw-r--r--deps/v8/test/cctest/interpreter/bytecode_expectations/SuperCallAndSpread.golden50
-rw-r--r--deps/v8/test/cctest/interpreter/interpreter-tester.cc2
-rw-r--r--deps/v8/test/cctest/interpreter/interpreter-tester.h2
-rw-r--r--deps/v8/test/cctest/interpreter/test-bytecode-generator.cc97
-rw-r--r--deps/v8/test/cctest/interpreter/test-interpreter-intrinsics.cc34
-rw-r--r--deps/v8/test/cctest/interpreter/test-interpreter.cc66
-rw-r--r--deps/v8/test/cctest/interpreter/test-source-positions.cc2
23 files changed, 1238 insertions, 809 deletions
diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/ArrayLiterals.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/ArrayLiterals.golden
index ae8d050914..31272f1c29 100644
--- a/deps/v8/test/cctest/interpreter/bytecode_expectations/ArrayLiterals.golden
+++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/ArrayLiterals.golden
@@ -35,17 +35,17 @@ bytecodes: [
/* 42 S> */ B(LdaSmi), I8(1),
B(Star), R(0),
/* 45 S> */ B(CreateArrayLiteral), U8(0), U8(0), U8(37),
- B(Star), R(1),
- B(LdaZero),
B(Star), R(2),
+ B(LdaZero),
+ B(Star), R(1),
B(Ldar), R(0),
- /* 54 E> */ B(StaKeyedProperty), R(1), R(2), U8(1),
+ /* 54 E> */ B(StaInArrayLiteral), R(2), R(1), U8(1),
B(LdaSmi), I8(1),
- B(Star), R(2),
+ B(Star), R(1),
B(Ldar), R(0),
/* 59 E> */ B(AddSmi), I8(1), U8(3),
- B(StaKeyedProperty), R(1), R(2), U8(1),
- B(Ldar), R(1),
+ B(StaInArrayLiteral), R(2), R(1), U8(1),
+ B(Ldar), R(2),
/* 65 S> */ B(Return),
]
constant pool: [
@@ -84,29 +84,29 @@ bytecodes: [
/* 42 S> */ B(LdaSmi), I8(1),
B(Star), R(0),
/* 45 S> */ B(CreateArrayLiteral), U8(0), U8(0), U8(4),
- B(Star), R(1),
- B(LdaZero),
B(Star), R(2),
- B(CreateArrayLiteral), U8(1), U8(3), U8(37),
- B(Star), R(3),
B(LdaZero),
+ B(Star), R(1),
+ B(CreateArrayLiteral), U8(1), U8(1), U8(37),
B(Star), R(4),
+ B(LdaZero),
+ B(Star), R(3),
B(Ldar), R(0),
- /* 56 E> */ B(StaKeyedProperty), R(3), R(4), U8(4),
- B(Ldar), R(3),
- B(StaKeyedProperty), R(1), R(2), U8(1),
+ /* 56 E> */ B(StaInArrayLiteral), R(4), R(3), U8(2),
+ B(Ldar), R(4),
+ B(StaInArrayLiteral), R(2), R(1), U8(4),
B(LdaSmi), I8(1),
- B(Star), R(2),
+ B(Star), R(1),
B(CreateArrayLiteral), U8(2), U8(6), U8(37),
- B(Star), R(3),
- B(LdaZero),
B(Star), R(4),
+ B(LdaZero),
+ B(Star), R(3),
B(Ldar), R(0),
- /* 68 E> */ B(AddSmi), I8(2), U8(9),
- B(StaKeyedProperty), R(3), R(4), U8(7),
- B(Ldar), R(3),
- B(StaKeyedProperty), R(1), R(2), U8(1),
- B(Ldar), R(1),
+ /* 68 E> */ B(AddSmi), I8(2), U8(7),
+ B(StaInArrayLiteral), R(4), R(3), U8(8),
+ B(Ldar), R(4),
+ B(StaInArrayLiteral), R(2), R(1), U8(4),
+ B(Ldar), R(2),
/* 76 S> */ B(Return),
]
constant pool: [
@@ -121,50 +121,18 @@ handlers: [
snippet: "
var a = [ 1, 2 ]; return [ ...a ];
"
-frame size: 8
+frame size: 1
parameter count: 1
-bytecode array length: 86
+bytecode array length: 9
bytecodes: [
/* 30 E> */ B(StackCheck),
/* 42 S> */ B(CreateArrayLiteral), U8(0), U8(0), U8(37),
B(Star), R(0),
- /* 52 S> */ B(CreateArrayLiteral), U8(1), U8(1), U8(37),
- B(Star), R(1),
- B(LdaConstant), U8(2),
- /* 64 S> */ B(Star), R(2),
- B(LdaNamedProperty), R(0), U8(3), U8(7),
- B(Star), R(7),
- B(CallProperty0), R(7), R(0), U8(9),
- B(Mov), R(0), R(6),
- B(JumpIfJSReceiver), U8(7),
- B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
- B(Star), R(5),
- B(LdaNamedProperty), R(5), U8(4), U8(11),
- B(Star), R(4),
- B(CallProperty0), R(4), R(5), U8(13),
- B(Star), R(3),
- B(JumpIfJSReceiver), U8(7),
- B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(3), U8(1),
- B(LdaNamedProperty), R(3), U8(5), U8(15),
- B(JumpIfToBooleanTrue), U8(21),
- B(LdaNamedProperty), R(3), U8(6), U8(17),
- B(Star), R(3),
- B(StaInArrayLiteral), R(1), R(2), U8(2),
- B(Ldar), R(2),
- B(Inc), U8(4),
- B(Star), R(2),
- B(JumpLoop), U8(35), I8(0),
- B(Ldar), R(1),
+ /* 52 S> */ B(CreateArrayFromIterable),
/* 68 S> */ B(Return),
]
constant pool: [
ARRAY_BOILERPLATE_DESCRIPTION_TYPE,
- ARRAY_BOILERPLATE_DESCRIPTION_TYPE,
- Smi [0],
- SYMBOL_TYPE,
- ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
- ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
- ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
]
handlers: [
]
@@ -181,32 +149,32 @@ bytecodes: [
/* 42 S> */ B(CreateArrayLiteral), U8(0), U8(0), U8(37),
B(Star), R(0),
/* 52 S> */ B(CreateArrayLiteral), U8(1), U8(1), U8(37),
- B(Star), R(1),
+ B(Star), R(2),
B(LdaConstant), U8(2),
- /* 67 S> */ B(Star), R(2),
- B(LdaNamedProperty), R(0), U8(3), U8(7),
+ /* 67 S> */ B(Star), R(1),
+ B(LdaNamedProperty), R(0), U8(3), U8(5),
B(Star), R(7),
- B(CallProperty0), R(7), R(0), U8(9),
+ B(CallProperty0), R(7), R(0), U8(7),
B(Mov), R(0), R(6),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
B(Star), R(5),
- B(LdaNamedProperty), R(5), U8(4), U8(11),
+ B(LdaNamedProperty), R(5), U8(4), U8(9),
B(Star), R(4),
- B(CallProperty0), R(4), R(5), U8(13),
+ B(CallProperty0), R(4), R(5), U8(11),
B(Star), R(3),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(3), U8(1),
- B(LdaNamedProperty), R(3), U8(5), U8(15),
+ B(LdaNamedProperty), R(3), U8(5), U8(13),
B(JumpIfToBooleanTrue), U8(21),
- B(LdaNamedProperty), R(3), U8(6), U8(17),
+ B(LdaNamedProperty), R(3), U8(6), U8(15),
B(Star), R(3),
- B(StaInArrayLiteral), R(1), R(2), U8(2),
- B(Ldar), R(2),
- B(Inc), U8(4),
- B(Star), R(2),
- B(JumpLoop), U8(35), I8(0),
+ B(StaInArrayLiteral), R(2), R(1), U8(3),
B(Ldar), R(1),
+ B(Inc), U8(2),
+ B(Star), R(1),
+ B(JumpLoop), U8(35), I8(0),
+ B(Ldar), R(2),
/* 71 S> */ B(Return),
]
constant pool: [
@@ -225,55 +193,25 @@ handlers: [
snippet: "
var a = [ 1, 2 ]; return [ ...a, 3 ];
"
-frame size: 8
+frame size: 3
parameter count: 1
-bytecode array length: 98
+bytecode array length: 25
bytecodes: [
/* 30 E> */ B(StackCheck),
/* 42 S> */ B(CreateArrayLiteral), U8(0), U8(0), U8(37),
B(Star), R(0),
- /* 52 S> */ B(CreateArrayLiteral), U8(1), U8(1), U8(37),
- B(Star), R(1),
- B(LdaConstant), U8(2),
- /* 64 S> */ B(Star), R(2),
- B(LdaNamedProperty), R(0), U8(3), U8(7),
- B(Star), R(7),
- B(CallProperty0), R(7), R(0), U8(9),
- B(Mov), R(0), R(6),
- B(JumpIfJSReceiver), U8(7),
- B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
- B(Star), R(5),
- B(LdaNamedProperty), R(5), U8(4), U8(11),
- B(Star), R(4),
- B(CallProperty0), R(4), R(5), U8(13),
- B(Star), R(3),
- B(JumpIfJSReceiver), U8(7),
- B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(3), U8(1),
- B(LdaNamedProperty), R(3), U8(5), U8(15),
- B(JumpIfToBooleanTrue), U8(21),
- B(LdaNamedProperty), R(3), U8(6), U8(17),
- B(Star), R(3),
- B(StaInArrayLiteral), R(1), R(2), U8(2),
- B(Ldar), R(2),
- B(Inc), U8(4),
+ /* 52 S> */ B(CreateArrayFromIterable),
B(Star), R(2),
- B(JumpLoop), U8(35), I8(0),
+ B(LdaNamedProperty), R(2), U8(1), U8(1),
+ B(Star), R(1),
B(LdaSmi), I8(3),
- B(StaInArrayLiteral), R(1), R(2), U8(2),
+ B(StaInArrayLiteral), R(2), R(1), U8(3),
B(Ldar), R(2),
- B(Inc), U8(4),
- B(Star), R(2),
- B(Ldar), R(1),
/* 71 S> */ B(Return),
]
constant pool: [
ARRAY_BOILERPLATE_DESCRIPTION_TYPE,
- ARRAY_BOILERPLATE_DESCRIPTION_TYPE,
- Smi [0],
- SYMBOL_TYPE,
- ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
- ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
- ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
+ ONE_BYTE_INTERNALIZED_STRING_TYPE ["length"],
]
handlers: [
]
diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/AsyncGenerators.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/AsyncGenerators.golden
index f5cbed6a7a..f3ddec23a0 100644
--- a/deps/v8/test/cctest/interpreter/bytecode_expectations/AsyncGenerators.golden
+++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/AsyncGenerators.golden
@@ -252,19 +252,19 @@ frame size: 22
parameter count: 1
bytecode array length: 490
bytecodes: [
- B(SwitchOnGeneratorState), R(2), U8(0), U8(3),
+ B(SwitchOnGeneratorState), R(0), U8(0), U8(3),
B(Mov), R(closure), R(11),
B(Mov), R(this), R(12),
B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(11), U8(2),
- B(Star), R(2),
+ B(Star), R(0),
/* 17 E> */ B(StackCheck),
B(Mov), R(context), R(13),
B(Mov), R(context), R(14),
- B(Ldar), R(2),
- /* 17 E> */ B(SuspendGenerator), R(2), R(0), U8(15), U8(0),
- B(ResumeGenerator), R(2), R(0), U8(15),
+ B(Ldar), R(0),
+ /* 17 E> */ B(SuspendGenerator), R(0), R(0), U8(15), U8(0),
+ B(ResumeGenerator), R(0), R(0), U8(15),
B(Star), R(15),
- B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(2), U8(1),
+ B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1),
B(SwitchOnSmiNoFeedback), U8(3), U8(2), I8(0),
B(Ldar), R(15),
/* 17 E> */ B(Throw),
@@ -300,16 +300,16 @@ bytecodes: [
B(Star), R(7),
B(Mov), R(8), R(3),
/* 22 E> */ B(StackCheck),
- B(Mov), R(3), R(0),
+ B(Mov), R(3), R(1),
/* 42 S> */ B(LdaFalse),
B(Star), R(21),
- B(Mov), R(2), R(19),
- B(Mov), R(0), R(20),
+ B(Mov), R(0), R(19),
+ B(Mov), R(1), R(20),
B(InvokeIntrinsic), U8(Runtime::k_AsyncGeneratorYield), R(19), U8(3),
- /* 42 E> */ B(SuspendGenerator), R(2), R(0), U8(19), U8(1),
- B(ResumeGenerator), R(2), R(0), U8(19),
+ /* 42 E> */ B(SuspendGenerator), R(0), R(0), U8(19), U8(1),
+ B(ResumeGenerator), R(0), R(0), U8(19),
B(Star), R(19),
- B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(2), U8(1),
+ B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1),
B(SwitchOnSmiNoFeedback), U8(10), U8(2), I8(0),
B(Ldar), R(19),
/* 42 E> */ B(Throw),
@@ -362,7 +362,7 @@ bytecodes: [
B(TestTypeOf), U8(6),
B(JumpIfFalse), U8(4),
B(Jump), U8(18),
- B(Wide), B(LdaSmi), I16(153),
+ B(Wide), B(LdaSmi), I16(154),
B(Star), R(18),
B(LdaConstant), U8(14),
B(Star), R(19),
@@ -398,12 +398,12 @@ bytecodes: [
B(ReThrow),
B(LdaUndefined),
B(Star), R(16),
- B(Mov), R(2), R(15),
+ B(Mov), R(0), R(15),
B(CallJSRuntime), U8(%async_generator_await_uncaught), R(15), U8(2),
- B(SuspendGenerator), R(2), R(0), U8(15), U8(2),
- B(ResumeGenerator), R(2), R(0), U8(15),
+ B(SuspendGenerator), R(0), R(0), U8(15), U8(2),
+ B(ResumeGenerator), R(0), R(0), U8(15),
B(Star), R(15),
- B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(2), U8(1),
+ B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1),
B(Star), R(16),
B(LdaZero),
B(TestReferenceEqual), R(16),
@@ -424,7 +424,7 @@ bytecodes: [
B(PushContext), R(15),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(17),
- B(Mov), R(2), R(16),
+ B(Mov), R(0), R(16),
B(InvokeIntrinsic), U8(Runtime::k_AsyncGeneratorReject), R(16), U8(2),
B(PopContext), R(15),
B(Star), R(12),
@@ -441,7 +441,7 @@ bytecodes: [
B(LdaTheHole),
B(SetPendingMessage),
B(Star), R(13),
- B(InvokeIntrinsic), U8(Runtime::k_GeneratorClose), R(2), U8(1),
+ B(InvokeIntrinsic), U8(Runtime::k_GeneratorClose), R(0), U8(1),
B(Ldar), R(13),
B(SetPendingMessage),
B(Ldar), R(11),
@@ -449,7 +449,7 @@ bytecodes: [
B(Jump), U8(22),
B(LdaTrue),
B(Star), R(16),
- B(Mov), R(2), R(14),
+ B(Mov), R(0), R(14),
B(Mov), R(12), R(15),
B(InvokeIntrinsic), U8(Runtime::k_AsyncGeneratorResolve), R(14), U8(3),
/* 50 S> */ B(Return),
diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/CallAndSpread.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/CallAndSpread.golden
index 779e12c4ec..4c27e3a8d4 100644
--- a/deps/v8/test/cctest/interpreter/bytecode_expectations/CallAndSpread.golden
+++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/CallAndSpread.golden
@@ -67,7 +67,7 @@ snippet: "
"
frame size: 10
parameter count: 1
-bytecode array length: 112
+bytecode array length: 109
bytecodes: [
/* 30 E> */ B(StackCheck),
/* 34 S> */ B(LdaGlobal), U8(0), U8(0),
@@ -75,38 +75,36 @@ bytecodes: [
B(LdaNamedProperty), R(0), U8(1), U8(2),
B(Star), R(1),
B(CreateArrayLiteral), U8(2), U8(4), U8(37),
- B(Star), R(3),
- B(LdaConstant), U8(3),
B(Star), R(4),
- /* 49 S> */ B(CreateArrayLiteral), U8(4), U8(10), U8(37),
+ B(LdaConstant), U8(3),
+ B(Star), R(3),
+ /* 49 S> */ B(CreateArrayLiteral), U8(4), U8(8), U8(37),
B(Star), R(8),
- B(LdaNamedProperty), R(8), U8(5), U8(11),
+ B(LdaNamedProperty), R(8), U8(5), U8(9),
B(Star), R(9),
- B(CallProperty0), R(9), R(8), U8(13),
+ B(CallProperty0), R(9), R(8), U8(11),
B(Mov), R(0), R(2),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
B(Star), R(7),
- B(LdaNamedProperty), R(7), U8(6), U8(15),
+ B(LdaNamedProperty), R(7), U8(6), U8(13),
B(Star), R(6),
- B(CallProperty0), R(6), R(7), U8(17),
+ B(CallProperty0), R(6), R(7), U8(15),
B(Star), R(5),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(5), U8(1),
- B(LdaNamedProperty), R(5), U8(7), U8(19),
+ B(LdaNamedProperty), R(5), U8(7), U8(17),
B(JumpIfToBooleanTrue), U8(21),
- B(LdaNamedProperty), R(5), U8(8), U8(21),
+ B(LdaNamedProperty), R(5), U8(8), U8(19),
B(Star), R(5),
- B(StaInArrayLiteral), R(3), R(4), U8(5),
- B(Ldar), R(4),
- B(Inc), U8(7),
- B(Star), R(4),
+ B(StaInArrayLiteral), R(4), R(3), U8(6),
+ B(Ldar), R(3),
+ B(Inc), U8(5),
+ B(Star), R(3),
B(JumpLoop), U8(35), I8(0),
B(LdaSmi), I8(4),
- B(StaInArrayLiteral), R(3), R(4), U8(5),
- B(Ldar), R(4),
- B(Inc), U8(7),
- B(Star), R(4),
+ B(StaInArrayLiteral), R(4), R(3), U8(6),
+ B(Mov), R(4), R(3),
B(CallJSRuntime), U8(%reflect_apply), R(1), U8(3),
B(LdaUndefined),
/* 64 S> */ B(Return),
diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/ClassDeclarations.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/ClassDeclarations.golden
index 737d423fcb..c56e29436e 100644
--- a/deps/v8/test/cctest/interpreter/bytecode_expectations/ClassDeclarations.golden
+++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/ClassDeclarations.golden
@@ -103,12 +103,12 @@ bytecodes: [
B(Star), R(3),
B(LdaConstant), U8(3),
B(Star), R(4),
- B(LdaImmutableCurrentContextSlot), U8(4),
- /* 75 E> */ B(ToName), R(7),
+ /* 75 S> */ B(LdaImmutableCurrentContextSlot), U8(4),
+ B(ToName), R(7),
B(CreateClosure), U8(5), U8(1), U8(2),
B(Star), R(8),
- B(LdaImmutableCurrentContextSlot), U8(5),
- /* 106 E> */ B(ToName), R(9),
+ /* 106 S> */ B(LdaImmutableCurrentContextSlot), U8(5),
+ B(ToName), R(9),
B(LdaConstant), U8(6),
B(TestEqualStrict), R(9), U8(2),
B(Mov), R(3), R(5),
diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/ForAwaitOf.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/ForAwaitOf.golden
index c5fae1f4f6..098130c480 100644
--- a/deps/v8/test/cctest/interpreter/bytecode_expectations/ForAwaitOf.golden
+++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/ForAwaitOf.golden
@@ -16,20 +16,20 @@ snippet: "
"
frame size: 23
parameter count: 1
-bytecode array length: 514
+bytecode array length: 518
bytecodes: [
- B(SwitchOnGeneratorState), R(2), U8(0), U8(3),
+ B(SwitchOnGeneratorState), R(3), U8(0), U8(3),
B(Mov), R(closure), R(12),
B(Mov), R(this), R(13),
B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(12), U8(2),
- B(Star), R(2),
+ B(Star), R(3),
/* 16 E> */ B(StackCheck),
B(CallJSRuntime), U8(%async_function_promise_create), R(0), U8(0),
- B(Star), R(11),
+ B(Star), R(0),
B(Mov), R(context), R(14),
B(Mov), R(context), R(15),
B(LdaZero),
- B(Star), R(7),
+ B(Star), R(8),
B(Mov), R(context), R(18),
B(Mov), R(context), R(19),
/* 43 S> */ B(CreateArrayLiteral), U8(3), U8(0), U8(37),
@@ -46,40 +46,40 @@ bytecodes: [
B(CallProperty0), R(21), R(20), U8(7),
B(Star), R(21),
B(InvokeIntrinsic), U8(Runtime::k_CreateAsyncFromSyncIterator), R(21), U8(1),
- B(Star), R(4),
- /* 43 E> */ B(LdaNamedProperty), R(4), U8(6), U8(9),
B(Star), R(5),
- /* 40 S> */ B(CallProperty0), R(5), R(4), U8(11),
+ /* 43 E> */ B(LdaNamedProperty), R(5), U8(6), U8(9),
+ B(Star), R(6),
+ /* 40 S> */ B(CallProperty0), R(6), R(5), U8(11),
B(Star), R(21),
- B(Mov), R(2), R(20),
- B(Mov), R(11), R(22),
+ B(Mov), R(3), R(20),
+ B(Mov), R(0), R(22),
B(CallJSRuntime), U8(%async_function_await_uncaught), R(20), U8(3),
- /* 40 E> */ B(SuspendGenerator), R(2), R(0), U8(20), U8(0),
- B(ResumeGenerator), R(2), R(0), U8(20),
+ /* 40 E> */ B(SuspendGenerator), R(3), R(0), U8(20), U8(0),
+ B(ResumeGenerator), R(3), R(0), U8(20),
B(Star), R(20),
- B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(2), U8(1),
+ B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(3), U8(1),
B(Star), R(21),
B(LdaZero),
B(TestReferenceEqual), R(21),
B(JumpIfTrue), U8(5),
B(Ldar), R(20),
B(ReThrow),
- B(Mov), R(20), R(6),
+ B(Mov), R(20), R(7),
/* 40 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(20), U8(1),
B(ToBooleanLogicalNot),
B(JumpIfFalse), U8(7),
- B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(6), U8(1),
- B(LdaNamedProperty), R(6), U8(7), U8(13),
+ B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(7), U8(1),
+ B(LdaNamedProperty), R(7), U8(7), U8(13),
B(JumpIfToBooleanTrue), U8(25),
- B(LdaNamedProperty), R(6), U8(8), U8(15),
- B(Star), R(8),
+ B(LdaNamedProperty), R(7), U8(8), U8(15),
+ B(Star), R(9),
B(LdaSmi), I8(2),
- B(Star), R(7),
- B(Mov), R(8), R(3),
+ B(Star), R(8),
+ B(Mov), R(9), R(4),
/* 23 E> */ B(StackCheck),
- B(Mov), R(3), R(0),
+ B(Mov), R(4), R(1),
B(LdaZero),
- B(Star), R(7),
+ B(Star), R(8),
B(JumpLoop), U8(82), I8(0),
B(Jump), U8(37),
B(Star), R(20),
@@ -90,10 +90,10 @@ bytecodes: [
B(Ldar), R(19),
B(PushContext), R(20),
B(LdaSmi), I8(2),
- B(TestEqualStrict), R(7), U8(17),
+ B(TestEqualStrict), R(8), U8(17),
B(JumpIfFalse), U8(6),
B(LdaSmi), I8(1),
- B(Star), R(7),
+ B(Star), R(8),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(21),
B(CallRuntime), U16(Runtime::kReThrow), R(21), U8(1),
@@ -109,38 +109,38 @@ bytecodes: [
B(SetPendingMessage),
B(Star), R(18),
B(LdaZero),
- B(TestEqualStrict), R(7), U8(18),
+ B(TestEqualStrict), R(8), U8(18),
B(JumpIfTrue), U8(167),
- B(LdaNamedProperty), R(4), U8(10), U8(19),
- B(Star), R(9),
+ B(LdaNamedProperty), R(5), U8(10), U8(19),
+ B(Star), R(10),
B(TestUndetectable),
B(JumpIfFalse), U8(4),
B(Jump), U8(156),
B(LdaSmi), I8(1),
- B(TestEqualStrict), R(7), U8(21),
+ B(TestEqualStrict), R(8), U8(21),
B(JumpIfFalse), U8(86),
- B(Ldar), R(9),
+ B(Ldar), R(10),
B(TestTypeOf), U8(6),
B(JumpIfFalse), U8(4),
B(Jump), U8(18),
- B(Wide), B(LdaSmi), I16(153),
+ B(Wide), B(LdaSmi), I16(154),
B(Star), R(19),
B(LdaConstant), U8(11),
B(Star), R(20),
B(CallRuntime), U16(Runtime::kNewTypeError), R(19), U8(2),
B(Throw),
B(Mov), R(context), R(19),
- B(Mov), R(9), R(20),
- B(Mov), R(4), R(21),
+ B(Mov), R(10), R(20),
+ B(Mov), R(5), R(21),
B(InvokeIntrinsic), U8(Runtime::k_Call), R(20), U8(2),
B(Star), R(21),
- B(Mov), R(2), R(20),
- B(Mov), R(11), R(22),
+ B(Mov), R(3), R(20),
+ B(Mov), R(0), R(22),
B(CallJSRuntime), U8(%async_function_await_caught), R(20), U8(3),
- B(SuspendGenerator), R(2), R(0), U8(20), U8(1),
- B(ResumeGenerator), R(2), R(0), U8(20),
+ B(SuspendGenerator), R(3), R(0), U8(20), U8(1),
+ B(ResumeGenerator), R(3), R(0), U8(20),
B(Star), R(20),
- B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(2), U8(1),
+ B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(3), U8(1),
B(Star), R(21),
B(LdaZero),
B(TestReferenceEqual), R(21),
@@ -153,28 +153,28 @@ bytecodes: [
B(SetPendingMessage),
B(Ldar), R(19),
B(Jump), U8(65),
- B(Mov), R(9), R(19),
- B(Mov), R(4), R(20),
+ B(Mov), R(10), R(19),
+ B(Mov), R(5), R(20),
B(InvokeIntrinsic), U8(Runtime::k_Call), R(19), U8(2),
B(Star), R(20),
- B(Mov), R(2), R(19),
- B(Mov), R(11), R(21),
+ B(Mov), R(3), R(19),
+ B(Mov), R(0), R(21),
B(CallJSRuntime), U8(%async_function_await_uncaught), R(19), U8(3),
- B(SuspendGenerator), R(2), R(0), U8(19), U8(2),
- B(ResumeGenerator), R(2), R(0), U8(19),
+ B(SuspendGenerator), R(3), R(0), U8(19), U8(2),
+ B(ResumeGenerator), R(3), R(0), U8(19),
B(Star), R(19),
- B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(2), U8(1),
+ B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(3), U8(1),
B(Star), R(20),
B(LdaZero),
B(TestReferenceEqual), R(20),
B(JumpIfTrue), U8(5),
B(Ldar), R(19),
B(ReThrow),
- B(Mov), R(19), R(10),
+ B(Mov), R(19), R(11),
B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(19), U8(1),
B(JumpIfToBooleanFalse), U8(4),
B(Jump), U8(7),
- B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(10), U8(1),
+ B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(11), U8(1),
B(Ldar), R(18),
B(SetPendingMessage),
B(LdaZero),
@@ -183,14 +183,11 @@ bytecodes: [
B(Ldar), R(17),
B(ReThrow),
B(LdaUndefined),
- B(Star), R(17),
- B(Mov), R(11), R(16),
- B(InvokeIntrinsic), U8(Runtime::k_ResolvePromise), R(16), U8(2),
+ B(Star), R(13),
B(LdaZero),
B(Star), R(12),
- B(Mov), R(11), R(13),
- B(Jump), U8(55),
- B(Jump), U8(39),
+ B(Jump), U8(56),
+ B(Jump), U8(40),
B(Star), R(16),
B(CreateCatchContext), R(16), U8(12),
B(Star), R(15),
@@ -202,32 +199,37 @@ bytecodes: [
B(Star), R(18),
B(LdaFalse),
B(Star), R(19),
- B(Mov), R(11), R(17),
+ B(Mov), R(0), R(17),
B(InvokeIntrinsic), U8(Runtime::k_RejectPromise), R(17), U8(3),
B(PopContext), R(16),
- B(LdaZero),
+ B(LdaSmi), I8(1),
B(Star), R(12),
- B(Mov), R(11), R(13),
+ B(Mov), R(0), R(13),
B(Jump), U8(16),
B(LdaSmi), I8(-1),
B(Star), R(13),
B(Star), R(12),
B(Jump), U8(8),
B(Star), R(13),
- B(LdaSmi), I8(1),
+ B(LdaSmi), I8(2),
B(Star), R(12),
B(LdaTheHole),
B(SetPendingMessage),
B(Star), R(14),
B(LdaTrue),
B(Star), R(16),
- B(Mov), R(11), R(15),
+ B(Mov), R(0), R(15),
B(CallJSRuntime), U8(%async_function_promise_release), R(15), U8(2),
B(Ldar), R(14),
B(SetPendingMessage),
B(Ldar), R(12),
- B(SwitchOnSmiNoFeedback), U8(13), U8(2), I8(0),
- B(Jump), U8(8),
+ B(SwitchOnSmiNoFeedback), U8(13), U8(3), I8(0),
+ B(Jump), U8(21),
+ B(Mov), R(0), R(15),
+ B(Mov), R(13), R(16),
+ B(InvokeIntrinsic), U8(Runtime::k_ResolvePromise), R(15), U8(2),
+ B(Ldar), R(0),
+ /* 57 S> */ B(Return),
B(Ldar), R(13),
/* 57 S> */ B(Return),
B(Ldar), R(13),
@@ -250,11 +252,12 @@ constant pool: [
ONE_BYTE_INTERNALIZED_STRING_TYPE [""],
SCOPE_INFO_TYPE,
Smi [6],
- Smi [9],
+ Smi [19],
+ Smi [22],
]
handlers: [
- [26, 467, 475],
- [29, 428, 430],
+ [26, 458, 466],
+ [29, 418, 420],
[35, 211, 219],
[38, 174, 176],
[279, 328, 330],
@@ -269,20 +272,20 @@ snippet: "
"
frame size: 23
parameter count: 1
-bytecode array length: 543
+bytecode array length: 532
bytecodes: [
- B(SwitchOnGeneratorState), R(2), U8(0), U8(3),
+ B(SwitchOnGeneratorState), R(3), U8(0), U8(3),
B(Mov), R(closure), R(12),
B(Mov), R(this), R(13),
B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(12), U8(2),
- B(Star), R(2),
+ B(Star), R(3),
/* 16 E> */ B(StackCheck),
B(CallJSRuntime), U8(%async_function_promise_create), R(0), U8(0),
- B(Star), R(11),
+ B(Star), R(0),
B(Mov), R(context), R(14),
B(Mov), R(context), R(15),
B(LdaZero),
- B(Star), R(7),
+ B(Star), R(8),
B(Mov), R(context), R(18),
B(Mov), R(context), R(19),
/* 43 S> */ B(CreateArrayLiteral), U8(3), U8(0), U8(37),
@@ -299,41 +302,41 @@ bytecodes: [
B(CallProperty0), R(21), R(20), U8(7),
B(Star), R(21),
B(InvokeIntrinsic), U8(Runtime::k_CreateAsyncFromSyncIterator), R(21), U8(1),
- B(Star), R(4),
- /* 43 E> */ B(LdaNamedProperty), R(4), U8(6), U8(9),
B(Star), R(5),
- /* 40 S> */ B(CallProperty0), R(5), R(4), U8(11),
+ /* 43 E> */ B(LdaNamedProperty), R(5), U8(6), U8(9),
+ B(Star), R(6),
+ /* 40 S> */ B(CallProperty0), R(6), R(5), U8(11),
B(Star), R(21),
- B(Mov), R(2), R(20),
- B(Mov), R(11), R(22),
+ B(Mov), R(3), R(20),
+ B(Mov), R(0), R(22),
B(CallJSRuntime), U8(%async_function_await_uncaught), R(20), U8(3),
- /* 40 E> */ B(SuspendGenerator), R(2), R(0), U8(20), U8(0),
- B(ResumeGenerator), R(2), R(0), U8(20),
+ /* 40 E> */ B(SuspendGenerator), R(3), R(0), U8(20), U8(0),
+ B(ResumeGenerator), R(3), R(0), U8(20),
B(Star), R(20),
- B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(2), U8(1),
+ B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(3), U8(1),
B(Star), R(21),
B(LdaZero),
B(TestReferenceEqual), R(21),
B(JumpIfTrue), U8(5),
B(Ldar), R(20),
B(ReThrow),
- B(Mov), R(20), R(6),
+ B(Mov), R(20), R(7),
/* 40 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(20), U8(1),
B(ToBooleanLogicalNot),
B(JumpIfFalse), U8(7),
- B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(6), U8(1),
- B(LdaNamedProperty), R(6), U8(7), U8(13),
+ B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(7), U8(1),
+ B(LdaNamedProperty), R(7), U8(7), U8(13),
B(JumpIfToBooleanTrue), U8(27),
- B(LdaNamedProperty), R(6), U8(8), U8(15),
- B(Star), R(8),
+ B(LdaNamedProperty), R(7), U8(8), U8(15),
+ B(Star), R(9),
B(LdaSmi), I8(2),
- B(Star), R(7),
- B(Mov), R(8), R(3),
+ B(Star), R(8),
+ B(Mov), R(9), R(4),
/* 23 E> */ B(StackCheck),
- B(Mov), R(3), R(0),
+ B(Mov), R(4), R(1),
/* 56 S> */ B(LdaZero),
B(Star), R(16),
- B(Mov), R(8), R(17),
+ B(Mov), R(9), R(17),
B(Jump), U8(53),
B(Jump), U8(37),
B(Star), R(20),
@@ -344,10 +347,10 @@ bytecodes: [
B(Ldar), R(19),
B(PushContext), R(20),
B(LdaSmi), I8(2),
- B(TestEqualStrict), R(7), U8(17),
+ B(TestEqualStrict), R(8), U8(17),
B(JumpIfFalse), U8(6),
B(LdaSmi), I8(1),
- B(Star), R(7),
+ B(Star), R(8),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(21),
B(CallRuntime), U16(Runtime::kReThrow), R(21), U8(1),
@@ -363,38 +366,38 @@ bytecodes: [
B(SetPendingMessage),
B(Star), R(18),
B(LdaZero),
- B(TestEqualStrict), R(7), U8(18),
+ B(TestEqualStrict), R(8), U8(18),
B(JumpIfTrue), U8(167),
- B(LdaNamedProperty), R(4), U8(10), U8(19),
- B(Star), R(9),
+ B(LdaNamedProperty), R(5), U8(10), U8(19),
+ B(Star), R(10),
B(TestUndetectable),
B(JumpIfFalse), U8(4),
B(Jump), U8(156),
B(LdaSmi), I8(1),
- B(TestEqualStrict), R(7), U8(21),
+ B(TestEqualStrict), R(8), U8(21),
B(JumpIfFalse), U8(86),
- B(Ldar), R(9),
+ B(Ldar), R(10),
B(TestTypeOf), U8(6),
B(JumpIfFalse), U8(4),
B(Jump), U8(18),
- B(Wide), B(LdaSmi), I16(153),
+ B(Wide), B(LdaSmi), I16(154),
B(Star), R(19),
B(LdaConstant), U8(11),
B(Star), R(20),
B(CallRuntime), U16(Runtime::kNewTypeError), R(19), U8(2),
B(Throw),
B(Mov), R(context), R(19),
- B(Mov), R(9), R(20),
- B(Mov), R(4), R(21),
+ B(Mov), R(10), R(20),
+ B(Mov), R(5), R(21),
B(InvokeIntrinsic), U8(Runtime::k_Call), R(20), U8(2),
B(Star), R(21),
- B(Mov), R(2), R(20),
- B(Mov), R(11), R(22),
+ B(Mov), R(3), R(20),
+ B(Mov), R(0), R(22),
B(CallJSRuntime), U8(%async_function_await_caught), R(20), U8(3),
- B(SuspendGenerator), R(2), R(0), U8(20), U8(1),
- B(ResumeGenerator), R(2), R(0), U8(20),
+ B(SuspendGenerator), R(3), R(0), U8(20), U8(1),
+ B(ResumeGenerator), R(3), R(0), U8(20),
B(Star), R(20),
- B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(2), U8(1),
+ B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(3), U8(1),
B(Star), R(21),
B(LdaZero),
B(TestReferenceEqual), R(21),
@@ -407,28 +410,28 @@ bytecodes: [
B(SetPendingMessage),
B(Ldar), R(19),
B(Jump), U8(65),
- B(Mov), R(9), R(19),
- B(Mov), R(4), R(20),
+ B(Mov), R(10), R(19),
+ B(Mov), R(5), R(20),
B(InvokeIntrinsic), U8(Runtime::k_Call), R(19), U8(2),
B(Star), R(20),
- B(Mov), R(2), R(19),
- B(Mov), R(11), R(21),
+ B(Mov), R(3), R(19),
+ B(Mov), R(0), R(21),
B(CallJSRuntime), U8(%async_function_await_uncaught), R(19), U8(3),
- B(SuspendGenerator), R(2), R(0), U8(19), U8(2),
- B(ResumeGenerator), R(2), R(0), U8(19),
+ B(SuspendGenerator), R(3), R(0), U8(19), U8(2),
+ B(ResumeGenerator), R(3), R(0), U8(19),
B(Star), R(19),
- B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(2), U8(1),
+ B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(3), U8(1),
B(Star), R(20),
B(LdaZero),
B(TestReferenceEqual), R(20),
B(JumpIfTrue), U8(5),
B(Ldar), R(19),
B(ReThrow),
- B(Mov), R(19), R(10),
+ B(Mov), R(19), R(11),
B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(19), U8(1),
B(JumpIfToBooleanFalse), U8(4),
B(Jump), U8(7),
- B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(10), U8(1),
+ B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(11), U8(1),
B(Ldar), R(18),
B(SetPendingMessage),
B(Ldar), R(16),
@@ -437,16 +440,13 @@ bytecodes: [
B(LdaZero),
B(Star), R(12),
B(Mov), R(17), R(13),
- B(Jump), U8(78),
+ B(Jump), U8(67),
B(Ldar), R(17),
B(ReThrow),
B(LdaUndefined),
- B(Star), R(17),
- B(Mov), R(11), R(16),
- B(InvokeIntrinsic), U8(Runtime::k_ResolvePromise), R(16), U8(2),
- B(LdaSmi), I8(1),
+ B(Star), R(13),
+ B(LdaZero),
B(Star), R(12),
- B(Mov), R(11), R(13),
B(Jump), U8(56),
B(Jump), U8(40),
B(Star), R(16),
@@ -460,12 +460,12 @@ bytecodes: [
B(Star), R(18),
B(LdaFalse),
B(Star), R(19),
- B(Mov), R(11), R(17),
+ B(Mov), R(0), R(17),
B(InvokeIntrinsic), U8(Runtime::k_RejectPromise), R(17), U8(3),
B(PopContext), R(16),
B(LdaSmi), I8(1),
B(Star), R(12),
- B(Mov), R(11), R(13),
+ B(Mov), R(0), R(13),
B(Jump), U8(16),
B(LdaSmi), I8(-1),
B(Star), R(13),
@@ -479,17 +479,17 @@ bytecodes: [
B(Star), R(14),
B(LdaTrue),
B(Star), R(16),
- B(Mov), R(11), R(15),
+ B(Mov), R(0), R(15),
B(CallJSRuntime), U8(%async_function_promise_release), R(15), U8(2),
B(Ldar), R(14),
B(SetPendingMessage),
B(Ldar), R(12),
B(SwitchOnSmiNoFeedback), U8(15), U8(3), I8(0),
B(Jump), U8(21),
- B(Mov), R(11), R(15),
+ B(Mov), R(0), R(15),
B(Mov), R(13), R(16),
B(InvokeIntrinsic), U8(Runtime::k_ResolvePromise), R(15), U8(2),
- B(Ldar), R(11),
+ B(Ldar), R(0),
/* 68 S> */ B(Return),
B(Ldar), R(13),
/* 68 S> */ B(Return),
@@ -519,8 +519,8 @@ constant pool: [
Smi [22],
]
handlers: [
- [26, 483, 491],
- [29, 443, 445],
+ [26, 472, 480],
+ [29, 432, 434],
[35, 213, 221],
[38, 176, 178],
[282, 331, 333],
@@ -538,20 +538,20 @@ snippet: "
"
frame size: 23
parameter count: 1
-bytecode array length: 532
+bytecode array length: 536
bytecodes: [
- B(SwitchOnGeneratorState), R(2), U8(0), U8(3),
+ B(SwitchOnGeneratorState), R(3), U8(0), U8(3),
B(Mov), R(closure), R(12),
B(Mov), R(this), R(13),
B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(12), U8(2),
- B(Star), R(2),
+ B(Star), R(3),
/* 16 E> */ B(StackCheck),
B(CallJSRuntime), U8(%async_function_promise_create), R(0), U8(0),
- B(Star), R(11),
+ B(Star), R(0),
B(Mov), R(context), R(14),
B(Mov), R(context), R(15),
B(LdaZero),
- B(Star), R(7),
+ B(Star), R(8),
B(Mov), R(context), R(18),
B(Mov), R(context), R(19),
/* 43 S> */ B(CreateArrayLiteral), U8(3), U8(0), U8(37),
@@ -568,48 +568,48 @@ bytecodes: [
B(CallProperty0), R(21), R(20), U8(7),
B(Star), R(21),
B(InvokeIntrinsic), U8(Runtime::k_CreateAsyncFromSyncIterator), R(21), U8(1),
- B(Star), R(4),
- /* 43 E> */ B(LdaNamedProperty), R(4), U8(6), U8(9),
B(Star), R(5),
- /* 40 S> */ B(CallProperty0), R(5), R(4), U8(11),
+ /* 43 E> */ B(LdaNamedProperty), R(5), U8(6), U8(9),
+ B(Star), R(6),
+ /* 40 S> */ B(CallProperty0), R(6), R(5), U8(11),
B(Star), R(21),
- B(Mov), R(2), R(20),
- B(Mov), R(11), R(22),
+ B(Mov), R(3), R(20),
+ B(Mov), R(0), R(22),
B(CallJSRuntime), U8(%async_function_await_uncaught), R(20), U8(3),
- /* 40 E> */ B(SuspendGenerator), R(2), R(0), U8(20), U8(0),
- B(ResumeGenerator), R(2), R(0), U8(20),
+ /* 40 E> */ B(SuspendGenerator), R(3), R(0), U8(20), U8(0),
+ B(ResumeGenerator), R(3), R(0), U8(20),
B(Star), R(20),
- B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(2), U8(1),
+ B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(3), U8(1),
B(Star), R(21),
B(LdaZero),
B(TestReferenceEqual), R(21),
B(JumpIfTrue), U8(5),
B(Ldar), R(20),
B(ReThrow),
- B(Mov), R(20), R(6),
+ B(Mov), R(20), R(7),
/* 40 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(20), U8(1),
B(ToBooleanLogicalNot),
B(JumpIfFalse), U8(7),
- B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(6), U8(1),
- B(LdaNamedProperty), R(6), U8(7), U8(13),
+ B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(7), U8(1),
+ B(LdaNamedProperty), R(7), U8(7), U8(13),
B(JumpIfToBooleanTrue), U8(43),
- B(LdaNamedProperty), R(6), U8(8), U8(15),
- B(Star), R(8),
+ B(LdaNamedProperty), R(7), U8(8), U8(15),
+ B(Star), R(9),
B(LdaSmi), I8(2),
- B(Star), R(7),
- B(Mov), R(8), R(3),
+ B(Star), R(8),
+ B(Mov), R(9), R(4),
/* 23 E> */ B(StackCheck),
- B(Mov), R(3), R(0),
+ B(Mov), R(4), R(1),
/* 63 S> */ B(LdaSmi), I8(10),
- /* 69 E> */ B(TestEqual), R(0), U8(17),
+ /* 69 E> */ B(TestEqual), R(1), U8(17),
B(JumpIfFalse), U8(4),
/* 76 S> */ B(Jump), U8(14),
/* 90 S> */ B(LdaSmi), I8(20),
- /* 96 E> */ B(TestEqual), R(0), U8(18),
+ /* 96 E> */ B(TestEqual), R(1), U8(18),
B(JumpIfFalse), U8(4),
/* 103 S> */ B(Jump), U8(8),
B(LdaZero),
- B(Star), R(7),
+ B(Star), R(8),
B(JumpLoop), U8(100), I8(0),
B(Jump), U8(37),
B(Star), R(20),
@@ -620,10 +620,10 @@ bytecodes: [
B(Ldar), R(19),
B(PushContext), R(20),
B(LdaSmi), I8(2),
- B(TestEqualStrict), R(7), U8(19),
+ B(TestEqualStrict), R(8), U8(19),
B(JumpIfFalse), U8(6),
B(LdaSmi), I8(1),
- B(Star), R(7),
+ B(Star), R(8),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(21),
B(CallRuntime), U16(Runtime::kReThrow), R(21), U8(1),
@@ -639,38 +639,38 @@ bytecodes: [
B(SetPendingMessage),
B(Star), R(18),
B(LdaZero),
- B(TestEqualStrict), R(7), U8(20),
+ B(TestEqualStrict), R(8), U8(20),
B(JumpIfTrue), U8(167),
- B(LdaNamedProperty), R(4), U8(10), U8(21),
- B(Star), R(9),
+ B(LdaNamedProperty), R(5), U8(10), U8(21),
+ B(Star), R(10),
B(TestUndetectable),
B(JumpIfFalse), U8(4),
B(Jump), U8(156),
B(LdaSmi), I8(1),
- B(TestEqualStrict), R(7), U8(23),
+ B(TestEqualStrict), R(8), U8(23),
B(JumpIfFalse), U8(86),
- B(Ldar), R(9),
+ B(Ldar), R(10),
B(TestTypeOf), U8(6),
B(JumpIfFalse), U8(4),
B(Jump), U8(18),
- B(Wide), B(LdaSmi), I16(153),
+ B(Wide), B(LdaSmi), I16(154),
B(Star), R(19),
B(LdaConstant), U8(11),
B(Star), R(20),
B(CallRuntime), U16(Runtime::kNewTypeError), R(19), U8(2),
B(Throw),
B(Mov), R(context), R(19),
- B(Mov), R(9), R(20),
- B(Mov), R(4), R(21),
+ B(Mov), R(10), R(20),
+ B(Mov), R(5), R(21),
B(InvokeIntrinsic), U8(Runtime::k_Call), R(20), U8(2),
B(Star), R(21),
- B(Mov), R(2), R(20),
- B(Mov), R(11), R(22),
+ B(Mov), R(3), R(20),
+ B(Mov), R(0), R(22),
B(CallJSRuntime), U8(%async_function_await_caught), R(20), U8(3),
- B(SuspendGenerator), R(2), R(0), U8(20), U8(1),
- B(ResumeGenerator), R(2), R(0), U8(20),
+ B(SuspendGenerator), R(3), R(0), U8(20), U8(1),
+ B(ResumeGenerator), R(3), R(0), U8(20),
B(Star), R(20),
- B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(2), U8(1),
+ B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(3), U8(1),
B(Star), R(21),
B(LdaZero),
B(TestReferenceEqual), R(21),
@@ -683,28 +683,28 @@ bytecodes: [
B(SetPendingMessage),
B(Ldar), R(19),
B(Jump), U8(65),
- B(Mov), R(9), R(19),
- B(Mov), R(4), R(20),
+ B(Mov), R(10), R(19),
+ B(Mov), R(5), R(20),
B(InvokeIntrinsic), U8(Runtime::k_Call), R(19), U8(2),
B(Star), R(20),
- B(Mov), R(2), R(19),
- B(Mov), R(11), R(21),
+ B(Mov), R(3), R(19),
+ B(Mov), R(0), R(21),
B(CallJSRuntime), U8(%async_function_await_uncaught), R(19), U8(3),
- B(SuspendGenerator), R(2), R(0), U8(19), U8(2),
- B(ResumeGenerator), R(2), R(0), U8(19),
+ B(SuspendGenerator), R(3), R(0), U8(19), U8(2),
+ B(ResumeGenerator), R(3), R(0), U8(19),
B(Star), R(19),
- B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(2), U8(1),
+ B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(3), U8(1),
B(Star), R(20),
B(LdaZero),
B(TestReferenceEqual), R(20),
B(JumpIfTrue), U8(5),
B(Ldar), R(19),
B(ReThrow),
- B(Mov), R(19), R(10),
+ B(Mov), R(19), R(11),
B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(19), U8(1),
B(JumpIfToBooleanFalse), U8(4),
B(Jump), U8(7),
- B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(10), U8(1),
+ B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(11), U8(1),
B(Ldar), R(18),
B(SetPendingMessage),
B(LdaZero),
@@ -713,14 +713,11 @@ bytecodes: [
B(Ldar), R(17),
B(ReThrow),
B(LdaUndefined),
- B(Star), R(17),
- B(Mov), R(11), R(16),
- B(InvokeIntrinsic), U8(Runtime::k_ResolvePromise), R(16), U8(2),
+ B(Star), R(13),
B(LdaZero),
B(Star), R(12),
- B(Mov), R(11), R(13),
- B(Jump), U8(55),
- B(Jump), U8(39),
+ B(Jump), U8(56),
+ B(Jump), U8(40),
B(Star), R(16),
B(CreateCatchContext), R(16), U8(12),
B(Star), R(15),
@@ -732,32 +729,37 @@ bytecodes: [
B(Star), R(18),
B(LdaFalse),
B(Star), R(19),
- B(Mov), R(11), R(17),
+ B(Mov), R(0), R(17),
B(InvokeIntrinsic), U8(Runtime::k_RejectPromise), R(17), U8(3),
B(PopContext), R(16),
- B(LdaZero),
+ B(LdaSmi), I8(1),
B(Star), R(12),
- B(Mov), R(11), R(13),
+ B(Mov), R(0), R(13),
B(Jump), U8(16),
B(LdaSmi), I8(-1),
B(Star), R(13),
B(Star), R(12),
B(Jump), U8(8),
B(Star), R(13),
- B(LdaSmi), I8(1),
+ B(LdaSmi), I8(2),
B(Star), R(12),
B(LdaTheHole),
B(SetPendingMessage),
B(Star), R(14),
B(LdaTrue),
B(Star), R(16),
- B(Mov), R(11), R(15),
+ B(Mov), R(0), R(15),
B(CallJSRuntime), U8(%async_function_promise_release), R(15), U8(2),
B(Ldar), R(14),
B(SetPendingMessage),
B(Ldar), R(12),
- B(SwitchOnSmiNoFeedback), U8(13), U8(2), I8(0),
- B(Jump), U8(8),
+ B(SwitchOnSmiNoFeedback), U8(13), U8(3), I8(0),
+ B(Jump), U8(21),
+ B(Mov), R(0), R(15),
+ B(Mov), R(13), R(16),
+ B(InvokeIntrinsic), U8(Runtime::k_ResolvePromise), R(15), U8(2),
+ B(Ldar), R(0),
+ /* 114 S> */ B(Return),
B(Ldar), R(13),
/* 114 S> */ B(Return),
B(Ldar), R(13),
@@ -780,11 +782,12 @@ constant pool: [
ONE_BYTE_INTERNALIZED_STRING_TYPE [""],
SCOPE_INFO_TYPE,
Smi [6],
- Smi [9],
+ Smi [19],
+ Smi [22],
]
handlers: [
- [26, 485, 493],
- [29, 446, 448],
+ [26, 476, 484],
+ [29, 436, 438],
[35, 229, 237],
[38, 192, 194],
[297, 346, 348],
@@ -800,17 +803,17 @@ snippet: "
"
frame size: 20
parameter count: 1
-bytecode array length: 403
+bytecode array length: 392
bytecodes: [
/* 16 E> */ B(StackCheck),
B(CallJSRuntime), U8(%async_function_promise_create), R(0), U8(0),
- B(Star), R(9),
+ B(Star), R(0),
B(Mov), R(context), R(12),
B(Mov), R(context), R(13),
/* 31 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(41), R(14),
- B(Mov), R(14), R(1),
+ B(Mov), R(14), R(2),
B(LdaZero),
- B(Star), R(5),
+ B(Star), R(6),
B(Mov), R(context), R(16),
B(Mov), R(context), R(17),
/* 68 S> */ B(CreateArrayLiteral), U8(1), U8(1), U8(37),
@@ -820,25 +823,25 @@ bytecodes: [
B(CallProperty0), R(19), R(18), U8(4),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
- B(Star), R(2),
- /* 68 E> */ B(LdaNamedProperty), R(2), U8(3), U8(6),
B(Star), R(3),
- /* 59 S> */ B(CallProperty0), R(3), R(2), U8(8),
+ /* 68 E> */ B(LdaNamedProperty), R(3), U8(3), U8(6),
B(Star), R(4),
- /* 59 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(4), U8(1),
+ /* 59 S> */ B(CallProperty0), R(4), R(3), U8(8),
+ B(Star), R(5),
+ /* 59 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(5), U8(1),
B(ToBooleanLogicalNot),
B(JumpIfFalse), U8(7),
- B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(4), U8(1),
- B(LdaNamedProperty), R(4), U8(4), U8(10),
+ B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(5), U8(1),
+ B(LdaNamedProperty), R(5), U8(4), U8(10),
B(JumpIfToBooleanTrue), U8(30),
- /* 58 E> */ B(LdaNamedProperty), R(4), U8(5), U8(12),
- B(Star), R(6),
+ /* 58 E> */ B(LdaNamedProperty), R(5), U8(5), U8(12),
+ B(Star), R(7),
B(LdaSmi), I8(2),
- B(Star), R(5),
- B(Ldar), R(6),
- B(StaNamedProperty), R(1), U8(6), U8(14),
+ B(Star), R(6),
+ B(Ldar), R(7),
+ B(StaNamedProperty), R(2), U8(6), U8(14),
/* 53 E> */ B(StackCheck),
- /* 87 S> */ B(LdaNamedProperty), R(1), U8(6), U8(16),
+ /* 87 S> */ B(LdaNamedProperty), R(2), U8(6), U8(16),
B(Star), R(15),
B(LdaZero),
B(Star), R(14),
@@ -852,10 +855,10 @@ bytecodes: [
B(Ldar), R(17),
B(PushContext), R(18),
B(LdaSmi), I8(2),
- B(TestEqualStrict), R(5), U8(18),
+ B(TestEqualStrict), R(6), U8(18),
B(JumpIfFalse), U8(6),
B(LdaSmi), I8(1),
- B(Star), R(5),
+ B(Star), R(6),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(19),
B(CallRuntime), U16(Runtime::kReThrow), R(19), U8(1),
@@ -871,43 +874,43 @@ bytecodes: [
B(SetPendingMessage),
B(Star), R(16),
B(LdaZero),
- B(TestEqualStrict), R(5), U8(19),
+ B(TestEqualStrict), R(6), U8(19),
B(JumpIfTrue), U8(90),
- B(LdaNamedProperty), R(2), U8(8), U8(20),
- B(Star), R(7),
+ B(LdaNamedProperty), R(3), U8(8), U8(20),
+ B(Star), R(8),
B(TestUndetectable),
B(JumpIfFalse), U8(4),
B(Jump), U8(79),
B(LdaSmi), I8(1),
- B(TestEqualStrict), R(5), U8(22),
+ B(TestEqualStrict), R(6), U8(22),
B(JumpIfFalse), U8(47),
- B(Ldar), R(7),
+ B(Ldar), R(8),
B(TestTypeOf), U8(6),
B(JumpIfFalse), U8(4),
B(Jump), U8(18),
- B(Wide), B(LdaSmi), I16(153),
+ B(Wide), B(LdaSmi), I16(154),
B(Star), R(17),
B(LdaConstant), U8(9),
B(Star), R(18),
B(CallRuntime), U16(Runtime::kNewTypeError), R(17), U8(2),
B(Throw),
B(Mov), R(context), R(17),
- B(Mov), R(7), R(18),
- B(Mov), R(2), R(19),
+ B(Mov), R(8), R(18),
+ B(Mov), R(3), R(19),
B(InvokeIntrinsic), U8(Runtime::k_Call), R(18), U8(2),
B(Jump), U8(6),
B(LdaTheHole),
B(SetPendingMessage),
B(Ldar), R(17),
B(Jump), U8(27),
- B(Mov), R(7), R(17),
- B(Mov), R(2), R(18),
+ B(Mov), R(8), R(17),
+ B(Mov), R(3), R(18),
B(InvokeIntrinsic), U8(Runtime::k_Call), R(17), U8(2),
- B(Star), R(8),
- B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(8), U8(1),
+ B(Star), R(9),
+ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(9), U8(1),
B(JumpIfToBooleanFalse), U8(4),
B(Jump), U8(7),
- B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(8), U8(1),
+ B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(9), U8(1),
B(Ldar), R(16),
B(SetPendingMessage),
B(Ldar), R(14),
@@ -916,16 +919,13 @@ bytecodes: [
B(LdaZero),
B(Star), R(10),
B(Mov), R(15), R(11),
- B(Jump), U8(78),
+ B(Jump), U8(67),
B(Ldar), R(15),
B(ReThrow),
B(LdaUndefined),
- B(Star), R(15),
- B(Mov), R(9), R(14),
- B(InvokeIntrinsic), U8(Runtime::k_ResolvePromise), R(14), U8(2),
- B(LdaSmi), I8(1),
+ B(Star), R(11),
+ B(LdaZero),
B(Star), R(10),
- B(Mov), R(9), R(11),
B(Jump), U8(56),
B(Jump), U8(40),
B(Star), R(14),
@@ -939,12 +939,12 @@ bytecodes: [
B(Star), R(16),
B(LdaFalse),
B(Star), R(17),
- B(Mov), R(9), R(15),
+ B(Mov), R(0), R(15),
B(InvokeIntrinsic), U8(Runtime::k_RejectPromise), R(15), U8(3),
B(PopContext), R(14),
B(LdaSmi), I8(1),
B(Star), R(10),
- B(Mov), R(9), R(11),
+ B(Mov), R(0), R(11),
B(Jump), U8(16),
B(LdaSmi), I8(-1),
B(Star), R(11),
@@ -958,17 +958,17 @@ bytecodes: [
B(Star), R(12),
B(LdaFalse),
B(Star), R(14),
- B(Mov), R(9), R(13),
+ B(Mov), R(0), R(13),
B(CallJSRuntime), U8(%async_function_promise_release), R(13), U8(2),
B(Ldar), R(12),
B(SetPendingMessage),
B(Ldar), R(10),
B(SwitchOnSmiNoFeedback), U8(13), U8(3), I8(0),
B(Jump), U8(21),
- B(Mov), R(9), R(13),
+ B(Mov), R(0), R(13),
B(Mov), R(11), R(14),
B(InvokeIntrinsic), U8(Runtime::k_ResolvePromise), R(13), U8(2),
- B(Ldar), R(9),
+ B(Ldar), R(0),
/* 96 S> */ B(Return),
B(Ldar), R(11),
/* 96 S> */ B(Return),
@@ -996,8 +996,8 @@ constant pool: [
Smi [22],
]
handlers: [
- [10, 343, 351],
- [13, 303, 305],
+ [10, 332, 340],
+ [13, 292, 294],
[27, 150, 158],
[30, 113, 115],
[219, 229, 231],
diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/ForOf.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/ForOf.golden
index bcb462bc75..b43429e008 100644
--- a/deps/v8/test/cctest/interpreter/bytecode_expectations/ForOf.golden
+++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/ForOf.golden
@@ -85,7 +85,7 @@ bytecodes: [
B(TestTypeOf), U8(6),
B(JumpIfFalse), U8(4),
B(Jump), U8(18),
- B(Wide), B(LdaSmi), I16(153),
+ B(Wide), B(LdaSmi), I16(154),
B(Star), R(12),
B(LdaConstant), U8(7),
B(Star), R(13),
@@ -217,7 +217,7 @@ bytecodes: [
B(TestTypeOf), U8(6),
B(JumpIfFalse), U8(4),
B(Jump), U8(18),
- B(Wide), B(LdaSmi), I16(153),
+ B(Wide), B(LdaSmi), I16(154),
B(Star), R(13),
B(LdaConstant), U8(7),
B(Star), R(14),
@@ -361,7 +361,7 @@ bytecodes: [
B(TestTypeOf), U8(6),
B(JumpIfFalse), U8(4),
B(Jump), U8(18),
- B(Wide), B(LdaSmi), I16(153),
+ B(Wide), B(LdaSmi), I16(154),
B(Star), R(12),
B(LdaConstant), U8(7),
B(Star), R(13),
@@ -495,7 +495,7 @@ bytecodes: [
B(TestTypeOf), U8(6),
B(JumpIfFalse), U8(4),
B(Jump), U8(18),
- B(Wide), B(LdaSmi), I16(153),
+ B(Wide), B(LdaSmi), I16(154),
B(Star), R(11),
B(LdaConstant), U8(9),
B(Star), R(12),
diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/ForOfLoop.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/ForOfLoop.golden
index d4fe1a091c..9755e0af17 100644
--- a/deps/v8/test/cctest/interpreter/bytecode_expectations/ForOfLoop.golden
+++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/ForOfLoop.golden
@@ -89,7 +89,7 @@ bytecodes: [
B(TestTypeOf), U8(6),
B(JumpIfFalse), U8(4),
B(Jump), U8(18),
- B(Wide), B(LdaSmi), I16(153),
+ B(Wide), B(LdaSmi), I16(154),
B(Star), R(14),
B(LdaConstant), U8(6),
B(Star), R(15),
@@ -256,7 +256,7 @@ bytecodes: [
B(TestTypeOf), U8(6),
B(JumpIfFalse), U8(4),
B(Jump), U8(18),
- B(Wide), B(LdaSmi), I16(153),
+ B(Wide), B(LdaSmi), I16(154),
B(Star), R(14),
B(LdaConstant), U8(11),
B(Star), R(15),
@@ -401,7 +401,7 @@ bytecodes: [
B(TestTypeOf), U8(6),
B(JumpIfFalse), U8(4),
B(Jump), U8(18),
- B(Wide), B(LdaSmi), I16(153),
+ B(Wide), B(LdaSmi), I16(154),
B(Star), R(12),
B(LdaConstant), U8(8),
B(Star), R(13),
@@ -550,7 +550,7 @@ bytecodes: [
B(TestTypeOf), U8(6),
B(JumpIfFalse), U8(4),
B(Jump), U8(18),
- B(Wide), B(LdaSmi), I16(153),
+ B(Wide), B(LdaSmi), I16(154),
B(Star), R(17),
B(LdaConstant), U8(8),
B(Star), R(18),
@@ -697,7 +697,7 @@ bytecodes: [
B(TestTypeOf), U8(6),
B(JumpIfFalse), U8(4),
B(Jump), U8(18),
- B(Wide), B(LdaSmi), I16(153),
+ B(Wide), B(LdaSmi), I16(154),
B(Star), R(15),
B(LdaConstant), U8(9),
B(Star), R(16),
@@ -859,7 +859,7 @@ bytecodes: [
B(TestTypeOf), U8(6),
B(JumpIfFalse), U8(4),
B(Jump), U8(18),
- B(Wide), B(LdaSmi), I16(153),
+ B(Wide), B(LdaSmi), I16(154),
B(Star), R(14),
B(LdaConstant), U8(12),
B(Star), R(15),
@@ -926,15 +926,15 @@ snippet: "
"
frame size: 23
parameter count: 2
-bytecode array length: 363
+bytecode array length: 367
bytecodes: [
/* 16 E> */ B(StackCheck),
B(CallJSRuntime), U8(%async_function_promise_create), R(0), U8(0),
- B(Star), R(12),
+ B(Star), R(0),
B(Mov), R(context), R(15),
B(Mov), R(context), R(16),
B(LdaZero),
- B(Star), R(8),
+ B(Star), R(9),
B(Mov), R(context), R(19),
B(Mov), R(context), R(20),
/* 40 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(0),
@@ -943,27 +943,27 @@ bytecodes: [
B(Mov), R(arg0), R(21),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
- B(Star), R(5),
- /* 40 E> */ B(LdaNamedProperty), R(5), U8(1), U8(4),
B(Star), R(6),
- /* 35 S> */ B(CallProperty0), R(6), R(5), U8(6),
+ /* 40 E> */ B(LdaNamedProperty), R(6), U8(1), U8(4),
B(Star), R(7),
- /* 35 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(7), U8(1),
+ /* 35 S> */ B(CallProperty0), R(7), R(6), U8(6),
+ B(Star), R(8),
+ /* 35 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(8), U8(1),
B(ToBooleanLogicalNot),
B(JumpIfFalse), U8(7),
- B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(7), U8(1),
- B(LdaNamedProperty), R(7), U8(2), U8(8),
+ B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(8), U8(1),
+ B(LdaNamedProperty), R(8), U8(2), U8(8),
B(JumpIfToBooleanTrue), U8(28),
- B(LdaNamedProperty), R(7), U8(3), U8(10),
- B(Star), R(9),
+ B(LdaNamedProperty), R(8), U8(3), U8(10),
+ B(Star), R(10),
B(LdaSmi), I8(2),
- B(Star), R(8),
- B(Mov), R(9), R(4),
+ B(Star), R(9),
+ B(Mov), R(10), R(5),
/* 26 E> */ B(StackCheck),
- B(Mov), R(4), R(1),
- /* 55 S> */ B(Mov), R(1), R(0),
+ B(Mov), R(5), R(2),
+ /* 55 S> */ B(Mov), R(2), R(1),
B(LdaZero),
- B(Star), R(8),
+ B(Star), R(9),
B(JumpLoop), U8(47), I8(0),
B(Jump), U8(37),
B(Star), R(21),
@@ -974,10 +974,10 @@ bytecodes: [
B(Ldar), R(20),
B(PushContext), R(21),
B(LdaSmi), I8(2),
- B(TestEqualStrict), R(8), U8(12),
+ B(TestEqualStrict), R(9), U8(12),
B(JumpIfFalse), U8(6),
B(LdaSmi), I8(1),
- B(Star), R(8),
+ B(Star), R(9),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(22),
B(CallRuntime), U16(Runtime::kReThrow), R(22), U8(1),
@@ -993,43 +993,43 @@ bytecodes: [
B(SetPendingMessage),
B(Star), R(19),
B(LdaZero),
- B(TestEqualStrict), R(8), U8(13),
+ B(TestEqualStrict), R(9), U8(13),
B(JumpIfTrue), U8(90),
- B(LdaNamedProperty), R(5), U8(5), U8(14),
- B(Star), R(10),
+ B(LdaNamedProperty), R(6), U8(5), U8(14),
+ B(Star), R(11),
B(TestUndetectable),
B(JumpIfFalse), U8(4),
B(Jump), U8(79),
B(LdaSmi), I8(1),
- B(TestEqualStrict), R(8), U8(16),
+ B(TestEqualStrict), R(9), U8(16),
B(JumpIfFalse), U8(47),
- B(Ldar), R(10),
+ B(Ldar), R(11),
B(TestTypeOf), U8(6),
B(JumpIfFalse), U8(4),
B(Jump), U8(18),
- B(Wide), B(LdaSmi), I16(153),
+ B(Wide), B(LdaSmi), I16(154),
B(Star), R(20),
B(LdaConstant), U8(6),
B(Star), R(21),
B(CallRuntime), U16(Runtime::kNewTypeError), R(20), U8(2),
B(Throw),
B(Mov), R(context), R(20),
- B(Mov), R(10), R(21),
- B(Mov), R(5), R(22),
+ B(Mov), R(11), R(21),
+ B(Mov), R(6), R(22),
B(InvokeIntrinsic), U8(Runtime::k_Call), R(21), U8(2),
B(Jump), U8(6),
B(LdaTheHole),
B(SetPendingMessage),
B(Ldar), R(20),
B(Jump), U8(27),
- B(Mov), R(10), R(20),
- B(Mov), R(5), R(21),
+ B(Mov), R(11), R(20),
+ B(Mov), R(6), R(21),
B(InvokeIntrinsic), U8(Runtime::k_Call), R(20), U8(2),
- 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(JumpIfToBooleanFalse), U8(4),
B(Jump), U8(7),
- B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(11), U8(1),
+ B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(12), U8(1),
B(Ldar), R(19),
B(SetPendingMessage),
B(LdaZero),
@@ -1038,14 +1038,11 @@ bytecodes: [
B(Ldar), R(18),
B(ReThrow),
B(LdaUndefined),
- B(Star), R(18),
- B(Mov), R(12), R(17),
- B(InvokeIntrinsic), U8(Runtime::k_ResolvePromise), R(17), U8(2),
+ B(Star), R(14),
B(LdaZero),
B(Star), R(13),
- B(Mov), R(12), R(14),
- B(Jump), U8(55),
- B(Jump), U8(39),
+ B(Jump), U8(56),
+ B(Jump), U8(40),
B(Star), R(17),
B(CreateCatchContext), R(17), U8(7),
B(Star), R(16),
@@ -1057,32 +1054,37 @@ bytecodes: [
B(Star), R(19),
B(LdaFalse),
B(Star), R(20),
- B(Mov), R(12), R(18),
+ B(Mov), R(0), R(18),
B(InvokeIntrinsic), U8(Runtime::k_RejectPromise), R(18), U8(3),
B(PopContext), R(17),
- B(LdaZero),
+ B(LdaSmi), I8(1),
B(Star), R(13),
- B(Mov), R(12), R(14),
+ B(Mov), R(0), R(14),
B(Jump), U8(16),
B(LdaSmi), I8(-1),
B(Star), R(14),
B(Star), R(13),
B(Jump), U8(8),
B(Star), R(14),
- B(LdaSmi), I8(1),
+ B(LdaSmi), I8(2),
B(Star), R(13),
B(LdaTheHole),
B(SetPendingMessage),
B(Star), R(15),
B(LdaFalse),
B(Star), R(17),
- B(Mov), R(12), R(16),
+ B(Mov), R(0), R(16),
B(CallJSRuntime), U8(%async_function_promise_release), R(16), U8(2),
B(Ldar), R(15),
B(SetPendingMessage),
B(Ldar), R(13),
- B(SwitchOnSmiNoFeedback), U8(8), U8(2), I8(0),
- B(Jump), U8(8),
+ B(SwitchOnSmiNoFeedback), U8(8), U8(3), I8(0),
+ B(Jump), U8(21),
+ B(Mov), R(0), R(16),
+ B(Mov), R(14), R(17),
+ B(InvokeIntrinsic), U8(Runtime::k_ResolvePromise), R(16), U8(2),
+ B(Ldar), R(0),
+ /* 60 S> */ B(Return),
B(Ldar), R(14),
/* 60 S> */ B(Return),
B(Ldar), R(14),
@@ -1100,11 +1102,12 @@ constant pool: [
ONE_BYTE_INTERNALIZED_STRING_TYPE [""],
SCOPE_INFO_TYPE,
Smi [6],
- Smi [9],
+ Smi [19],
+ Smi [22],
]
handlers: [
- [10, 316, 324],
- [13, 277, 279],
+ [10, 307, 315],
+ [13, 267, 269],
[19, 137, 145],
[22, 100, 102],
[205, 215, 217],
@@ -1119,20 +1122,20 @@ snippet: "
"
frame size: 23
parameter count: 2
-bytecode array length: 414
+bytecode array length: 418
bytecodes: [
- B(SwitchOnGeneratorState), R(2), U8(0), U8(1),
+ B(SwitchOnGeneratorState), R(3), U8(0), U8(1),
B(Mov), R(closure), R(12),
B(Mov), R(this), R(13),
B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(12), U8(2),
- B(Star), R(2),
+ B(Star), R(3),
/* 16 E> */ B(StackCheck),
B(CallJSRuntime), U8(%async_function_promise_create), R(0), U8(0),
- B(Star), R(11),
+ B(Star), R(0),
B(Mov), R(context), R(14),
B(Mov), R(context), R(15),
B(LdaZero),
- B(Star), R(7),
+ B(Star), R(8),
B(Mov), R(context), R(18),
B(Mov), R(context), R(19),
/* 40 S> */ B(LdaNamedProperty), R(arg0), U8(1), U8(0),
@@ -1141,32 +1144,32 @@ bytecodes: [
B(Mov), R(arg0), R(20),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
- B(Star), R(4),
- /* 40 E> */ B(LdaNamedProperty), R(4), U8(2), U8(4),
B(Star), R(5),
- /* 35 S> */ B(CallProperty0), R(5), R(4), U8(6),
+ /* 40 E> */ B(LdaNamedProperty), R(5), U8(2), U8(4),
B(Star), R(6),
- /* 35 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(6), U8(1),
+ /* 35 S> */ B(CallProperty0), R(6), R(5), U8(6),
+ B(Star), R(7),
+ /* 35 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(7), U8(1),
B(ToBooleanLogicalNot),
B(JumpIfFalse), U8(7),
- B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(6), U8(1),
- B(LdaNamedProperty), R(6), U8(3), U8(8),
+ B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(7), U8(1),
+ B(LdaNamedProperty), R(7), U8(3), U8(8),
B(JumpIfToBooleanTrue), U8(63),
- B(LdaNamedProperty), R(6), U8(4), U8(10),
- B(Star), R(8),
+ B(LdaNamedProperty), R(7), U8(4), U8(10),
+ B(Star), R(9),
B(LdaSmi), I8(2),
- B(Star), R(7),
- B(Mov), R(8), R(3),
+ B(Star), R(8),
+ B(Mov), R(9), R(4),
/* 26 E> */ B(StackCheck),
- B(Mov), R(3), R(0),
- /* 45 S> */ B(Mov), R(2), R(20),
- B(Mov), R(0), R(21),
- B(Mov), R(11), R(22),
+ B(Mov), R(4), R(1),
+ /* 45 S> */ B(Mov), R(3), R(20),
+ B(Mov), R(1), R(21),
+ B(Mov), R(0), R(22),
B(CallJSRuntime), U8(%async_function_await_uncaught), R(20), U8(3),
- /* 45 E> */ B(SuspendGenerator), R(2), R(0), U8(20), U8(0),
- B(ResumeGenerator), R(2), R(0), U8(20),
+ /* 45 E> */ B(SuspendGenerator), R(3), R(0), U8(20), U8(0),
+ B(ResumeGenerator), R(3), R(0), U8(20),
B(Star), R(20),
- B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(2), U8(1),
+ B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(3), U8(1),
B(Star), R(21),
B(LdaZero),
B(TestReferenceEqual), R(21),
@@ -1174,7 +1177,7 @@ bytecodes: [
B(Ldar), R(20),
B(ReThrow),
B(LdaZero),
- B(Star), R(7),
+ B(Star), R(8),
B(JumpLoop), U8(82), I8(0),
B(Jump), U8(37),
B(Star), R(20),
@@ -1185,10 +1188,10 @@ bytecodes: [
B(Ldar), R(19),
B(PushContext), R(20),
B(LdaSmi), I8(2),
- B(TestEqualStrict), R(7), U8(12),
+ B(TestEqualStrict), R(8), U8(12),
B(JumpIfFalse), U8(6),
B(LdaSmi), I8(1),
- B(Star), R(7),
+ B(Star), R(8),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(21),
B(CallRuntime), U16(Runtime::kReThrow), R(21), U8(1),
@@ -1204,43 +1207,43 @@ bytecodes: [
B(SetPendingMessage),
B(Star), R(18),
B(LdaZero),
- B(TestEqualStrict), R(7), U8(13),
+ B(TestEqualStrict), R(8), U8(13),
B(JumpIfTrue), U8(90),
- B(LdaNamedProperty), R(4), U8(6), U8(14),
- B(Star), R(9),
+ B(LdaNamedProperty), R(5), U8(6), U8(14),
+ B(Star), R(10),
B(TestUndetectable),
B(JumpIfFalse), U8(4),
B(Jump), U8(79),
B(LdaSmi), I8(1),
- B(TestEqualStrict), R(7), U8(16),
+ B(TestEqualStrict), R(8), U8(16),
B(JumpIfFalse), U8(47),
- B(Ldar), R(9),
+ B(Ldar), R(10),
B(TestTypeOf), U8(6),
B(JumpIfFalse), U8(4),
B(Jump), U8(18),
- B(Wide), B(LdaSmi), I16(153),
+ B(Wide), B(LdaSmi), I16(154),
B(Star), R(19),
B(LdaConstant), U8(7),
B(Star), R(20),
B(CallRuntime), U16(Runtime::kNewTypeError), R(19), U8(2),
B(Throw),
B(Mov), R(context), R(19),
- B(Mov), R(9), R(20),
- B(Mov), R(4), R(21),
+ B(Mov), R(10), R(20),
+ B(Mov), R(5), R(21),
B(InvokeIntrinsic), U8(Runtime::k_Call), R(20), U8(2),
B(Jump), U8(6),
B(LdaTheHole),
B(SetPendingMessage),
B(Ldar), R(19),
B(Jump), U8(27),
- B(Mov), R(9), R(19),
- B(Mov), R(4), R(20),
+ B(Mov), R(10), R(19),
+ B(Mov), R(5), R(20),
B(InvokeIntrinsic), U8(Runtime::k_Call), R(19), U8(2),
- 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(7),
- B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(10), U8(1),
+ B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(11), U8(1),
B(Ldar), R(18),
B(SetPendingMessage),
B(LdaZero),
@@ -1249,14 +1252,11 @@ bytecodes: [
B(Ldar), R(17),
B(ReThrow),
B(LdaUndefined),
- B(Star), R(17),
- B(Mov), R(11), R(16),
- B(InvokeIntrinsic), U8(Runtime::k_ResolvePromise), R(16), U8(2),
+ B(Star), R(13),
B(LdaZero),
B(Star), R(12),
- B(Mov), R(11), R(13),
- B(Jump), U8(55),
- B(Jump), U8(39),
+ B(Jump), U8(56),
+ B(Jump), U8(40),
B(Star), R(16),
B(CreateCatchContext), R(16), U8(8),
B(Star), R(15),
@@ -1268,32 +1268,37 @@ bytecodes: [
B(Star), R(18),
B(LdaFalse),
B(Star), R(19),
- B(Mov), R(11), R(17),
+ B(Mov), R(0), R(17),
B(InvokeIntrinsic), U8(Runtime::k_RejectPromise), R(17), U8(3),
B(PopContext), R(16),
- B(LdaZero),
+ B(LdaSmi), I8(1),
B(Star), R(12),
- B(Mov), R(11), R(13),
+ B(Mov), R(0), R(13),
B(Jump), U8(16),
B(LdaSmi), I8(-1),
B(Star), R(13),
B(Star), R(12),
B(Jump), U8(8),
B(Star), R(13),
- B(LdaSmi), I8(1),
+ B(LdaSmi), I8(2),
B(Star), R(12),
B(LdaTheHole),
B(SetPendingMessage),
B(Star), R(14),
B(LdaTrue),
B(Star), R(16),
- B(Mov), R(11), R(15),
+ B(Mov), R(0), R(15),
B(CallJSRuntime), U8(%async_function_promise_release), R(15), U8(2),
B(Ldar), R(14),
B(SetPendingMessage),
B(Ldar), R(12),
- B(SwitchOnSmiNoFeedback), U8(9), U8(2), I8(0),
- B(Jump), U8(8),
+ B(SwitchOnSmiNoFeedback), U8(9), U8(3), I8(0),
+ B(Jump), U8(21),
+ B(Mov), R(0), R(15),
+ B(Mov), R(13), R(16),
+ B(InvokeIntrinsic), U8(Runtime::k_ResolvePromise), R(15), U8(2),
+ B(Ldar), R(0),
+ /* 54 S> */ B(Return),
B(Ldar), R(13),
/* 54 S> */ B(Return),
B(Ldar), R(13),
@@ -1312,11 +1317,12 @@ constant pool: [
ONE_BYTE_INTERNALIZED_STRING_TYPE [""],
SCOPE_INFO_TYPE,
Smi [6],
- Smi [9],
+ Smi [19],
+ Smi [22],
]
handlers: [
- [26, 367, 375],
- [29, 328, 330],
+ [26, 358, 366],
+ [29, 318, 320],
[35, 188, 196],
[38, 151, 153],
[256, 266, 268],
diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/Generators.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/Generators.golden
index 641a2b2eb0..df054bd5b2 100644
--- a/deps/v8/test/cctest/interpreter/bytecode_expectations/Generators.golden
+++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/Generators.golden
@@ -203,7 +203,7 @@ bytecodes: [
B(TestTypeOf), U8(6),
B(JumpIfFalse), U8(4),
B(Jump), U8(18),
- B(Wide), B(LdaSmi), I16(153),
+ B(Wide), B(LdaSmi), I16(154),
B(Star), R(14),
B(LdaConstant), U8(13),
B(Star), R(15),
diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/IIFEWithOneshotOpt.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/IIFEWithOneshotOpt.golden
index f2653a6ed1..a9f03b2c28 100644
--- a/deps/v8/test/cctest/interpreter/bytecode_expectations/IIFEWithOneshotOpt.golden
+++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/IIFEWithOneshotOpt.golden
@@ -19,9 +19,9 @@ snippet: "
})();
"
-frame size: 6
+frame size: 3
parameter count: 1
-bytecode array length: 82
+bytecode array length: 40
bytecodes: [
B(CreateMappedArguments),
B(Star), R(0),
@@ -31,32 +31,14 @@ bytecodes: [
/* 45 S> */ B(LdaGlobal), U8(0), U8(2),
B(Star), R(1),
B(LdaSmi), I8(2),
- B(Star), R(4),
- B(LdaConstant), U8(1),
- B(Star), R(3),
- B(LdaZero),
- B(Star), R(5),
- B(Mov), R(1), R(2),
- /* 50 E> */ B(CallRuntime), U16(Runtime::kSetProperty), R(2), U8(4),
+ /* 50 E> */ B(StaNamedPropertyNoFeedback), R(1), U8(1), U8(0),
/* 63 S> */ B(LdaGlobal), U8(0), U8(2),
B(Star), R(1),
/* 70 E> */ B(LdaGlobal), U8(0), U8(2),
B(Star), R(2),
- B(LdaConstant), U8(1),
- B(Star), R(4),
- B(Mov), R(2), R(3),
- /* 72 E> */ B(InvokeIntrinsic), U8(Runtime::k_GetProperty), R(3), U8(2),
- B(Star), R(4),
- B(LdaConstant), U8(2),
- B(Star), R(3),
- B(LdaZero),
- B(Star), R(5),
- B(Mov), R(1), R(2),
- /* 68 E> */ B(CallRuntime), U16(Runtime::kSetProperty), R(2), U8(4),
- /* 84 S> */ B(LdaConstant), U8(3),
- B(Star), R(3),
- B(Mov), R(0), R(2),
- /* 101 E> */ B(InvokeIntrinsic), U8(Runtime::k_GetProperty), R(2), U8(2),
+ /* 72 E> */ B(LdaNamedPropertyNoFeedback), R(2), U8(1),
+ /* 68 E> */ B(StaNamedPropertyNoFeedback), R(1), U8(2), U8(0),
+ /* 101 S> */ B(LdaNamedPropertyNoFeedback), R(0), U8(3),
/* 108 S> */ B(Return),
]
constant pool: [
@@ -81,9 +63,9 @@ snippet: "
})();
"
-frame size: 4
+frame size: 3
parameter count: 1
-bytecode array length: 77
+bytecode array length: 69
bytecodes: [
B(CreateMappedArguments),
B(Star), R(0),
@@ -112,10 +94,7 @@ bytecodes: [
B(Inc), U8(15),
/* 66 E> */ B(StaGlobal), U8(1), U8(2),
B(JumpLoop), U8(50), I8(0),
- /* 132 S> */ B(LdaConstant), U8(4),
- B(Star), R(3),
- B(Mov), R(0), R(2),
- /* 149 E> */ B(InvokeIntrinsic), U8(Runtime::k_GetProperty), R(2), U8(2),
+ /* 149 S> */ B(LdaNamedPropertyNoFeedback), R(0), U8(4),
/* 156 S> */ B(Return),
]
constant pool: [
@@ -143,9 +122,9 @@ snippet: "
})();
"
-frame size: 4
+frame size: 3
parameter count: 1
-bytecode array length: 78
+bytecode array length: 70
bytecodes: [
B(CreateMappedArguments),
B(Star), R(0),
@@ -174,10 +153,7 @@ bytecodes: [
B(Dec), U8(15),
/* 129 E> */ B(StaGlobal), U8(1), U8(2),
B(JumpLoop), U8(50), I8(0),
- /* 151 S> */ B(LdaConstant), U8(4),
- B(Star), R(3),
- B(Mov), R(0), R(2),
- /* 168 E> */ B(InvokeIntrinsic), U8(Runtime::k_GetProperty), R(2), U8(2),
+ /* 168 S> */ B(LdaNamedPropertyNoFeedback), R(0), U8(4),
/* 175 S> */ B(Return),
]
constant pool: [
@@ -205,9 +181,9 @@ snippet: "
})();
"
-frame size: 4
+frame size: 3
parameter count: 1
-bytecode array length: 78
+bytecode array length: 70
bytecodes: [
B(CreateMappedArguments),
B(Star), R(0),
@@ -236,10 +212,7 @@ bytecodes: [
/* 141 E> */ B(TestGreaterThan), R(1), U8(15),
B(JumpIfFalse), U8(5),
B(JumpLoop), U8(50), I8(0),
- /* 154 S> */ B(LdaConstant), U8(4),
- B(Star), R(3),
- B(Mov), R(0), R(2),
- /* 171 E> */ B(InvokeIntrinsic), U8(Runtime::k_GetProperty), R(2), U8(2),
+ /* 171 S> */ B(LdaNamedPropertyNoFeedback), R(0), U8(4),
/* 178 S> */ B(Return),
]
constant pool: [
@@ -269,9 +242,9 @@ snippet: "
})();
"
-frame size: 6
+frame size: 4
parameter count: 1
-bytecode array length: 121
+bytecode array length: 71
bytecodes: [
B(CreateMappedArguments),
B(Star), R(0),
@@ -284,44 +257,23 @@ bytecodes: [
/* 31 E> */ B(StaGlobal), U8(1), U8(0),
/* 95 S> */ B(LdaGlobal), U8(1), U8(2),
B(Star), R(1),
- B(LdaConstant), U8(2),
- B(Star), R(3),
- B(Mov), R(1), R(2),
- /* 101 E> */ B(InvokeIntrinsic), U8(Runtime::k_GetProperty), R(2), U8(2),
+ /* 101 E> */ B(LdaNamedPropertyNoFeedback), R(1), U8(2),
B(Star), R(1),
B(LdaSmi), I8(3),
/* 104 E> */ B(TestLessThan), R(1), U8(4),
- B(JumpIfFalse), U8(28),
+ B(JumpIfFalse), U8(15),
/* 121 S> */ B(LdaGlobal), U8(1), U8(2),
B(Star), R(1),
B(LdaSmi), I8(3),
- B(Star), R(4),
- B(LdaConstant), U8(2),
- B(Star), R(3),
- B(LdaZero),
- B(Star), R(5),
- B(Mov), R(1), R(2),
- /* 126 E> */ B(CallRuntime), U16(Runtime::kSetProperty), R(2), U8(4),
- B(Jump), U8(40),
+ /* 126 E> */ B(StaNamedPropertyNoFeedback), R(1), U8(2), U8(0),
+ B(Jump), U8(19),
/* 158 S> */ B(LdaGlobal), U8(1), U8(2),
B(Star), R(1),
/* 165 E> */ B(LdaGlobal), U8(1), U8(2),
B(Star), R(2),
- B(LdaConstant), U8(3),
- B(Star), R(4),
- B(Mov), R(2), R(3),
- /* 167 E> */ B(InvokeIntrinsic), U8(Runtime::k_GetProperty), R(3), U8(2),
- B(Star), R(4),
- B(LdaConstant), U8(2),
- B(Star), R(3),
- B(LdaZero),
- B(Star), R(5),
- B(Mov), R(1), R(2),
- /* 163 E> */ B(CallRuntime), U16(Runtime::kSetProperty), R(2), U8(4),
- /* 189 S> */ B(LdaConstant), U8(4),
- B(Star), R(3),
- B(Mov), R(0), R(2),
- /* 206 E> */ B(InvokeIntrinsic), U8(Runtime::k_GetProperty), R(2), U8(2),
+ /* 167 E> */ B(LdaNamedPropertyNoFeedback), R(2), U8(3),
+ /* 163 E> */ B(StaNamedPropertyNoFeedback), R(1), U8(2), U8(0),
+ /* 206 S> */ B(LdaNamedPropertyNoFeedback), R(0), U8(4),
/* 213 S> */ B(Return),
]
constant pool: [
@@ -343,23 +295,20 @@ snippet: "
})();
"
-frame size: 4
+frame size: 5
parameter count: 1
-bytecode array length: 32
+bytecode array length: 24
bytecodes: [
B(CreateMappedArguments),
B(Star), R(0),
/* 16 E> */ B(StackCheck),
/* 29 S> */ B(LdaConstant), U8(0),
- B(Star), R(1),
+ B(Star), R(3),
B(LdaSmi), I8(4),
- B(Star), R(2),
- B(CallRuntime), U16(Runtime::kCreateArrayLiteralWithoutAllocationSite), R(1), U8(2),
+ B(Star), R(4),
+ B(CallRuntime), U16(Runtime::kCreateArrayLiteralWithoutAllocationSite), R(3), U8(2),
/* 31 E> */ B(StaGlobal), U8(1), U8(0),
- /* 60 S> */ B(LdaConstant), U8(2),
- B(Star), R(3),
- B(Mov), R(0), R(2),
- /* 77 E> */ B(InvokeIntrinsic), U8(Runtime::k_GetProperty), R(2), U8(2),
+ /* 77 S> */ B(LdaNamedPropertyNoFeedback), R(0), U8(2),
/* 84 S> */ B(Return),
]
constant pool: [
@@ -379,23 +328,20 @@ snippet: "
})();
"
-frame size: 4
+frame size: 5
parameter count: 1
-bytecode array length: 32
+bytecode array length: 24
bytecodes: [
B(CreateMappedArguments),
B(Star), R(0),
/* 16 E> */ B(StackCheck),
/* 29 S> */ B(LdaConstant), U8(0),
- B(Star), R(1),
+ B(Star), R(3),
B(LdaSmi), I8(37),
- B(Star), R(2),
- B(CallRuntime), U16(Runtime::kCreateArrayLiteralWithoutAllocationSite), R(1), U8(2),
+ B(Star), R(4),
+ B(CallRuntime), U16(Runtime::kCreateArrayLiteralWithoutAllocationSite), R(3), U8(2),
/* 31 E> */ B(StaGlobal), U8(1), U8(0),
- /* 45 S> */ B(LdaConstant), U8(2),
- B(Star), R(3),
- B(Mov), R(0), R(2),
- /* 62 E> */ B(InvokeIntrinsic), U8(Runtime::k_GetProperty), R(2), U8(2),
+ /* 62 S> */ B(LdaNamedPropertyNoFeedback), R(0), U8(2),
/* 69 S> */ B(Return),
]
constant pool: [
@@ -406,3 +352,300 @@ constant pool: [
handlers: [
]
+---
+snippet: "
+
+ this.f0 = function() {};
+ this.f1 = function(a) {};
+ this.f2 = function(a, b) {};
+ this.f3 = function(a, b, c) {};
+ this.f4 = function(a, b, c, d) {};
+ this.f5 = function(a, b, c, d, e) {};
+ (function() {
+ this.f0();
+ this.f1(1);
+ this.f2(1, 2);
+ this.f3(1, 2, 3);
+ this.f4(1, 2, 3, 4);
+ this.f5(1, 2, 3, 4, 5);
+ return arguments.callee;
+ })();
+
+"
+frame size: 8
+parameter count: 1
+bytecode array length: 137
+bytecodes: [
+ B(CreateMappedArguments),
+ B(Star), R(0),
+ /* 237 E> */ B(StackCheck),
+ /* 255 S> */ B(LdaNamedPropertyNoFeedback), R(this), U8(0),
+ B(Star), R(1),
+ /* 255 E> */ B(CallNoFeedback), R(1), R(this), U8(1),
+ /* 274 S> */ B(LdaNamedPropertyNoFeedback), R(this), U8(1),
+ B(Star), R(1),
+ B(LdaSmi), I8(1),
+ B(Star), R(3),
+ B(Mov), R(this), R(2),
+ /* 274 E> */ B(CallNoFeedback), R(1), R(2), U8(2),
+ /* 294 S> */ B(LdaNamedPropertyNoFeedback), R(this), U8(2),
+ B(Star), R(1),
+ B(LdaSmi), I8(1),
+ B(Star), R(3),
+ B(LdaSmi), I8(2),
+ B(Star), R(4),
+ B(Mov), R(this), R(2),
+ /* 294 E> */ B(CallNoFeedback), R(1), R(2), U8(3),
+ /* 317 S> */ B(LdaNamedPropertyNoFeedback), R(this), U8(3),
+ B(Star), R(1),
+ B(LdaSmi), I8(1),
+ B(Star), R(3),
+ B(LdaSmi), I8(2),
+ B(Star), R(4),
+ B(LdaSmi), I8(3),
+ B(Star), R(5),
+ B(Mov), R(this), R(2),
+ /* 317 E> */ B(CallNoFeedback), R(1), R(2), U8(4),
+ /* 343 S> */ B(LdaNamedPropertyNoFeedback), R(this), U8(4),
+ B(Star), R(1),
+ B(LdaSmi), I8(1),
+ B(Star), R(3),
+ B(LdaSmi), I8(2),
+ B(Star), R(4),
+ B(LdaSmi), I8(3),
+ B(Star), R(5),
+ B(LdaSmi), I8(4),
+ B(Star), R(6),
+ B(Mov), R(this), R(2),
+ /* 343 E> */ B(CallNoFeedback), R(1), R(2), U8(5),
+ /* 372 S> */ B(LdaNamedPropertyNoFeedback), R(this), U8(5),
+ B(Star), R(1),
+ B(LdaSmi), I8(1),
+ B(Star), R(3),
+ B(LdaSmi), I8(2),
+ B(Star), R(4),
+ B(LdaSmi), I8(3),
+ B(Star), R(5),
+ B(LdaSmi), I8(4),
+ B(Star), R(6),
+ B(LdaSmi), I8(5),
+ B(Star), R(7),
+ B(Mov), R(this), R(2),
+ /* 372 E> */ B(CallNoFeedback), R(1), R(2), U8(6),
+ /* 416 S> */ B(LdaNamedPropertyNoFeedback), R(0), U8(6),
+ /* 423 S> */ B(Return),
+]
+constant pool: [
+ ONE_BYTE_INTERNALIZED_STRING_TYPE ["f0"],
+ ONE_BYTE_INTERNALIZED_STRING_TYPE ["f1"],
+ ONE_BYTE_INTERNALIZED_STRING_TYPE ["f2"],
+ ONE_BYTE_INTERNALIZED_STRING_TYPE ["f3"],
+ ONE_BYTE_INTERNALIZED_STRING_TYPE ["f4"],
+ ONE_BYTE_INTERNALIZED_STRING_TYPE ["f5"],
+ ONE_BYTE_INTERNALIZED_STRING_TYPE ["callee"],
+]
+handlers: [
+]
+
+---
+snippet: "
+
+ function f0() {}
+ function f1(a) {}
+ function f2(a, b) {}
+ function f3(a, b, c) {}
+ function f4(a, b, c, d) {}
+ function f5(a, b, c, d, e) {}
+ (function() {
+ f0();
+ f1(1);
+ f2(1, 2);
+ f3(1, 2, 3);
+ f4(1, 2, 3, 4);
+ f5(1, 2, 3, 4, 5);
+ return arguments.callee;
+ })();
+
+"
+frame size: 8
+parameter count: 1
+bytecode array length: 140
+bytecodes: [
+ B(CreateMappedArguments),
+ B(Star), R(0),
+ /* 189 E> */ B(StackCheck),
+ /* 202 S> */ B(LdaUndefined),
+ B(Star), R(2),
+ B(LdaGlobal), U8(0), U8(0),
+ B(Star), R(1),
+ /* 202 E> */ B(CallNoFeedback), R(1), R(2), U8(1),
+ /* 216 S> */ B(LdaUndefined),
+ B(Star), R(2),
+ B(LdaGlobal), U8(1), U8(2),
+ B(Star), R(1),
+ B(LdaSmi), I8(1),
+ B(Star), R(3),
+ /* 216 E> */ B(CallNoFeedback), R(1), R(2), U8(2),
+ /* 231 S> */ B(LdaUndefined),
+ B(Star), R(2),
+ B(LdaGlobal), U8(2), U8(4),
+ B(Star), R(1),
+ B(LdaSmi), I8(1),
+ B(Star), R(3),
+ B(LdaSmi), I8(2),
+ B(Star), R(4),
+ /* 231 E> */ B(CallNoFeedback), R(1), R(2), U8(3),
+ /* 249 S> */ B(LdaUndefined),
+ B(Star), R(2),
+ B(LdaGlobal), U8(3), U8(6),
+ B(Star), R(1),
+ B(LdaSmi), I8(1),
+ B(Star), R(3),
+ B(LdaSmi), I8(2),
+ B(Star), R(4),
+ B(LdaSmi), I8(3),
+ B(Star), R(5),
+ /* 249 E> */ B(CallNoFeedback), R(1), R(2), U8(4),
+ /* 270 S> */ B(LdaUndefined),
+ B(Star), R(2),
+ B(LdaGlobal), U8(4), U8(8),
+ B(Star), R(1),
+ B(LdaSmi), I8(1),
+ B(Star), R(3),
+ B(LdaSmi), I8(2),
+ B(Star), R(4),
+ B(LdaSmi), I8(3),
+ B(Star), R(5),
+ B(LdaSmi), I8(4),
+ B(Star), R(6),
+ /* 270 E> */ B(CallNoFeedback), R(1), R(2), U8(5),
+ /* 294 S> */ B(LdaUndefined),
+ B(Star), R(2),
+ B(LdaGlobal), U8(5), U8(10),
+ B(Star), R(1),
+ B(LdaSmi), I8(1),
+ B(Star), R(3),
+ B(LdaSmi), I8(2),
+ B(Star), R(4),
+ B(LdaSmi), I8(3),
+ B(Star), R(5),
+ B(LdaSmi), I8(4),
+ B(Star), R(6),
+ B(LdaSmi), I8(5),
+ B(Star), R(7),
+ /* 294 E> */ B(CallNoFeedback), R(1), R(2), U8(6),
+ /* 338 S> */ B(LdaNamedPropertyNoFeedback), R(0), U8(6),
+ /* 345 S> */ B(Return),
+]
+constant pool: [
+ ONE_BYTE_INTERNALIZED_STRING_TYPE ["f0"],
+ ONE_BYTE_INTERNALIZED_STRING_TYPE ["f1"],
+ ONE_BYTE_INTERNALIZED_STRING_TYPE ["f2"],
+ ONE_BYTE_INTERNALIZED_STRING_TYPE ["f3"],
+ ONE_BYTE_INTERNALIZED_STRING_TYPE ["f4"],
+ ONE_BYTE_INTERNALIZED_STRING_TYPE ["f5"],
+ ONE_BYTE_INTERNALIZED_STRING_TYPE ["callee"],
+]
+handlers: [
+]
+
+---
+snippet: "
+
+ var t = 0;
+ function f2() {};
+ if (t == 0) {
+ (function(){
+ l = {};
+ l.a = 3;
+ l.b = 4;
+ f2();
+ return arguments.callee;
+ })();
+ }
+
+"
+frame size: 3
+parameter count: 1
+bytecode array length: 46
+bytecodes: [
+ B(CreateMappedArguments),
+ B(Star), R(0),
+ /* 79 E> */ B(StackCheck),
+ /* 93 S> */ B(CreateEmptyObjectLiteral),
+ /* 95 E> */ B(StaGlobal), U8(0), U8(0),
+ /* 111 S> */ B(LdaGlobal), U8(0), U8(2),
+ B(Star), R(1),
+ B(LdaSmi), I8(3),
+ /* 115 E> */ B(StaNamedPropertyNoFeedback), R(1), U8(1), U8(0),
+ /* 130 S> */ B(LdaGlobal), U8(0), U8(2),
+ B(Star), R(1),
+ B(LdaSmi), I8(4),
+ /* 134 E> */ B(StaNamedPropertyNoFeedback), R(1), U8(2), U8(0),
+ /* 149 S> */ B(LdaUndefined),
+ B(Star), R(2),
+ B(LdaGlobal), U8(3), U8(4),
+ B(Star), R(1),
+ /* 149 E> */ B(CallNoFeedback), R(1), R(2), U8(1),
+ /* 182 S> */ B(LdaNamedPropertyNoFeedback), R(0), U8(4),
+ /* 189 S> */ B(Return),
+]
+constant pool: [
+ ONE_BYTE_INTERNALIZED_STRING_TYPE ["l"],
+ ONE_BYTE_INTERNALIZED_STRING_TYPE ["a"],
+ ONE_BYTE_INTERNALIZED_STRING_TYPE ["b"],
+ ONE_BYTE_INTERNALIZED_STRING_TYPE ["f2"],
+ ONE_BYTE_INTERNALIZED_STRING_TYPE ["callee"],
+]
+handlers: [
+]
+
+---
+snippet: "
+
+ function f2() {};
+ function f() {
+ return (function(){
+ l = {};
+ l.a = 3;
+ l.b = 4;
+ f2();
+ return arguments.callee;
+ })();
+ }
+ f();
+
+"
+frame size: 2
+parameter count: 1
+bytecode array length: 43
+bytecodes: [
+ B(CreateMappedArguments),
+ B(Star), R(0),
+ /* 76 E> */ B(StackCheck),
+ /* 92 S> */ B(CreateEmptyObjectLiteral),
+ /* 94 E> */ B(StaGlobal), U8(0), U8(0),
+ /* 112 S> */ B(LdaGlobal), U8(0), U8(2),
+ B(Star), R(1),
+ B(LdaSmi), I8(3),
+ /* 116 E> */ B(StaNamedProperty), R(1), U8(1), U8(4),
+ /* 133 S> */ B(LdaGlobal), U8(0), U8(2),
+ B(Star), R(1),
+ B(LdaSmi), I8(4),
+ /* 137 E> */ B(StaNamedProperty), R(1), U8(2), U8(6),
+ /* 154 S> */ B(LdaGlobal), U8(3), U8(8),
+ B(Star), R(1),
+ /* 154 E> */ B(CallUndefinedReceiver0), R(1), U8(10),
+ /* 189 S> */ B(LdaNamedProperty), R(0), U8(4), U8(12),
+ /* 196 S> */ B(Return),
+]
+constant pool: [
+ ONE_BYTE_INTERNALIZED_STRING_TYPE ["l"],
+ ONE_BYTE_INTERNALIZED_STRING_TYPE ["a"],
+ ONE_BYTE_INTERNALIZED_STRING_TYPE ["b"],
+ ONE_BYTE_INTERNALIZED_STRING_TYPE ["f2"],
+ ONE_BYTE_INTERNALIZED_STRING_TYPE ["callee"],
+]
+handlers: [
+]
+
diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/IIFEWithoutOneshotOpt.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/IIFEWithoutOneshotOpt.golden
index f116bdc68f..efe9078eea 100644
--- a/deps/v8/test/cctest/interpreter/bytecode_expectations/IIFEWithoutOneshotOpt.golden
+++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/IIFEWithoutOneshotOpt.golden
@@ -107,3 +107,186 @@ constant pool: [
handlers: [
]
+---
+snippet: "
+
+ this.f0 = function() {};
+ this.f1 = function(a) {};
+ this.f2 = function(a, b) {};
+ this.f3 = function(a, b, c) {};
+ this.f4 = function(a, b, c, d) {};
+ this.f5 = function(a, b, c, d, e) {};
+ (function() {
+ this.f0();
+ this.f1(1);
+ this.f2(1, 2);
+ this.f3(1, 2, 3);
+ this.f4(1, 2, 3, 4);
+ this.f5(1, 2, 3, 4, 5);
+ return arguments.callee;
+ })();
+
+"
+frame size: 8
+parameter count: 1
+bytecode array length: 144
+bytecodes: [
+ B(CreateMappedArguments),
+ B(Star), R(0),
+ /* 237 E> */ B(StackCheck),
+ /* 255 S> */ B(LdaNamedProperty), R(this), U8(0), U8(0),
+ B(Star), R(1),
+ /* 255 E> */ B(CallProperty0), R(1), R(this), U8(2),
+ /* 274 S> */ B(LdaNamedProperty), R(this), U8(1), U8(4),
+ B(Star), R(1),
+ B(LdaSmi), I8(1),
+ B(Star), R(3),
+ /* 274 E> */ B(CallProperty1), R(1), R(this), R(3), U8(6),
+ /* 294 S> */ B(LdaNamedProperty), R(this), U8(2), U8(8),
+ B(Star), R(1),
+ B(LdaSmi), I8(1),
+ B(Star), R(3),
+ B(LdaSmi), I8(2),
+ B(Star), R(4),
+ /* 294 E> */ B(CallProperty2), R(1), R(this), R(3), R(4), U8(10),
+ /* 317 S> */ B(LdaNamedProperty), R(this), U8(3), U8(12),
+ B(Star), R(1),
+ B(LdaSmi), I8(1),
+ B(Star), R(3),
+ B(LdaSmi), I8(2),
+ B(Star), R(4),
+ B(LdaSmi), I8(3),
+ B(Star), R(5),
+ B(Mov), R(this), R(2),
+ /* 317 E> */ B(CallProperty), R(1), R(2), U8(4), U8(14),
+ /* 343 S> */ B(LdaNamedProperty), R(this), U8(4), U8(16),
+ B(Star), R(1),
+ B(LdaSmi), I8(1),
+ B(Star), R(3),
+ B(LdaSmi), I8(2),
+ B(Star), R(4),
+ B(LdaSmi), I8(3),
+ B(Star), R(5),
+ B(LdaSmi), I8(4),
+ B(Star), R(6),
+ B(Mov), R(this), R(2),
+ /* 343 E> */ B(CallProperty), R(1), R(2), U8(5), U8(18),
+ /* 372 S> */ B(LdaNamedProperty), R(this), U8(5), U8(20),
+ B(Star), R(1),
+ B(LdaSmi), I8(1),
+ B(Star), R(3),
+ B(LdaSmi), I8(2),
+ B(Star), R(4),
+ B(LdaSmi), I8(3),
+ B(Star), R(5),
+ B(LdaSmi), I8(4),
+ B(Star), R(6),
+ B(LdaSmi), I8(5),
+ B(Star), R(7),
+ B(Mov), R(this), R(2),
+ /* 372 E> */ B(CallProperty), R(1), R(2), U8(6), U8(22),
+ /* 416 S> */ B(LdaNamedProperty), R(0), U8(6), U8(24),
+ /* 423 S> */ B(Return),
+]
+constant pool: [
+ ONE_BYTE_INTERNALIZED_STRING_TYPE ["f0"],
+ ONE_BYTE_INTERNALIZED_STRING_TYPE ["f1"],
+ ONE_BYTE_INTERNALIZED_STRING_TYPE ["f2"],
+ ONE_BYTE_INTERNALIZED_STRING_TYPE ["f3"],
+ ONE_BYTE_INTERNALIZED_STRING_TYPE ["f4"],
+ ONE_BYTE_INTERNALIZED_STRING_TYPE ["f5"],
+ ONE_BYTE_INTERNALIZED_STRING_TYPE ["callee"],
+]
+handlers: [
+]
+
+---
+snippet: "
+
+ function f0() {}
+ function f1(a) {}
+ function f2(a, b) {}
+ function f3(a, b, c) {}
+ function f4(a, b, c, d) {}
+ function f5(a, b, c, d, e) {}
+ (function() {
+ f0();
+ f1(1);
+ f2(1, 2);
+ f3(1, 2, 3);
+ f4(1, 2, 3, 4);
+ f5(1, 2, 3, 4, 5);
+ return arguments.callee;
+ })();
+
+"
+frame size: 7
+parameter count: 1
+bytecode array length: 126
+bytecodes: [
+ B(CreateMappedArguments),
+ B(Star), R(0),
+ /* 189 E> */ B(StackCheck),
+ /* 202 S> */ B(LdaGlobal), U8(0), U8(0),
+ B(Star), R(1),
+ /* 202 E> */ B(CallUndefinedReceiver0), R(1), U8(2),
+ /* 216 S> */ B(LdaGlobal), U8(1), U8(4),
+ B(Star), R(1),
+ B(LdaSmi), I8(1),
+ B(Star), R(2),
+ /* 216 E> */ B(CallUndefinedReceiver1), R(1), R(2), U8(6),
+ /* 231 S> */ B(LdaGlobal), U8(2), U8(8),
+ B(Star), R(1),
+ B(LdaSmi), I8(1),
+ B(Star), R(2),
+ B(LdaSmi), I8(2),
+ B(Star), R(3),
+ /* 231 E> */ B(CallUndefinedReceiver2), R(1), R(2), R(3), U8(10),
+ /* 249 S> */ B(LdaGlobal), U8(3), U8(12),
+ B(Star), R(1),
+ B(LdaSmi), I8(1),
+ B(Star), R(2),
+ B(LdaSmi), I8(2),
+ B(Star), R(3),
+ B(LdaSmi), I8(3),
+ B(Star), R(4),
+ /* 249 E> */ B(CallUndefinedReceiver), R(1), R(2), U8(3), U8(14),
+ /* 270 S> */ B(LdaGlobal), U8(4), U8(16),
+ B(Star), R(1),
+ B(LdaSmi), I8(1),
+ B(Star), R(2),
+ B(LdaSmi), I8(2),
+ B(Star), R(3),
+ B(LdaSmi), I8(3),
+ B(Star), R(4),
+ B(LdaSmi), I8(4),
+ B(Star), R(5),
+ /* 270 E> */ B(CallUndefinedReceiver), R(1), R(2), U8(4), U8(18),
+ /* 294 S> */ B(LdaGlobal), U8(5), U8(20),
+ B(Star), R(1),
+ B(LdaSmi), I8(1),
+ B(Star), R(2),
+ B(LdaSmi), I8(2),
+ B(Star), R(3),
+ B(LdaSmi), I8(3),
+ B(Star), R(4),
+ B(LdaSmi), I8(4),
+ B(Star), R(5),
+ B(LdaSmi), I8(5),
+ B(Star), R(6),
+ /* 294 E> */ B(CallUndefinedReceiver), R(1), R(2), U8(5), U8(22),
+ /* 338 S> */ B(LdaNamedProperty), R(0), U8(6), U8(24),
+ /* 345 S> */ B(Return),
+]
+constant pool: [
+ ONE_BYTE_INTERNALIZED_STRING_TYPE ["f0"],
+ ONE_BYTE_INTERNALIZED_STRING_TYPE ["f1"],
+ ONE_BYTE_INTERNALIZED_STRING_TYPE ["f2"],
+ ONE_BYTE_INTERNALIZED_STRING_TYPE ["f3"],
+ ONE_BYTE_INTERNALIZED_STRING_TYPE ["f4"],
+ ONE_BYTE_INTERNALIZED_STRING_TYPE ["f5"],
+ ONE_BYTE_INTERNALIZED_STRING_TYPE ["callee"],
+]
+handlers: [
+]
+
diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/NewAndSpread.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/NewAndSpread.golden
index bdfb35c70b..056f9d7b84 100644
--- a/deps/v8/test/cctest/interpreter/bytecode_expectations/NewAndSpread.golden
+++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/NewAndSpread.golden
@@ -86,7 +86,7 @@ snippet: "
"
frame size: 10
parameter count: 1
-bytecode array length: 127
+bytecode array length: 124
bytecodes: [
/* 30 E> */ B(StackCheck),
B(LdaTheHole),
@@ -101,37 +101,35 @@ bytecodes: [
B(Mov), R(4), R(0),
B(Mov), R(0), R(1),
/* 89 S> */ B(CreateArrayLiteral), U8(2), U8(1), U8(37),
- B(Star), R(3),
- B(LdaConstant), U8(3),
B(Star), R(4),
- /* 101 S> */ B(CreateArrayLiteral), U8(4), U8(7), U8(37),
+ B(LdaConstant), U8(3),
+ B(Star), R(3),
+ /* 101 S> */ B(CreateArrayLiteral), U8(4), U8(5), U8(37),
B(Star), R(8),
- B(LdaNamedProperty), R(8), U8(5), U8(8),
+ B(LdaNamedProperty), R(8), U8(5), U8(6),
B(Star), R(9),
- B(CallProperty0), R(9), R(8), U8(10),
+ B(CallProperty0), R(9), R(8), U8(8),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
B(Star), R(7),
- B(LdaNamedProperty), R(7), U8(6), U8(12),
+ B(LdaNamedProperty), R(7), U8(6), U8(10),
B(Star), R(6),
- B(CallProperty0), R(6), R(7), U8(14),
+ B(CallProperty0), R(6), R(7), U8(12),
B(Star), R(5),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(5), U8(1),
- B(LdaNamedProperty), R(5), U8(7), U8(16),
+ B(LdaNamedProperty), R(5), U8(7), U8(14),
B(JumpIfToBooleanTrue), U8(21),
- B(LdaNamedProperty), R(5), U8(8), U8(18),
+ B(LdaNamedProperty), R(5), U8(8), U8(16),
B(Star), R(5),
- B(StaInArrayLiteral), R(3), R(4), U8(2),
- B(Ldar), R(4),
- B(Inc), U8(4),
- B(Star), R(4),
+ B(StaInArrayLiteral), R(4), R(3), U8(3),
+ B(Ldar), R(3),
+ B(Inc), U8(2),
+ B(Star), R(3),
B(JumpLoop), U8(35), I8(0),
B(LdaSmi), I8(4),
- B(StaInArrayLiteral), R(3), R(4), U8(2),
- B(Ldar), R(4),
- B(Inc), U8(4),
- B(Star), R(4),
+ B(StaInArrayLiteral), R(4), R(3), U8(3),
+ B(Mov), R(4), R(3),
B(CallJSRuntime), U8(%reflect_construct), R(2), U8(2),
B(LdaUndefined),
/* 116 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 fa64ffa2a4..a1f4d78f7c 100644
--- a/deps/v8/test/cctest/interpreter/bytecode_expectations/ObjectLiterals.golden
+++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/ObjectLiterals.golden
@@ -246,7 +246,7 @@ bytecodes: [
B(Star), R(5),
B(Mov), R(1), R(2),
B(Mov), R(0), R(4),
- /* 57 E> */ B(CallRuntime), U16(Runtime::kSetProperty), R(2), U8(4),
+ /* 57 E> */ B(CallRuntime), U16(Runtime::kSetKeyedProperty), R(2), U8(4),
B(Ldar), R(2),
/* 61 S> */ B(Return),
]
diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/PropertyLoadStoreOneShot.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/PropertyLoadStoreOneShot.golden
index 3bc175b7da..e6eacf6fd6 100644
--- a/deps/v8/test/cctest/interpreter/bytecode_expectations/PropertyLoadStoreOneShot.golden
+++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/PropertyLoadStoreOneShot.golden
@@ -20,9 +20,9 @@ snippet: "
l['a'] = l['b'];
"
-frame size: 7
+frame size: 4
parameter count: 1
-bytecode array length: 128
+bytecode array length: 77
bytecodes: [
/* 0 E> */ B(StackCheck),
/* 7 S> */ B(LdaConstant), U8(0),
@@ -33,46 +33,25 @@ bytecodes: [
/* 9 E> */ B(StaGlobal), U8(1), U8(0),
/* 60 S> */ B(LdaGlobal), U8(1), U8(3),
B(Star), R(1),
- B(LdaConstant), U8(2),
- B(Star), R(3),
- B(Mov), R(1), R(2),
- /* 65 E> */ B(InvokeIntrinsic), U8(Runtime::k_GetProperty), R(2), U8(2),
+ /* 65 E> */ B(LdaNamedPropertyNoFeedback), R(1), U8(2),
B(Star), R(1),
/* 73 E> */ B(LdaGlobal), U8(1), U8(3),
B(Star), R(2),
- B(LdaConstant), U8(3),
- B(Star), R(4),
- B(Mov), R(2), R(3),
- /* 74 E> */ B(InvokeIntrinsic), U8(Runtime::k_GetProperty), R(3), U8(2),
+ /* 74 E> */ B(LdaNamedPropertyNoFeedback), R(2), U8(3),
/* 71 E> */ B(Add), R(1), U8(2),
/* 62 E> */ B(StaGlobal), U8(4), U8(5),
/* 87 S> */ B(LdaGlobal), U8(1), U8(3),
B(Star), R(1),
B(LdaSmi), I8(7),
- B(Star), R(4),
- B(LdaConstant), U8(3),
- B(Star), R(3),
- B(LdaZero),
- B(Star), R(5),
- B(Mov), R(1), R(2),
- /* 94 E> */ B(CallRuntime), U16(Runtime::kSetProperty), R(2), U8(4),
+ /* 94 E> */ B(StaNamedPropertyNoFeedback), R(1), U8(3), U8(0),
/* 105 S> */ B(LdaGlobal), U8(1), U8(3),
B(Star), R(1),
/* 114 E> */ B(LdaGlobal), U8(1), U8(3),
B(Star), R(2),
- B(LdaConstant), U8(3),
- B(Star), R(4),
- B(Mov), R(2), R(3),
- /* 115 E> */ B(InvokeIntrinsic), U8(Runtime::k_GetProperty), R(3), U8(2),
+ /* 115 E> */ B(LdaNamedPropertyNoFeedback), R(2), U8(3),
B(Star), R(2),
- B(LdaConstant), U8(2),
- B(Star), R(4),
- B(LdaZero),
- B(Star), R(6),
- B(Mov), R(1), R(3),
- B(Mov), R(2), R(5),
- /* 112 E> */ B(CallRuntime), U16(Runtime::kSetProperty), R(3), U8(4),
- B(Mov), R(5), R(0),
+ /* 112 E> */ B(StaNamedPropertyNoFeedback), R(1), U8(2), U8(0),
+ B(Mov), R(2), R(0),
B(Ldar), R(0),
/* 128 S> */ B(Return),
]
@@ -307,9 +286,9 @@ snippet: "
}
"
-frame size: 7
+frame size: 4
parameter count: 1
-bytecode array length: 111
+bytecode array length: 75
bytecodes: [
/* 0 E> */ B(StackCheck),
/* 7 S> */ B(LdaConstant), U8(0),
@@ -320,40 +299,25 @@ bytecodes: [
/* 9 E> */ B(StaGlobal), U8(1), U8(0),
/* 63 S> */ B(LdaGlobal), U8(1), U8(2),
B(Star), R(1),
- B(LdaConstant), U8(2),
- B(Star), R(3),
- B(Mov), R(1), R(2),
- /* 68 E> */ B(InvokeIntrinsic), U8(Runtime::k_GetProperty), R(2), U8(2),
+ /* 68 E> */ B(LdaNamedPropertyNoFeedback), R(1), U8(2),
B(Star), R(1),
B(LdaSmi), I8(3),
/* 74 E> */ B(TestLessThan), R(1), U8(4),
- B(JumpIfFalse), U8(36),
+ B(JumpIfFalse), U8(22),
/* 89 S> */ B(LdaGlobal), U8(1), U8(2),
B(Star), R(1),
B(LdaSmi), I8(3),
B(Star), R(2),
- B(LdaConstant), U8(2),
- B(Star), R(4),
- B(LdaZero),
- B(Star), R(6),
- B(Mov), R(1), R(3),
- B(Mov), R(2), R(5),
- /* 96 E> */ B(CallRuntime), U16(Runtime::kSetProperty), R(3), U8(4),
- B(Mov), R(5), R(0),
+ /* 96 E> */ B(StaNamedPropertyNoFeedback), R(1), U8(2), U8(0),
+ B(Mov), R(2), R(0),
B(Ldar), R(2),
- B(Jump), U8(34),
+ B(Jump), U8(20),
/* 124 S> */ B(LdaGlobal), U8(1), U8(2),
B(Star), R(1),
B(LdaSmi), I8(3),
B(Star), R(2),
- B(LdaConstant), U8(3),
- B(Star), R(4),
- B(LdaZero),
- B(Star), R(6),
- B(Mov), R(1), R(3),
- B(Mov), R(2), R(5),
- /* 131 E> */ B(CallRuntime), U16(Runtime::kSetProperty), R(3), U8(4),
- B(Mov), R(5), R(0),
+ /* 131 E> */ B(StaNamedPropertyNoFeedback), R(1), U8(3), U8(0),
+ B(Mov), R(2), R(0),
B(Ldar), R(2),
B(Ldar), R(0),
/* 150 S> */ B(Return),
@@ -373,16 +337,16 @@ snippet: "
a = [1.1, [2.2, 4.5]];
"
-frame size: 3
+frame size: 5
parameter count: 1
bytecode array length: 20
bytecodes: [
/* 0 E> */ B(StackCheck),
/* 7 S> */ B(LdaConstant), U8(0),
- B(Star), R(1),
+ B(Star), R(3),
B(LdaSmi), I8(4),
- B(Star), R(2),
- B(CallRuntime), U16(Runtime::kCreateArrayLiteralWithoutAllocationSite), R(1), U8(2),
+ B(Star), R(4),
+ B(CallRuntime), U16(Runtime::kCreateArrayLiteralWithoutAllocationSite), R(3), U8(2),
/* 9 E> */ B(StaGlobal), U8(1), U8(0),
B(Star), R(0),
/* 36 S> */ B(Return),
@@ -400,16 +364,16 @@ snippet: "
b = [];
"
-frame size: 3
+frame size: 5
parameter count: 1
bytecode array length: 20
bytecodes: [
/* 0 E> */ B(StackCheck),
/* 7 S> */ B(LdaConstant), U8(0),
- B(Star), R(1),
+ B(Star), R(3),
B(LdaSmi), I8(37),
- B(Star), R(2),
- B(CallRuntime), U16(Runtime::kCreateArrayLiteralWithoutAllocationSite), R(1), U8(2),
+ B(Star), R(4),
+ B(CallRuntime), U16(Runtime::kCreateArrayLiteralWithoutAllocationSite), R(3), U8(2),
/* 9 E> */ B(StaGlobal), U8(1), U8(0),
B(Star), R(0),
/* 21 S> */ B(Return),
diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/PublicClassFields.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/PublicClassFields.golden
index 4607d37d4b..cb09c45b1a 100644
--- a/deps/v8/test/cctest/interpreter/bytecode_expectations/PublicClassFields.golden
+++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/PublicClassFields.golden
@@ -37,7 +37,7 @@ bytecodes: [
B(Star), R(5),
B(LdaConstant), U8(1),
B(Star), R(6),
- B(LdaConstant), U8(3),
+ /* 60 S> */ B(LdaConstant), U8(3),
B(StaCurrentContextSlot), U8(4),
B(Star), R(9),
B(Mov), R(5), R(7),
@@ -59,7 +59,7 @@ bytecodes: [
B(Star), R(5),
B(LdaConstant), U8(7),
B(Star), R(6),
- B(LdaConstant), U8(3),
+ /* 99 S> */ B(LdaConstant), U8(3),
B(StaCurrentContextSlot), U8(4),
B(Star), R(9),
B(Mov), R(5), R(7),
@@ -145,7 +145,7 @@ bytecodes: [
B(Star), R(7),
B(LdaConstant), U8(1),
B(Star), R(8),
- B(LdaConstant), U8(5),
+ /* 77 S> */ B(LdaConstant), U8(5),
B(StaCurrentContextSlot), U8(4),
B(Star), R(11),
B(Mov), R(7), R(9),
@@ -175,7 +175,7 @@ bytecodes: [
B(Star), R(7),
B(LdaConstant), U8(9),
B(Star), R(8),
- B(LdaConstant), U8(5),
+ /* 133 S> */ B(LdaConstant), U8(5),
B(StaCurrentContextSlot), U8(4),
B(Star), R(11),
B(CreateClosure), U8(13), U8(7), U8(2),
@@ -198,7 +198,7 @@ bytecodes: [
B(Star), R(7),
B(LdaConstant), U8(16),
B(Star), R(8),
- B(LdaConstant), U8(5),
+ /* 256 S> */ B(LdaConstant), U8(5),
B(StaCurrentContextSlot), U8(4),
B(Star), R(11),
B(Mov), R(7), R(9),
diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/StandardForLoop.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/StandardForLoop.golden
index d870c4362f..849f7beba3 100644
--- a/deps/v8/test/cctest/interpreter/bytecode_expectations/StandardForLoop.golden
+++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/StandardForLoop.golden
@@ -381,35 +381,32 @@ snippet: "
"
frame size: 12
parameter count: 1
-bytecode array length: 140
+bytecode array length: 144
bytecodes: [
/* 16 E> */ B(StackCheck),
B(CallJSRuntime), U8(%async_function_promise_create), R(0), U8(0),
- B(Star), R(3),
+ B(Star), R(0),
B(Mov), R(context), R(6),
B(Mov), R(context), R(7),
/* 36 S> */ B(LdaZero),
- B(Star), R(1),
+ B(Star), R(2),
/* 41 S> */ B(LdaSmi), I8(10),
- /* 41 E> */ B(TestLessThan), R(1), U8(0),
+ /* 41 E> */ B(TestLessThan), R(2), U8(0),
B(JumpIfFalse), U8(15),
/* 23 E> */ B(StackCheck),
- /* 62 S> */ B(Mov), R(1), R(0),
- /* 49 S> */ B(Ldar), R(0),
+ /* 62 S> */ B(Mov), R(2), R(1),
+ /* 49 S> */ B(Ldar), R(1),
B(Inc), U8(1),
- B(Star), R(1),
+ B(Star), R(2),
B(JumpLoop), U8(17), I8(0),
B(LdaUndefined),
- B(Star), R(9),
- B(Mov), R(3), R(8),
- /* 49 E> */ B(InvokeIntrinsic), U8(Runtime::k_ResolvePromise), R(8), U8(2),
+ B(Star), R(5),
B(LdaZero),
B(Star), R(4),
- B(Mov), R(3), R(5),
- B(Jump), U8(55),
- B(Jump), U8(39),
+ B(Jump), U8(56),
+ B(Jump), U8(40),
B(Star), R(8),
- B(CreateCatchContext), R(8), U8(0),
+ /* 49 E> */ B(CreateCatchContext), R(8), U8(0),
B(Star), R(7),
B(LdaTheHole),
B(SetPendingMessage),
@@ -419,32 +416,37 @@ bytecodes: [
B(Star), R(10),
B(LdaFalse),
B(Star), R(11),
- B(Mov), R(3), R(9),
+ B(Mov), R(0), R(9),
B(InvokeIntrinsic), U8(Runtime::k_RejectPromise), R(9), U8(3),
B(PopContext), R(8),
- B(LdaZero),
+ B(LdaSmi), I8(1),
B(Star), R(4),
- B(Mov), R(3), R(5),
+ B(Mov), R(0), R(5),
B(Jump), U8(16),
B(LdaSmi), I8(-1),
B(Star), R(5),
B(Star), R(4),
B(Jump), U8(8),
B(Star), R(5),
- B(LdaSmi), I8(1),
+ B(LdaSmi), I8(2),
B(Star), R(4),
B(LdaTheHole),
B(SetPendingMessage),
B(Star), R(6),
B(LdaFalse),
B(Star), R(8),
- B(Mov), R(3), R(7),
+ B(Mov), R(0), R(7),
B(CallJSRuntime), U8(%async_function_promise_release), R(7), U8(2),
B(Ldar), R(6),
B(SetPendingMessage),
B(Ldar), R(4),
- B(SwitchOnSmiNoFeedback), U8(1), U8(2), I8(0),
- B(Jump), U8(8),
+ B(SwitchOnSmiNoFeedback), U8(1), U8(3), I8(0),
+ B(Jump), U8(21),
+ B(Mov), R(0), R(7),
+ B(Mov), R(5), R(8),
+ B(InvokeIntrinsic), U8(Runtime::k_ResolvePromise), R(7), U8(2),
+ B(Ldar), R(0),
+ /* 67 S> */ B(Return),
B(Ldar), R(5),
/* 67 S> */ B(Return),
B(Ldar), R(5),
@@ -455,11 +457,12 @@ bytecodes: [
constant pool: [
SCOPE_INFO_TYPE,
Smi [6],
- Smi [9],
+ Smi [19],
+ Smi [22],
]
handlers: [
- [10, 93, 101],
- [13, 54, 56],
+ [10, 84, 92],
+ [13, 44, 46],
]
---
@@ -471,53 +474,50 @@ snippet: "
"
frame size: 11
parameter count: 1
-bytecode array length: 191
+bytecode array length: 195
bytecodes: [
- B(SwitchOnGeneratorState), R(1), U8(0), U8(1),
+ B(SwitchOnGeneratorState), R(2), U8(0), U8(1),
B(Mov), R(closure), R(3),
B(Mov), R(this), R(4),
B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(3), U8(2),
- B(Star), R(1),
+ B(Star), R(2),
/* 16 E> */ B(StackCheck),
B(CallJSRuntime), U8(%async_function_promise_create), R(0), U8(0),
- B(Star), R(2),
+ B(Star), R(0),
B(Mov), R(context), R(5),
B(Mov), R(context), R(6),
/* 36 S> */ B(LdaZero),
- B(Star), R(0),
+ B(Star), R(1),
/* 41 S> */ B(LdaSmi), I8(10),
- /* 41 E> */ B(TestLessThan), R(0), U8(0),
+ /* 41 E> */ B(TestLessThan), R(1), U8(0),
B(JumpIfFalse), U8(50),
/* 23 E> */ B(StackCheck),
- /* 52 S> */ B(Mov), R(1), R(7),
- B(Mov), R(0), R(8),
- B(Mov), R(2), R(9),
+ /* 52 S> */ B(Mov), R(2), R(7),
+ B(Mov), R(1), R(8),
+ B(Mov), R(0), R(9),
B(CallJSRuntime), U8(%async_function_await_uncaught), R(7), U8(3),
- /* 52 E> */ B(SuspendGenerator), R(1), R(0), U8(7), U8(0),
- B(ResumeGenerator), R(1), R(0), U8(7),
+ /* 52 E> */ B(SuspendGenerator), R(2), R(0), U8(7), U8(0),
+ B(ResumeGenerator), R(2), R(0), U8(7),
B(Star), R(7),
- B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(1), U8(1),
+ B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(2), U8(1),
B(Star), R(8),
B(LdaZero),
B(TestReferenceEqual), R(8),
B(JumpIfTrue), U8(5),
B(Ldar), R(7),
B(ReThrow),
- /* 49 S> */ B(Ldar), R(0),
+ /* 49 S> */ B(Ldar), R(1),
B(Inc), U8(1),
- B(Star), R(0),
+ B(Star), R(1),
B(JumpLoop), U8(52), I8(0),
B(LdaUndefined),
- B(Star), R(8),
- B(Mov), R(2), R(7),
- /* 49 E> */ B(InvokeIntrinsic), U8(Runtime::k_ResolvePromise), R(7), U8(2),
+ B(Star), R(4),
B(LdaZero),
B(Star), R(3),
- B(Mov), R(2), R(4),
- B(Jump), U8(55),
- B(Jump), U8(39),
+ B(Jump), U8(56),
+ B(Jump), U8(40),
B(Star), R(7),
- B(CreateCatchContext), R(7), U8(1),
+ /* 49 E> */ B(CreateCatchContext), R(7), U8(1),
B(Star), R(6),
B(LdaTheHole),
B(SetPendingMessage),
@@ -527,32 +527,37 @@ bytecodes: [
B(Star), R(9),
B(LdaFalse),
B(Star), R(10),
- B(Mov), R(2), R(8),
+ B(Mov), R(0), R(8),
B(InvokeIntrinsic), U8(Runtime::k_RejectPromise), R(8), U8(3),
B(PopContext), R(7),
- B(LdaZero),
+ B(LdaSmi), I8(1),
B(Star), R(3),
- B(Mov), R(2), R(4),
+ B(Mov), R(0), R(4),
B(Jump), U8(16),
B(LdaSmi), I8(-1),
B(Star), R(4),
B(Star), R(3),
B(Jump), U8(8),
B(Star), R(4),
- B(LdaSmi), I8(1),
+ B(LdaSmi), I8(2),
B(Star), R(3),
B(LdaTheHole),
B(SetPendingMessage),
B(Star), R(5),
B(LdaTrue),
B(Star), R(7),
- B(Mov), R(2), R(6),
+ B(Mov), R(0), R(6),
B(CallJSRuntime), U8(%async_function_promise_release), R(6), U8(2),
B(Ldar), R(5),
B(SetPendingMessage),
B(Ldar), R(3),
- B(SwitchOnSmiNoFeedback), U8(2), U8(2), I8(0),
- B(Jump), U8(8),
+ B(SwitchOnSmiNoFeedback), U8(2), U8(3), I8(0),
+ B(Jump), U8(21),
+ B(Mov), R(0), R(6),
+ B(Mov), R(4), R(7),
+ B(InvokeIntrinsic), U8(Runtime::k_ResolvePromise), R(6), U8(2),
+ B(Ldar), R(0),
+ /* 61 S> */ B(Return),
B(Ldar), R(4),
/* 61 S> */ B(Return),
B(Ldar), R(4),
@@ -564,10 +569,11 @@ constant pool: [
Smi [58],
SCOPE_INFO_TYPE,
Smi [6],
- Smi [9],
+ Smi [19],
+ Smi [22],
]
handlers: [
- [26, 144, 152],
- [29, 105, 107],
+ [26, 135, 143],
+ [29, 95, 97],
]
diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/StaticClassFields.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/StaticClassFields.golden
index fcf5e9ae9a..da5c922456 100644
--- a/deps/v8/test/cctest/interpreter/bytecode_expectations/StaticClassFields.golden
+++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/StaticClassFields.golden
@@ -44,10 +44,10 @@ bytecodes: [
B(Star), R(5),
B(LdaConstant), U8(1),
B(Star), R(6),
- B(LdaConstant), U8(3),
+ /* 60 S> */ B(LdaConstant), U8(3),
B(StaCurrentContextSlot), U8(4),
B(Star), R(9),
- B(LdaConstant), U8(4),
+ /* 92 S> */ B(LdaConstant), U8(4),
B(Star), R(10),
B(LdaConstant), U8(5),
B(TestEqualStrict), R(10), U8(1),
@@ -79,10 +79,10 @@ bytecodes: [
B(Star), R(5),
B(LdaConstant), U8(10),
B(Star), R(6),
- B(LdaConstant), U8(3),
+ /* 131 S> */ B(LdaConstant), U8(3),
B(StaCurrentContextSlot), U8(4),
B(Star), R(9),
- B(LdaConstant), U8(4),
+ /* 176 S> */ B(LdaConstant), U8(4),
B(Star), R(10),
B(LdaConstant), U8(5),
B(TestEqualStrict), R(10), U8(1),
@@ -188,10 +188,10 @@ bytecodes: [
B(Star), R(7),
B(LdaConstant), U8(1),
B(Star), R(8),
- B(LdaConstant), U8(5),
+ /* 77 S> */ B(LdaConstant), U8(5),
B(StaCurrentContextSlot), U8(4),
B(Star), R(11),
- B(LdaConstant), U8(6),
+ /* 109 S> */ B(LdaConstant), U8(6),
B(Star), R(12),
B(LdaConstant), U8(7),
B(TestEqualStrict), R(12), U8(2),
@@ -231,10 +231,10 @@ bytecodes: [
B(Star), R(7),
B(LdaConstant), U8(12),
B(Star), R(8),
- B(LdaConstant), U8(5),
+ /* 165 S> */ B(LdaConstant), U8(5),
B(StaCurrentContextSlot), U8(4),
B(Star), R(11),
- B(LdaConstant), U8(6),
+ /* 210 S> */ B(LdaConstant), U8(6),
B(Star), R(12),
B(LdaConstant), U8(7),
B(TestEqualStrict), R(12), U8(2),
@@ -267,10 +267,10 @@ bytecodes: [
B(Star), R(7),
B(LdaConstant), U8(20),
B(Star), R(8),
- B(LdaConstant), U8(5),
+ /* 333 S> */ B(LdaConstant), U8(5),
B(StaCurrentContextSlot), U8(4),
B(Star), R(11),
- B(LdaConstant), U8(6),
+ /* 378 S> */ B(LdaConstant), U8(6),
B(Star), R(12),
B(LdaConstant), U8(7),
B(TestEqualStrict), R(12), U8(2),
diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/SuperCallAndSpread.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/SuperCallAndSpread.golden
index 39e41739e1..42238ac049 100644
--- a/deps/v8/test/cctest/interpreter/bytecode_expectations/SuperCallAndSpread.golden
+++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/SuperCallAndSpread.golden
@@ -93,7 +93,7 @@ snippet: "
"
frame size: 13
parameter count: 1
-bytecode array length: 137
+bytecode array length: 130
bytecodes: [
B(CreateRestParameter),
B(Star), R(2),
@@ -103,55 +103,51 @@ bytecodes: [
/* 140 S> */ B(Ldar), R(closure),
B(GetSuperConstructor), R(5),
B(CreateEmptyArrayLiteral), U8(0),
- B(Star), R(6),
- B(LdaZero),
B(Star), R(7),
+ B(LdaZero),
+ B(Star), R(6),
B(LdaSmi), I8(1),
- B(StaKeyedProperty), R(6), R(7), U8(1),
- B(LdaConstant), U8(0),
- /* 152 S> */ B(Star), R(7),
- B(LdaNamedProperty), R(2), U8(1), U8(8),
+ B(StaInArrayLiteral), R(7), R(6), U8(1),
+ B(Ldar), R(6),
+ B(Inc), U8(3),
+ /* 152 S> */ B(Star), R(6),
+ B(LdaNamedProperty), R(2), U8(0), U8(4),
B(Star), R(12),
- B(CallProperty0), R(12), R(2), U8(10),
+ B(CallProperty0), R(12), R(2), U8(6),
B(Mov), R(2), R(11),
B(Mov), R(1), R(4),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
B(Star), R(10),
- B(LdaNamedProperty), R(10), U8(2), U8(12),
+ B(LdaNamedProperty), R(10), U8(1), U8(8),
B(Star), R(9),
- B(CallProperty0), R(9), R(10), U8(14),
+ B(CallProperty0), R(9), R(10), U8(10),
B(Star), R(8),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(8), U8(1),
- B(LdaNamedProperty), R(8), U8(3), U8(16),
+ B(LdaNamedProperty), R(8), U8(2), U8(12),
B(JumpIfToBooleanTrue), U8(21),
- B(LdaNamedProperty), R(8), U8(4), U8(18),
+ B(LdaNamedProperty), R(8), U8(3), U8(14),
B(Star), R(8),
- B(StaInArrayLiteral), R(6), R(7), U8(3),
- B(Ldar), R(7),
- B(Inc), U8(5),
- B(Star), R(7),
+ B(StaInArrayLiteral), R(7), R(6), U8(1),
+ B(Ldar), R(6),
+ B(Inc), U8(3),
+ B(Star), R(6),
B(JumpLoop), U8(35), I8(0),
B(LdaSmi), I8(1),
- B(StaInArrayLiteral), R(6), R(7), U8(3),
- B(Ldar), R(7),
- B(Inc), U8(5),
- B(Star), R(7),
- B(Mov), R(5), R(8),
- B(Mov), R(6), R(9),
- B(Mov), R(0), R(10),
- /* 140 E> */ B(CallJSRuntime), U8(%reflect_construct), R(8), U8(3),
- B(Star), R(11),
+ B(StaInArrayLiteral), R(7), R(6), U8(1),
+ B(Mov), R(5), R(6),
+ B(Mov), R(0), R(8),
+ /* 140 E> */ B(CallJSRuntime), U8(%reflect_construct), R(6), U8(3),
+ B(Star), R(9),
B(Ldar), R(this),
B(ThrowSuperAlreadyCalledIfNotHole),
- B(Mov), R(11), R(this),
+ B(Mov), R(9), R(this),
B(Ldar), R(this),
B(ThrowSuperNotCalledIfHole),
/* 162 S> */ B(Return),
]
constant pool: [
- Smi [1],
SYMBOL_TYPE,
ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
diff --git a/deps/v8/test/cctest/interpreter/interpreter-tester.cc b/deps/v8/test/cctest/interpreter/interpreter-tester.cc
index acb06f2d8a..855e01e786 100644
--- a/deps/v8/test/cctest/interpreter/interpreter-tester.cc
+++ b/deps/v8/test/cctest/interpreter/interpreter-tester.cc
@@ -38,7 +38,7 @@ InterpreterTester::InterpreterTester(Isolate* isolate, const char* source,
: InterpreterTester(isolate, source, MaybeHandle<BytecodeArray>(),
MaybeHandle<FeedbackMetadata>(), filter) {}
-InterpreterTester::~InterpreterTester() {}
+InterpreterTester::~InterpreterTester() = default;
Local<Message> InterpreterTester::CheckThrowsReturnMessage() {
TryCatch try_catch(reinterpret_cast<v8::Isolate*>(isolate_));
diff --git a/deps/v8/test/cctest/interpreter/interpreter-tester.h b/deps/v8/test/cctest/interpreter/interpreter-tester.h
index d795b7ffcd..d670252242 100644
--- a/deps/v8/test/cctest/interpreter/interpreter-tester.h
+++ b/deps/v8/test/cctest/interpreter/interpreter-tester.h
@@ -36,7 +36,7 @@ class InterpreterCallable {
public:
InterpreterCallable(Isolate* isolate, Handle<JSFunction> function)
: isolate_(isolate), function_(function) {}
- virtual ~InterpreterCallable() {}
+ virtual ~InterpreterCallable() = default;
MaybeHandle<Object> operator()(A... args) {
return CallInterpreter(isolate_, function_, args...);
diff --git a/deps/v8/test/cctest/interpreter/test-bytecode-generator.cc b/deps/v8/test/cctest/interpreter/test-bytecode-generator.cc
index 0ec28d3653..e81b0cf981 100644
--- a/deps/v8/test/cctest/interpreter/test-bytecode-generator.cc
+++ b/deps/v8/test/cctest/interpreter/test-bytecode-generator.cc
@@ -627,6 +627,69 @@ TEST(IIFEWithOneshotOpt) {
return arguments.callee;
})();
)",
+ // CallNoFeedback instead of CallProperty
+ R"(
+ this.f0 = function() {};
+ this.f1 = function(a) {};
+ this.f2 = function(a, b) {};
+ this.f3 = function(a, b, c) {};
+ this.f4 = function(a, b, c, d) {};
+ this.f5 = function(a, b, c, d, e) {};
+ (function() {
+ this.f0();
+ this.f1(1);
+ this.f2(1, 2);
+ this.f3(1, 2, 3);
+ this.f4(1, 2, 3, 4);
+ this.f5(1, 2, 3, 4, 5);
+ return arguments.callee;
+ })();
+ )",
+ // CallNoFeedback instead of CallUndefinedReceiver
+ R"(
+ function f0() {}
+ function f1(a) {}
+ function f2(a, b) {}
+ function f3(a, b, c) {}
+ function f4(a, b, c, d) {}
+ function f5(a, b, c, d, e) {}
+ (function() {
+ f0();
+ f1(1);
+ f2(1, 2);
+ f3(1, 2, 3);
+ f4(1, 2, 3, 4);
+ f5(1, 2, 3, 4, 5);
+ return arguments.callee;
+ })();
+ )",
+ R"(
+ var t = 0;
+ function f2() {};
+ if (t == 0) {
+ (function(){
+ l = {};
+ l.a = 3;
+ l.b = 4;
+ f2();
+ return arguments.callee;
+ })();
+ }
+ )",
+ // No one-shot opt for IIFE`s within a function
+ R"(
+ function f2() {};
+ function f() {
+ return (function(){
+ l = {};
+ l.a = 3;
+ l.b = 4;
+ f2();
+ return arguments.callee;
+ })();
+ }
+ f();
+ )",
};
CHECK(CompareTexts(BuildActual(printer, snippets),
LoadGolden("IIFEWithOneshotOpt.golden")));
@@ -663,6 +726,40 @@ TEST(IIFEWithoutOneshotOpt) {
return arguments.callee;
})();
)",
+ R"(
+ this.f0 = function() {};
+ this.f1 = function(a) {};
+ this.f2 = function(a, b) {};
+ this.f3 = function(a, b, c) {};
+ this.f4 = function(a, b, c, d) {};
+ this.f5 = function(a, b, c, d, e) {};
+ (function() {
+ this.f0();
+ this.f1(1);
+ this.f2(1, 2);
+ this.f3(1, 2, 3);
+ this.f4(1, 2, 3, 4);
+ this.f5(1, 2, 3, 4, 5);
+ return arguments.callee;
+ })();
+ )",
+ R"(
+ function f0() {}
+ function f1(a) {}
+ function f2(a, b) {}
+ function f3(a, b, c) {}
+ function f4(a, b, c, d) {}
+ function f5(a, b, c, d, e) {}
+ (function() {
+ f0();
+ f1(1);
+ f2(1, 2);
+ f3(1, 2, 3);
+ f4(1, 2, 3, 4);
+ f5(1, 2, 3, 4, 5);
+ return arguments.callee;
+ })();
+ )",
};
CHECK(CompareTexts(BuildActual(printer, snippets),
LoadGolden("IIFEWithoutOneshotOpt.golden")));
diff --git a/deps/v8/test/cctest/interpreter/test-interpreter-intrinsics.cc b/deps/v8/test/cctest/interpreter/test-interpreter-intrinsics.cc
index 57d42e2a83..bfc42aa540 100644
--- a/deps/v8/test/cctest/interpreter/test-interpreter-intrinsics.cc
+++ b/deps/v8/test/cctest/interpreter/test-interpreter-intrinsics.cc
@@ -27,7 +27,7 @@ class InvokeIntrinsicHelper {
template <class... A>
Handle<Object> Invoke(A... args) {
CHECK(IntrinsicsHelper::IsSupported(function_id_));
- BytecodeArrayBuilder builder(zone_, sizeof...(args), 0, 0);
+ BytecodeArrayBuilder builder(zone_, sizeof...(args), 0, nullptr);
RegisterList reg_list = InterpreterTester::NewRegisterList(
builder.Receiver().index(), sizeof...(args));
builder.CallRuntime(function_id_, reg_list).Return();
@@ -94,29 +94,6 @@ TEST(IsArray) {
CHECK_EQ(*factory->false_value(), *helper.Invoke(helper.NewObject("42")));
}
-TEST(IsJSProxy) {
- HandleAndZoneScope handles;
-
- InvokeIntrinsicHelper helper(handles.main_isolate(), handles.main_zone(),
- Runtime::kInlineIsJSProxy);
- 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->false_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")));
- CHECK_EQ(*factory->true_value(),
- *helper.Invoke(helper.NewObject("new Proxy({},{})")));
-}
-
TEST(IsTypedArray) {
HandleAndZoneScope handles;
@@ -198,15 +175,6 @@ TEST(IntrinsicAsStubCall) {
HandleAndZoneScope handles;
Isolate* isolate = handles.main_isolate();
Factory* factory = isolate->factory();
- InvokeIntrinsicHelper to_number_helper(isolate, handles.main_zone(),
- Runtime::kInlineToNumber);
- CHECK_EQ(Smi::FromInt(46),
- *to_number_helper.Invoke(to_number_helper.NewObject("'46'")));
-
- InvokeIntrinsicHelper to_integer_helper(isolate, handles.main_zone(),
- Runtime::kInlineToInteger);
- CHECK_EQ(Smi::FromInt(502),
- *to_integer_helper.Invoke(to_integer_helper.NewObject("502.67")));
InvokeIntrinsicHelper has_property_helper(isolate, handles.main_zone(),
Runtime::kInlineHasProperty);
diff --git a/deps/v8/test/cctest/interpreter/test-interpreter.cc b/deps/v8/test/cctest/interpreter/test-interpreter.cc
index c1898adf4e..65eee6f778 100644
--- a/deps/v8/test/cctest/interpreter/test-interpreter.cc
+++ b/deps/v8/test/cctest/interpreter/test-interpreter.cc
@@ -423,7 +423,8 @@ TEST(InterpreterBinaryOpsBigInt) {
CHECK(return_value->IsBigInt());
MaybeObject* feedback = callable.vector()->Get(slot);
CHECK(feedback->IsSmi());
- CHECK_EQ(BinaryOperationFeedback::kBigInt, feedback->ToSmi()->value());
+ CHECK_EQ(BinaryOperationFeedback::kBigInt,
+ feedback->cast<Smi>()->value());
}
}
}
@@ -543,7 +544,7 @@ TEST(InterpreterStringAdd) {
MaybeObject* feedback = callable.vector()->Get(slot);
CHECK(feedback->IsSmi());
- CHECK_EQ(test_cases[i].expected_feedback, feedback->ToSmi()->value());
+ CHECK_EQ(test_cases[i].expected_feedback, feedback->cast<Smi>()->value());
}
}
@@ -748,7 +749,7 @@ TEST(InterpreterBinaryOpTypeFeedback) {
Handle<Object> return_val = callable().ToHandleChecked();
MaybeObject* feedback0 = callable.vector()->Get(slot0);
CHECK(feedback0->IsSmi());
- CHECK_EQ(test_case.feedback, feedback0->ToSmi()->value());
+ CHECK_EQ(test_case.feedback, feedback0->cast<Smi>()->value());
CHECK(Object::Equals(isolate, test_case.result, return_val).ToChecked());
}
}
@@ -854,7 +855,7 @@ TEST(InterpreterBinaryOpSmiTypeFeedback) {
Handle<Object> return_val = callable().ToHandleChecked();
MaybeObject* feedback0 = callable.vector()->Get(slot0);
CHECK(feedback0->IsSmi());
- CHECK_EQ(test_case.feedback, feedback0->ToSmi()->value());
+ CHECK_EQ(test_case.feedback, feedback0->cast<Smi>()->value());
CHECK(Object::Equals(isolate, test_case.result, return_val).ToChecked());
}
}
@@ -926,23 +927,23 @@ TEST(InterpreterUnaryOpFeedback) {
MaybeObject* feedback0 = callable.vector()->Get(slot0);
CHECK(feedback0->IsSmi());
CHECK_EQ(BinaryOperationFeedback::kSignedSmall,
- feedback0->ToSmi()->value());
+ feedback0->cast<Smi>()->value());
MaybeObject* feedback1 = callable.vector()->Get(slot1);
CHECK(feedback1->IsSmi());
- CHECK_EQ(BinaryOperationFeedback::kNumber, feedback1->ToSmi()->value());
+ CHECK_EQ(BinaryOperationFeedback::kNumber, feedback1->cast<Smi>()->value());
MaybeObject* feedback2 = callable.vector()->Get(slot2);
CHECK(feedback2->IsSmi());
- CHECK_EQ(BinaryOperationFeedback::kNumber, feedback2->ToSmi()->value());
+ CHECK_EQ(BinaryOperationFeedback::kNumber, feedback2->cast<Smi>()->value());
MaybeObject* feedback3 = callable.vector()->Get(slot3);
CHECK(feedback3->IsSmi());
- CHECK_EQ(BinaryOperationFeedback::kBigInt, feedback3->ToSmi()->value());
+ CHECK_EQ(BinaryOperationFeedback::kBigInt, feedback3->cast<Smi>()->value());
MaybeObject* feedback4 = callable.vector()->Get(slot4);
CHECK(feedback4->IsSmi());
- CHECK_EQ(BinaryOperationFeedback::kAny, feedback4->ToSmi()->value());
+ CHECK_EQ(BinaryOperationFeedback::kAny, feedback4->cast<Smi>()->value());
}
}
@@ -988,15 +989,15 @@ TEST(InterpreterBitwiseTypeFeedback) {
MaybeObject* feedback0 = callable.vector()->Get(slot0);
CHECK(feedback0->IsSmi());
CHECK_EQ(BinaryOperationFeedback::kSignedSmall,
- feedback0->ToSmi()->value());
+ feedback0->cast<Smi>()->value());
MaybeObject* feedback1 = callable.vector()->Get(slot1);
CHECK(feedback1->IsSmi());
- CHECK_EQ(BinaryOperationFeedback::kNumber, feedback1->ToSmi()->value());
+ CHECK_EQ(BinaryOperationFeedback::kNumber, feedback1->cast<Smi>()->value());
MaybeObject* feedback2 = callable.vector()->Get(slot2);
CHECK(feedback2->IsSmi());
- CHECK_EQ(BinaryOperationFeedback::kAny, feedback2->ToSmi()->value());
+ CHECK_EQ(BinaryOperationFeedback::kAny, feedback2->cast<Smi>()->value());
}
}
@@ -1818,7 +1819,7 @@ TEST(InterpreterSmiComparisons) {
MaybeObject* feedback = callable.vector()->Get(slot);
CHECK(feedback->IsSmi());
CHECK_EQ(CompareOperationFeedback::kSignedSmall,
- feedback->ToSmi()->value());
+ feedback->cast<Smi>()->value());
}
}
}
@@ -1866,7 +1867,8 @@ TEST(InterpreterHeapNumberComparisons) {
CompareC(comparison, inputs[i], inputs[j]));
MaybeObject* feedback = callable.vector()->Get(slot);
CHECK(feedback->IsSmi());
- CHECK_EQ(CompareOperationFeedback::kNumber, feedback->ToSmi()->value());
+ CHECK_EQ(CompareOperationFeedback::kNumber,
+ feedback->cast<Smi>()->value());
}
}
}
@@ -1908,7 +1910,8 @@ TEST(InterpreterBigIntComparisons) {
CHECK(return_value->IsBoolean());
MaybeObject* feedback = callable.vector()->Get(slot);
CHECK(feedback->IsSmi());
- CHECK_EQ(CompareOperationFeedback::kBigInt, feedback->ToSmi()->value());
+ CHECK_EQ(CompareOperationFeedback::kBigInt,
+ feedback->cast<Smi>()->value());
}
}
}
@@ -1959,7 +1962,7 @@ TEST(InterpreterStringComparisons) {
Token::IsOrderedRelationalCompareOp(comparison)
? CompareOperationFeedback::kString
: CompareOperationFeedback::kInternalizedString;
- CHECK_EQ(expected_feedback, feedback->ToSmi()->value());
+ CHECK_EQ(expected_feedback, feedback->cast<Smi>()->value());
}
}
}
@@ -2072,7 +2075,7 @@ TEST(InterpreterMixedComparisons) {
CHECK(feedback->IsSmi());
// Comparison with a number and string collects kAny feedback.
CHECK_EQ(CompareOperationFeedback::kAny,
- feedback->ToSmi()->value());
+ feedback->cast<Smi>()->value());
}
}
}
@@ -5046,6 +5049,35 @@ TEST(InterpreterWithNativeStack) {
interpreter_entry_trampoline->InstructionStart());
}
+TEST(InterpreterGetAndMaybeDeserializeBytecodeHandler) {
+ HandleAndZoneScope handles;
+ Isolate* isolate = handles.main_isolate();
+ Interpreter* interpreter = isolate->interpreter();
+
+ // Test that single-width bytecode handlers deserializer correctly.
+ Code* wide_handler = interpreter->GetAndMaybeDeserializeBytecodeHandler(
+ Bytecode::kWide, OperandScale::kSingle);
+
+ CHECK_EQ(wide_handler->builtin_index(), Builtins::kWideHandler);
+
+ Code* add_handler = interpreter->GetAndMaybeDeserializeBytecodeHandler(
+ Bytecode::kAdd, OperandScale::kSingle);
+
+ CHECK_EQ(add_handler->builtin_index(), Builtins::kAddHandler);
+
+ // Test that double-width bytecode handlers deserializer correctly, including
+ // an illegal bytecode handler since there is no Wide.Wide handler.
+ Code* wide_wide_handler = interpreter->GetAndMaybeDeserializeBytecodeHandler(
+ Bytecode::kWide, OperandScale::kDouble);
+
+ CHECK_EQ(wide_wide_handler->builtin_index(), Builtins::kIllegalHandler);
+
+ Code* add_wide_handler = interpreter->GetAndMaybeDeserializeBytecodeHandler(
+ Bytecode::kAdd, OperandScale::kDouble);
+
+ CHECK_EQ(add_wide_handler->builtin_index(), Builtins::kAddWideHandler);
+}
+
} // namespace interpreter
} // namespace internal
} // namespace v8
diff --git a/deps/v8/test/cctest/interpreter/test-source-positions.cc b/deps/v8/test/cctest/interpreter/test-source-positions.cc
index 8f2aae7e0b..2a8e354e54 100644
--- a/deps/v8/test/cctest/interpreter/test-source-positions.cc
+++ b/deps/v8/test/cctest/interpreter/test-source-positions.cc
@@ -49,7 +49,7 @@ struct TestCaseData {
const char* arguments() const { return arguments_; }
private:
- TestCaseData();
+ TestCaseData() = delete;
const char* const script_;
const char* const declaration_parameters_;