diff options
Diffstat (limited to 'deps/v8/test/cctest/interpreter')
19 files changed, 2274 insertions, 1488 deletions
diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/ArrayLiterals.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/ArrayLiterals.golden index 9392d60181..d6097e938d 100644 --- a/deps/v8/test/cctest/interpreter/bytecode_expectations/ArrayLiterals.golden +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/ArrayLiterals.golden @@ -141,9 +141,9 @@ handlers: [ snippet: " var a = [ 1, 2 ]; return [ 0, ...a ]; " -frame size: 8 +frame size: 7 parameter count: 1 -bytecode array length: 84 +bytecode array length: 80 bytecodes: [ /* 30 E> */ B(StackCheck), /* 42 S> */ B(CreateArrayLiteral), U8(0), U8(0), U8(37), @@ -152,22 +152,21 @@ bytecodes: [ B(Star), R(2), B(LdaConstant), U8(2), /* 67 S> */ B(Star), R(1), - B(LdaNamedProperty), R(0), U8(3), U8(2), + B(GetIterator), R(0), U8(2), B(Star), R(6), B(CallProperty0), R(6), R(0), U8(4), - B(Mov), R(0), R(5), B(JumpIfJSReceiver), U8(7), B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0), B(Star), R(4), - B(LdaNamedProperty), R(4), U8(4), U8(6), + B(LdaNamedProperty), R(4), U8(3), U8(6), B(Star), R(3), B(CallProperty0), R(3), R(4), U8(15), - B(Star), R(7), + B(Star), R(5), B(JumpIfJSReceiver), U8(7), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(7), U8(1), - B(LdaNamedProperty), R(7), U8(5), U8(17), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(5), U8(1), + B(LdaNamedProperty), R(5), U8(4), U8(17), B(JumpIfToBooleanTrue), U8(19), - B(LdaNamedProperty), R(7), U8(6), U8(8), + B(LdaNamedProperty), R(5), U8(5), U8(8), B(StaInArrayLiteral), R(2), R(1), U8(13), B(Ldar), R(1), B(Inc), U8(12), @@ -180,7 +179,6 @@ constant pool: [ ARRAY_BOILERPLATE_DESCRIPTION_TYPE, ARRAY_BOILERPLATE_DESCRIPTION_TYPE, Smi [1], - SYMBOL_TYPE, ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"], diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/AsyncGenerators.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/AsyncGenerators.golden index ce579699d8..1dbb999371 100644 --- a/deps/v8/test/cctest/interpreter/bytecode_expectations/AsyncGenerators.golden +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/AsyncGenerators.golden @@ -212,9 +212,9 @@ snippet: " async function* f() { for (let x of [42]) yield x } f(); " -frame size: 21 +frame size: 19 parameter count: 1 -bytecode array length: 372 +bytecode array length: 369 bytecodes: [ B(SwitchOnGeneratorState), R(0), U8(0), U8(2), B(Mov), R(closure), R(4), @@ -235,103 +235,102 @@ bytecodes: [ B(LdaSmi), I8(1), B(Star), R(4), B(Mov), R(8), R(5), - B(JumpConstant), U8(16), + B(JumpConstant), U8(15), /* 36 S> */ B(CreateArrayLiteral), U8(4), U8(0), U8(37), B(Star), R(10), - B(LdaNamedProperty), R(10), U8(5), U8(1), + B(GetIterator), R(10), U8(1), B(Star), R(11), B(CallProperty0), R(11), R(10), U8(3), B(JumpIfJSReceiver), U8(7), B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0), B(Star), R(9), - B(LdaNamedProperty), R(9), U8(6), U8(5), + B(LdaNamedProperty), R(9), U8(5), U8(5), B(Star), R(8), B(LdaFalse), - B(Star), R(12), - B(Mov), R(context), R(15), + B(Star), R(10), + B(Mov), R(context), R(13), B(LdaTrue), - B(Star), R(12), + B(Star), R(10), /* 31 S> */ B(CallProperty0), R(8), R(9), U8(7), - B(Star), R(16), + B(Star), R(14), B(JumpIfJSReceiver), U8(7), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(16), U8(1), - B(LdaNamedProperty), R(16), U8(7), U8(9), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(14), U8(1), + B(LdaNamedProperty), R(14), U8(6), U8(9), B(JumpIfToBooleanTrue), U8(67), - B(LdaNamedProperty), R(16), U8(8), U8(11), - B(Star), R(16), + B(LdaNamedProperty), R(14), U8(7), U8(11), + B(Star), R(14), B(LdaFalse), - B(Star), R(12), - B(Mov), R(16), R(1), + B(Star), R(10), + B(Mov), R(14), R(1), /* 22 E> */ B(StackCheck), /* 31 S> */ B(Mov), R(1), R(3), /* 42 S> */ B(LdaFalse), - B(Star), R(19), - B(Mov), R(0), R(17), - B(Mov), R(3), R(18), - B(InvokeIntrinsic), U8(Runtime::k_AsyncGeneratorYield), R(17), U8(3), - /* 42 E> */ B(SuspendGenerator), R(0), R(0), U8(17), U8(1), - B(ResumeGenerator), R(0), R(0), U8(17), B(Star), R(17), + B(Mov), R(0), R(15), + B(Mov), R(3), R(16), + B(InvokeIntrinsic), U8(Runtime::k_AsyncGeneratorYield), R(15), U8(3), + /* 42 E> */ B(SuspendGenerator), R(0), R(0), U8(15), U8(1), + B(ResumeGenerator), R(0), R(0), U8(15), + B(Star), R(15), B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1), - B(SwitchOnSmiNoFeedback), U8(9), U8(2), I8(0), - B(Ldar), R(17), + B(SwitchOnSmiNoFeedback), U8(8), U8(2), I8(0), + B(Ldar), R(15), /* 42 E> */ B(Throw), B(LdaSmi), I8(1), - B(Star), R(13), - B(Mov), R(17), R(14), + B(Star), R(11), + B(Mov), R(15), R(12), B(Jump), U8(20), - B(Ldar), R(17), + B(Ldar), R(15), B(JumpLoop), U8(84), I8(0), B(LdaSmi), I8(-1), - B(Star), R(14), - B(Star), R(13), + B(Star), R(12), + B(Star), R(11), B(Jump), U8(7), - B(Star), R(14), + B(Star), R(12), B(LdaZero), - B(Star), R(13), + B(Star), R(11), B(LdaTheHole), B(SetPendingMessage), + B(Star), R(13), + B(Ldar), R(10), + B(JumpIfToBooleanTrue), U8(58), + B(LdaNamedProperty), R(9), U8(10), U8(13), B(Star), R(15), - B(Ldar), R(12), - B(JumpIfToBooleanTrue), U8(60), - B(LdaNamedProperty), R(9), U8(11), U8(13), - B(Star), R(17), - B(JumpIfUndefined), U8(52), - B(JumpIfNull), U8(50), - B(Mov), R(context), R(18), + B(JumpIfUndefinedOrNull), U8(50), + B(Mov), R(context), R(16), B(TestTypeOf), U8(6), B(JumpIfTrue), U8(18), B(Wide), B(LdaSmi), I16(159), - B(Star), R(19), - B(LdaConstant), U8(12), - B(Star), R(20), - B(CallRuntime), U16(Runtime::kNewTypeError), R(19), U8(2), + B(Star), R(17), + B(LdaConstant), U8(11), + B(Star), R(18), + B(CallRuntime), U16(Runtime::kNewTypeError), R(17), U8(2), B(Throw), - B(CallProperty0), R(17), R(9), U8(15), + B(CallProperty0), R(15), R(9), U8(15), B(JumpIfJSReceiver), U8(21), - B(Star), R(19), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(19), U8(1), + B(Star), R(17), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(17), U8(1), B(Jump), U8(12), - B(Star), R(18), + B(Star), R(16), B(LdaZero), - B(TestReferenceEqual), R(13), + B(TestReferenceEqual), R(11), B(JumpIfTrue), U8(5), - B(Ldar), R(18), + B(Ldar), R(16), B(ReThrow), - B(Ldar), R(15), - B(SetPendingMessage), B(Ldar), R(13), - B(SwitchOnSmiNoFeedback), U8(13), U8(2), I8(0), + B(SetPendingMessage), + B(Ldar), R(11), + B(SwitchOnSmiNoFeedback), U8(12), U8(2), I8(0), B(Jump), U8(14), - B(Ldar), R(14), + B(Ldar), R(12), B(ReThrow), B(LdaSmi), I8(1), B(Star), R(4), - B(Mov), R(14), R(5), + B(Mov), R(12), R(5), B(Jump), U8(51), B(Jump), U8(36), B(Star), R(8), - B(CreateCatchContext), R(8), U8(15), + B(CreateCatchContext), R(8), U8(14), B(Star), R(7), B(LdaTheHole), B(SetPendingMessage), @@ -360,7 +359,7 @@ bytecodes: [ B(Ldar), R(6), B(SetPendingMessage), B(Ldar), R(4), - B(SwitchOnSmiNoFeedback), U8(17), U8(3), I8(0), + B(SwitchOnSmiNoFeedback), U8(16), U8(3), I8(0), B(Jump), U8(22), B(Ldar), R(5), B(ReThrow), @@ -377,11 +376,10 @@ bytecodes: [ ] constant pool: [ Smi [30], - Smi [149], + Smi [148], Smi [16], Smi [7], ARRAY_BOILERPLATE_DESCRIPTION_TYPE, - SYMBOL_TYPE, ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"], @@ -392,16 +390,16 @@ constant pool: [ Smi [6], Smi [9], SCOPE_INFO_TYPE, - Smi [277], + Smi [274], Smi [6], Smi [9], Smi [23], ] handlers: [ - [20, 318, 326], - [23, 282, 284], - [93, 180, 188], - [214, 247, 249], + [20, 315, 323], + [23, 279, 281], + [92, 179, 187], + [211, 244, 246], ] --- @@ -410,9 +408,9 @@ snippet: " async function* f() { yield* g() } f(); " -frame size: 19 +frame size: 17 parameter count: 1 -bytecode array length: 475 +bytecode array length: 466 bytecodes: [ B(SwitchOnGeneratorState), R(0), U8(0), U8(5), B(Mov), R(closure), R(1), @@ -433,44 +431,69 @@ bytecodes: [ B(LdaSmi), I8(1), B(Star), R(1), B(Mov), R(5), R(2), - B(JumpConstant), U8(18), + B(JumpConstant), U8(17), /* 49 S> */ B(LdaGlobal), U8(7), U8(0), B(Star), R(9), /* 56 E> */ B(CallUndefinedReceiver0), R(9), U8(2), B(Star), R(10), B(LdaNamedProperty), R(10), U8(8), U8(4), - B(JumpIfUndefined), U8(17), - B(JumpIfNull), U8(15), + B(JumpIfUndefinedOrNull), U8(15), B(Star), R(11), B(CallProperty0), R(11), R(10), U8(6), - B(JumpIfJSReceiver), U8(23), + B(JumpIfJSReceiver), U8(22), B(CallRuntime), U16(Runtime::kThrowSymbolAsyncIteratorInvalid), R(0), U8(0), - B(LdaNamedProperty), R(10), U8(9), U8(8), + B(GetIterator), R(10), U8(8), B(Star), R(11), B(CallProperty0), R(11), R(10), U8(10), B(Star), R(11), B(InvokeIntrinsic), U8(Runtime::k_CreateAsyncFromSyncIterator), R(11), U8(1), B(Star), R(7), - B(LdaNamedProperty), R(7), U8(10), U8(12), + B(LdaNamedProperty), R(7), U8(9), U8(12), B(Star), R(9), B(LdaUndefined), B(Star), R(8), B(LdaZero), B(Star), R(6), B(Ldar), R(6), - B(SwitchOnSmiNoFeedback), U8(11), U8(2), I8(1), + B(SwitchOnSmiNoFeedback), U8(10), U8(2), I8(1), B(CallProperty1), R(9), R(7), R(8), U8(14), - B(Jump), U8(146), - B(LdaNamedProperty), R(7), U8(13), U8(16), - B(JumpIfUndefined), U8(13), - B(JumpIfNull), U8(11), + B(Jump), U8(140), + B(LdaNamedProperty), R(7), U8(12), U8(16), + B(JumpIfUndefinedOrNull), U8(11), + B(Star), R(10), + B(CallProperty1), R(10), R(7), R(8), U8(18), + B(Jump), U8(125), + B(Mov), R(0), R(10), + B(Mov), R(8), R(11), + B(InvokeIntrinsic), U8(Runtime::k_AsyncGeneratorAwaitUncaught), R(10), U8(2), + /* 49 E> */ B(SuspendGenerator), R(0), R(0), U8(10), U8(1), + B(ResumeGenerator), R(0), R(0), U8(10), + B(Star), R(10), + B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1), + B(Star), R(11), + B(LdaZero), + B(TestReferenceEqual), R(11), + B(JumpIfTrue), U8(5), + B(Ldar), R(10), + B(ReThrow), + B(LdaSmi), I8(1), + B(Star), R(1), + B(Mov), R(10), R(2), + B(Jump), U8(241), + B(LdaNamedProperty), R(7), U8(13), U8(20), + B(JumpIfUndefinedOrNull), U8(11), B(Star), R(12), - B(CallProperty1), R(12), R(7), R(8), U8(18), - B(Jump), U8(129), + B(CallProperty1), R(12), R(7), R(8), U8(22), + B(Jump), U8(66), + B(LdaNamedProperty), R(7), U8(12), U8(24), + B(JumpIfUndefinedOrNull), U8(55), + B(Star), R(12), + B(CallProperty0), R(12), R(7), U8(26), + B(Jump), U8(2), + B(Star), R(13), B(Mov), R(0), R(12), - B(Mov), R(8), R(13), B(InvokeIntrinsic), U8(Runtime::k_AsyncGeneratorAwaitUncaught), R(12), U8(2), - /* 49 E> */ B(SuspendGenerator), R(0), R(0), U8(12), U8(1), + /* 49 E> */ B(SuspendGenerator), R(0), R(0), U8(12), U8(2), B(ResumeGenerator), R(0), R(0), U8(12), B(Star), R(12), B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1), @@ -480,72 +503,43 @@ bytecodes: [ B(JumpIfTrue), U8(5), B(Ldar), R(12), B(ReThrow), - B(LdaSmi), I8(1), - B(Star), R(1), - B(Mov), R(12), R(2), - B(Jump), U8(245), - B(LdaNamedProperty), R(7), U8(14), U8(20), - B(JumpIfUndefined), U8(13), - B(JumpIfNull), U8(11), - B(Star), R(14), - B(CallProperty1), R(14), R(7), R(8), U8(22), - B(Jump), U8(68), - B(LdaNamedProperty), R(7), U8(13), U8(24), - B(JumpIfUndefined), U8(57), - B(JumpIfNull), U8(55), - B(Star), R(14), - B(CallProperty0), R(14), R(7), U8(26), - B(Jump), U8(2), - B(Star), R(15), - B(Mov), R(0), R(14), - B(InvokeIntrinsic), U8(Runtime::k_AsyncGeneratorAwaitUncaught), R(14), U8(2), - /* 49 E> */ B(SuspendGenerator), R(0), R(0), U8(14), U8(2), - B(ResumeGenerator), R(0), R(0), U8(14), - B(Star), R(14), - B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1), - B(Star), R(15), - B(LdaZero), - B(TestReferenceEqual), R(15), - B(JumpIfTrue), U8(5), - B(Ldar), R(14), - B(ReThrow), - B(Ldar), R(14), + B(Ldar), R(12), B(JumpIfJSReceiver), U8(9), - B(Star), R(16), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(16), U8(1), - B(CallRuntime), U16(Runtime::kThrowThrowMethodMissing), R(0), U8(0), - B(Star), R(15), - B(Mov), R(0), R(14), - B(InvokeIntrinsic), U8(Runtime::k_AsyncGeneratorAwaitUncaught), R(14), U8(2), - /* 49 E> */ B(SuspendGenerator), R(0), R(0), U8(14), U8(3), - B(ResumeGenerator), R(0), R(0), U8(14), B(Star), R(14), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(14), U8(1), + B(CallRuntime), U16(Runtime::kThrowThrowMethodMissing), R(0), U8(0), + B(Star), R(13), + B(Mov), R(0), R(12), + B(InvokeIntrinsic), U8(Runtime::k_AsyncGeneratorAwaitUncaught), R(12), U8(2), + /* 49 E> */ B(SuspendGenerator), R(0), R(0), U8(12), U8(3), + B(ResumeGenerator), R(0), R(0), U8(12), + B(Star), R(12), B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1), - B(Star), R(15), + B(Star), R(13), B(LdaZero), - B(TestReferenceEqual), R(15), + B(TestReferenceEqual), R(13), B(JumpIfTrue), U8(5), - B(Ldar), R(14), + B(Ldar), R(12), B(ReThrow), - B(Ldar), R(14), - B(Mov), R(14), R(5), + B(Ldar), R(12), + B(Mov), R(12), R(5), B(JumpIfJSReceiver), U8(7), B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(5), U8(1), - B(LdaNamedProperty), R(5), U8(15), U8(28), + B(LdaNamedProperty), R(5), U8(14), U8(28), B(JumpIfToBooleanTrue), U8(38), - B(LdaNamedProperty), R(5), U8(16), U8(30), - B(Star), R(17), + B(LdaNamedProperty), R(5), U8(15), U8(30), + B(Star), R(15), B(LdaFalse), - B(Star), R(18), - B(Mov), R(0), R(16), - B(InvokeIntrinsic), U8(Runtime::k_AsyncGeneratorYield), R(16), U8(3), - /* 49 E> */ B(SuspendGenerator), R(0), R(0), U8(16), U8(4), - B(ResumeGenerator), R(0), R(0), U8(16), + B(Star), R(16), + B(Mov), R(0), R(14), + B(InvokeIntrinsic), U8(Runtime::k_AsyncGeneratorYield), R(14), U8(3), + /* 49 E> */ B(SuspendGenerator), R(0), R(0), U8(14), U8(4), + B(ResumeGenerator), R(0), R(0), U8(14), B(Star), R(8), B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1), B(Star), R(6), - B(JumpLoop), U8(242), I8(0), - B(LdaNamedProperty), R(5), U8(16), U8(32), + B(JumpLoop), U8(236), I8(0), + B(LdaNamedProperty), R(5), U8(15), U8(32), B(Star), R(7), B(LdaSmi), I8(1), B(TestReferenceEqual), R(6), @@ -557,7 +551,7 @@ bytecodes: [ B(Ldar), R(7), B(Jump), U8(36), B(Star), R(5), - B(CreateCatchContext), R(5), U8(17), + B(CreateCatchContext), R(5), U8(16), B(Star), R(4), B(LdaTheHole), B(SetPendingMessage), @@ -586,7 +580,7 @@ bytecodes: [ B(Ldar), R(3), B(SetPendingMessage), B(Ldar), R(1), - B(SwitchOnSmiNoFeedback), U8(19), U8(3), I8(0), + B(SwitchOnSmiNoFeedback), U8(18), U8(3), I8(0), B(Jump), U8(22), B(Ldar), R(2), B(ReThrow), @@ -603,30 +597,29 @@ bytecodes: [ ] constant pool: [ Smi [30], - Smi [162], - Smi [238], - Smi [288], - Smi [347], + Smi [157], + Smi [229], + Smi [279], + Smi [338], Smi [16], Smi [7], ONE_BYTE_INTERNALIZED_STRING_TYPE ["g"], SYMBOL_TYPE, - SYMBOL_TYPE, ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"], Smi [11], - Smi [72], + Smi [70], ONE_BYTE_INTERNALIZED_STRING_TYPE ["return"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["throw"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"], SCOPE_INFO_TYPE, - Smi [380], + Smi [371], Smi [6], Smi [9], Smi [23], ] handlers: [ - [20, 421, 429], - [23, 383, 387], + [20, 412, 420], + [23, 374, 378], ] diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/CallAndSpread.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/CallAndSpread.golden index 33bd5434b4..963cbee018 100644 --- a/deps/v8/test/cctest/interpreter/bytecode_expectations/CallAndSpread.golden +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/CallAndSpread.golden @@ -65,9 +65,9 @@ handlers: [ snippet: " Math.max(0, ...[1, 2, 3], 4); " -frame size: 10 +frame size: 9 parameter count: 1 -bytecode array length: 107 +bytecode array length: 106 bytecodes: [ /* 30 E> */ B(StackCheck), /* 34 S> */ B(LdaGlobal), U8(0), U8(0), @@ -80,22 +80,22 @@ bytecodes: [ B(Star), R(3), /* 49 S> */ B(CreateArrayLiteral), U8(4), U8(5), U8(37), B(Star), R(7), - B(LdaNamedProperty), R(7), U8(5), U8(6), + B(GetIterator), R(7), U8(6), B(Star), R(8), B(CallProperty0), R(8), R(7), U8(8), B(Mov), R(0), R(2), B(JumpIfJSReceiver), U8(7), B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0), B(Star), R(6), - B(LdaNamedProperty), R(6), U8(6), U8(10), + B(LdaNamedProperty), R(6), U8(5), U8(10), B(Star), R(5), B(CallProperty0), R(5), R(6), U8(19), - B(Star), R(9), + B(Star), R(7), B(JumpIfJSReceiver), U8(7), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(9), U8(1), - B(LdaNamedProperty), R(9), U8(7), U8(21), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(7), U8(1), + B(LdaNamedProperty), R(7), U8(6), U8(21), B(JumpIfToBooleanTrue), U8(19), - B(LdaNamedProperty), R(9), U8(8), U8(12), + B(LdaNamedProperty), R(7), U8(7), U8(12), B(StaInArrayLiteral), R(4), R(3), U8(17), B(Ldar), R(3), B(Inc), U8(16), @@ -114,7 +114,6 @@ constant pool: [ ARRAY_BOILERPLATE_DESCRIPTION_TYPE, Smi [1], ARRAY_BOILERPLATE_DESCRIPTION_TYPE, - SYMBOL_TYPE, ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"], diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/DestructuringAssignment.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/DestructuringAssignment.golden index 2d44b972a0..e26b79a9fb 100644 --- a/deps/v8/test/cctest/interpreter/bytecode_expectations/DestructuringAssignment.golden +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/DestructuringAssignment.golden @@ -10,93 +10,90 @@ snippet: " var x, a = [0,1,2,3]; [x] = a; " -frame size: 16 +frame size: 14 parameter count: 1 -bytecode array length: 178 +bytecode array length: 172 bytecodes: [ /* 30 E> */ B(StackCheck), /* 45 S> */ B(CreateArrayLiteral), U8(0), U8(0), U8(37), B(Star), R(1), - /* 60 S> */ B(LdaNamedProperty), R(1), U8(1), U8(1), + /* 60 S> */ B(GetIterator), R(1), U8(1), B(Star), R(6), B(CallProperty0), R(6), R(1), U8(3), - B(Mov), R(1), R(5), B(Mov), R(1), R(2), B(JumpIfJSReceiver), U8(7), B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0), B(Star), R(4), - B(LdaNamedProperty), R(4), U8(2), U8(5), + B(LdaNamedProperty), R(4), U8(1), U8(5), B(Star), R(3), B(LdaFalse), - B(Star), R(7), - B(Mov), R(context), R(10), - /* 57 S> */ B(Ldar), R(7), + B(Star), R(5), + B(Mov), R(context), R(8), + /* 57 S> */ B(Ldar), R(5), B(JumpIfToBooleanTrue), U8(37), B(LdaTrue), - B(Star), R(7), + B(Star), R(5), B(CallProperty0), R(3), R(4), U8(11), - B(Star), R(11), + B(Star), R(9), B(JumpIfJSReceiver), U8(7), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(11), U8(1), - B(LdaNamedProperty), R(11), U8(3), U8(9), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(9), U8(1), + B(LdaNamedProperty), R(9), U8(2), U8(9), B(JumpIfToBooleanTrue), U8(15), - B(LdaNamedProperty), R(11), U8(4), U8(7), - B(Star), R(11), + B(LdaNamedProperty), R(9), U8(3), U8(7), + B(Star), R(9), B(LdaFalse), - B(Star), R(7), - B(Ldar), R(11), + B(Star), R(5), + B(Ldar), R(9), B(Jump), U8(3), B(LdaUndefined), B(Star), R(0), B(LdaSmi), I8(-1), - B(Star), R(9), - B(Star), R(8), + B(Star), R(7), + B(Star), R(6), B(Jump), U8(7), - B(Star), R(9), + B(Star), R(7), B(LdaZero), - B(Star), R(8), + B(Star), R(6), B(LdaTheHole), B(SetPendingMessage), + B(Star), R(8), + B(Ldar), R(5), + B(JumpIfToBooleanTrue), U8(58), + B(LdaNamedProperty), R(4), U8(4), U8(13), B(Star), R(10), - B(Ldar), R(7), - B(JumpIfToBooleanTrue), U8(60), - B(LdaNamedProperty), R(4), U8(5), U8(13), - B(Star), R(12), - B(JumpIfUndefined), U8(52), - B(JumpIfNull), U8(50), - B(Mov), R(context), R(13), + B(JumpIfUndefinedOrNull), U8(50), + B(Mov), R(context), R(11), B(TestTypeOf), U8(6), B(JumpIfTrue), U8(18), B(Wide), B(LdaSmi), I16(159), - B(Star), R(14), - B(LdaConstant), U8(6), - B(Star), R(15), - B(CallRuntime), U16(Runtime::kNewTypeError), R(14), U8(2), + B(Star), R(12), + B(LdaConstant), U8(5), + B(Star), R(13), + B(CallRuntime), U16(Runtime::kNewTypeError), R(12), U8(2), B(Throw), - B(CallProperty0), R(12), R(4), U8(15), + B(CallProperty0), R(10), R(4), U8(15), B(JumpIfJSReceiver), U8(21), - B(Star), R(14), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(14), U8(1), + B(Star), R(12), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(12), U8(1), B(Jump), U8(12), - B(Star), R(13), + B(Star), R(11), B(LdaZero), - B(TestReferenceEqual), R(8), + B(TestReferenceEqual), R(6), B(JumpIfTrue), U8(5), - B(Ldar), R(13), + B(Ldar), R(11), B(ReThrow), - B(Ldar), R(10), + B(Ldar), R(8), B(SetPendingMessage), B(LdaZero), - B(TestReferenceEqual), R(8), + B(TestReferenceEqual), R(6), B(JumpIfFalse), U8(5), - B(Ldar), R(9), + B(Ldar), R(7), B(ReThrow), B(LdaUndefined), /* 65 S> */ B(Return), ] constant pool: [ ARRAY_BOILERPLATE_DESCRIPTION_TYPE, - SYMBOL_TYPE, ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"], @@ -104,8 +101,8 @@ constant pool: [ ONE_BYTE_INTERNALIZED_STRING_TYPE [""], ] handlers: [ - [44, 86, 94], - [120, 153, 155], + [40, 82, 90], + [114, 147, 149], ] --- @@ -113,127 +110,124 @@ snippet: " var x, y, a = [0,1,2,3]; [,x,...y] = a; " -frame size: 17 +frame size: 15 parameter count: 1 -bytecode array length: 264 +bytecode array length: 258 bytecodes: [ /* 30 E> */ B(StackCheck), /* 48 S> */ B(CreateArrayLiteral), U8(0), U8(0), U8(37), B(Star), R(2), - /* 69 S> */ B(LdaNamedProperty), R(2), U8(1), U8(1), + /* 69 S> */ B(GetIterator), R(2), U8(1), B(Star), R(7), B(CallProperty0), R(7), R(2), U8(3), - B(Mov), R(2), R(6), B(Mov), R(2), R(3), B(JumpIfJSReceiver), U8(7), B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0), B(Star), R(5), - B(LdaNamedProperty), R(5), U8(2), U8(5), + B(LdaNamedProperty), R(5), U8(1), U8(5), B(Star), R(4), B(LdaFalse), - B(Star), R(8), - B(Mov), R(context), R(11), - B(Ldar), R(8), + B(Star), R(6), + B(Mov), R(context), R(9), + B(Ldar), R(6), B(JumpIfToBooleanTrue), U8(35), B(LdaTrue), - B(Star), R(8), + B(Star), R(6), B(CallProperty0), R(4), R(5), U8(11), - B(Star), R(12), + B(Star), R(10), B(JumpIfJSReceiver), U8(7), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(12), U8(1), - B(LdaNamedProperty), R(12), U8(3), U8(9), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(10), U8(1), + B(LdaNamedProperty), R(10), U8(2), U8(9), B(JumpIfToBooleanTrue), U8(13), - B(LdaNamedProperty), R(12), U8(4), U8(7), - B(Star), R(12), + B(LdaNamedProperty), R(10), U8(3), U8(7), + B(Star), R(10), B(LdaFalse), - B(Star), R(8), - B(Ldar), R(12), - /* 61 S> */ B(Ldar), R(8), + B(Star), R(6), + B(Ldar), R(10), + /* 61 S> */ B(Ldar), R(6), B(JumpIfToBooleanTrue), U8(37), B(LdaTrue), - B(Star), R(8), + B(Star), R(6), B(CallProperty0), R(4), R(5), U8(13), - B(Star), R(12), + B(Star), R(10), B(JumpIfJSReceiver), U8(7), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(12), U8(1), - B(LdaNamedProperty), R(12), U8(3), U8(9), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(10), U8(1), + B(LdaNamedProperty), R(10), U8(2), U8(9), B(JumpIfToBooleanTrue), U8(15), - B(LdaNamedProperty), R(12), U8(4), U8(7), - B(Star), R(12), + B(LdaNamedProperty), R(10), U8(3), U8(7), + B(Star), R(10), B(LdaFalse), - B(Star), R(8), - B(Ldar), R(12), + B(Star), R(6), + B(Ldar), R(10), B(Jump), U8(3), B(LdaUndefined), B(Star), R(0), /* 63 S> */ B(CreateEmptyArrayLiteral), U8(15), - B(Star), R(13), + B(Star), R(11), B(LdaZero), - B(Star), R(14), + B(Star), R(12), B(LdaTrue), - B(Star), R(8), + B(Star), R(6), B(CallProperty0), R(4), R(5), U8(19), - B(Star), R(12), + B(Star), R(10), B(JumpIfJSReceiver), U8(7), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(12), U8(1), - B(LdaNamedProperty), R(12), U8(3), U8(21), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(10), U8(1), + B(LdaNamedProperty), R(10), U8(2), U8(21), B(JumpIfToBooleanTrue), U8(19), - B(LdaNamedProperty), R(12), U8(4), U8(7), - B(StaInArrayLiteral), R(13), R(14), U8(16), - B(Ldar), R(14), + B(LdaNamedProperty), R(10), U8(3), U8(7), + B(StaInArrayLiteral), R(11), R(12), U8(16), + B(Ldar), R(12), B(Inc), U8(18), - B(Star), R(14), + B(Star), R(12), B(JumpLoop), U8(33), I8(0), - B(Mov), R(13), R(1), + B(Mov), R(11), R(1), B(LdaSmi), I8(-1), - B(Star), R(10), - B(Star), R(9), + B(Star), R(8), + B(Star), R(7), B(Jump), U8(7), - B(Star), R(10), + B(Star), R(8), B(LdaZero), - B(Star), R(9), + B(Star), R(7), B(LdaTheHole), B(SetPendingMessage), + B(Star), R(9), + B(Ldar), R(6), + B(JumpIfToBooleanTrue), U8(58), + B(LdaNamedProperty), R(5), U8(4), U8(23), B(Star), R(11), - B(Ldar), R(8), - B(JumpIfToBooleanTrue), U8(60), - B(LdaNamedProperty), R(5), U8(5), U8(23), - B(Star), R(13), - B(JumpIfUndefined), U8(52), - B(JumpIfNull), U8(50), - B(Mov), R(context), R(14), + B(JumpIfUndefinedOrNull), U8(50), + B(Mov), R(context), R(12), B(TestTypeOf), U8(6), B(JumpIfTrue), U8(18), B(Wide), B(LdaSmi), I16(159), - B(Star), R(15), - B(LdaConstant), U8(6), - B(Star), R(16), - B(CallRuntime), U16(Runtime::kNewTypeError), R(15), U8(2), + B(Star), R(13), + B(LdaConstant), U8(5), + B(Star), R(14), + B(CallRuntime), U16(Runtime::kNewTypeError), R(13), U8(2), B(Throw), - B(CallProperty0), R(13), R(5), U8(25), + B(CallProperty0), R(11), R(5), U8(25), B(JumpIfJSReceiver), U8(21), - B(Star), R(15), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(15), U8(1), + B(Star), R(13), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(13), U8(1), B(Jump), U8(12), - B(Star), R(14), + B(Star), R(12), B(LdaZero), - B(TestReferenceEqual), R(9), + B(TestReferenceEqual), R(7), B(JumpIfTrue), U8(5), - B(Ldar), R(14), + B(Ldar), R(12), B(ReThrow), - B(Ldar), R(11), + B(Ldar), R(9), B(SetPendingMessage), B(LdaZero), - B(TestReferenceEqual), R(9), + B(TestReferenceEqual), R(7), B(JumpIfFalse), U8(5), - B(Ldar), R(10), + B(Ldar), R(8), B(ReThrow), B(LdaUndefined), /* 74 S> */ B(Return), ] constant pool: [ ARRAY_BOILERPLATE_DESCRIPTION_TYPE, - SYMBOL_TYPE, ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"], @@ -241,8 +235,8 @@ constant pool: [ ONE_BYTE_INTERNALIZED_STRING_TYPE [""], ] handlers: [ - [44, 172, 180], - [206, 239, 241], + [40, 168, 176], + [200, 233, 235], ] --- @@ -250,114 +244,111 @@ snippet: " var x={}, y, a = [0]; [x.foo,y=4] = a; " -frame size: 18 +frame size: 16 parameter count: 1 -bytecode array length: 229 +bytecode array length: 223 bytecodes: [ /* 30 E> */ B(StackCheck), /* 40 S> */ B(CreateEmptyObjectLiteral), B(Star), R(0), /* 51 S> */ B(CreateArrayLiteral), U8(0), U8(0), U8(37), B(Star), R(2), - /* 68 S> */ B(LdaNamedProperty), R(2), U8(1), U8(1), + /* 68 S> */ B(GetIterator), R(2), U8(1), B(Star), R(7), B(CallProperty0), R(7), R(2), U8(3), - B(Mov), R(2), R(6), B(Mov), R(2), R(3), B(JumpIfJSReceiver), U8(7), B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0), B(Star), R(5), - B(LdaNamedProperty), R(5), U8(2), U8(5), + B(LdaNamedProperty), R(5), U8(1), U8(5), B(Star), R(4), B(LdaFalse), - B(Star), R(8), - B(Mov), R(context), R(11), - /* 59 S> */ B(Ldar), R(8), - B(Mov), R(0), R(13), + B(Star), R(6), + B(Mov), R(context), R(9), + /* 59 S> */ B(Ldar), R(6), + B(Mov), R(0), R(11), B(JumpIfToBooleanTrue), U8(37), B(LdaTrue), - B(Star), R(8), + B(Star), R(6), B(CallProperty0), R(4), R(5), U8(11), - B(Star), R(12), + B(Star), R(10), B(JumpIfJSReceiver), U8(7), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(12), U8(1), - B(LdaNamedProperty), R(12), U8(3), U8(9), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(10), U8(1), + B(LdaNamedProperty), R(10), U8(2), U8(9), B(JumpIfToBooleanTrue), U8(15), - B(LdaNamedProperty), R(12), U8(4), U8(7), - B(Star), R(12), + B(LdaNamedProperty), R(10), U8(3), U8(7), + B(Star), R(10), B(LdaFalse), - B(Star), R(8), - B(Ldar), R(12), + B(Star), R(6), + B(Ldar), R(10), B(Jump), U8(3), B(LdaUndefined), - B(StaNamedProperty), R(13), U8(5), U8(13), - /* 63 S> */ B(Ldar), R(8), + B(StaNamedProperty), R(11), U8(4), U8(13), + /* 63 S> */ B(Ldar), R(6), B(JumpIfToBooleanTrue), U8(37), B(LdaTrue), - B(Star), R(8), + B(Star), R(6), B(CallProperty0), R(4), R(5), U8(15), - B(Star), R(12), + B(Star), R(10), B(JumpIfJSReceiver), U8(7), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(12), U8(1), - B(LdaNamedProperty), R(12), U8(3), U8(9), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(10), U8(1), + B(LdaNamedProperty), R(10), U8(2), U8(9), B(JumpIfToBooleanTrue), U8(15), - B(LdaNamedProperty), R(12), U8(4), U8(7), - B(Star), R(12), + B(LdaNamedProperty), R(10), U8(3), U8(7), + B(Star), R(10), B(LdaFalse), - B(Star), R(8), - B(Ldar), R(12), + B(Star), R(6), + B(Ldar), R(10), B(JumpIfNotUndefined), U8(4), B(LdaSmi), I8(4), B(Star), R(1), B(LdaSmi), I8(-1), - B(Star), R(10), - B(Star), R(9), + B(Star), R(8), + B(Star), R(7), B(Jump), U8(7), - B(Star), R(10), + B(Star), R(8), B(LdaZero), - B(Star), R(9), + B(Star), R(7), B(LdaTheHole), B(SetPendingMessage), - B(Star), R(11), - B(Ldar), R(8), - B(JumpIfToBooleanTrue), U8(60), - B(LdaNamedProperty), R(5), U8(6), U8(17), - B(Star), R(14), - B(JumpIfUndefined), U8(52), - B(JumpIfNull), U8(50), - B(Mov), R(context), R(15), + B(Star), R(9), + B(Ldar), R(6), + B(JumpIfToBooleanTrue), U8(58), + B(LdaNamedProperty), R(5), U8(5), U8(17), + B(Star), R(12), + B(JumpIfUndefinedOrNull), U8(50), + B(Mov), R(context), R(13), B(TestTypeOf), U8(6), B(JumpIfTrue), U8(18), B(Wide), B(LdaSmi), I16(159), - B(Star), R(16), - B(LdaConstant), U8(7), - B(Star), R(17), - B(CallRuntime), U16(Runtime::kNewTypeError), R(16), U8(2), + B(Star), R(14), + B(LdaConstant), U8(6), + B(Star), R(15), + B(CallRuntime), U16(Runtime::kNewTypeError), R(14), U8(2), B(Throw), - B(CallProperty0), R(14), R(5), U8(19), + B(CallProperty0), R(12), R(5), U8(19), B(JumpIfJSReceiver), U8(21), - B(Star), R(16), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(16), U8(1), + B(Star), R(14), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(14), U8(1), B(Jump), U8(12), - B(Star), R(15), + B(Star), R(13), B(LdaZero), - B(TestReferenceEqual), R(9), + B(TestReferenceEqual), R(7), B(JumpIfTrue), U8(5), - B(Ldar), R(15), + B(Ldar), R(13), B(ReThrow), - B(Ldar), R(11), + B(Ldar), R(9), B(SetPendingMessage), B(LdaZero), - B(TestReferenceEqual), R(9), + B(TestReferenceEqual), R(7), B(JumpIfFalse), U8(5), - B(Ldar), R(10), + B(Ldar), R(8), B(ReThrow), B(LdaUndefined), /* 73 S> */ B(Return), ] constant pool: [ ARRAY_BOILERPLATE_DESCRIPTION_TYPE, - SYMBOL_TYPE, ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"], @@ -366,8 +357,8 @@ constant pool: [ ONE_BYTE_INTERNALIZED_STRING_TYPE [""], ] handlers: [ - [47, 137, 145], - [171, 204, 206], + [43, 133, 141], + [165, 198, 200], ] --- @@ -375,18 +366,14 @@ snippet: " var x, a = {x:1}; ({x} = a); " -frame size: 3 +frame size: 2 parameter count: 1 -bytecode array length: 26 +bytecode array length: 15 bytecodes: [ /* 30 E> */ B(StackCheck), /* 45 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(41), B(Star), R(1), - /* 52 S> */ B(JumpIfNull), U8(4), - B(JumpIfNotUndefined), U8(7), - /* 53 E> */ B(CallRuntime), U16(Runtime::kThrowPatternAssignmentNonCoercible), R(0), U8(0), - B(Star), R(2), - /* 54 S> */ B(LdaNamedProperty), R(2), U8(1), U8(1), + /* 54 S> */ B(LdaNamedProperty), R(1), U8(1), U8(1), B(Star), R(0), B(LdaUndefined), /* 63 S> */ B(Return), @@ -403,20 +390,16 @@ snippet: " var x={}, a = {y:1}; ({y:x.foo} = a); " -frame size: 3 +frame size: 2 parameter count: 1 -bytecode array length: 31 +bytecode array length: 20 bytecodes: [ /* 30 E> */ B(StackCheck), /* 40 S> */ B(CreateEmptyObjectLiteral), B(Star), R(0), /* 48 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(41), B(Star), R(1), - /* 55 S> */ B(JumpIfNull), U8(4), - B(JumpIfNotUndefined), U8(7), - /* 56 E> */ B(CallRuntime), U16(Runtime::kThrowPatternAssignmentNonCoercible), R(0), U8(0), - /* 61 S> */ B(Star), R(2), - B(LdaNamedProperty), R(2), U8(1), U8(1), + /* 61 S> */ B(LdaNamedProperty), R(1), U8(1), U8(1), B(StaNamedProperty), R(0), U8(2), U8(3), B(LdaUndefined), /* 72 S> */ B(Return), @@ -436,18 +419,15 @@ snippet: " " frame size: 4 parameter count: 1 -bytecode array length: 41 +bytecode array length: 33 bytecodes: [ /* 30 E> */ B(StackCheck), /* 45 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(41), B(Star), R(1), - /* 62 S> */ B(JumpIfNull), U8(4), - B(JumpIfNotUndefined), U8(7), - /* 63 E> */ B(CallRuntime), U16(Runtime::kThrowPatternAssignmentNonCoercible), R(0), U8(0), - B(Star), R(2), /* 64 S> */ B(LdaConstant), U8(1), B(Star), R(3), - B(LdaNamedProperty), R(2), U8(1), U8(1), + B(LdaNamedProperty), R(1), U8(1), U8(1), + B(Mov), R(1), R(2), B(JumpIfNotUndefined), U8(3), B(LdaZero), B(Star), R(0), diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/ForAwaitOf.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/ForAwaitOf.golden index 1cafe42d28..f60e591040 100644 --- a/deps/v8/test/cctest/interpreter/bytecode_expectations/ForAwaitOf.golden +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/ForAwaitOf.golden @@ -14,9 +14,9 @@ snippet: " } f(); " -frame size: 21 +frame size: 19 parameter count: 1 -bytecode array length: 325 +bytecode array length: 320 bytecodes: [ B(SwitchOnGeneratorState), R(0), U8(0), U8(2), B(Mov), R(closure), R(4), @@ -28,110 +28,108 @@ bytecodes: [ /* 43 S> */ B(CreateArrayLiteral), U8(2), U8(0), U8(37), B(Star), R(7), B(LdaNamedProperty), R(7), U8(3), U8(1), - B(JumpIfUndefined), U8(17), - B(JumpIfNull), U8(15), + B(JumpIfUndefinedOrNull), U8(15), B(Star), R(8), B(CallProperty0), R(8), R(7), U8(3), - B(JumpIfJSReceiver), U8(23), + B(JumpIfJSReceiver), U8(22), B(CallRuntime), U16(Runtime::kThrowSymbolAsyncIteratorInvalid), R(0), U8(0), - B(LdaNamedProperty), R(7), U8(4), U8(5), + B(GetIterator), R(7), U8(5), B(Star), R(8), B(CallProperty0), R(8), R(7), U8(7), B(Star), R(8), B(InvokeIntrinsic), U8(Runtime::k_CreateAsyncFromSyncIterator), R(8), U8(1), B(Star), R(6), - B(LdaNamedProperty), R(6), U8(5), U8(9), + B(LdaNamedProperty), R(6), U8(4), U8(9), B(Star), R(5), B(LdaFalse), - B(Star), R(9), - B(Mov), R(context), R(12), + B(Star), R(7), + B(Mov), R(context), R(10), B(LdaTrue), - B(Star), R(9), + B(Star), R(7), /* 38 S> */ B(CallProperty0), R(5), R(6), U8(11), - B(Star), R(15), - B(Mov), R(0), R(14), - B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionAwaitUncaught), R(14), U8(2), - B(SuspendGenerator), R(0), R(0), U8(14), U8(0), - B(ResumeGenerator), R(0), R(0), U8(14), - B(Star), R(14), + B(Star), R(13), + B(Mov), R(0), R(12), + B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionAwaitUncaught), R(12), U8(2), + B(SuspendGenerator), R(0), R(0), U8(12), U8(0), + B(ResumeGenerator), R(0), R(0), U8(12), + B(Star), R(12), B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1), - B(Star), R(15), + B(Star), R(13), B(LdaZero), - B(TestReferenceEqual), R(15), + B(TestReferenceEqual), R(13), B(JumpIfTrue), U8(5), - B(Ldar), R(14), + B(Ldar), R(12), B(ReThrow), - B(Ldar), R(14), - B(Mov), R(14), R(13), + B(Ldar), R(12), + B(Mov), R(12), R(11), B(JumpIfJSReceiver), U8(7), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(13), U8(1), - B(LdaNamedProperty), R(13), U8(6), U8(13), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(11), U8(1), + B(LdaNamedProperty), R(11), U8(5), U8(13), B(JumpIfToBooleanTrue), U8(23), - B(LdaNamedProperty), R(13), U8(7), U8(15), - B(Star), R(13), + B(LdaNamedProperty), R(11), U8(6), U8(15), + B(Star), R(11), B(LdaFalse), - B(Star), R(9), - B(Mov), R(13), R(1), + B(Star), R(7), + B(Mov), R(11), R(1), /* 23 E> */ B(StackCheck), /* 38 S> */ B(Mov), R(1), R(3), - B(Ldar), R(13), + B(Ldar), R(11), B(JumpLoop), U8(77), I8(0), B(LdaSmi), I8(-1), - B(Star), R(11), - B(Star), R(10), + B(Star), R(9), + B(Star), R(8), B(Jump), U8(7), - B(Star), R(11), + B(Star), R(9), B(LdaZero), - B(Star), R(10), + B(Star), R(8), B(LdaTheHole), /* 38 E> */ B(SetPendingMessage), - B(Star), R(12), - B(Ldar), R(9), - B(JumpIfToBooleanTrue), U8(96), - B(LdaNamedProperty), R(6), U8(8), U8(17), - B(Star), R(16), - B(JumpIfUndefined), U8(88), - B(JumpIfNull), U8(86), - B(Mov), R(context), R(17), + B(Star), R(10), + B(Ldar), R(7), + B(JumpIfToBooleanTrue), U8(94), + B(LdaNamedProperty), R(6), U8(7), U8(17), + B(Star), R(14), + B(JumpIfUndefinedOrNull), U8(86), + B(Mov), R(context), R(15), B(TestTypeOf), U8(6), B(JumpIfTrue), U8(18), B(Wide), B(LdaSmi), I16(159), - B(Star), R(18), - B(LdaConstant), U8(9), - B(Star), R(19), - B(CallRuntime), U16(Runtime::kNewTypeError), R(18), U8(2), + B(Star), R(16), + B(LdaConstant), U8(8), + B(Star), R(17), + B(CallRuntime), U16(Runtime::kNewTypeError), R(16), U8(2), B(Throw), - B(CallProperty0), R(16), R(6), U8(19), - B(Star), R(19), - B(Mov), R(0), R(18), - B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionAwaitUncaught), R(18), U8(2), - B(SuspendGenerator), R(0), R(0), U8(18), U8(1), - B(ResumeGenerator), R(0), R(0), U8(18), - B(Star), R(18), + B(CallProperty0), R(14), R(6), U8(19), + B(Star), R(17), + B(Mov), R(0), R(16), + B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionAwaitUncaught), R(16), U8(2), + B(SuspendGenerator), R(0), R(0), U8(16), U8(1), + B(ResumeGenerator), R(0), R(0), U8(16), + B(Star), R(16), B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1), - B(Star), R(19), + B(Star), R(17), B(LdaZero), - B(TestReferenceEqual), R(19), + B(TestReferenceEqual), R(17), B(JumpIfTrue), U8(5), - B(Ldar), R(18), + B(Ldar), R(16), B(ReThrow), - B(Ldar), R(18), + B(Ldar), R(16), B(JumpIfJSReceiver), U8(21), - B(Star), R(20), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(20), U8(1), + B(Star), R(18), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(18), U8(1), B(Jump), U8(12), - B(Star), R(17), + B(Star), R(15), B(LdaZero), - B(TestReferenceEqual), R(10), + B(TestReferenceEqual), R(8), B(JumpIfTrue), U8(5), - B(Ldar), R(17), + B(Ldar), R(15), B(ReThrow), - B(Ldar), R(12), + B(Ldar), R(10), B(SetPendingMessage), B(LdaZero), - B(TestReferenceEqual), R(10), + B(TestReferenceEqual), R(8), B(JumpIfFalse), U8(5), - B(Ldar), R(11), + B(Ldar), R(9), B(ReThrow), B(LdaUndefined), B(Star), R(6), @@ -141,7 +139,7 @@ bytecodes: [ B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionResolve), R(5), U8(3), /* 57 S> */ B(Return), B(Star), R(5), - B(CreateCatchContext), R(5), U8(10), + B(CreateCatchContext), R(5), U8(9), B(Star), R(4), B(LdaTheHole), B(SetPendingMessage), @@ -156,11 +154,10 @@ bytecodes: [ /* 57 S> */ B(Return), ] constant pool: [ - Smi [98], - Smi [229], + Smi [95], + Smi [224], ARRAY_BOILERPLATE_DESCRIPTION_TYPE, SYMBOL_TYPE, - SYMBOL_TYPE, ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"], @@ -169,9 +166,9 @@ constant pool: [ SCOPE_INFO_TYPE, ] handlers: [ - [20, 297, 297], - [77, 157, 165], - [191, 260, 262], + [20, 292, 292], + [74, 154, 162], + [186, 255, 257], ] --- @@ -181,9 +178,9 @@ snippet: " } f(); " -frame size: 21 +frame size: 19 parameter count: 1 -bytecode array length: 346 +bytecode array length: 341 bytecodes: [ B(SwitchOnGeneratorState), R(0), U8(0), U8(2), B(Mov), R(closure), R(4), @@ -195,118 +192,116 @@ bytecodes: [ /* 43 S> */ B(CreateArrayLiteral), U8(2), U8(0), U8(37), B(Star), R(7), B(LdaNamedProperty), R(7), U8(3), U8(1), - B(JumpIfUndefined), U8(17), - B(JumpIfNull), U8(15), + B(JumpIfUndefinedOrNull), U8(15), B(Star), R(8), B(CallProperty0), R(8), R(7), U8(3), - B(JumpIfJSReceiver), U8(23), + B(JumpIfJSReceiver), U8(22), B(CallRuntime), U16(Runtime::kThrowSymbolAsyncIteratorInvalid), R(0), U8(0), - B(LdaNamedProperty), R(7), U8(4), U8(5), + B(GetIterator), R(7), U8(5), B(Star), R(8), B(CallProperty0), R(8), R(7), U8(7), B(Star), R(8), B(InvokeIntrinsic), U8(Runtime::k_CreateAsyncFromSyncIterator), R(8), U8(1), B(Star), R(6), - B(LdaNamedProperty), R(6), U8(5), U8(9), + B(LdaNamedProperty), R(6), U8(4), U8(9), B(Star), R(5), B(LdaFalse), - B(Star), R(9), - B(Mov), R(context), R(12), + B(Star), R(7), + B(Mov), R(context), R(10), B(LdaTrue), - B(Star), R(9), + B(Star), R(7), /* 38 S> */ B(CallProperty0), R(5), R(6), U8(11), - B(Star), R(15), - B(Mov), R(0), R(14), - B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionAwaitUncaught), R(14), U8(2), - B(SuspendGenerator), R(0), R(0), U8(14), U8(0), - B(ResumeGenerator), R(0), R(0), U8(14), - B(Star), R(14), + B(Star), R(13), + B(Mov), R(0), R(12), + B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionAwaitUncaught), R(12), U8(2), + B(SuspendGenerator), R(0), R(0), U8(12), U8(0), + B(ResumeGenerator), R(0), R(0), U8(12), + B(Star), R(12), B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1), - B(Star), R(15), + B(Star), R(13), B(LdaZero), - B(TestReferenceEqual), R(15), + B(TestReferenceEqual), R(13), B(JumpIfTrue), U8(5), - B(Ldar), R(14), + B(Ldar), R(12), B(ReThrow), - B(Ldar), R(14), - B(Mov), R(14), R(13), + B(Ldar), R(12), + B(Mov), R(12), R(11), B(JumpIfJSReceiver), U8(7), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(13), U8(1), - B(LdaNamedProperty), R(13), U8(6), U8(13), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(11), U8(1), + B(LdaNamedProperty), R(11), U8(5), U8(13), B(JumpIfToBooleanTrue), U8(27), - B(LdaNamedProperty), R(13), U8(7), U8(15), - B(Star), R(13), + B(LdaNamedProperty), R(11), U8(6), U8(15), + B(Star), R(11), B(LdaFalse), - B(Star), R(9), - B(Mov), R(13), R(1), + B(Star), R(7), + B(Mov), R(11), R(1), /* 23 E> */ B(StackCheck), /* 38 S> */ B(Mov), R(1), R(3), /* 56 S> */ B(LdaSmi), I8(1), - B(Mov), R(13), R(11), - B(Star), R(10), + B(Mov), R(11), R(9), + B(Star), R(8), B(Jump), U8(15), B(LdaSmi), I8(-1), - B(Star), R(11), - B(Star), R(10), + B(Star), R(9), + B(Star), R(8), B(Jump), U8(7), - B(Star), R(11), + B(Star), R(9), B(LdaZero), - B(Star), R(10), + B(Star), R(8), B(LdaTheHole), B(SetPendingMessage), - B(Star), R(12), - B(Ldar), R(9), - B(JumpIfToBooleanTrue), U8(96), - B(LdaNamedProperty), R(6), U8(8), U8(17), - B(Star), R(16), - B(JumpIfUndefined), U8(88), - B(JumpIfNull), U8(86), - B(Mov), R(context), R(17), + B(Star), R(10), + B(Ldar), R(7), + B(JumpIfToBooleanTrue), U8(94), + B(LdaNamedProperty), R(6), U8(7), U8(17), + B(Star), R(14), + B(JumpIfUndefinedOrNull), U8(86), + B(Mov), R(context), R(15), B(TestTypeOf), U8(6), B(JumpIfTrue), U8(18), B(Wide), B(LdaSmi), I16(159), - B(Star), R(18), - B(LdaConstant), U8(9), - B(Star), R(19), - B(CallRuntime), U16(Runtime::kNewTypeError), R(18), U8(2), + B(Star), R(16), + B(LdaConstant), U8(8), + B(Star), R(17), + B(CallRuntime), U16(Runtime::kNewTypeError), R(16), U8(2), B(Throw), - B(CallProperty0), R(16), R(6), U8(19), - B(Star), R(19), - B(Mov), R(0), R(18), - B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionAwaitUncaught), R(18), U8(2), - B(SuspendGenerator), R(0), R(0), U8(18), U8(1), - B(ResumeGenerator), R(0), R(0), U8(18), - B(Star), R(18), + B(CallProperty0), R(14), R(6), U8(19), + B(Star), R(17), + B(Mov), R(0), R(16), + B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionAwaitUncaught), R(16), U8(2), + B(SuspendGenerator), R(0), R(0), U8(16), U8(1), + B(ResumeGenerator), R(0), R(0), U8(16), + B(Star), R(16), B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1), - B(Star), R(19), + B(Star), R(17), B(LdaZero), - B(TestReferenceEqual), R(19), + B(TestReferenceEqual), R(17), B(JumpIfTrue), U8(5), - B(Ldar), R(18), + B(Ldar), R(16), B(ReThrow), - B(Ldar), R(18), + B(Ldar), R(16), B(JumpIfJSReceiver), U8(21), - B(Star), R(20), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(20), U8(1), + B(Star), R(18), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(18), U8(1), B(Jump), U8(12), - B(Star), R(17), + B(Star), R(15), B(LdaZero), - B(TestReferenceEqual), R(10), + B(TestReferenceEqual), R(8), B(JumpIfTrue), U8(5), - B(Ldar), R(17), + B(Ldar), R(15), B(ReThrow), - B(Ldar), R(12), - B(SetPendingMessage), B(Ldar), R(10), - B(SwitchOnSmiNoFeedback), U8(10), U8(2), I8(0), + B(SetPendingMessage), + B(Ldar), R(8), + B(SwitchOnSmiNoFeedback), U8(9), U8(2), I8(0), B(Jump), U8(19), - B(Ldar), R(11), + B(Ldar), R(9), B(ReThrow), B(LdaTrue), - B(Star), R(18), - B(Mov), R(0), R(16), - B(Mov), R(11), R(17), - B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionResolve), R(16), U8(3), + B(Star), R(16), + B(Mov), R(0), R(14), + B(Mov), R(9), R(15), + B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionResolve), R(14), U8(3), /* 68 S> */ B(Return), B(LdaUndefined), B(Star), R(6), @@ -316,7 +311,7 @@ bytecodes: [ B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionResolve), R(5), U8(3), /* 68 S> */ B(Return), B(Star), R(5), - B(CreateCatchContext), R(5), U8(12), + B(CreateCatchContext), R(5), U8(11), B(Star), R(4), B(LdaTheHole), B(SetPendingMessage), @@ -331,11 +326,10 @@ bytecodes: [ /* 68 S> */ B(Return), ] constant pool: [ - Smi [98], - Smi [233], + Smi [95], + Smi [228], ARRAY_BOILERPLATE_DESCRIPTION_TYPE, SYMBOL_TYPE, - SYMBOL_TYPE, ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"], @@ -346,9 +340,9 @@ constant pool: [ SCOPE_INFO_TYPE, ] handlers: [ - [20, 318, 318], - [77, 161, 169], - [195, 264, 266], + [20, 313, 313], + [74, 158, 166], + [190, 259, 261], ] --- @@ -361,9 +355,9 @@ snippet: " } f(); " -frame size: 21 +frame size: 19 parameter count: 1 -bytecode array length: 341 +bytecode array length: 336 bytecodes: [ B(SwitchOnGeneratorState), R(0), U8(0), U8(2), B(Mov), R(closure), R(4), @@ -375,50 +369,49 @@ bytecodes: [ /* 43 S> */ B(CreateArrayLiteral), U8(2), U8(0), U8(37), B(Star), R(7), B(LdaNamedProperty), R(7), U8(3), U8(1), - B(JumpIfUndefined), U8(17), - B(JumpIfNull), U8(15), + B(JumpIfUndefinedOrNull), U8(15), B(Star), R(8), B(CallProperty0), R(8), R(7), U8(3), - B(JumpIfJSReceiver), U8(23), + B(JumpIfJSReceiver), U8(22), B(CallRuntime), U16(Runtime::kThrowSymbolAsyncIteratorInvalid), R(0), U8(0), - B(LdaNamedProperty), R(7), U8(4), U8(5), + B(GetIterator), R(7), U8(5), B(Star), R(8), B(CallProperty0), R(8), R(7), U8(7), B(Star), R(8), B(InvokeIntrinsic), U8(Runtime::k_CreateAsyncFromSyncIterator), R(8), U8(1), B(Star), R(6), - B(LdaNamedProperty), R(6), U8(5), U8(9), + B(LdaNamedProperty), R(6), U8(4), U8(9), B(Star), R(5), B(LdaFalse), - B(Star), R(9), - B(Mov), R(context), R(12), + B(Star), R(7), + B(Mov), R(context), R(10), B(LdaTrue), - B(Star), R(9), + B(Star), R(7), /* 38 S> */ B(CallProperty0), R(5), R(6), U8(11), - B(Star), R(15), - B(Mov), R(0), R(14), - B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionAwaitUncaught), R(14), U8(2), - B(SuspendGenerator), R(0), R(0), U8(14), U8(0), - B(ResumeGenerator), R(0), R(0), U8(14), - B(Star), R(14), + B(Star), R(13), + B(Mov), R(0), R(12), + B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionAwaitUncaught), R(12), U8(2), + B(SuspendGenerator), R(0), R(0), U8(12), U8(0), + B(ResumeGenerator), R(0), R(0), U8(12), + B(Star), R(12), B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1), - B(Star), R(15), + B(Star), R(13), B(LdaZero), - B(TestReferenceEqual), R(15), + B(TestReferenceEqual), R(13), B(JumpIfTrue), U8(5), - B(Ldar), R(14), + B(Ldar), R(12), B(ReThrow), - B(Ldar), R(14), - B(Mov), R(14), R(13), + B(Ldar), R(12), + B(Mov), R(12), R(11), B(JumpIfJSReceiver), U8(7), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(13), U8(1), - B(LdaNamedProperty), R(13), U8(6), U8(13), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(11), U8(1), + B(LdaNamedProperty), R(11), U8(5), U8(13), B(JumpIfToBooleanTrue), U8(39), - B(LdaNamedProperty), R(13), U8(7), U8(15), - B(Star), R(13), + B(LdaNamedProperty), R(11), U8(6), U8(15), + B(Star), R(11), B(LdaFalse), - B(Star), R(9), - B(Mov), R(13), R(1), + B(Star), R(7), + B(Mov), R(11), R(1), /* 23 E> */ B(StackCheck), /* 38 S> */ B(Mov), R(1), R(3), /* 63 S> */ B(LdaSmi), I8(10), @@ -431,61 +424,60 @@ bytecodes: [ /* 103 S> */ B(Jump), U8(5), B(JumpLoop), U8(93), I8(0), B(LdaSmi), I8(-1), - B(Star), R(11), - B(Star), R(10), + B(Star), R(9), + B(Star), R(8), B(Jump), U8(7), - B(Star), R(11), + B(Star), R(9), B(LdaZero), - B(Star), R(10), + B(Star), R(8), B(LdaTheHole), B(SetPendingMessage), - B(Star), R(12), - B(Ldar), R(9), - B(JumpIfToBooleanTrue), U8(96), - B(LdaNamedProperty), R(6), U8(8), U8(19), - B(Star), R(16), - B(JumpIfUndefined), U8(88), - B(JumpIfNull), U8(86), - B(Mov), R(context), R(17), + B(Star), R(10), + B(Ldar), R(7), + B(JumpIfToBooleanTrue), U8(94), + B(LdaNamedProperty), R(6), U8(7), U8(19), + B(Star), R(14), + B(JumpIfUndefinedOrNull), U8(86), + B(Mov), R(context), R(15), B(TestTypeOf), U8(6), B(JumpIfTrue), U8(18), B(Wide), B(LdaSmi), I16(159), - B(Star), R(18), - B(LdaConstant), U8(9), - B(Star), R(19), - B(CallRuntime), U16(Runtime::kNewTypeError), R(18), U8(2), + B(Star), R(16), + B(LdaConstant), U8(8), + B(Star), R(17), + B(CallRuntime), U16(Runtime::kNewTypeError), R(16), U8(2), B(Throw), - B(CallProperty0), R(16), R(6), U8(21), - B(Star), R(19), - B(Mov), R(0), R(18), - B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionAwaitUncaught), R(18), U8(2), - B(SuspendGenerator), R(0), R(0), U8(18), U8(1), - B(ResumeGenerator), R(0), R(0), U8(18), - B(Star), R(18), + B(CallProperty0), R(14), R(6), U8(21), + B(Star), R(17), + B(Mov), R(0), R(16), + B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionAwaitUncaught), R(16), U8(2), + B(SuspendGenerator), R(0), R(0), U8(16), U8(1), + B(ResumeGenerator), R(0), R(0), U8(16), + B(Star), R(16), B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1), - B(Star), R(19), + B(Star), R(17), B(LdaZero), - B(TestReferenceEqual), R(19), + B(TestReferenceEqual), R(17), B(JumpIfTrue), U8(5), - B(Ldar), R(18), + B(Ldar), R(16), B(ReThrow), - B(Ldar), R(18), + B(Ldar), R(16), B(JumpIfJSReceiver), U8(21), - B(Star), R(20), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(20), U8(1), + B(Star), R(18), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(18), U8(1), B(Jump), U8(12), - B(Star), R(17), + B(Star), R(15), B(LdaZero), - B(TestReferenceEqual), R(10), + B(TestReferenceEqual), R(8), B(JumpIfTrue), U8(5), - B(Ldar), R(17), + B(Ldar), R(15), B(ReThrow), - B(Ldar), R(12), + B(Ldar), R(10), B(SetPendingMessage), B(LdaZero), - B(TestReferenceEqual), R(10), + B(TestReferenceEqual), R(8), B(JumpIfFalse), U8(5), - B(Ldar), R(11), + B(Ldar), R(9), B(ReThrow), B(LdaUndefined), B(Star), R(6), @@ -495,7 +487,7 @@ bytecodes: [ B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionResolve), R(5), U8(3), /* 114 S> */ B(Return), B(Star), R(5), - B(CreateCatchContext), R(5), U8(10), + B(CreateCatchContext), R(5), U8(9), B(Star), R(4), B(LdaTheHole), B(SetPendingMessage), @@ -510,11 +502,10 @@ bytecodes: [ /* 114 S> */ B(Return), ] constant pool: [ - Smi [98], - Smi [245], + Smi [95], + Smi [240], ARRAY_BOILERPLATE_DESCRIPTION_TYPE, SYMBOL_TYPE, - SYMBOL_TYPE, ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"], @@ -523,9 +514,9 @@ constant pool: [ SCOPE_INFO_TYPE, ] handlers: [ - [20, 313, 313], - [77, 173, 181], - [207, 276, 278], + [20, 308, 308], + [74, 170, 178], + [202, 271, 273], ] --- @@ -536,9 +527,9 @@ snippet: " } f(); " -frame size: 17 +frame size: 15 parameter count: 1 -bytecode array length: 261 +bytecode array length: 258 bytecodes: [ B(Mov), R(closure), R(2), B(Mov), R(this), R(3), @@ -550,86 +541,85 @@ bytecodes: [ B(Star), R(1), /* 68 S> */ B(CreateArrayLiteral), U8(1), U8(1), U8(37), B(Star), R(5), - B(LdaNamedProperty), R(5), U8(2), U8(2), + B(GetIterator), R(5), U8(2), B(Star), R(6), B(CallProperty0), R(6), R(5), U8(4), B(JumpIfJSReceiver), U8(7), B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0), B(Star), R(4), - B(LdaNamedProperty), R(4), U8(3), U8(6), + B(LdaNamedProperty), R(4), U8(2), U8(6), B(Star), R(3), B(LdaFalse), - B(Star), R(7), - B(Mov), R(context), R(10), + B(Star), R(5), + B(Mov), R(context), R(8), B(LdaTrue), - B(Star), R(7), + B(Star), R(5), /* 59 S> */ B(CallProperty0), R(3), R(4), U8(8), - B(Star), R(11), + B(Star), R(9), B(JumpIfJSReceiver), U8(7), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(11), U8(1), - B(LdaNamedProperty), R(11), U8(4), U8(10), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(9), U8(1), + B(LdaNamedProperty), R(9), U8(3), U8(10), B(JumpIfToBooleanTrue), U8(33), - B(LdaNamedProperty), R(11), U8(5), U8(12), - B(Star), R(11), + B(LdaNamedProperty), R(9), U8(4), U8(12), + B(Star), R(9), B(LdaFalse), - B(Star), R(7), - B(Ldar), R(11), - /* 58 E> */ B(StaNamedProperty), R(1), U8(6), U8(14), + B(Star), R(5), + B(Ldar), R(9), + /* 58 E> */ B(StaNamedProperty), R(1), U8(5), U8(14), /* 53 E> */ B(StackCheck), - /* 87 S> */ B(LdaNamedProperty), R(1), U8(6), U8(16), - B(Star), R(9), + /* 87 S> */ B(LdaNamedProperty), R(1), U8(5), U8(16), + B(Star), R(7), B(LdaSmi), I8(1), - B(Star), R(8), - B(Mov), R(1), R(12), + B(Star), R(6), + B(Mov), R(1), R(10), B(Jump), U8(15), B(LdaSmi), I8(-1), - B(Star), R(9), - B(Star), R(8), + B(Star), R(7), + B(Star), R(6), B(Jump), U8(7), - B(Star), R(9), + B(Star), R(7), B(LdaZero), - B(Star), R(8), + B(Star), R(6), B(LdaTheHole), B(SetPendingMessage), - B(Star), R(10), - B(Ldar), R(7), - B(JumpIfToBooleanTrue), U8(60), - B(LdaNamedProperty), R(4), U8(7), U8(18), - B(Star), R(13), - B(JumpIfUndefined), U8(52), - B(JumpIfNull), U8(50), - B(Mov), R(context), R(14), + B(Star), R(8), + B(Ldar), R(5), + B(JumpIfToBooleanTrue), U8(58), + B(LdaNamedProperty), R(4), U8(6), U8(18), + B(Star), R(11), + B(JumpIfUndefinedOrNull), U8(50), + B(Mov), R(context), R(12), B(TestTypeOf), U8(6), B(JumpIfTrue), U8(18), B(Wide), B(LdaSmi), I16(159), - B(Star), R(15), - B(LdaConstant), U8(8), - B(Star), R(16), - B(CallRuntime), U16(Runtime::kNewTypeError), R(15), U8(2), + B(Star), R(13), + B(LdaConstant), U8(7), + B(Star), R(14), + B(CallRuntime), U16(Runtime::kNewTypeError), R(13), U8(2), B(Throw), - B(CallProperty0), R(13), R(4), U8(20), + B(CallProperty0), R(11), R(4), U8(20), B(JumpIfJSReceiver), U8(21), - B(Star), R(15), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(15), U8(1), + B(Star), R(13), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(13), U8(1), B(Jump), U8(12), - B(Star), R(14), + B(Star), R(12), B(LdaZero), - B(TestReferenceEqual), R(8), + B(TestReferenceEqual), R(6), B(JumpIfTrue), U8(5), - B(Ldar), R(14), + B(Ldar), R(12), B(ReThrow), - B(Ldar), R(10), - B(SetPendingMessage), B(Ldar), R(8), - B(SwitchOnSmiNoFeedback), U8(9), U8(2), I8(0), + B(SetPendingMessage), + B(Ldar), R(6), + B(SwitchOnSmiNoFeedback), U8(8), U8(2), I8(0), B(Jump), U8(19), - B(Ldar), R(9), + B(Ldar), R(7), B(ReThrow), B(LdaFalse), - B(Star), R(15), - B(Mov), R(0), R(13), - B(Mov), R(9), R(14), - B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionResolve), R(13), U8(3), + B(Star), R(13), + B(Mov), R(0), R(11), + B(Mov), R(7), R(12), + B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionResolve), R(11), U8(3), /* 96 S> */ B(Return), B(LdaUndefined), B(Star), R(4), @@ -639,7 +629,7 @@ bytecodes: [ B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionResolve), R(3), U8(3), /* 96 S> */ B(Return), B(Star), R(3), - B(CreateCatchContext), R(3), U8(11), + B(CreateCatchContext), R(3), U8(10), B(Star), R(2), B(LdaTheHole), B(SetPendingMessage), @@ -656,7 +646,6 @@ bytecodes: [ constant pool: [ OBJECT_BOILERPLATE_DESCRIPTION_TYPE, ARRAY_BOILERPLATE_DESCRIPTION_TYPE, - SYMBOL_TYPE, ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"], @@ -668,8 +657,8 @@ constant pool: [ SCOPE_INFO_TYPE, ] handlers: [ - [16, 233, 233], - [59, 112, 120], - [146, 179, 181], + [16, 230, 230], + [58, 111, 119], + [143, 176, 178], ] diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/ForIn.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/ForIn.golden index 8c24e461cd..fe1defeefb 100644 --- a/deps/v8/test/cctest/interpreter/bytecode_expectations/ForIn.golden +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/ForIn.golden @@ -63,13 +63,12 @@ snippet: " " frame size: 8 parameter count: 1 -bytecode array length: 46 +bytecode array length: 44 bytecodes: [ /* 30 E> */ B(StackCheck), /* 42 S> */ B(LdaConstant), U8(0), B(Star), R(0), - /* 68 S> */ B(JumpIfUndefined), U8(39), - B(JumpIfNull), U8(37), + /* 68 S> */ B(JumpIfUndefinedOrNull), U8(37), B(ToObject), R(3), B(ForInEnumerate), R(3), B(ForInPrepare), R(4), U8(0), @@ -102,14 +101,13 @@ snippet: " " frame size: 9 parameter count: 1 -bytecode array length: 58 +bytecode array length: 56 bytecodes: [ /* 30 E> */ B(StackCheck), /* 42 S> */ B(LdaZero), B(Star), R(0), /* 59 S> */ B(CreateArrayLiteral), U8(0), U8(1), U8(37), - B(JumpIfUndefined), U8(48), - B(JumpIfNull), U8(46), + B(JumpIfUndefinedOrNull), U8(46), B(ToObject), R(3), B(ForInEnumerate), R(3), B(ForInPrepare), R(4), U8(0), @@ -148,14 +146,13 @@ snippet: " " frame size: 7 parameter count: 1 -bytecode array length: 85 +bytecode array length: 83 bytecodes: [ /* 30 E> */ B(StackCheck), /* 42 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(41), B(Star), R(0), /* 77 S> */ B(CreateArrayLiteral), U8(1), U8(2), U8(37), - B(JumpIfUndefined), U8(72), - B(JumpIfNull), U8(70), + B(JumpIfUndefinedOrNull), U8(70), B(ToObject), R(1), B(ForInEnumerate), R(1), B(ForInPrepare), R(2), U8(1), @@ -202,14 +199,13 @@ snippet: " " frame size: 9 parameter count: 1 -bytecode array length: 64 +bytecode array length: 62 bytecodes: [ /* 30 E> */ B(StackCheck), /* 42 S> */ B(CreateArrayLiteral), U8(0), U8(0), U8(37), B(Star), R(0), /* 72 S> */ B(CreateArrayLiteral), U8(1), U8(2), U8(37), - B(JumpIfUndefined), U8(51), - B(JumpIfNull), U8(49), + B(JumpIfUndefinedOrNull), U8(49), B(ToObject), R(1), B(ForInEnumerate), R(1), B(ForInPrepare), R(2), U8(1), diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/ForOf.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/ForOf.golden index 17e1d59343..1557e8d2a8 100644 --- a/deps/v8/test/cctest/interpreter/bytecode_expectations/ForOf.golden +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/ForOf.golden @@ -9,90 +9,88 @@ wrap: yes snippet: " for (var p of [0, 1, 2]) {} " -frame size: 15 +frame size: 13 parameter count: 1 -bytecode array length: 173 +bytecode array length: 170 bytecodes: [ /* 30 E> */ B(StackCheck), /* 48 S> */ B(CreateArrayLiteral), U8(0), U8(0), U8(37), B(Star), R(4), - B(LdaNamedProperty), R(4), U8(1), U8(1), + B(GetIterator), R(4), U8(1), B(Star), R(5), B(CallProperty0), R(5), R(4), U8(3), B(JumpIfJSReceiver), U8(7), B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0), B(Star), R(3), - B(LdaNamedProperty), R(3), U8(2), U8(5), + B(LdaNamedProperty), R(3), U8(1), U8(5), B(Star), R(2), B(LdaFalse), - B(Star), R(6), - B(Mov), R(context), R(9), + B(Star), R(4), + B(Mov), R(context), R(7), B(LdaTrue), - B(Star), R(6), + B(Star), R(4), /* 43 S> */ B(CallProperty0), R(2), R(3), U8(7), - B(Star), R(10), + B(Star), R(8), B(JumpIfJSReceiver), U8(7), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(10), U8(1), - B(LdaNamedProperty), R(10), U8(3), U8(9), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(8), U8(1), + B(LdaNamedProperty), R(8), U8(2), U8(9), B(JumpIfToBooleanTrue), U8(23), - B(LdaNamedProperty), R(10), U8(4), U8(11), - B(Star), R(10), + B(LdaNamedProperty), R(8), U8(3), U8(11), + B(Star), R(8), B(LdaFalse), - B(Star), R(6), - B(Mov), R(10), R(1), + B(Star), R(4), + B(Mov), R(8), R(1), /* 34 E> */ B(StackCheck), /* 43 S> */ B(Mov), R(1), R(0), - B(Ldar), R(10), + B(Ldar), R(8), B(JumpLoop), U8(40), I8(0), B(LdaSmi), I8(-1), - B(Star), R(8), - B(Star), R(7), + B(Star), R(6), + B(Star), R(5), B(Jump), U8(7), - B(Star), R(8), + B(Star), R(6), B(LdaZero), - B(Star), R(7), + B(Star), R(5), B(LdaTheHole), /* 43 E> */ B(SetPendingMessage), + B(Star), R(7), + B(Ldar), R(4), + B(JumpIfToBooleanTrue), U8(58), + B(LdaNamedProperty), R(3), U8(4), U8(13), B(Star), R(9), - B(Ldar), R(6), - B(JumpIfToBooleanTrue), U8(60), - B(LdaNamedProperty), R(3), U8(5), U8(13), - B(Star), R(11), - B(JumpIfUndefined), U8(52), - B(JumpIfNull), U8(50), - B(Mov), R(context), R(12), + B(JumpIfUndefinedOrNull), U8(50), + B(Mov), R(context), R(10), B(TestTypeOf), U8(6), B(JumpIfTrue), U8(18), B(Wide), B(LdaSmi), I16(159), - B(Star), R(13), - B(LdaConstant), U8(6), - B(Star), R(14), - B(CallRuntime), U16(Runtime::kNewTypeError), R(13), U8(2), + B(Star), R(11), + B(LdaConstant), U8(5), + B(Star), R(12), + B(CallRuntime), U16(Runtime::kNewTypeError), R(11), U8(2), B(Throw), - B(CallProperty0), R(11), R(3), U8(15), + B(CallProperty0), R(9), R(3), U8(15), B(JumpIfJSReceiver), U8(21), - B(Star), R(13), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(13), U8(1), + B(Star), R(11), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(11), U8(1), B(Jump), U8(12), - B(Star), R(12), + B(Star), R(10), B(LdaZero), - B(TestReferenceEqual), R(7), + B(TestReferenceEqual), R(5), B(JumpIfTrue), U8(5), - B(Ldar), R(12), + B(Ldar), R(10), B(ReThrow), - B(Ldar), R(9), + B(Ldar), R(7), B(SetPendingMessage), B(LdaZero), - B(TestReferenceEqual), R(7), + B(TestReferenceEqual), R(5), B(JumpIfFalse), U8(5), - B(Ldar), R(8), + B(Ldar), R(6), B(ReThrow), B(LdaUndefined), /* 62 S> */ B(Return), ] constant pool: [ ARRAY_BOILERPLATE_DESCRIPTION_TYPE, - SYMBOL_TYPE, ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"], @@ -100,8 +98,8 @@ constant pool: [ ONE_BYTE_INTERNALIZED_STRING_TYPE [""], ] handlers: [ - [38, 81, 89], - [115, 148, 150], + [37, 80, 88], + [112, 145, 147], ] --- @@ -109,95 +107,92 @@ snippet: " var x = 'potatoes'; for (var p of x) { return p; } " -frame size: 16 +frame size: 14 parameter count: 1 -bytecode array length: 184 +bytecode array length: 178 bytecodes: [ /* 30 E> */ B(StackCheck), /* 42 S> */ B(LdaConstant), U8(0), B(Star), R(0), - /* 68 S> */ B(LdaNamedProperty), R(0), U8(1), U8(0), + /* 68 S> */ B(GetIterator), R(0), U8(0), B(Star), R(6), B(CallProperty0), R(6), R(0), U8(2), - B(Mov), R(0), R(5), B(JumpIfJSReceiver), U8(7), B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0), B(Star), R(4), - B(LdaNamedProperty), R(4), U8(2), U8(4), + B(LdaNamedProperty), R(4), U8(1), U8(4), B(Star), R(3), B(LdaFalse), - B(Star), R(7), - B(Mov), R(context), R(10), + B(Star), R(5), + B(Mov), R(context), R(8), B(LdaTrue), - B(Star), R(7), + B(Star), R(5), /* 63 S> */ B(CallProperty0), R(3), R(4), U8(6), - B(Star), R(11), + B(Star), R(9), B(JumpIfJSReceiver), U8(7), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(11), U8(1), - B(LdaNamedProperty), R(11), U8(3), U8(8), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(9), U8(1), + B(LdaNamedProperty), R(9), U8(2), U8(8), B(JumpIfToBooleanTrue), U8(27), - B(LdaNamedProperty), R(11), U8(4), U8(10), - B(Star), R(11), + B(LdaNamedProperty), R(9), U8(3), U8(10), + B(Star), R(9), B(LdaFalse), - B(Star), R(7), - B(Mov), R(11), R(2), + B(Star), R(5), + B(Mov), R(9), R(2), /* 54 E> */ B(StackCheck), /* 63 S> */ B(Mov), R(2), R(1), /* 73 S> */ B(LdaSmi), I8(1), - B(Mov), R(11), R(9), - B(Star), R(8), + B(Mov), R(9), R(7), + B(Star), R(6), B(Jump), U8(15), B(LdaSmi), I8(-1), - B(Star), R(9), - B(Star), R(8), + B(Star), R(7), + B(Star), R(6), B(Jump), U8(7), - B(Star), R(9), + B(Star), R(7), B(LdaZero), - B(Star), R(8), + B(Star), R(6), B(LdaTheHole), B(SetPendingMessage), + B(Star), R(8), + B(Ldar), R(5), + B(JumpIfToBooleanTrue), U8(58), + B(LdaNamedProperty), R(4), U8(4), U8(12), B(Star), R(10), - B(Ldar), R(7), - B(JumpIfToBooleanTrue), U8(60), - B(LdaNamedProperty), R(4), U8(5), U8(12), - B(Star), R(12), - B(JumpIfUndefined), U8(52), - B(JumpIfNull), U8(50), - B(Mov), R(context), R(13), + B(JumpIfUndefinedOrNull), U8(50), + B(Mov), R(context), R(11), B(TestTypeOf), U8(6), B(JumpIfTrue), U8(18), B(Wide), B(LdaSmi), I16(159), - B(Star), R(14), - B(LdaConstant), U8(6), - B(Star), R(15), - B(CallRuntime), U16(Runtime::kNewTypeError), R(14), U8(2), + B(Star), R(12), + B(LdaConstant), U8(5), + B(Star), R(13), + B(CallRuntime), U16(Runtime::kNewTypeError), R(12), U8(2), B(Throw), - B(CallProperty0), R(12), R(4), U8(14), + B(CallProperty0), R(10), R(4), U8(14), B(JumpIfJSReceiver), U8(21), - B(Star), R(14), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(14), U8(1), + B(Star), R(12), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(12), U8(1), B(Jump), U8(12), - B(Star), R(13), + B(Star), R(11), B(LdaZero), - B(TestReferenceEqual), R(8), + B(TestReferenceEqual), R(6), B(JumpIfTrue), U8(5), - B(Ldar), R(13), + B(Ldar), R(11), B(ReThrow), - B(Ldar), R(10), - B(SetPendingMessage), B(Ldar), R(8), - B(SwitchOnSmiNoFeedback), U8(7), U8(2), I8(0), + B(SetPendingMessage), + B(Ldar), R(6), + B(SwitchOnSmiNoFeedback), U8(6), U8(2), I8(0), B(Jump), U8(8), - B(Ldar), R(9), + B(Ldar), R(7), B(ReThrow), - B(Ldar), R(9), + B(Ldar), R(7), /* 85 S> */ B(Return), B(LdaUndefined), /* 85 S> */ B(Return), ] constant pool: [ ONE_BYTE_INTERNALIZED_STRING_TYPE ["potatoes"], - SYMBOL_TYPE, ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"], @@ -207,8 +202,8 @@ constant pool: [ Smi [9], ] handlers: [ - [39, 86, 94], - [120, 153, 155], + [35, 82, 90], + [114, 147, 149], ] --- @@ -218,37 +213,37 @@ snippet: " if (x == 20) break; } " -frame size: 15 +frame size: 13 parameter count: 1 -bytecode array length: 189 +bytecode array length: 186 bytecodes: [ /* 30 E> */ B(StackCheck), /* 48 S> */ B(CreateArrayLiteral), U8(0), U8(0), U8(37), B(Star), R(4), - B(LdaNamedProperty), R(4), U8(1), U8(1), + B(GetIterator), R(4), U8(1), B(Star), R(5), B(CallProperty0), R(5), R(4), U8(3), B(JumpIfJSReceiver), U8(7), B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0), B(Star), R(3), - B(LdaNamedProperty), R(3), U8(2), U8(5), + B(LdaNamedProperty), R(3), U8(1), U8(5), B(Star), R(2), B(LdaFalse), - B(Star), R(6), - B(Mov), R(context), R(9), + B(Star), R(4), + B(Mov), R(context), R(7), B(LdaTrue), - B(Star), R(6), + B(Star), R(4), /* 43 S> */ B(CallProperty0), R(2), R(3), U8(7), - B(Star), R(10), + B(Star), R(8), B(JumpIfJSReceiver), U8(7), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(10), U8(1), - B(LdaNamedProperty), R(10), U8(3), U8(9), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(8), U8(1), + B(LdaNamedProperty), R(8), U8(2), U8(9), B(JumpIfToBooleanTrue), U8(39), - B(LdaNamedProperty), R(10), U8(4), U8(11), - B(Star), R(10), + B(LdaNamedProperty), R(8), U8(3), U8(11), + B(Star), R(8), B(LdaFalse), - B(Star), R(6), - B(Mov), R(10), R(1), + B(Star), R(4), + B(Mov), R(8), R(1), /* 34 E> */ B(StackCheck), /* 43 S> */ B(Mov), R(1), R(0), /* 66 S> */ B(LdaSmi), I8(10), @@ -261,54 +256,52 @@ bytecodes: [ /* 104 S> */ B(Jump), U8(5), B(JumpLoop), U8(56), I8(0), B(LdaSmi), I8(-1), - B(Star), R(8), - B(Star), R(7), + B(Star), R(6), + B(Star), R(5), B(Jump), U8(7), - B(Star), R(8), + B(Star), R(6), B(LdaZero), - B(Star), R(7), + B(Star), R(5), B(LdaTheHole), B(SetPendingMessage), + B(Star), R(7), + B(Ldar), R(4), + B(JumpIfToBooleanTrue), U8(58), + B(LdaNamedProperty), R(3), U8(4), U8(15), B(Star), R(9), - B(Ldar), R(6), - B(JumpIfToBooleanTrue), U8(60), - B(LdaNamedProperty), R(3), U8(5), U8(15), - B(Star), R(11), - B(JumpIfUndefined), U8(52), - B(JumpIfNull), U8(50), - B(Mov), R(context), R(12), + B(JumpIfUndefinedOrNull), U8(50), + B(Mov), R(context), R(10), B(TestTypeOf), U8(6), B(JumpIfTrue), U8(18), B(Wide), B(LdaSmi), I16(159), - B(Star), R(13), - B(LdaConstant), U8(6), - B(Star), R(14), - B(CallRuntime), U16(Runtime::kNewTypeError), R(13), U8(2), + B(Star), R(11), + B(LdaConstant), U8(5), + B(Star), R(12), + B(CallRuntime), U16(Runtime::kNewTypeError), R(11), U8(2), B(Throw), - B(CallProperty0), R(11), R(3), U8(17), + B(CallProperty0), R(9), R(3), U8(17), B(JumpIfJSReceiver), U8(21), - B(Star), R(13), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(13), U8(1), + B(Star), R(11), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(11), U8(1), B(Jump), U8(12), - B(Star), R(12), + B(Star), R(10), B(LdaZero), - B(TestReferenceEqual), R(7), + B(TestReferenceEqual), R(5), B(JumpIfTrue), U8(5), - B(Ldar), R(12), + B(Ldar), R(10), B(ReThrow), - B(Ldar), R(9), + B(Ldar), R(7), B(SetPendingMessage), B(LdaZero), - B(TestReferenceEqual), R(7), + B(TestReferenceEqual), R(5), B(JumpIfFalse), U8(5), - B(Ldar), R(8), + B(Ldar), R(6), B(ReThrow), B(LdaUndefined), /* 113 S> */ B(Return), ] constant pool: [ ARRAY_BOILERPLATE_DESCRIPTION_TYPE, - SYMBOL_TYPE, ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"], @@ -316,8 +309,8 @@ constant pool: [ ONE_BYTE_INTERNALIZED_STRING_TYPE [""], ] handlers: [ - [38, 97, 105], - [131, 164, 166], + [37, 96, 104], + [128, 161, 163], ] --- @@ -325,91 +318,90 @@ snippet: " var x = { 'a': 1, 'b': 2 }; for (x['a'] of [1,2,3]) { return x['a']; } " -frame size: 15 +frame size: 13 parameter count: 1 -bytecode array length: 195 +bytecode array length: 192 bytecodes: [ /* 30 E> */ B(StackCheck), /* 42 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(41), B(Star), R(0), /* 77 S> */ B(CreateArrayLiteral), U8(1), U8(1), U8(37), B(Star), R(3), - B(LdaNamedProperty), R(3), U8(2), U8(2), + B(GetIterator), R(3), U8(2), B(Star), R(4), B(CallProperty0), R(4), R(3), U8(4), B(JumpIfJSReceiver), U8(7), B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0), B(Star), R(2), - B(LdaNamedProperty), R(2), U8(3), U8(6), + B(LdaNamedProperty), R(2), U8(2), U8(6), B(Star), R(1), B(LdaFalse), - B(Star), R(5), - B(Mov), R(context), R(8), + B(Star), R(3), + B(Mov), R(context), R(6), B(LdaTrue), - B(Star), R(5), + B(Star), R(3), /* 68 S> */ B(CallProperty0), R(1), R(2), U8(8), - B(Star), R(9), + B(Star), R(7), B(JumpIfJSReceiver), U8(7), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(9), U8(1), - B(LdaNamedProperty), R(9), U8(4), U8(10), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(7), U8(1), + B(LdaNamedProperty), R(7), U8(3), U8(10), B(JumpIfToBooleanTrue), U8(33), - B(LdaNamedProperty), R(9), U8(5), U8(12), - B(Star), R(9), + B(LdaNamedProperty), R(7), U8(4), U8(12), + B(Star), R(7), B(LdaFalse), - B(Star), R(5), - B(Ldar), R(9), - /* 67 E> */ B(StaNamedProperty), R(0), U8(6), U8(14), + B(Star), R(3), + B(Ldar), R(7), + /* 67 E> */ B(StaNamedProperty), R(0), U8(5), U8(14), /* 62 E> */ B(StackCheck), - /* 96 S> */ B(LdaNamedProperty), R(0), U8(6), U8(16), - B(Star), R(7), + /* 96 S> */ B(LdaNamedProperty), R(0), U8(5), U8(16), + B(Star), R(5), B(LdaSmi), I8(1), - B(Star), R(6), - B(Mov), R(0), R(10), + B(Star), R(4), + B(Mov), R(0), R(8), B(Jump), U8(15), B(LdaSmi), I8(-1), - B(Star), R(7), - B(Star), R(6), + B(Star), R(5), + B(Star), R(4), B(Jump), U8(7), - B(Star), R(7), + B(Star), R(5), B(LdaZero), - B(Star), R(6), + B(Star), R(4), B(LdaTheHole), B(SetPendingMessage), - B(Star), R(8), - B(Ldar), R(5), - B(JumpIfToBooleanTrue), U8(60), - B(LdaNamedProperty), R(2), U8(7), U8(18), - B(Star), R(11), - B(JumpIfUndefined), U8(52), - B(JumpIfNull), U8(50), - B(Mov), R(context), R(12), + B(Star), R(6), + B(Ldar), R(3), + B(JumpIfToBooleanTrue), U8(58), + B(LdaNamedProperty), R(2), U8(6), U8(18), + B(Star), R(9), + B(JumpIfUndefinedOrNull), U8(50), + B(Mov), R(context), R(10), B(TestTypeOf), U8(6), B(JumpIfTrue), U8(18), B(Wide), B(LdaSmi), I16(159), - B(Star), R(13), - B(LdaConstant), U8(8), - B(Star), R(14), - B(CallRuntime), U16(Runtime::kNewTypeError), R(13), U8(2), + B(Star), R(11), + B(LdaConstant), U8(7), + B(Star), R(12), + B(CallRuntime), U16(Runtime::kNewTypeError), R(11), U8(2), B(Throw), - B(CallProperty0), R(11), R(2), U8(20), + B(CallProperty0), R(9), R(2), U8(20), B(JumpIfJSReceiver), U8(21), - B(Star), R(13), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(13), U8(1), + B(Star), R(11), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(11), U8(1), B(Jump), U8(12), - B(Star), R(12), + B(Star), R(10), B(LdaZero), - B(TestReferenceEqual), R(6), + B(TestReferenceEqual), R(4), B(JumpIfTrue), U8(5), - B(Ldar), R(12), + B(Ldar), R(10), B(ReThrow), - B(Ldar), R(8), - B(SetPendingMessage), B(Ldar), R(6), - B(SwitchOnSmiNoFeedback), U8(9), U8(2), I8(0), + B(SetPendingMessage), + B(Ldar), R(4), + B(SwitchOnSmiNoFeedback), U8(8), U8(2), I8(0), B(Jump), U8(8), - B(Ldar), R(7), + B(Ldar), R(5), B(ReThrow), - B(Ldar), R(7), + B(Ldar), R(5), /* 105 S> */ B(Return), B(LdaUndefined), /* 105 S> */ B(Return), @@ -417,7 +409,6 @@ bytecodes: [ constant pool: [ OBJECT_BOILERPLATE_DESCRIPTION_TYPE, ARRAY_BOILERPLATE_DESCRIPTION_TYPE, - SYMBOL_TYPE, ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"], @@ -428,7 +419,7 @@ constant pool: [ Smi [9], ] handlers: [ - [44, 97, 105], - [131, 164, 166], + [43, 96, 104], + [128, 161, 163], ] diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/ForOfLoop.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/ForOfLoop.golden index 1b10e1bf6e..f50891172e 100644 --- a/deps/v8/test/cctest/interpreter/bytecode_expectations/ForOfLoop.golden +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/ForOfLoop.golden @@ -13,89 +13,86 @@ snippet: " } f([1, 2, 3]); " -frame size: 17 +frame size: 15 parameter count: 2 -bytecode array length: 173 +bytecode array length: 167 bytecodes: [ /* 10 E> */ B(StackCheck), - /* 34 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(0), + /* 34 S> */ B(GetIterator), R(arg0), U8(0), B(Star), R(7), B(CallProperty0), R(7), R(arg0), U8(2), - B(Mov), R(arg0), R(6), B(JumpIfJSReceiver), U8(7), B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0), B(Star), R(5), - B(LdaNamedProperty), R(5), U8(1), U8(4), + B(LdaNamedProperty), R(5), U8(0), U8(4), B(Star), R(4), B(LdaFalse), - B(Star), R(8), - B(Mov), R(context), R(11), + B(Star), R(6), + B(Mov), R(context), R(9), B(LdaTrue), - B(Star), R(8), + B(Star), R(6), /* 29 S> */ B(CallProperty0), R(4), R(5), U8(6), - B(Star), R(12), + B(Star), R(10), B(JumpIfJSReceiver), U8(7), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(12), U8(1), - B(LdaNamedProperty), R(12), U8(2), U8(8), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(10), U8(1), + B(LdaNamedProperty), R(10), U8(1), U8(8), B(JumpIfToBooleanTrue), U8(26), - B(LdaNamedProperty), R(12), U8(3), U8(10), - B(Star), R(12), + B(LdaNamedProperty), R(10), U8(2), U8(10), + B(Star), R(10), B(LdaFalse), - B(Star), R(8), - B(Mov), R(12), R(0), + B(Star), R(6), + B(Mov), R(10), R(0), /* 20 E> */ B(StackCheck), /* 29 S> */ B(Mov), R(0), R(2), /* 49 S> */ B(Mov), R(2), R(3), - B(Ldar), R(12), + B(Ldar), R(10), B(JumpLoop), U8(43), I8(0), B(LdaSmi), I8(-1), - B(Star), R(10), - B(Star), R(9), + B(Star), R(8), + B(Star), R(7), B(Jump), U8(7), - B(Star), R(10), + B(Star), R(8), B(LdaZero), - B(Star), R(9), + B(Star), R(7), B(LdaTheHole), /* 49 E> */ B(SetPendingMessage), + B(Star), R(9), + B(Ldar), R(6), + B(JumpIfToBooleanTrue), U8(58), + B(LdaNamedProperty), R(5), U8(3), U8(12), B(Star), R(11), - B(Ldar), R(8), - B(JumpIfToBooleanTrue), U8(60), - B(LdaNamedProperty), R(5), U8(4), U8(12), - B(Star), R(13), - B(JumpIfUndefined), U8(52), - B(JumpIfNull), U8(50), - B(Mov), R(context), R(14), + B(JumpIfUndefinedOrNull), U8(50), + B(Mov), R(context), R(12), B(TestTypeOf), U8(6), B(JumpIfTrue), U8(18), B(Wide), B(LdaSmi), I16(159), - B(Star), R(15), - B(LdaConstant), U8(5), - B(Star), R(16), - B(CallRuntime), U16(Runtime::kNewTypeError), R(15), U8(2), + B(Star), R(13), + B(LdaConstant), U8(4), + B(Star), R(14), + B(CallRuntime), U16(Runtime::kNewTypeError), R(13), U8(2), B(Throw), - B(CallProperty0), R(13), R(5), U8(14), + B(CallProperty0), R(11), R(5), U8(14), B(JumpIfJSReceiver), U8(21), - B(Star), R(15), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(15), U8(1), + B(Star), R(13), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(13), U8(1), B(Jump), U8(12), - B(Star), R(14), + B(Star), R(12), B(LdaZero), - B(TestReferenceEqual), R(9), + B(TestReferenceEqual), R(7), B(JumpIfTrue), U8(5), - B(Ldar), R(14), + B(Ldar), R(12), B(ReThrow), - B(Ldar), R(11), + B(Ldar), R(9), B(SetPendingMessage), B(LdaZero), - B(TestReferenceEqual), R(9), + B(TestReferenceEqual), R(7), B(JumpIfFalse), U8(5), - B(Ldar), R(10), + B(Ldar), R(8), B(ReThrow), B(LdaUndefined), /* 54 S> */ B(Return), ] constant pool: [ - SYMBOL_TYPE, ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"], @@ -103,8 +100,8 @@ constant pool: [ ONE_BYTE_INTERNALIZED_STRING_TYPE [""], ] handlers: [ - [35, 81, 89], - [115, 148, 150], + [31, 77, 85], + [109, 142, 144], ] --- @@ -114,9 +111,9 @@ snippet: " } f([1, 2, 3]); " -frame size: 22 +frame size: 20 parameter count: 2 -bytecode array length: 254 +bytecode array length: 251 bytecodes: [ B(CreateFunctionContext), U8(0), U8(4), B(PushContext), R(2), @@ -135,98 +132,97 @@ bytecodes: [ B(StaCurrentContextSlot), U8(4), /* 34 S> */ B(LdaContextSlot), R(3), U8(4), U8(0), B(Star), R(6), - B(LdaNamedProperty), R(6), U8(2), U8(0), + B(GetIterator), R(6), U8(0), B(Star), R(7), B(CallProperty0), R(7), R(6), U8(2), B(JumpIfJSReceiver), U8(7), B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0), B(Star), R(5), - B(LdaNamedProperty), R(5), U8(3), U8(4), + B(LdaNamedProperty), R(5), U8(2), U8(4), B(Star), R(4), B(LdaFalse), - B(Star), R(8), - B(Mov), R(context), R(11), + B(Star), R(6), + B(Mov), R(context), R(9), B(LdaTrue), - B(Star), R(8), + B(Star), R(6), /* 29 S> */ B(CallProperty0), R(4), R(5), U8(6), - B(Star), R(12), + B(Star), R(10), B(JumpIfJSReceiver), U8(7), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(12), U8(1), - B(LdaNamedProperty), R(12), U8(4), U8(8), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(10), U8(1), + B(LdaNamedProperty), R(10), U8(3), U8(8), B(JumpIfToBooleanTrue), U8(75), - B(LdaNamedProperty), R(12), U8(5), U8(10), - B(Star), R(12), + B(LdaNamedProperty), R(10), U8(4), U8(10), + B(Star), R(10), B(LdaFalse), - B(Star), R(8), - B(Mov), R(12), R(0), + B(Star), R(6), + B(Mov), R(10), R(0), /* 20 E> */ B(StackCheck), - B(CreateBlockContext), U8(6), - B(PushContext), R(13), + B(CreateBlockContext), U8(5), + B(PushContext), R(11), B(LdaTheHole), B(StaCurrentContextSlot), U8(4), /* 29 S> */ B(Ldar), R(0), /* 29 E> */ B(StaCurrentContextSlot), U8(4), - /* 41 S> */ B(LdaLookupGlobalSlot), U8(7), U8(12), U8(3), - B(Star), R(14), - B(LdaConstant), U8(8), - B(Star), R(15), + /* 41 S> */ B(LdaLookupGlobalSlot), U8(6), U8(12), U8(3), + B(Star), R(12), + B(LdaConstant), U8(7), + B(Star), R(13), B(LdaZero), - B(Star), R(19), + B(Star), R(17), B(LdaSmi), I8(37), - B(Star), R(20), + B(Star), R(18), B(LdaSmi), I8(41), - B(Star), R(21), - B(Mov), R(14), R(16), - B(Mov), R(15), R(17), - B(Mov), R(closure), R(18), - B(CallRuntime), U16(Runtime::kResolvePossiblyDirectEval), R(16), U8(6), - B(Star), R(14), - /* 41 E> */ B(CallUndefinedReceiver1), R(14), R(15), U8(14), - B(PopContext), R(13), - B(Mov), R(0), R(12), + B(Star), R(19), + B(Mov), R(12), R(14), + B(Mov), R(13), R(15), + B(Mov), R(closure), R(16), + B(CallRuntime), U16(Runtime::kResolvePossiblyDirectEval), R(14), U8(6), + B(Star), R(12), + /* 41 E> */ B(CallUndefinedReceiver1), R(12), R(13), U8(14), + B(PopContext), R(11), + B(Mov), R(0), R(10), B(JumpLoop), U8(92), I8(0), B(LdaSmi), I8(-1), - B(Star), R(10), - B(Star), R(9), + B(Star), R(8), + B(Star), R(7), B(Jump), U8(7), - B(Star), R(10), + B(Star), R(8), B(LdaZero), - B(Star), R(9), + B(Star), R(7), B(LdaTheHole), B(SetPendingMessage), - B(Star), R(11), - B(Ldar), R(8), - B(JumpIfToBooleanTrue), U8(60), - B(LdaNamedProperty), R(5), U8(9), U8(16), - B(Star), R(14), - B(JumpIfUndefined), U8(52), - B(JumpIfNull), U8(50), - B(Mov), R(context), R(15), + B(Star), R(9), + B(Ldar), R(6), + B(JumpIfToBooleanTrue), U8(58), + B(LdaNamedProperty), R(5), U8(8), U8(16), + B(Star), R(12), + B(JumpIfUndefinedOrNull), U8(50), + B(Mov), R(context), R(13), B(TestTypeOf), U8(6), B(JumpIfTrue), U8(18), B(Wide), B(LdaSmi), I16(159), - B(Star), R(16), - B(LdaConstant), U8(10), - B(Star), R(17), - B(CallRuntime), U16(Runtime::kNewTypeError), R(16), U8(2), + B(Star), R(14), + B(LdaConstant), U8(9), + B(Star), R(15), + B(CallRuntime), U16(Runtime::kNewTypeError), R(14), U8(2), B(Throw), - B(CallProperty0), R(14), R(5), U8(18), + B(CallProperty0), R(12), R(5), U8(18), B(JumpIfJSReceiver), U8(21), - B(Star), R(16), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(16), U8(1), + B(Star), R(14), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(14), U8(1), B(Jump), U8(12), - B(Star), R(15), + B(Star), R(13), B(LdaZero), - B(TestReferenceEqual), R(9), + B(TestReferenceEqual), R(7), B(JumpIfTrue), U8(5), - B(Ldar), R(15), + B(Ldar), R(13), B(ReThrow), - B(Ldar), R(11), + B(Ldar), R(9), B(SetPendingMessage), B(LdaZero), - B(TestReferenceEqual), R(9), + B(TestReferenceEqual), R(7), B(JumpIfFalse), U8(5), - B(Ldar), R(10), + B(Ldar), R(8), B(ReThrow), B(PopContext), R(3), B(LdaUndefined), @@ -235,7 +231,6 @@ bytecodes: [ constant pool: [ SCOPE_INFO_TYPE, SCOPE_INFO_TYPE, - SYMBOL_TYPE, ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"], @@ -246,8 +241,8 @@ constant pool: [ ONE_BYTE_INTERNALIZED_STRING_TYPE [""], ] handlers: [ - [65, 160, 168], - [194, 227, 229], + [64, 159, 167], + [191, 224, 226], ] --- @@ -257,97 +252,94 @@ snippet: " } f([1, 2, 3]); " -frame size: 16 +frame size: 14 parameter count: 2 -bytecode array length: 190 +bytecode array length: 184 bytecodes: [ /* 10 E> */ B(StackCheck), - /* 34 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(0), + /* 34 S> */ B(GetIterator), R(arg0), U8(0), B(Star), R(5), B(CallProperty0), R(5), R(arg0), U8(2), - B(Mov), R(arg0), R(4), B(JumpIfJSReceiver), U8(7), B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0), B(Star), R(3), - B(LdaNamedProperty), R(3), U8(1), U8(4), + B(LdaNamedProperty), R(3), U8(0), U8(4), B(Star), R(2), B(LdaFalse), - B(Star), R(6), - B(Mov), R(context), R(9), + B(Star), R(4), + B(Mov), R(context), R(7), B(LdaTrue), - B(Star), R(6), + B(Star), R(4), /* 29 S> */ B(CallProperty0), R(2), R(3), U8(6), - B(Star), R(10), + B(Star), R(8), B(JumpIfJSReceiver), U8(7), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(10), U8(1), - B(LdaNamedProperty), R(10), U8(2), U8(8), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(8), U8(1), + B(LdaNamedProperty), R(8), U8(1), U8(8), B(JumpIfToBooleanTrue), U8(43), - B(LdaNamedProperty), R(10), U8(3), U8(10), - B(Star), R(10), + B(LdaNamedProperty), R(8), U8(2), U8(10), + B(Star), R(8), B(LdaFalse), - B(Star), R(6), - B(Mov), R(10), R(0), + B(Star), R(4), + B(Mov), R(8), R(0), /* 20 E> */ B(StackCheck), - B(CreateBlockContext), U8(4), - B(PushContext), R(11), + B(CreateBlockContext), U8(3), + B(PushContext), R(9), B(LdaTheHole), B(StaCurrentContextSlot), U8(4), /* 29 S> */ B(Ldar), R(0), /* 29 E> */ B(StaCurrentContextSlot), U8(4), - /* 41 S> */ B(CreateClosure), U8(5), U8(0), U8(2), - B(Star), R(12), - /* 67 E> */ B(CallUndefinedReceiver0), R(12), U8(12), - B(PopContext), R(11), - B(Mov), R(0), R(10), + /* 41 S> */ B(CreateClosure), U8(4), U8(0), U8(2), + B(Star), R(10), + /* 67 E> */ B(CallUndefinedReceiver0), R(10), U8(12), + B(PopContext), R(9), + B(Mov), R(0), R(8), B(JumpLoop), U8(60), I8(0), B(LdaSmi), I8(-1), - B(Star), R(8), - B(Star), R(7), + B(Star), R(6), + B(Star), R(5), B(Jump), U8(7), - B(Star), R(8), + B(Star), R(6), B(LdaZero), - B(Star), R(7), + B(Star), R(5), B(LdaTheHole), B(SetPendingMessage), - B(Star), R(9), - B(Ldar), R(6), - B(JumpIfToBooleanTrue), U8(60), - B(LdaNamedProperty), R(3), U8(6), U8(14), - B(Star), R(12), - B(JumpIfUndefined), U8(52), - B(JumpIfNull), U8(50), - B(Mov), R(context), R(13), + B(Star), R(7), + B(Ldar), R(4), + B(JumpIfToBooleanTrue), U8(58), + B(LdaNamedProperty), R(3), U8(5), U8(14), + B(Star), R(10), + B(JumpIfUndefinedOrNull), U8(50), + B(Mov), R(context), R(11), B(TestTypeOf), U8(6), B(JumpIfTrue), U8(18), B(Wide), B(LdaSmi), I16(159), - B(Star), R(14), - B(LdaConstant), U8(7), - B(Star), R(15), - B(CallRuntime), U16(Runtime::kNewTypeError), R(14), U8(2), + B(Star), R(12), + B(LdaConstant), U8(6), + B(Star), R(13), + B(CallRuntime), U16(Runtime::kNewTypeError), R(12), U8(2), B(Throw), - B(CallProperty0), R(12), R(3), U8(16), + B(CallProperty0), R(10), R(3), U8(16), B(JumpIfJSReceiver), U8(21), - B(Star), R(14), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(14), U8(1), + B(Star), R(12), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(12), U8(1), B(Jump), U8(12), - B(Star), R(13), + B(Star), R(11), B(LdaZero), - B(TestReferenceEqual), R(7), + B(TestReferenceEqual), R(5), B(JumpIfTrue), U8(5), - B(Ldar), R(13), + B(Ldar), R(11), B(ReThrow), - B(Ldar), R(9), + B(Ldar), R(7), B(SetPendingMessage), B(LdaZero), - B(TestReferenceEqual), R(7), + B(TestReferenceEqual), R(5), B(JumpIfFalse), U8(5), - B(Ldar), R(8), + B(Ldar), R(6), B(ReThrow), B(LdaUndefined), /* 73 S> */ B(Return), ] constant pool: [ - SYMBOL_TYPE, ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"], @@ -357,8 +349,8 @@ constant pool: [ ONE_BYTE_INTERNALIZED_STRING_TYPE [""], ] handlers: [ - [35, 98, 106], - [132, 165, 167], + [31, 94, 102], + [126, 159, 161], ] --- @@ -368,98 +360,90 @@ snippet: " } f([{ x: 0, y: 3 }, { x: 1, y: 9 }, { x: -12, y: 17 }]); " -frame size: 19 +frame size: 17 parameter count: 2 -bytecode array length: 197 +bytecode array length: 178 bytecodes: [ /* 10 E> */ B(StackCheck), - /* 41 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(0), + /* 41 S> */ B(GetIterator), R(arg0), U8(0), B(Star), R(9), B(CallProperty0), R(9), R(arg0), U8(2), - B(Mov), R(arg0), R(8), B(JumpIfJSReceiver), U8(7), B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0), B(Star), R(7), - B(LdaNamedProperty), R(7), U8(1), U8(4), + B(LdaNamedProperty), R(7), U8(0), U8(4), B(Star), R(6), B(LdaFalse), - B(Star), R(10), - B(Mov), R(context), R(13), + B(Star), R(8), + B(Mov), R(context), R(11), B(LdaTrue), - B(Star), R(10), + B(Star), R(8), /* 36 S> */ B(CallProperty0), R(6), R(7), U8(6), - B(Star), R(14), + B(Star), R(12), B(JumpIfJSReceiver), U8(7), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(14), U8(1), - B(LdaNamedProperty), R(14), U8(2), U8(8), - B(JumpIfToBooleanTrue), U8(50), - B(LdaNamedProperty), R(14), U8(3), U8(10), - B(Star), R(14), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(12), U8(1), + B(LdaNamedProperty), R(12), U8(1), U8(8), + B(JumpIfToBooleanTrue), U8(37), + B(LdaNamedProperty), R(12), U8(2), U8(10), + B(Star), R(12), B(LdaFalse), - B(Star), R(10), - B(Mov), R(14), R(0), + B(Star), R(8), + B(Mov), R(12), R(0), /* 20 E> */ B(StackCheck), - /* 36 S> */ B(Ldar), R(14), - B(JumpIfNull), U8(4), - B(JumpIfNotUndefined), U8(7), - /* 29 E> */ B(CallRuntime), U16(Runtime::kThrowPatternAssignmentNonCoercible), R(0), U8(0), - B(Star), R(15), - /* 31 S> */ B(LdaNamedProperty), R(15), U8(4), U8(12), + /* 31 S> */ B(LdaNamedProperty), R(0), U8(3), U8(12), B(Star), R(3), - /* 34 S> */ B(LdaNamedProperty), R(15), U8(5), U8(14), + /* 34 S> */ B(LdaNamedProperty), R(0), U8(4), U8(14), B(Star), R(4), /* 56 S> */ B(Ldar), R(4), /* 58 E> */ B(Add), R(3), U8(16), B(Star), R(5), - B(JumpLoop), U8(67), I8(0), + B(JumpLoop), U8(54), I8(0), B(LdaSmi), I8(-1), - B(Star), R(12), - B(Star), R(11), + B(Star), R(10), + B(Star), R(9), B(Jump), U8(7), - B(Star), R(12), + B(Star), R(10), B(LdaZero), - B(Star), R(11), + B(Star), R(9), B(LdaTheHole), /* 56 E> */ B(SetPendingMessage), + B(Star), R(11), + B(Ldar), R(8), + B(JumpIfToBooleanTrue), U8(58), + B(LdaNamedProperty), R(7), U8(5), U8(17), B(Star), R(13), - B(Ldar), R(10), - B(JumpIfToBooleanTrue), U8(60), - B(LdaNamedProperty), R(7), U8(6), U8(17), - B(Star), R(15), - B(JumpIfUndefined), U8(52), - B(JumpIfNull), U8(50), - B(Mov), R(context), R(16), + B(JumpIfUndefinedOrNull), U8(50), + B(Mov), R(context), R(14), B(TestTypeOf), U8(6), B(JumpIfTrue), U8(18), B(Wide), B(LdaSmi), I16(159), - B(Star), R(17), - B(LdaConstant), U8(7), - B(Star), R(18), - B(CallRuntime), U16(Runtime::kNewTypeError), R(17), U8(2), + B(Star), R(15), + B(LdaConstant), U8(6), + B(Star), R(16), + B(CallRuntime), U16(Runtime::kNewTypeError), R(15), U8(2), B(Throw), - B(CallProperty0), R(15), R(7), U8(19), + B(CallProperty0), R(13), R(7), U8(19), B(JumpIfJSReceiver), U8(21), - B(Star), R(17), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(17), U8(1), + B(Star), R(15), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(15), U8(1), B(Jump), U8(12), - B(Star), R(16), + B(Star), R(14), B(LdaZero), - B(TestReferenceEqual), R(11), + B(TestReferenceEqual), R(9), B(JumpIfTrue), U8(5), - B(Ldar), R(16), + B(Ldar), R(14), B(ReThrow), - B(Ldar), R(13), + B(Ldar), R(11), B(SetPendingMessage), B(LdaZero), - B(TestReferenceEqual), R(11), + B(TestReferenceEqual), R(9), B(JumpIfFalse), U8(5), - B(Ldar), R(12), + B(Ldar), R(10), B(ReThrow), B(LdaUndefined), /* 65 S> */ B(Return), ] constant pool: [ - SYMBOL_TYPE, ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"], @@ -469,8 +453,8 @@ constant pool: [ ONE_BYTE_INTERNALIZED_STRING_TYPE [""], ] handlers: [ - [35, 105, 113], - [139, 172, 174], + [31, 88, 96], + [120, 153, 155], ] --- @@ -480,9 +464,9 @@ snippet: " } f([1, 2, 3]); " -frame size: 18 +frame size: 16 parameter count: 2 -bytecode array length: 214 +bytecode array length: 208 bytecodes: [ B(SwitchOnGeneratorState), R(0), U8(0), U8(1), B(Mov), R(closure), R(5), @@ -499,78 +483,76 @@ bytecodes: [ /* 11 E> */ B(Throw), B(Ldar), R(5), /* 55 S> */ B(Return), - /* 35 S> */ B(LdaNamedProperty), R(arg0), U8(3), U8(0), + /* 35 S> */ B(GetIterator), R(arg0), U8(0), B(Star), R(8), B(CallProperty0), R(8), R(arg0), U8(2), - B(Mov), R(arg0), R(7), B(JumpIfJSReceiver), U8(7), B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0), B(Star), R(6), - B(LdaNamedProperty), R(6), U8(4), U8(4), + B(LdaNamedProperty), R(6), U8(3), U8(4), B(Star), R(5), B(LdaFalse), - B(Star), R(9), - B(Mov), R(context), R(12), + B(Star), R(7), + B(Mov), R(context), R(10), B(LdaTrue), - B(Star), R(9), + B(Star), R(7), /* 30 S> */ B(CallProperty0), R(5), R(6), U8(6), - B(Star), R(13), + B(Star), R(11), B(JumpIfJSReceiver), U8(7), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(13), U8(1), - B(LdaNamedProperty), R(13), U8(5), U8(8), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(11), U8(1), + B(LdaNamedProperty), R(11), U8(4), U8(8), B(JumpIfToBooleanTrue), U8(26), - B(LdaNamedProperty), R(13), U8(6), U8(10), - B(Star), R(13), + B(LdaNamedProperty), R(11), U8(5), U8(10), + B(Star), R(11), B(LdaFalse), - B(Star), R(9), - B(Mov), R(13), R(1), + B(Star), R(7), + B(Mov), R(11), R(1), /* 21 E> */ B(StackCheck), /* 30 S> */ B(Mov), R(1), R(3), /* 50 S> */ B(Mov), R(3), R(4), - B(Ldar), R(13), + B(Ldar), R(11), B(JumpLoop), U8(43), I8(0), B(LdaSmi), I8(-1), - B(Star), R(11), - B(Star), R(10), + B(Star), R(9), + B(Star), R(8), B(Jump), U8(7), - B(Star), R(11), + B(Star), R(9), B(LdaZero), - B(Star), R(10), + B(Star), R(8), B(LdaTheHole), /* 50 E> */ B(SetPendingMessage), + B(Star), R(10), + B(Ldar), R(7), + B(JumpIfToBooleanTrue), U8(58), + B(LdaNamedProperty), R(6), U8(6), U8(12), B(Star), R(12), - B(Ldar), R(9), - B(JumpIfToBooleanTrue), U8(60), - B(LdaNamedProperty), R(6), U8(7), U8(12), - B(Star), R(14), - B(JumpIfUndefined), U8(52), - B(JumpIfNull), U8(50), - B(Mov), R(context), R(15), + B(JumpIfUndefinedOrNull), U8(50), + B(Mov), R(context), R(13), B(TestTypeOf), U8(6), B(JumpIfTrue), U8(18), B(Wide), B(LdaSmi), I16(159), - B(Star), R(16), - B(LdaConstant), U8(8), - B(Star), R(17), - B(CallRuntime), U16(Runtime::kNewTypeError), R(16), U8(2), + B(Star), R(14), + B(LdaConstant), U8(7), + B(Star), R(15), + B(CallRuntime), U16(Runtime::kNewTypeError), R(14), U8(2), B(Throw), - B(CallProperty0), R(14), R(6), U8(14), + B(CallProperty0), R(12), R(6), U8(14), B(JumpIfJSReceiver), U8(21), - B(Star), R(16), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(16), U8(1), + B(Star), R(14), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(14), U8(1), B(Jump), U8(12), - B(Star), R(15), + B(Star), R(13), B(LdaZero), - B(TestReferenceEqual), R(10), + B(TestReferenceEqual), R(8), B(JumpIfTrue), U8(5), - B(Ldar), R(15), + B(Ldar), R(13), B(ReThrow), - B(Ldar), R(12), + B(Ldar), R(10), B(SetPendingMessage), B(LdaZero), - B(TestReferenceEqual), R(10), + B(TestReferenceEqual), R(8), B(JumpIfFalse), U8(5), - B(Ldar), R(11), + B(Ldar), R(9), B(ReThrow), B(LdaUndefined), /* 55 S> */ B(Return), @@ -579,7 +561,6 @@ constant pool: [ Smi [22], Smi [10], Smi [7], - SYMBOL_TYPE, ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"], @@ -587,8 +568,8 @@ constant pool: [ ONE_BYTE_INTERNALIZED_STRING_TYPE [""], ] handlers: [ - [76, 122, 130], - [156, 189, 191], + [72, 118, 126], + [150, 183, 185], ] --- @@ -598,9 +579,9 @@ snippet: " } f([1, 2, 3]); " -frame size: 17 +frame size: 15 parameter count: 2 -bytecode array length: 258 +bytecode array length: 252 bytecodes: [ B(SwitchOnGeneratorState), R(0), U8(0), U8(2), B(Mov), R(closure), R(4), @@ -617,104 +598,101 @@ bytecodes: [ /* 11 E> */ B(Throw), B(Ldar), R(4), /* 49 S> */ B(Return), - /* 35 S> */ B(LdaNamedProperty), R(arg0), U8(4), U8(0), + /* 35 S> */ B(GetIterator), R(arg0), U8(0), B(Star), R(7), B(CallProperty0), R(7), R(arg0), U8(2), - B(Mov), R(arg0), R(6), B(JumpIfJSReceiver), U8(7), B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0), B(Star), R(5), - B(LdaNamedProperty), R(5), U8(5), U8(4), + B(LdaNamedProperty), R(5), U8(4), U8(4), B(Star), R(4), B(LdaFalse), - B(Star), R(8), - B(Mov), R(context), R(11), + B(Star), R(6), + B(Mov), R(context), R(9), B(LdaTrue), - B(Star), R(8), + B(Star), R(6), /* 30 S> */ B(CallProperty0), R(4), R(5), U8(6), - B(Star), R(12), + B(Star), R(10), B(JumpIfJSReceiver), U8(7), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(12), U8(1), - B(LdaNamedProperty), R(12), U8(6), U8(8), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(10), U8(1), + B(LdaNamedProperty), R(10), U8(5), U8(8), B(JumpIfToBooleanTrue), U8(64), - B(LdaNamedProperty), R(12), U8(7), U8(10), - B(Star), R(12), + B(LdaNamedProperty), R(10), U8(6), U8(10), + B(Star), R(10), B(LdaFalse), - B(Star), R(8), - B(Mov), R(12), R(1), + B(Star), R(6), + B(Mov), R(10), R(1), /* 21 E> */ B(StackCheck), /* 30 S> */ B(Mov), R(1), R(3), /* 40 S> */ B(LdaFalse), - B(Star), R(14), - B(Mov), R(3), R(13), - B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(13), U8(2), - /* 40 E> */ B(SuspendGenerator), R(0), R(0), U8(13), U8(1), - B(ResumeGenerator), R(0), R(0), U8(13), - B(Star), R(13), + B(Star), R(12), + B(Mov), R(3), R(11), + B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(11), U8(2), + /* 40 E> */ B(SuspendGenerator), R(0), R(0), U8(11), U8(1), + B(ResumeGenerator), R(0), R(0), U8(11), + B(Star), R(11), B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1), - B(SwitchOnSmiNoFeedback), U8(8), U8(2), I8(0), - B(Ldar), R(13), + B(SwitchOnSmiNoFeedback), U8(7), U8(2), I8(0), + B(Ldar), R(11), /* 40 E> */ B(Throw), B(LdaSmi), I8(1), - B(Star), R(9), - B(Mov), R(13), R(10), + B(Star), R(7), + B(Mov), R(11), R(8), B(Jump), U8(20), - B(Ldar), R(13), + B(Ldar), R(11), B(JumpLoop), U8(81), I8(0), B(LdaSmi), I8(-1), - B(Star), R(10), - B(Star), R(9), + B(Star), R(8), + B(Star), R(7), B(Jump), U8(7), - B(Star), R(10), + B(Star), R(8), B(LdaZero), - B(Star), R(9), + B(Star), R(7), B(LdaTheHole), B(SetPendingMessage), + B(Star), R(9), + B(Ldar), R(6), + B(JumpIfToBooleanTrue), U8(58), + B(LdaNamedProperty), R(5), U8(9), U8(12), B(Star), R(11), - B(Ldar), R(8), - B(JumpIfToBooleanTrue), U8(60), - B(LdaNamedProperty), R(5), U8(10), U8(12), - B(Star), R(13), - B(JumpIfUndefined), U8(52), - B(JumpIfNull), U8(50), - B(Mov), R(context), R(14), + B(JumpIfUndefinedOrNull), U8(50), + B(Mov), R(context), R(12), B(TestTypeOf), U8(6), B(JumpIfTrue), U8(18), B(Wide), B(LdaSmi), I16(159), - B(Star), R(15), - B(LdaConstant), U8(11), - B(Star), R(16), - B(CallRuntime), U16(Runtime::kNewTypeError), R(15), U8(2), + B(Star), R(13), + B(LdaConstant), U8(10), + B(Star), R(14), + B(CallRuntime), U16(Runtime::kNewTypeError), R(13), U8(2), B(Throw), - B(CallProperty0), R(13), R(5), U8(14), + B(CallProperty0), R(11), R(5), U8(14), B(JumpIfJSReceiver), U8(21), - B(Star), R(15), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(15), U8(1), + B(Star), R(13), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(13), U8(1), B(Jump), U8(12), - B(Star), R(14), + B(Star), R(12), B(LdaZero), - B(TestReferenceEqual), R(9), + B(TestReferenceEqual), R(7), B(JumpIfTrue), U8(5), - B(Ldar), R(14), + B(Ldar), R(12), B(ReThrow), - B(Ldar), R(11), - B(SetPendingMessage), B(Ldar), R(9), - B(SwitchOnSmiNoFeedback), U8(12), U8(2), I8(0), + B(SetPendingMessage), + B(Ldar), R(7), + B(SwitchOnSmiNoFeedback), U8(11), U8(2), I8(0), B(Jump), U8(8), - B(Ldar), R(10), + B(Ldar), R(8), B(ReThrow), - B(Ldar), R(10), + B(Ldar), R(8), /* 49 S> */ B(Return), B(LdaUndefined), /* 49 S> */ B(Return), ] constant pool: [ Smi [22], - Smi [129], + Smi [125], Smi [10], Smi [7], - SYMBOL_TYPE, ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"], @@ -726,8 +704,8 @@ constant pool: [ Smi [9], ] handlers: [ - [76, 160, 168], - [194, 227, 229], + [72, 156, 164], + [188, 221, 223], ] --- @@ -737,9 +715,9 @@ snippet: " } f([1, 2, 3]); " -frame size: 19 +frame size: 17 parameter count: 2 -bytecode array length: 228 +bytecode array length: 222 bytecodes: [ B(Mov), R(closure), R(5), B(Mov), R(this), R(6), @@ -747,78 +725,76 @@ bytecodes: [ B(Star), R(0), /* 16 E> */ B(StackCheck), B(Mov), R(context), R(5), - /* 40 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(0), + /* 40 S> */ B(GetIterator), R(arg0), U8(0), B(Star), R(9), B(CallProperty0), R(9), R(arg0), U8(2), - B(Mov), R(arg0), R(8), B(JumpIfJSReceiver), U8(7), B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0), B(Star), R(7), - B(LdaNamedProperty), R(7), U8(1), U8(4), + B(LdaNamedProperty), R(7), U8(0), U8(4), B(Star), R(6), B(LdaFalse), - B(Star), R(10), - B(Mov), R(context), R(13), + B(Star), R(8), + B(Mov), R(context), R(11), B(LdaTrue), - B(Star), R(10), + B(Star), R(8), /* 35 S> */ B(CallProperty0), R(6), R(7), U8(6), - B(Star), R(14), + B(Star), R(12), B(JumpIfJSReceiver), U8(7), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(14), U8(1), - B(LdaNamedProperty), R(14), U8(2), U8(8), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(12), U8(1), + B(LdaNamedProperty), R(12), U8(1), U8(8), B(JumpIfToBooleanTrue), U8(26), - B(LdaNamedProperty), R(14), U8(3), U8(10), - B(Star), R(14), + B(LdaNamedProperty), R(12), U8(2), U8(10), + B(Star), R(12), B(LdaFalse), - B(Star), R(10), - B(Mov), R(14), R(1), + B(Star), R(8), + B(Mov), R(12), R(1), /* 26 E> */ B(StackCheck), /* 35 S> */ B(Mov), R(1), R(3), /* 55 S> */ B(Mov), R(3), R(4), - B(Ldar), R(14), + B(Ldar), R(12), B(JumpLoop), U8(43), I8(0), B(LdaSmi), I8(-1), - B(Star), R(12), - B(Star), R(11), + B(Star), R(10), + B(Star), R(9), B(Jump), U8(7), - B(Star), R(12), + B(Star), R(10), B(LdaZero), - B(Star), R(11), + B(Star), R(9), B(LdaTheHole), /* 55 E> */ B(SetPendingMessage), + B(Star), R(11), + B(Ldar), R(8), + B(JumpIfToBooleanTrue), U8(58), + B(LdaNamedProperty), R(7), U8(3), U8(12), B(Star), R(13), - B(Ldar), R(10), - B(JumpIfToBooleanTrue), U8(60), - B(LdaNamedProperty), R(7), U8(4), U8(12), - B(Star), R(15), - B(JumpIfUndefined), U8(52), - B(JumpIfNull), U8(50), - B(Mov), R(context), R(16), + B(JumpIfUndefinedOrNull), U8(50), + B(Mov), R(context), R(14), B(TestTypeOf), U8(6), B(JumpIfTrue), U8(18), B(Wide), B(LdaSmi), I16(159), - B(Star), R(17), - B(LdaConstant), U8(5), - B(Star), R(18), - B(CallRuntime), U16(Runtime::kNewTypeError), R(17), U8(2), + B(Star), R(15), + B(LdaConstant), U8(4), + B(Star), R(16), + B(CallRuntime), U16(Runtime::kNewTypeError), R(15), U8(2), B(Throw), - B(CallProperty0), R(15), R(7), U8(14), + B(CallProperty0), R(13), R(7), U8(14), B(JumpIfJSReceiver), U8(21), - B(Star), R(17), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(17), U8(1), + B(Star), R(15), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(15), U8(1), B(Jump), U8(12), - B(Star), R(16), + B(Star), R(14), B(LdaZero), - B(TestReferenceEqual), R(11), + B(TestReferenceEqual), R(9), B(JumpIfTrue), U8(5), - B(Ldar), R(16), + B(Ldar), R(14), B(ReThrow), - B(Ldar), R(13), + B(Ldar), R(11), B(SetPendingMessage), B(LdaZero), - B(TestReferenceEqual), R(11), + B(TestReferenceEqual), R(9), B(JumpIfFalse), U8(5), - B(Ldar), R(12), + B(Ldar), R(10), B(ReThrow), B(LdaUndefined), B(Star), R(7), @@ -828,7 +804,7 @@ bytecodes: [ B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionResolve), R(6), U8(3), /* 60 S> */ B(Return), B(Star), R(6), - B(CreateCatchContext), R(6), U8(6), + B(CreateCatchContext), R(6), U8(5), B(Star), R(5), B(LdaTheHole), B(SetPendingMessage), @@ -843,7 +819,6 @@ bytecodes: [ /* 60 S> */ B(Return), ] constant pool: [ - SYMBOL_TYPE, ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"], @@ -852,9 +827,9 @@ constant pool: [ SCOPE_INFO_TYPE, ] handlers: [ - [16, 200, 200], - [50, 96, 104], - [130, 163, 165], + [16, 194, 194], + [46, 92, 100], + [124, 157, 159], ] --- @@ -864,9 +839,9 @@ snippet: " } f([1, 2, 3]); " -frame size: 18 +frame size: 16 parameter count: 2 -bytecode array length: 264 +bytecode array length: 258 bytecodes: [ B(SwitchOnGeneratorState), R(0), U8(0), U8(1), B(Mov), R(closure), R(4), @@ -875,90 +850,88 @@ bytecodes: [ B(Star), R(0), /* 16 E> */ B(StackCheck), B(Mov), R(context), R(4), - /* 40 S> */ B(LdaNamedProperty), R(arg0), U8(1), U8(0), + /* 40 S> */ B(GetIterator), R(arg0), U8(0), B(Star), R(8), B(CallProperty0), R(8), R(arg0), U8(2), - B(Mov), R(arg0), R(7), B(JumpIfJSReceiver), U8(7), B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0), B(Star), R(6), - B(LdaNamedProperty), R(6), U8(2), U8(4), + B(LdaNamedProperty), R(6), U8(1), U8(4), B(Star), R(5), B(LdaFalse), - B(Star), R(9), - B(Mov), R(context), R(12), + B(Star), R(7), + B(Mov), R(context), R(10), B(LdaTrue), - B(Star), R(9), + B(Star), R(7), /* 35 S> */ B(CallProperty0), R(5), R(6), U8(6), - B(Star), R(13), + B(Star), R(11), B(JumpIfJSReceiver), U8(7), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(13), U8(1), - B(LdaNamedProperty), R(13), U8(3), U8(8), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(11), U8(1), + B(LdaNamedProperty), R(11), U8(2), U8(8), B(JumpIfToBooleanTrue), U8(58), - B(LdaNamedProperty), R(13), U8(4), U8(10), - B(Star), R(13), + B(LdaNamedProperty), R(11), U8(3), U8(10), + B(Star), R(11), B(LdaFalse), - B(Star), R(9), - B(Mov), R(13), R(1), + B(Star), R(7), + B(Mov), R(11), R(1), /* 26 E> */ B(StackCheck), /* 35 S> */ B(Mov), R(1), R(3), - /* 45 S> */ B(Mov), R(0), R(14), - B(Mov), R(3), R(15), - B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionAwaitUncaught), R(14), U8(2), - /* 45 E> */ B(SuspendGenerator), R(0), R(0), U8(14), U8(0), - B(ResumeGenerator), R(0), R(0), U8(14), - B(Star), R(14), + /* 45 S> */ B(Mov), R(0), R(12), + B(Mov), R(3), R(13), + B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionAwaitUncaught), R(12), U8(2), + /* 45 E> */ B(SuspendGenerator), R(0), R(0), U8(12), U8(0), + B(ResumeGenerator), R(0), R(0), U8(12), + B(Star), R(12), B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1), - B(Star), R(15), + B(Star), R(13), B(LdaZero), - B(TestReferenceEqual), R(15), + B(TestReferenceEqual), R(13), B(JumpIfTrue), U8(5), - B(Ldar), R(14), + B(Ldar), R(12), B(ReThrow), - B(Ldar), R(14), + B(Ldar), R(12), B(JumpLoop), U8(75), I8(0), B(LdaSmi), I8(-1), - B(Star), R(11), - B(Star), R(10), + B(Star), R(9), + B(Star), R(8), B(Jump), U8(7), - B(Star), R(11), + B(Star), R(9), B(LdaZero), - B(Star), R(10), + B(Star), R(8), B(LdaTheHole), B(SetPendingMessage), + B(Star), R(10), + B(Ldar), R(7), + B(JumpIfToBooleanTrue), U8(58), + B(LdaNamedProperty), R(6), U8(4), U8(12), B(Star), R(12), - B(Ldar), R(9), - B(JumpIfToBooleanTrue), U8(60), - B(LdaNamedProperty), R(6), U8(5), U8(12), - B(Star), R(14), - B(JumpIfUndefined), U8(52), - B(JumpIfNull), U8(50), - B(Mov), R(context), R(15), + B(JumpIfUndefinedOrNull), U8(50), + B(Mov), R(context), R(13), B(TestTypeOf), U8(6), B(JumpIfTrue), U8(18), B(Wide), B(LdaSmi), I16(159), - B(Star), R(16), - B(LdaConstant), U8(6), - B(Star), R(17), - B(CallRuntime), U16(Runtime::kNewTypeError), R(16), U8(2), + B(Star), R(14), + B(LdaConstant), U8(5), + B(Star), R(15), + B(CallRuntime), U16(Runtime::kNewTypeError), R(14), U8(2), B(Throw), - B(CallProperty0), R(14), R(6), U8(14), + B(CallProperty0), R(12), R(6), U8(14), B(JumpIfJSReceiver), U8(21), - B(Star), R(16), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(16), U8(1), + B(Star), R(14), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(14), U8(1), B(Jump), U8(12), - B(Star), R(15), + B(Star), R(13), B(LdaZero), - B(TestReferenceEqual), R(10), + B(TestReferenceEqual), R(8), B(JumpIfTrue), U8(5), - B(Ldar), R(15), + B(Ldar), R(13), B(ReThrow), - B(Ldar), R(12), + B(Ldar), R(10), B(SetPendingMessage), B(LdaZero), - B(TestReferenceEqual), R(10), + B(TestReferenceEqual), R(8), B(JumpIfFalse), U8(5), - B(Ldar), R(11), + B(Ldar), R(9), B(ReThrow), B(LdaUndefined), B(Star), R(6), @@ -968,7 +941,7 @@ bytecodes: [ B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionResolve), R(5), U8(3), /* 54 S> */ B(Return), B(Star), R(5), - B(CreateCatchContext), R(5), U8(7), + B(CreateCatchContext), R(5), U8(6), B(Star), R(4), B(LdaTheHole), B(SetPendingMessage), @@ -983,8 +956,7 @@ bytecodes: [ /* 54 S> */ B(Return), ] constant pool: [ - Smi [107], - SYMBOL_TYPE, + Smi [103], ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"], @@ -993,8 +965,8 @@ constant pool: [ SCOPE_INFO_TYPE, ] handlers: [ - [20, 236, 236], - [54, 132, 140], - [166, 199, 201], + [20, 230, 230], + [50, 128, 136], + [160, 193, 195], ] diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/Generators.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/Generators.golden index bfbd05cd31..157b58d81d 100644 --- a/deps/v8/test/cctest/interpreter/bytecode_expectations/Generators.golden +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/Generators.golden @@ -98,9 +98,9 @@ snippet: " function* f() { for (let x of [42]) yield x } f(); " -frame size: 17 +frame size: 15 parameter count: 1 -bytecode array length: 261 +bytecode array length: 258 bytecodes: [ B(SwitchOnGeneratorState), R(0), U8(0), U8(2), B(Mov), R(closure), R(4), @@ -119,104 +119,102 @@ bytecodes: [ /* 44 S> */ B(Return), /* 30 S> */ B(CreateArrayLiteral), U8(4), U8(0), U8(37), B(Star), R(6), - B(LdaNamedProperty), R(6), U8(5), U8(1), + B(GetIterator), R(6), U8(1), B(Star), R(7), B(CallProperty0), R(7), R(6), U8(3), B(JumpIfJSReceiver), U8(7), B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0), B(Star), R(5), - B(LdaNamedProperty), R(5), U8(6), U8(5), + B(LdaNamedProperty), R(5), U8(5), U8(5), B(Star), R(4), B(LdaFalse), - B(Star), R(8), - B(Mov), R(context), R(11), + B(Star), R(6), + B(Mov), R(context), R(9), B(LdaTrue), - B(Star), R(8), + B(Star), R(6), /* 25 S> */ B(CallProperty0), R(4), R(5), U8(7), - B(Star), R(12), + B(Star), R(10), B(JumpIfJSReceiver), U8(7), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(12), U8(1), - B(LdaNamedProperty), R(12), U8(7), U8(9), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(10), U8(1), + B(LdaNamedProperty), R(10), U8(6), U8(9), B(JumpIfToBooleanTrue), U8(64), - B(LdaNamedProperty), R(12), U8(8), U8(11), - B(Star), R(12), + B(LdaNamedProperty), R(10), U8(7), U8(11), + B(Star), R(10), B(LdaFalse), - B(Star), R(8), - B(Mov), R(12), R(1), + B(Star), R(6), + B(Mov), R(10), R(1), /* 16 E> */ B(StackCheck), /* 25 S> */ B(Mov), R(1), R(3), /* 36 S> */ B(LdaFalse), - B(Star), R(14), - B(Mov), R(3), R(13), - B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(13), U8(2), - /* 36 E> */ B(SuspendGenerator), R(0), R(0), U8(13), U8(1), - B(ResumeGenerator), R(0), R(0), U8(13), - B(Star), R(13), + B(Star), R(12), + B(Mov), R(3), R(11), + B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(11), U8(2), + /* 36 E> */ B(SuspendGenerator), R(0), R(0), U8(11), U8(1), + B(ResumeGenerator), R(0), R(0), U8(11), + B(Star), R(11), B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1), - B(SwitchOnSmiNoFeedback), U8(9), U8(2), I8(0), - B(Ldar), R(13), + B(SwitchOnSmiNoFeedback), U8(8), U8(2), I8(0), + B(Ldar), R(11), /* 36 E> */ B(Throw), B(LdaSmi), I8(1), - B(Star), R(9), - B(Mov), R(13), R(10), + B(Star), R(7), + B(Mov), R(11), R(8), B(Jump), U8(20), - B(Ldar), R(13), + B(Ldar), R(11), B(JumpLoop), U8(81), I8(0), B(LdaSmi), I8(-1), - B(Star), R(10), - B(Star), R(9), + B(Star), R(8), + B(Star), R(7), B(Jump), U8(7), - B(Star), R(10), + B(Star), R(8), B(LdaZero), - B(Star), R(9), + B(Star), R(7), B(LdaTheHole), B(SetPendingMessage), + B(Star), R(9), + B(Ldar), R(6), + B(JumpIfToBooleanTrue), U8(58), + B(LdaNamedProperty), R(5), U8(10), U8(13), B(Star), R(11), - B(Ldar), R(8), - B(JumpIfToBooleanTrue), U8(60), - B(LdaNamedProperty), R(5), U8(11), U8(13), - B(Star), R(13), - B(JumpIfUndefined), U8(52), - B(JumpIfNull), U8(50), - B(Mov), R(context), R(14), + B(JumpIfUndefinedOrNull), U8(50), + B(Mov), R(context), R(12), B(TestTypeOf), U8(6), B(JumpIfTrue), U8(18), B(Wide), B(LdaSmi), I16(159), - B(Star), R(15), - B(LdaConstant), U8(12), - B(Star), R(16), - B(CallRuntime), U16(Runtime::kNewTypeError), R(15), U8(2), + B(Star), R(13), + B(LdaConstant), U8(11), + B(Star), R(14), + B(CallRuntime), U16(Runtime::kNewTypeError), R(13), U8(2), B(Throw), - B(CallProperty0), R(13), R(5), U8(15), + B(CallProperty0), R(11), R(5), U8(15), B(JumpIfJSReceiver), U8(21), - B(Star), R(15), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(15), U8(1), + B(Star), R(13), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(13), U8(1), B(Jump), U8(12), - B(Star), R(14), + B(Star), R(12), B(LdaZero), - B(TestReferenceEqual), R(9), + B(TestReferenceEqual), R(7), B(JumpIfTrue), U8(5), - B(Ldar), R(14), + B(Ldar), R(12), B(ReThrow), - B(Ldar), R(11), - B(SetPendingMessage), B(Ldar), R(9), - B(SwitchOnSmiNoFeedback), U8(13), U8(2), I8(0), + B(SetPendingMessage), + B(Ldar), R(7), + B(SwitchOnSmiNoFeedback), U8(12), U8(2), I8(0), B(Jump), U8(8), - B(Ldar), R(10), + B(Ldar), R(8), B(ReThrow), - B(Ldar), R(10), + B(Ldar), R(8), /* 44 S> */ B(Return), B(LdaUndefined), /* 44 S> */ B(Return), ] constant pool: [ Smi [22], - Smi [132], + Smi [131], Smi [10], Smi [7], ARRAY_BOILERPLATE_DESCRIPTION_TYPE, - SYMBOL_TYPE, ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"], @@ -228,8 +226,8 @@ constant pool: [ Smi [9], ] handlers: [ - [79, 163, 171], - [197, 230, 232], + [78, 162, 170], + [194, 227, 229], ] --- @@ -238,9 +236,9 @@ snippet: " function* f() { yield* g() } f(); " -frame size: 9 +frame size: 8 parameter count: 1 -bytecode array length: 217 +bytecode array length: 210 bytecodes: [ B(SwitchOnGeneratorState), R(0), U8(0), U8(2), B(Mov), R(closure), R(1), @@ -261,59 +259,56 @@ bytecodes: [ B(Star), R(5), /* 50 E> */ B(CallUndefinedReceiver0), R(5), U8(2), B(Star), R(6), - B(LdaNamedProperty), R(6), U8(5), U8(4), + B(GetIterator), R(6), U8(4), B(Star), R(7), B(CallProperty0), R(7), R(6), U8(6), B(JumpIfJSReceiver), U8(7), B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0), B(Star), R(3), - B(LdaNamedProperty), R(3), U8(6), U8(8), + B(LdaNamedProperty), R(3), U8(5), U8(8), B(Star), R(5), B(LdaUndefined), B(Star), R(4), B(LdaZero), B(Star), R(2), B(Ldar), R(2), - B(SwitchOnSmiNoFeedback), U8(7), U8(2), I8(1), + B(SwitchOnSmiNoFeedback), U8(6), U8(2), I8(1), B(CallProperty1), R(5), R(3), R(4), U8(10), - B(Jump), U8(69), - B(LdaNamedProperty), R(3), U8(9), U8(12), - B(JumpIfUndefined), U8(13), - B(JumpIfNull), U8(11), - B(Star), R(8), - B(CallProperty1), R(8), R(3), R(4), U8(14), - B(Jump), U8(52), + B(Jump), U8(63), + B(LdaNamedProperty), R(3), U8(8), U8(12), + B(JumpIfUndefinedOrNull), U8(11), + B(Star), R(6), + B(CallProperty1), R(6), R(3), R(4), U8(14), + B(Jump), U8(48), B(Ldar), R(4), /* 54 S> */ B(Return), - B(LdaNamedProperty), R(3), U8(10), U8(16), - B(JumpIfUndefined), U8(13), - B(JumpIfNull), U8(11), - B(Star), R(8), - B(CallProperty1), R(8), R(3), R(4), U8(18), - B(Jump), U8(32), - B(LdaNamedProperty), R(3), U8(9), U8(20), - B(JumpIfUndefined), U8(21), - B(JumpIfNull), U8(19), - B(Star), R(8), - B(CallProperty0), R(8), R(3), U8(22), + B(LdaNamedProperty), R(3), U8(9), U8(16), + B(JumpIfUndefinedOrNull), U8(11), + B(Star), R(6), + B(CallProperty1), R(6), R(3), R(4), U8(18), + B(Jump), U8(30), + B(LdaNamedProperty), R(3), U8(8), U8(20), + B(JumpIfUndefinedOrNull), U8(19), + B(Star), R(6), + B(CallProperty0), R(6), R(3), U8(22), B(Jump), U8(2), B(JumpIfJSReceiver), U8(9), - B(Star), R(8), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(8), U8(1), + B(Star), R(6), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(6), U8(1), B(CallRuntime), U16(Runtime::kThrowThrowMethodMissing), R(0), U8(0), B(Star), R(1), B(JumpIfJSReceiver), U8(7), B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(1), U8(1), - B(LdaNamedProperty), R(1), U8(11), U8(24), + B(LdaNamedProperty), R(1), U8(10), U8(24), B(JumpIfToBooleanTrue), U8(24), B(Ldar), R(1), - /* 43 E> */ B(SuspendGenerator), R(0), R(0), U8(8), U8(1), - B(ResumeGenerator), R(0), R(0), U8(8), + /* 43 E> */ B(SuspendGenerator), R(0), R(0), U8(6), U8(1), + B(ResumeGenerator), R(0), R(0), U8(6), B(Star), R(4), B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1), B(Star), R(2), - B(JumpLoop), U8(114), I8(0), - B(LdaNamedProperty), R(1), U8(12), U8(26), + B(JumpLoop), U8(108), I8(0), + B(LdaNamedProperty), R(1), U8(11), U8(26), B(Star), R(3), B(LdaSmi), I8(1), B(TestReferenceEqual), R(2), @@ -325,14 +320,13 @@ bytecodes: [ ] constant pool: [ Smi [22], - Smi [185], + Smi [178], Smi [10], Smi [7], ONE_BYTE_INTERNALIZED_STRING_TYPE ["g"], - SYMBOL_TYPE, ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"], Smi [11], - Smi [31], + Smi [29], ONE_BYTE_INTERNALIZED_STRING_TYPE ["return"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["throw"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"], diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/NewAndSpread.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/NewAndSpread.golden index ed15f99fc9..dce8d7ac8c 100644 --- a/deps/v8/test/cctest/interpreter/bytecode_expectations/NewAndSpread.golden +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/NewAndSpread.golden @@ -92,9 +92,9 @@ snippet: " class A { constructor(...args) { this.args = args; } } new A(0, ...[1, 2, 3], 4); " -frame size: 10 +frame size: 9 parameter count: 1 -bytecode array length: 131 +bytecode array length: 130 bytecodes: [ /* 30 E> */ B(StackCheck), B(CreateBlockContext), U8(0), @@ -117,22 +117,22 @@ bytecodes: [ B(Star), R(3), /* 101 S> */ B(CreateArrayLiteral), U8(5), U8(1), U8(37), B(Star), R(7), - B(LdaNamedProperty), R(7), U8(6), U8(2), + B(GetIterator), R(7), U8(2), B(Star), R(8), B(CallProperty0), R(8), R(7), U8(4), B(Mov), R(5), R(2), B(JumpIfJSReceiver), U8(7), B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0), B(Star), R(6), - B(LdaNamedProperty), R(6), U8(7), U8(6), + B(LdaNamedProperty), R(6), U8(6), U8(6), B(Star), R(5), B(CallProperty0), R(5), R(6), U8(15), - B(Star), R(9), + B(Star), R(7), B(JumpIfJSReceiver), U8(7), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(9), U8(1), - B(LdaNamedProperty), R(9), U8(8), U8(17), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(7), U8(1), + B(LdaNamedProperty), R(7), U8(7), U8(17), B(JumpIfToBooleanTrue), U8(19), - B(LdaNamedProperty), R(9), U8(9), U8(8), + B(LdaNamedProperty), R(7), U8(8), U8(8), B(StaInArrayLiteral), R(4), R(3), U8(13), B(Ldar), R(3), B(Inc), U8(12), @@ -152,7 +152,6 @@ constant pool: [ ARRAY_BOILERPLATE_DESCRIPTION_TYPE, Smi [1], ARRAY_BOILERPLATE_DESCRIPTION_TYPE, - SYMBOL_TYPE, ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"], diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/PrivateAccessorAccess.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/PrivateAccessorAccess.golden new file mode 100644 index 0000000000..6fc00999a5 --- /dev/null +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/PrivateAccessorAccess.golden @@ -0,0 +1,192 @@ +# +# Autogenerated by generate-bytecode-expectations. +# + +--- +wrap: no +test function name: test +private methods: yes + +--- +snippet: " + class A { + get #a() { return 1; } + set #a(val) { } + + constructor() { + this.#a++; + this.#a = 1; + return this.#a; + } + } + var test = A; + new test; +" +frame size: 6 +parameter count: 1 +bytecode array length: 95 +bytecodes: [ + /* 67 E> */ B(StackCheck), + B(LdaCurrentContextSlot), U8(5), + B(Star), R(1), + B(Mov), R(this), R(0), + B(CallRuntime), U16(Runtime::kAddPrivateBrand), R(0), U8(2), + /* 76 S> */ B(LdaCurrentContextSlot), U8(4), + B(Star), R(3), + B(LdaCurrentContextSlot), U8(5), + /* 81 E> */ B(LdaKeyedProperty), R(this), U8(0), + B(CallRuntime), U16(Runtime::kLoadPrivateGetter), R(3), U8(1), + B(Star), R(4), + B(CallProperty0), R(4), R(this), U8(2), + B(Inc), U8(4), + B(Star), R(4), + /* 83 E> */ B(CallRuntime), U16(Runtime::kLoadPrivateSetter), R(3), U8(1), + B(Star), R(5), + B(CallProperty1), R(5), R(this), R(4), U8(5), + /* 91 S> */ B(LdaSmi), I8(1), + B(Star), R(2), + B(LdaCurrentContextSlot), U8(4), + B(Star), R(4), + B(LdaCurrentContextSlot), U8(5), + /* 96 E> */ B(LdaKeyedProperty), R(this), U8(7), + B(CallRuntime), U16(Runtime::kLoadPrivateSetter), R(4), U8(1), + B(Star), R(5), + B(CallProperty1), R(5), R(this), R(2), U8(9), + /* 108 S> */ B(LdaCurrentContextSlot), U8(4), + B(Star), R(3), + B(LdaCurrentContextSlot), U8(5), + /* 120 E> */ B(LdaKeyedProperty), R(this), U8(11), + B(CallRuntime), U16(Runtime::kLoadPrivateGetter), R(3), U8(1), + B(Star), R(4), + B(CallProperty0), R(4), R(this), U8(13), + /* 123 S> */ B(Return), +] +constant pool: [ +] +handlers: [ +] + +--- +snippet: " + class B { + get #b() { return 1; } + constructor() { this.#b++; } + } + var test = B; + new test; +" +frame size: 4 +parameter count: 1 +bytecode array length: 29 +bytecodes: [ + /* 48 E> */ B(StackCheck), + B(LdaCurrentContextSlot), U8(5), + B(Star), R(1), + B(Mov), R(this), R(0), + B(CallRuntime), U16(Runtime::kAddPrivateBrand), R(0), U8(2), + /* 53 S> */ B(Wide), B(LdaSmi), I16(263), + B(Star), R(2), + B(LdaConstant), U8(0), + B(Star), R(3), + B(CallRuntime), U16(Runtime::kNewTypeError), R(2), U8(2), + B(Throw), +] +constant pool: [ + ONE_BYTE_INTERNALIZED_STRING_TYPE ["#b"], +] +handlers: [ +] + +--- +snippet: " + class C { + set #c(val) { } + constructor() { this.#c++; } + } + var test = C; + new test; +" +frame size: 4 +parameter count: 1 +bytecode array length: 29 +bytecodes: [ + /* 41 E> */ B(StackCheck), + B(LdaCurrentContextSlot), U8(5), + B(Star), R(1), + B(Mov), R(this), R(0), + B(CallRuntime), U16(Runtime::kAddPrivateBrand), R(0), U8(2), + /* 46 S> */ B(Wide), B(LdaSmi), I16(262), + B(Star), R(2), + B(LdaConstant), U8(0), + B(Star), R(3), + B(CallRuntime), U16(Runtime::kNewTypeError), R(2), U8(2), + B(Throw), +] +constant pool: [ + ONE_BYTE_INTERNALIZED_STRING_TYPE ["#c"], +] +handlers: [ +] + +--- +snippet: " + class D { + get #d() { return 1; } + constructor() { this.#d = 1; } + } + var test = D; + new test; +" +frame size: 4 +parameter count: 1 +bytecode array length: 29 +bytecodes: [ + /* 48 E> */ B(StackCheck), + B(LdaCurrentContextSlot), U8(5), + B(Star), R(1), + B(Mov), R(this), R(0), + B(CallRuntime), U16(Runtime::kAddPrivateBrand), R(0), U8(2), + /* 53 S> */ B(Wide), B(LdaSmi), I16(263), + B(Star), R(2), + B(LdaConstant), U8(0), + B(Star), R(3), + /* 61 E> */ B(CallRuntime), U16(Runtime::kNewTypeError), R(2), U8(2), + B(Throw), +] +constant pool: [ + ONE_BYTE_INTERNALIZED_STRING_TYPE ["#d"], +] +handlers: [ +] + +--- +snippet: " + class E { + set #e(val) { } + constructor() { this.#e; } + } + var test = E; + new test; +" +frame size: 5 +parameter count: 1 +bytecode array length: 29 +bytecodes: [ + /* 41 E> */ B(StackCheck), + B(LdaCurrentContextSlot), U8(5), + B(Star), R(1), + B(Mov), R(this), R(0), + B(CallRuntime), U16(Runtime::kAddPrivateBrand), R(0), U8(2), + /* 46 S> */ B(Wide), B(LdaSmi), I16(262), + B(Star), R(3), + B(LdaConstant), U8(0), + B(Star), R(4), + B(CallRuntime), U16(Runtime::kNewTypeError), R(3), U8(2), + B(Throw), +] +constant pool: [ + ONE_BYTE_INTERNALIZED_STRING_TYPE ["#e"], +] +handlers: [ +] + diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/PrivateAccessorDeclaration.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/PrivateAccessorDeclaration.golden new file mode 100644 index 0000000000..aceee552b5 --- /dev/null +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/PrivateAccessorDeclaration.golden @@ -0,0 +1,398 @@ +# +# Autogenerated by generate-bytecode-expectations. +# + +--- +wrap: yes +private methods: yes + +--- +snippet: " + { + class A { + get #a() { return 1; } + set #a(val) { } + } + } +" +frame size: 8 +parameter count: 1 +bytecode array length: 68 +bytecodes: [ + /* 30 E> */ B(StackCheck), + B(CreateBlockContext), U8(0), + B(PushContext), R(2), + B(LdaTheHole), + B(Star), R(6), + B(CreateClosure), U8(2), U8(0), U8(2), + B(Star), R(3), + B(LdaConstant), U8(1), + B(Star), R(4), + B(Mov), R(3), R(5), + B(CallRuntime), U16(Runtime::kDefineClass), R(4), U8(3), + B(Star), R(4), + B(Mov), R(5), R(1), + B(LdaConstant), U8(3), + B(Star), R(5), + B(CallRuntime), U16(Runtime::kCreatePrivateNameSymbol), R(5), U8(1), + B(StaCurrentContextSlot), U8(5), + B(CreateClosure), U8(4), U8(1), U8(2), + B(Star), R(6), + B(CreateClosure), U8(5), U8(2), U8(2), + B(Star), R(7), + B(CallRuntime), U16(Runtime::kCreatePrivateAccessors), R(6), U8(2), + B(StaCurrentContextSlot), U8(4), + B(PopContext), R(2), + B(Mov), R(1), R(0), + B(LdaUndefined), + /* 101 S> */ B(Return), +] +constant pool: [ + SCOPE_INFO_TYPE, + FIXED_ARRAY_TYPE, + SHARED_FUNCTION_INFO_TYPE, + ONE_BYTE_INTERNALIZED_STRING_TYPE ["A"], + SHARED_FUNCTION_INFO_TYPE, + SHARED_FUNCTION_INFO_TYPE, +] +handlers: [ +] + +--- +snippet: " + { + class B { + get #b() { return 1; } + } + } +" +frame size: 8 +parameter count: 1 +bytecode array length: 65 +bytecodes: [ + /* 30 E> */ B(StackCheck), + B(CreateBlockContext), U8(0), + B(PushContext), R(2), + B(LdaTheHole), + B(Star), R(6), + B(CreateClosure), U8(2), U8(0), U8(2), + B(Star), R(3), + B(LdaConstant), U8(1), + B(Star), R(4), + B(Mov), R(3), R(5), + B(CallRuntime), U16(Runtime::kDefineClass), R(4), U8(3), + B(Star), R(4), + B(Mov), R(5), R(1), + B(LdaConstant), U8(3), + B(Star), R(5), + B(CallRuntime), U16(Runtime::kCreatePrivateNameSymbol), R(5), U8(1), + B(StaCurrentContextSlot), U8(5), + B(CreateClosure), U8(4), U8(1), U8(2), + B(Star), R(6), + B(LdaNull), + B(Star), R(7), + B(CallRuntime), U16(Runtime::kCreatePrivateAccessors), R(6), U8(2), + B(StaCurrentContextSlot), U8(4), + B(PopContext), R(2), + B(Mov), R(1), R(0), + B(LdaUndefined), + /* 81 S> */ B(Return), +] +constant pool: [ + SCOPE_INFO_TYPE, + FIXED_ARRAY_TYPE, + SHARED_FUNCTION_INFO_TYPE, + ONE_BYTE_INTERNALIZED_STRING_TYPE ["B"], + SHARED_FUNCTION_INFO_TYPE, +] +handlers: [ +] + +--- +snippet: " + { + class C { + set #c(val) { } + } + } +" +frame size: 8 +parameter count: 1 +bytecode array length: 65 +bytecodes: [ + /* 30 E> */ B(StackCheck), + B(CreateBlockContext), U8(0), + B(PushContext), R(2), + B(LdaTheHole), + B(Star), R(6), + B(CreateClosure), U8(2), U8(0), U8(2), + B(Star), R(3), + B(LdaConstant), U8(1), + B(Star), R(4), + B(Mov), R(3), R(5), + B(CallRuntime), U16(Runtime::kDefineClass), R(4), U8(3), + B(Star), R(4), + B(Mov), R(5), R(1), + B(LdaConstant), U8(3), + B(Star), R(5), + B(CallRuntime), U16(Runtime::kCreatePrivateNameSymbol), R(5), U8(1), + B(StaCurrentContextSlot), U8(5), + B(LdaNull), + B(Star), R(6), + B(CreateClosure), U8(4), U8(1), U8(2), + B(Star), R(7), + B(CallRuntime), U16(Runtime::kCreatePrivateAccessors), R(6), U8(2), + B(StaCurrentContextSlot), U8(4), + B(PopContext), R(2), + B(Mov), R(1), R(0), + B(LdaUndefined), + /* 74 S> */ B(Return), +] +constant pool: [ + SCOPE_INFO_TYPE, + FIXED_ARRAY_TYPE, + SHARED_FUNCTION_INFO_TYPE, + ONE_BYTE_INTERNALIZED_STRING_TYPE ["C"], + SHARED_FUNCTION_INFO_TYPE, +] +handlers: [ +] + +--- +snippet: " + { + class D { + get #d() { return 1; } + set #d(val) { } + } + + class E extends D { + get #e() { return 2; } + set #e(val) { } + } + } +" +frame size: 10 +parameter count: 1 +bytecode array length: 133 +bytecodes: [ + /* 30 E> */ B(StackCheck), + B(CreateBlockContext), U8(0), + B(PushContext), R(4), + B(LdaTheHole), + B(Star), R(8), + B(CreateClosure), U8(2), U8(0), U8(2), + B(Star), R(5), + B(LdaConstant), U8(1), + B(Star), R(6), + B(Mov), R(5), R(7), + B(CallRuntime), U16(Runtime::kDefineClass), R(6), U8(3), + B(Star), R(6), + B(Mov), R(7), R(3), + B(LdaConstant), U8(3), + B(Star), R(7), + B(CallRuntime), U16(Runtime::kCreatePrivateNameSymbol), R(7), U8(1), + B(StaCurrentContextSlot), U8(5), + B(CreateClosure), U8(4), U8(1), U8(2), + B(Star), R(8), + B(CreateClosure), U8(5), U8(2), U8(2), + B(Star), R(9), + B(CallRuntime), U16(Runtime::kCreatePrivateAccessors), R(8), U8(2), + B(StaCurrentContextSlot), U8(4), + B(PopContext), R(4), + B(Mov), R(3), R(0), + /* 38 E> */ B(CreateBlockContext), U8(6), + B(PushContext), R(4), + /* 118 E> */ B(CreateClosure), U8(8), U8(3), U8(2), + B(Star), R(5), + B(LdaConstant), U8(7), + B(Star), R(6), + B(Mov), R(5), R(7), + B(Mov), R(3), R(8), + B(CallRuntime), U16(Runtime::kDefineClass), R(6), U8(3), + B(Star), R(6), + B(Mov), R(7), R(2), + B(LdaConstant), U8(9), + B(Star), R(7), + B(CallRuntime), U16(Runtime::kCreatePrivateNameSymbol), R(7), U8(1), + B(StaCurrentContextSlot), U8(5), + B(CreateClosure), U8(10), U8(4), U8(2), + B(Star), R(8), + B(CreateClosure), U8(11), U8(5), U8(2), + B(Star), R(9), + B(CallRuntime), U16(Runtime::kCreatePrivateAccessors), R(8), U8(2), + B(StaCurrentContextSlot), U8(4), + B(PopContext), R(4), + B(Mov), R(2), R(1), + B(LdaUndefined), + /* 175 S> */ B(Return), +] +constant pool: [ + SCOPE_INFO_TYPE, + FIXED_ARRAY_TYPE, + SHARED_FUNCTION_INFO_TYPE, + ONE_BYTE_INTERNALIZED_STRING_TYPE ["D"], + SHARED_FUNCTION_INFO_TYPE, + SHARED_FUNCTION_INFO_TYPE, + SCOPE_INFO_TYPE, + FIXED_ARRAY_TYPE, + SHARED_FUNCTION_INFO_TYPE, + ONE_BYTE_INTERNALIZED_STRING_TYPE ["E"], + SHARED_FUNCTION_INFO_TYPE, + SHARED_FUNCTION_INFO_TYPE, +] +handlers: [ +] + +--- +snippet: " + { + class A { foo() {} } + class C extends A { + get #a() { return super.foo; } + } + new C(); + } +" +frame size: 10 +parameter count: 1 +bytecode array length: 119 +bytecodes: [ + /* 30 E> */ B(StackCheck), + B(CreateBlockContext), U8(0), + B(PushContext), R(4), + B(LdaTheHole), + B(Star), R(8), + B(CreateClosure), U8(2), U8(0), U8(2), + B(Star), R(5), + B(LdaConstant), U8(1), + B(Star), R(6), + B(CreateClosure), U8(3), U8(1), U8(2), + B(Star), R(9), + B(Mov), R(5), R(7), + B(CallRuntime), U16(Runtime::kDefineClass), R(6), U8(4), + B(Star), R(6), + B(Mov), R(7), R(3), + B(PopContext), R(4), + B(Mov), R(3), R(0), + /* 38 E> */ B(CreateBlockContext), U8(4), + B(PushContext), R(4), + /* 77 E> */ B(CreateClosure), U8(6), U8(2), U8(2), + B(Star), R(5), + B(LdaConstant), U8(5), + B(Star), R(6), + B(Mov), R(5), R(7), + B(Mov), R(3), R(8), + B(CallRuntime), U16(Runtime::kDefineClass), R(6), U8(3), + B(Star), R(6), + B(Mov), R(7), R(2), + B(LdaConstant), U8(7), + B(Star), R(7), + B(CallRuntime), U16(Runtime::kCreatePrivateNameSymbol), R(7), U8(1), + B(StaCurrentContextSlot), U8(5), + B(CreateClosure), U8(8), U8(3), U8(2), + B(Star), R(8), + B(Ldar), R(6), + B(StaNamedProperty), R(8), U8(9), U8(0), + B(LdaNull), + B(Star), R(9), + B(CallRuntime), U16(Runtime::kCreatePrivateAccessors), R(8), U8(2), + B(StaCurrentContextSlot), U8(4), + B(PopContext), R(4), + B(Mov), R(2), R(1), + /* 122 S> */ B(Ldar), R(1), + /* 122 E> */ B(Construct), R(1), R(0), U8(0), U8(2), + B(LdaUndefined), + /* 133 S> */ B(Return), +] +constant pool: [ + SCOPE_INFO_TYPE, + FIXED_ARRAY_TYPE, + SHARED_FUNCTION_INFO_TYPE, + SHARED_FUNCTION_INFO_TYPE, + SCOPE_INFO_TYPE, + FIXED_ARRAY_TYPE, + SHARED_FUNCTION_INFO_TYPE, + ONE_BYTE_INTERNALIZED_STRING_TYPE ["C"], + SHARED_FUNCTION_INFO_TYPE, + SYMBOL_TYPE, +] +handlers: [ +] + +--- +snippet: " + { + class A { foo(val) {} } + class C extends A { + set #a(val) { super.foo(val); } + } + new C(); + } +" +frame size: 10 +parameter count: 1 +bytecode array length: 119 +bytecodes: [ + /* 30 E> */ B(StackCheck), + B(CreateBlockContext), U8(0), + B(PushContext), R(4), + B(LdaTheHole), + B(Star), R(8), + B(CreateClosure), U8(2), U8(0), U8(2), + B(Star), R(5), + B(LdaConstant), U8(1), + B(Star), R(6), + B(CreateClosure), U8(3), U8(1), U8(2), + B(Star), R(9), + B(Mov), R(5), R(7), + B(CallRuntime), U16(Runtime::kDefineClass), R(6), U8(4), + B(Star), R(6), + B(Mov), R(7), R(3), + B(PopContext), R(4), + B(Mov), R(3), R(0), + /* 38 E> */ B(CreateBlockContext), U8(4), + B(PushContext), R(4), + /* 80 E> */ B(CreateClosure), U8(6), U8(2), U8(2), + B(Star), R(5), + B(LdaConstant), U8(5), + B(Star), R(6), + B(Mov), R(5), R(7), + B(Mov), R(3), R(8), + B(CallRuntime), U16(Runtime::kDefineClass), R(6), U8(3), + B(Star), R(6), + B(Mov), R(7), R(2), + B(LdaConstant), U8(7), + B(Star), R(7), + B(CallRuntime), U16(Runtime::kCreatePrivateNameSymbol), R(7), U8(1), + B(StaCurrentContextSlot), U8(5), + B(LdaNull), + B(Star), R(8), + B(CreateClosure), U8(8), U8(3), U8(2), + B(Star), R(9), + B(Ldar), R(6), + B(StaNamedProperty), R(9), U8(9), U8(0), + B(CallRuntime), U16(Runtime::kCreatePrivateAccessors), R(8), U8(2), + B(StaCurrentContextSlot), U8(4), + B(PopContext), R(4), + B(Mov), R(2), R(1), + /* 126 S> */ B(Ldar), R(1), + /* 126 E> */ B(Construct), R(1), R(0), U8(0), U8(2), + B(LdaUndefined), + /* 137 S> */ B(Return), +] +constant pool: [ + SCOPE_INFO_TYPE, + FIXED_ARRAY_TYPE, + SHARED_FUNCTION_INFO_TYPE, + SHARED_FUNCTION_INFO_TYPE, + SCOPE_INFO_TYPE, + FIXED_ARRAY_TYPE, + SHARED_FUNCTION_INFO_TYPE, + ONE_BYTE_INTERNALIZED_STRING_TYPE ["C"], + SHARED_FUNCTION_INFO_TYPE, + SYMBOL_TYPE, +] +handlers: [ +] + diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/PrivateMethodAccess.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/PrivateMethodAccess.golden new file mode 100644 index 0000000000..d41b342187 --- /dev/null +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/PrivateMethodAccess.golden @@ -0,0 +1,104 @@ +# +# Autogenerated by generate-bytecode-expectations. +# + +--- +wrap: no +test function name: test +private methods: yes + +--- +snippet: " + class A { + #a() { return 1; } + constructor() { return this.#a(); } + } + + var test = A; + new A; +" +frame size: 3 +parameter count: 1 +bytecode array length: 28 +bytecodes: [ + /* 44 E> */ B(StackCheck), + B(LdaCurrentContextSlot), U8(5), + B(Star), R(1), + B(Mov), R(this), R(0), + B(CallRuntime), U16(Runtime::kAddPrivateBrand), R(0), U8(2), + /* 49 S> */ B(LdaCurrentContextSlot), U8(5), + /* 61 E> */ B(LdaKeyedProperty), R(this), U8(0), + B(LdaCurrentContextSlot), U8(4), + B(Star), R(2), + /* 63 E> */ B(CallAnyReceiver), R(2), R(this), U8(1), U8(2), + /* 66 S> */ B(Return), +] +constant pool: [ +] +handlers: [ +] + +--- +snippet: " + class B { + #b() { return 1; } + constructor() { this.#b = 1; } + } + + var test = B; + new test; +" +frame size: 4 +parameter count: 1 +bytecode array length: 29 +bytecodes: [ + /* 44 E> */ B(StackCheck), + B(LdaCurrentContextSlot), U8(5), + B(Star), R(1), + B(Mov), R(this), R(0), + B(CallRuntime), U16(Runtime::kAddPrivateBrand), R(0), U8(2), + /* 49 S> */ B(Wide), B(LdaSmi), I16(261), + B(Star), R(2), + B(LdaConstant), U8(0), + B(Star), R(3), + /* 57 E> */ B(CallRuntime), U16(Runtime::kNewTypeError), R(2), U8(2), + B(Throw), +] +constant pool: [ + ONE_BYTE_INTERNALIZED_STRING_TYPE ["#b"], +] +handlers: [ +] + +--- +snippet: " + class C { + #c() { return 1; } + constructor() { this.#c++; } + } + + var test = C; + new test; +" +frame size: 4 +parameter count: 1 +bytecode array length: 29 +bytecodes: [ + /* 44 E> */ B(StackCheck), + B(LdaCurrentContextSlot), U8(5), + B(Star), R(1), + B(Mov), R(this), R(0), + B(CallRuntime), U16(Runtime::kAddPrivateBrand), R(0), U8(2), + /* 49 S> */ B(Wide), B(LdaSmi), I16(261), + B(Star), R(2), + B(LdaConstant), U8(0), + B(Star), R(3), + B(CallRuntime), U16(Runtime::kNewTypeError), R(2), U8(2), + B(Throw), +] +constant pool: [ + ONE_BYTE_INTERNALIZED_STRING_TYPE ["#c"], +] +handlers: [ +] + diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/PrivateMethodDeclaration.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/PrivateMethodDeclaration.golden new file mode 100644 index 0000000000..d1aab34fda --- /dev/null +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/PrivateMethodDeclaration.golden @@ -0,0 +1,198 @@ +# +# Autogenerated by generate-bytecode-expectations. +# + +--- +wrap: yes +private methods: yes + +--- +snippet: " + { + class A { + #a() { return 1; } + } + } +" +frame size: 7 +parameter count: 1 +bytecode array length: 55 +bytecodes: [ + /* 30 E> */ B(StackCheck), + B(CreateBlockContext), U8(0), + B(PushContext), R(2), + B(LdaTheHole), + B(Star), R(6), + B(CreateClosure), U8(2), U8(0), U8(2), + B(Star), R(3), + B(LdaConstant), U8(1), + B(Star), R(4), + B(CreateClosure), U8(3), U8(1), U8(2), + B(StaCurrentContextSlot), U8(4), + B(Mov), R(3), R(5), + B(CallRuntime), U16(Runtime::kDefineClass), R(4), U8(3), + B(Star), R(4), + B(Mov), R(5), R(1), + B(LdaConstant), U8(4), + B(Star), R(5), + B(CallRuntime), U16(Runtime::kCreatePrivateNameSymbol), R(5), U8(1), + B(StaCurrentContextSlot), U8(5), + B(PopContext), R(2), + B(Mov), R(1), R(0), + B(LdaUndefined), + /* 77 S> */ B(Return), +] +constant pool: [ + SCOPE_INFO_TYPE, + FIXED_ARRAY_TYPE, + SHARED_FUNCTION_INFO_TYPE, + SHARED_FUNCTION_INFO_TYPE, + ONE_BYTE_INTERNALIZED_STRING_TYPE ["A"], +] +handlers: [ +] + +--- +snippet: " + { + class D { + #d() { return 1; } + } + class E extends D { + #e() { return 2; } + } + } +" +frame size: 9 +parameter count: 1 +bytecode array length: 107 +bytecodes: [ + /* 30 E> */ B(StackCheck), + B(CreateBlockContext), U8(0), + B(PushContext), R(4), + B(LdaTheHole), + B(Star), R(8), + B(CreateClosure), U8(2), U8(0), U8(2), + B(Star), R(5), + B(LdaConstant), U8(1), + B(Star), R(6), + B(CreateClosure), U8(3), U8(1), U8(2), + B(StaCurrentContextSlot), U8(4), + B(Mov), R(5), R(7), + B(CallRuntime), U16(Runtime::kDefineClass), R(6), U8(3), + B(Star), R(6), + B(Mov), R(7), R(3), + B(LdaConstant), U8(4), + B(Star), R(7), + B(CallRuntime), U16(Runtime::kCreatePrivateNameSymbol), R(7), U8(1), + B(StaCurrentContextSlot), U8(5), + B(PopContext), R(4), + B(Mov), R(3), R(0), + /* 38 E> */ B(CreateBlockContext), U8(5), + B(PushContext), R(4), + /* 93 E> */ B(CreateClosure), U8(7), U8(2), U8(2), + B(Star), R(5), + B(LdaConstant), U8(6), + B(Star), R(6), + B(CreateClosure), U8(8), U8(3), U8(2), + B(StaCurrentContextSlot), U8(4), + B(Mov), R(5), R(7), + B(Mov), R(3), R(8), + B(CallRuntime), U16(Runtime::kDefineClass), R(6), U8(3), + B(Star), R(6), + B(Mov), R(7), R(2), + B(LdaConstant), U8(9), + B(Star), R(7), + B(CallRuntime), U16(Runtime::kCreatePrivateNameSymbol), R(7), U8(1), + B(StaCurrentContextSlot), U8(5), + B(PopContext), R(4), + B(Mov), R(2), R(1), + B(LdaUndefined), + /* 126 S> */ B(Return), +] +constant pool: [ + SCOPE_INFO_TYPE, + FIXED_ARRAY_TYPE, + SHARED_FUNCTION_INFO_TYPE, + SHARED_FUNCTION_INFO_TYPE, + ONE_BYTE_INTERNALIZED_STRING_TYPE ["D"], + SCOPE_INFO_TYPE, + FIXED_ARRAY_TYPE, + SHARED_FUNCTION_INFO_TYPE, + SHARED_FUNCTION_INFO_TYPE, + ONE_BYTE_INTERNALIZED_STRING_TYPE ["E"], +] +handlers: [ +] + +--- +snippet: " + { + class A { foo() {} } + class C extends A { + #m() { return super.foo; } + } + } +" +frame size: 10 +parameter count: 1 +bytecode array length: 106 +bytecodes: [ + /* 30 E> */ B(StackCheck), + B(CreateBlockContext), U8(0), + B(PushContext), R(4), + B(LdaTheHole), + B(Star), R(8), + B(CreateClosure), U8(2), U8(0), U8(2), + B(Star), R(5), + B(LdaConstant), U8(1), + B(Star), R(6), + B(CreateClosure), U8(3), U8(1), U8(2), + B(Star), R(9), + B(Mov), R(5), R(7), + B(CallRuntime), U16(Runtime::kDefineClass), R(6), U8(4), + B(Star), R(6), + B(Mov), R(7), R(3), + B(PopContext), R(4), + B(Mov), R(3), R(0), + /* 38 E> */ B(CreateBlockContext), U8(4), + B(PushContext), R(4), + /* 77 E> */ B(CreateClosure), U8(6), U8(2), U8(2), + B(Star), R(5), + B(LdaConstant), U8(5), + B(Star), R(6), + B(CreateClosure), U8(7), U8(3), U8(2), + B(StaCurrentContextSlot), U8(4), + B(Mov), R(5), R(7), + B(Mov), R(3), R(8), + B(CallRuntime), U16(Runtime::kDefineClass), R(6), U8(3), + B(Star), R(6), + B(Mov), R(7), R(2), + B(LdaConstant), U8(8), + B(Star), R(7), + B(CallRuntime), U16(Runtime::kCreatePrivateNameSymbol), R(7), U8(1), + B(StaCurrentContextSlot), U8(5), + B(LdaCurrentContextSlot), U8(4), + B(Star), R(8), + B(Ldar), R(6), + B(StaNamedProperty), R(8), U8(9), U8(0), + B(PopContext), R(4), + B(Mov), R(2), R(1), + B(LdaUndefined), + /* 118 S> */ B(Return), +] +constant pool: [ + SCOPE_INFO_TYPE, + FIXED_ARRAY_TYPE, + SHARED_FUNCTION_INFO_TYPE, + SHARED_FUNCTION_INFO_TYPE, + SCOPE_INFO_TYPE, + FIXED_ARRAY_TYPE, + SHARED_FUNCTION_INFO_TYPE, + SHARED_FUNCTION_INFO_TYPE, + ONE_BYTE_INTERNALIZED_STRING_TYPE ["C"], + SYMBOL_TYPE, +] +handlers: [ +] + diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/PrivateMethods.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/PrivateMethods.golden deleted file mode 100644 index 5821a20069..0000000000 --- a/deps/v8/test/cctest/interpreter/bytecode_expectations/PrivateMethods.golden +++ /dev/null @@ -1,160 +0,0 @@ -# -# Autogenerated by generate-bytecode-expectations. -# - ---- -wrap: yes -private methods: yes - ---- -snippet: " - { - class A { - #a() { return 1; } - callA() { return this.#a(); } - } - - const a = new A; - a.callA(); - } -" -frame size: 9 -parameter count: 1 -bytecode array length: 80 -bytecodes: [ - /* 30 E> */ B(StackCheck), - B(CreateBlockContext), U8(0), - B(PushContext), R(3), - B(LdaTheHole), - B(Star), R(7), - B(CreateClosure), U8(2), U8(0), U8(2), - B(Star), R(4), - B(LdaConstant), U8(1), - B(Star), R(5), - B(CreateClosure), U8(3), U8(1), U8(2), - B(StaCurrentContextSlot), U8(4), - B(CreateClosure), U8(4), U8(2), U8(2), - B(Star), R(8), - B(Mov), R(4), R(6), - B(CallRuntime), U16(Runtime::kDefineClass), R(5), U8(4), - B(Star), R(5), - B(Mov), R(6), R(2), - B(LdaConstant), U8(5), - B(Star), R(6), - B(CallRuntime), U16(Runtime::kCreatePrivateNameSymbol), R(6), U8(1), - B(StaCurrentContextSlot), U8(5), - B(PopContext), R(3), - B(Mov), R(2), R(0), - /* 122 S> */ B(Ldar), R(0), - /* 122 E> */ B(Construct), R(0), R(0), U8(0), U8(0), - B(Star), R(1), - /* 133 S> */ B(LdaNamedProperty), R(1), U8(6), U8(2), - B(Star), R(3), - /* 133 E> */ B(CallProperty0), R(3), R(1), U8(4), - B(LdaUndefined), - /* 144 S> */ B(Return), -] -constant pool: [ - SCOPE_INFO_TYPE, - FIXED_ARRAY_TYPE, - SHARED_FUNCTION_INFO_TYPE, - SHARED_FUNCTION_INFO_TYPE, - SHARED_FUNCTION_INFO_TYPE, - ONE_BYTE_INTERNALIZED_STRING_TYPE ["A"], - ONE_BYTE_INTERNALIZED_STRING_TYPE ["callA"], -] -handlers: [ -] - ---- -snippet: " - { - class D { - #d() { return 1; } - callD() { return this.#d(); } - } - - class E extends D { - #e() { return 2; } - callE() { return this.callD() + this.#e(); } - } - - const e = new E; - e.callE(); - } -" -frame size: 11 -parameter count: 1 -bytecode array length: 138 -bytecodes: [ - /* 30 E> */ B(StackCheck), - B(CreateBlockContext), U8(0), - B(PushContext), R(5), - B(LdaTheHole), - B(Star), R(9), - B(CreateClosure), U8(2), U8(0), U8(2), - B(Star), R(6), - B(LdaConstant), U8(1), - B(Star), R(7), - B(CreateClosure), U8(3), U8(1), U8(2), - B(StaCurrentContextSlot), U8(4), - B(CreateClosure), U8(4), U8(2), U8(2), - B(Star), R(10), - B(Mov), R(6), R(8), - B(CallRuntime), U16(Runtime::kDefineClass), R(7), U8(4), - B(Star), R(7), - B(Mov), R(8), R(4), - B(LdaConstant), U8(5), - B(Star), R(8), - B(CallRuntime), U16(Runtime::kCreatePrivateNameSymbol), R(8), U8(1), - B(StaCurrentContextSlot), U8(5), - B(PopContext), R(5), - B(Mov), R(4), R(0), - /* 38 E> */ B(CreateBlockContext), U8(6), - B(PushContext), R(5), - /* 128 E> */ B(CreateClosure), U8(8), U8(3), U8(2), - B(Star), R(6), - B(LdaConstant), U8(7), - B(Star), R(7), - B(CreateClosure), U8(9), U8(4), U8(2), - B(StaCurrentContextSlot), U8(4), - B(CreateClosure), U8(10), U8(5), U8(2), - B(Star), R(10), - B(Mov), R(6), R(8), - B(Mov), R(4), R(9), - B(CallRuntime), U16(Runtime::kDefineClass), R(7), U8(4), - B(Star), R(7), - B(Mov), R(8), R(3), - B(LdaConstant), U8(11), - B(Star), R(8), - B(CallRuntime), U16(Runtime::kCreatePrivateNameSymbol), R(8), U8(1), - B(StaCurrentContextSlot), U8(5), - B(PopContext), R(5), - B(Mov), R(3), R(1), - /* 221 S> */ B(Ldar), R(1), - /* 221 E> */ B(Construct), R(1), R(0), U8(0), U8(0), - B(Star), R(2), - /* 232 S> */ B(LdaNamedProperty), R(2), U8(12), U8(2), - B(Star), R(5), - /* 232 E> */ B(CallProperty0), R(5), R(2), U8(4), - B(LdaUndefined), - /* 243 S> */ B(Return), -] -constant pool: [ - SCOPE_INFO_TYPE, - FIXED_ARRAY_TYPE, - SHARED_FUNCTION_INFO_TYPE, - SHARED_FUNCTION_INFO_TYPE, - SHARED_FUNCTION_INFO_TYPE, - ONE_BYTE_INTERNALIZED_STRING_TYPE ["D"], - SCOPE_INFO_TYPE, - FIXED_ARRAY_TYPE, - SHARED_FUNCTION_INFO_TYPE, - SHARED_FUNCTION_INFO_TYPE, - SHARED_FUNCTION_INFO_TYPE, - ONE_BYTE_INTERNALIZED_STRING_TYPE ["E"], - ONE_BYTE_INTERNALIZED_STRING_TYPE ["callE"], -] -handlers: [ -] - diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/StandardForLoop.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/StandardForLoop.golden index 9cb5a6b01c..1a4ad60629 100644 --- a/deps/v8/test/cctest/interpreter/bytecode_expectations/StandardForLoop.golden +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/StandardForLoop.golden @@ -220,13 +220,10 @@ snippet: " " frame size: 4 parameter count: 1 -bytecode array length: 53 +bytecode array length: 44 bytecodes: [ /* 10 E> */ B(StackCheck), /* 37 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(41), - B(JumpIfNull), U8(4), - B(JumpIfNotUndefined), U8(7), - /* 26 E> */ B(CallRuntime), U16(Runtime::kThrowPatternAssignmentNonCoercible), R(0), U8(0), B(Star), R(3), /* 28 S> */ B(LdaNamedProperty), R(3), U8(1), U8(1), B(Star), R(0), diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/SuperCallAndSpread.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/SuperCallAndSpread.golden index 74849d1c85..e3eed68138 100644 --- a/deps/v8/test/cctest/interpreter/bytecode_expectations/SuperCallAndSpread.golden +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/SuperCallAndSpread.golden @@ -91,9 +91,9 @@ snippet: " test = new B(1, 2, 3).constructor; })(); " -frame size: 13 +frame size: 12 parameter count: 1 -bytecode array length: 128 +bytecode array length: 124 bytecodes: [ B(CreateRestParameter), B(Star), R(3), @@ -111,23 +111,22 @@ bytecodes: [ B(Ldar), R(6), B(Inc), U8(3), /* 152 S> */ B(Star), R(6), - B(LdaNamedProperty), R(3), U8(0), U8(4), + B(GetIterator), R(3), U8(4), B(Star), R(11), B(CallProperty0), R(11), R(3), U8(6), - B(Mov), R(3), R(10), B(Mov), R(1), R(4), B(JumpIfJSReceiver), U8(7), B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0), B(Star), R(9), - B(LdaNamedProperty), R(9), U8(1), U8(8), + B(LdaNamedProperty), R(9), U8(0), U8(8), B(Star), R(8), B(CallProperty0), R(8), R(9), U8(14), - B(Star), R(12), + B(Star), R(10), B(JumpIfJSReceiver), U8(7), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(12), U8(1), - B(LdaNamedProperty), R(12), U8(2), U8(16), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(10), U8(1), + B(LdaNamedProperty), R(10), U8(1), U8(16), B(JumpIfToBooleanTrue), U8(19), - B(LdaNamedProperty), R(12), U8(3), U8(10), + B(LdaNamedProperty), R(10), U8(2), U8(10), B(StaInArrayLiteral), R(7), R(6), U8(1), B(Ldar), R(6), B(Inc), U8(3), @@ -147,7 +146,6 @@ bytecodes: [ /* 162 S> */ B(Return), ] constant pool: [ - SYMBOL_TYPE, ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"], diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/WideRegisters.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/WideRegisters.golden index 19a09ba49c..066d6e9f03 100644 --- a/deps/v8/test/cctest/interpreter/bytecode_expectations/WideRegisters.golden +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/WideRegisters.golden @@ -2655,7 +2655,7 @@ snippet: " " frame size: 163 parameter count: 1 -bytecode array length: 626 +bytecode array length: 624 bytecodes: [ /* 30 E> */ B(StackCheck), /* 43 S> */ B(LdaZero), @@ -2977,8 +2977,7 @@ bytecodes: [ /* 2146 S> */ B(LdaZero), B(Star), R(1), /* 2162 S> */ B(Ldar), R(0), - B(JumpIfUndefined), U8(74), - B(JumpIfNull), U8(72), + B(JumpIfUndefinedOrNull), U8(72), B(Wide), B(ToObject), R16(157), B(Wide), B(ForInEnumerate), R16(157), B(Wide), B(ForInPrepare), R16(158), U16(0), diff --git a/deps/v8/test/cctest/interpreter/test-bytecode-generator.cc b/deps/v8/test/cctest/interpreter/test-bytecode-generator.cc index e1601d4642..fda02933aa 100644 --- a/deps/v8/test/cctest/interpreter/test-bytecode-generator.cc +++ b/deps/v8/test/cctest/interpreter/test-bytecode-generator.cc @@ -2758,7 +2758,7 @@ TEST(PrivateClassFields) { LoadGolden("PrivateClassFields.golden"))); } -TEST(PrivateMethods) { +TEST(PrivateMethodDeclaration) { bool old_methods_flag = i::FLAG_harmony_private_methods; i::FLAG_harmony_private_methods = true; InitializedIgnitionHandleScope scope; @@ -2768,30 +2768,179 @@ TEST(PrivateMethods) { "{\n" " class A {\n" " #a() { return 1; }\n" - " callA() { return this.#a(); }\n" " }\n" - "\n" - " const a = new A;\n" - " a.callA();\n" "}\n", "{\n" " class D {\n" " #d() { return 1; }\n" - " callD() { return this.#d(); }\n" " }\n" - "\n" " class E extends D {\n" " #e() { return 2; }\n" - " callE() { return this.callD() + this.#e(); }\n" + " }\n" + "}\n", + + "{\n" + " class A { foo() {} }\n" + " class C extends A {\n" + " #m() { return super.foo; }\n" + " }\n" + "}\n"}; + + CHECK(CompareTexts(BuildActual(printer, snippets), + LoadGolden("PrivateMethodDeclaration.golden"))); + i::FLAG_harmony_private_methods = old_methods_flag; +} + +TEST(PrivateMethodAccess) { + bool old_methods_flag = i::FLAG_harmony_private_methods; + i::FLAG_harmony_private_methods = true; + InitializedIgnitionHandleScope scope; + BytecodeExpectationsPrinter printer(CcTest::isolate()); + printer.set_wrap(false); + printer.set_test_function_name("test"); + + const char* snippets[] = { + "class A {\n" + " #a() { return 1; }\n" + " constructor() { return this.#a(); }\n" + "}\n" + "\n" + "var test = A;\n" + "new A;\n", + + "class B {\n" + " #b() { return 1; }\n" + " constructor() { this.#b = 1; }\n" + "}\n" + "\n" + "var test = B;\n" + "new test;\n", + + "class C {\n" + " #c() { return 1; }\n" + " constructor() { this.#c++; }\n" + "}\n" + "\n" + "var test = C;\n" + "new test;\n"}; + + CHECK(CompareTexts(BuildActual(printer, snippets), + LoadGolden("PrivateMethodAccess.golden"))); + i::FLAG_harmony_private_methods = old_methods_flag; +} + +TEST(PrivateAccessorAccess) { + bool old_methods_flag = i::FLAG_harmony_private_methods; + i::FLAG_harmony_private_methods = true; + InitializedIgnitionHandleScope scope; + BytecodeExpectationsPrinter printer(CcTest::isolate()); + printer.set_wrap(false); + printer.set_test_function_name("test"); + + const char* snippets[] = { + "class A {\n" + " get #a() { return 1; }\n" + " set #a(val) { }\n" + "\n" + " constructor() {\n" + " this.#a++;\n" + " this.#a = 1;\n" + " return this.#a;\n" + " }\n" + "}\n" + "var test = A;\n" + "new test;\n", + + "class B {\n" + " get #b() { return 1; }\n" + " constructor() { this.#b++; }\n" + "}\n" + "var test = B;\n" + "new test;\n", + + "class C {\n" + " set #c(val) { }\n" + " constructor() { this.#c++; }\n" + "}\n" + "var test = C;\n" + "new test;\n", + + "class D {\n" + " get #d() { return 1; }\n" + " constructor() { this.#d = 1; }\n" + "}\n" + "var test = D;\n" + "new test;\n", + + "class E {\n" + " set #e(val) { }\n" + " constructor() { this.#e; }\n" + "}\n" + "var test = E;\n" + "new test;\n"}; + + CHECK(CompareTexts(BuildActual(printer, snippets), + LoadGolden("PrivateAccessorAccess.golden"))); + i::FLAG_harmony_private_methods = old_methods_flag; +} + +TEST(PrivateAccessorDeclaration) { + bool old_methods_flag = i::FLAG_harmony_private_methods; + i::FLAG_harmony_private_methods = true; + InitializedIgnitionHandleScope scope; + BytecodeExpectationsPrinter printer(CcTest::isolate()); + + const char* snippets[] = { + "{\n" + " class A {\n" + " get #a() { return 1; }\n" + " set #a(val) { }\n" + " }\n" + "}\n", + + "{\n" + " class B {\n" + " get #b() { return 1; }\n" + " }\n" + "}\n", + + "{\n" + " class C {\n" + " set #c(val) { }\n" + " }\n" + "}\n", + + "{\n" + " class D {\n" + " get #d() { return 1; }\n" + " set #d(val) { }\n" " }\n" "\n" - " const e = new E;\n" - " e.callE();\n" + " class E extends D {\n" + " get #e() { return 2; }\n" + " set #e(val) { }\n" + " }\n" + "}\n", + + "{\n" + " class A { foo() {} }\n" + " class C extends A {\n" + " get #a() { return super.foo; }\n" + " }\n" + " new C();\n" + "}\n", + + "{\n" + " class A { foo(val) {} }\n" + " class C extends A {\n" + " set #a(val) { super.foo(val); }\n" + " }\n" + " new C();\n" "}\n"}; CHECK(CompareTexts(BuildActual(printer, snippets), - LoadGolden("PrivateMethods.golden"))); + LoadGolden("PrivateAccessorDeclaration.golden"))); i::FLAG_harmony_private_methods = old_methods_flag; } |