diff options
Diffstat (limited to 'deps/v8/test/cctest/interpreter/bytecode_expectations/ForOfLoop.golden')
-rw-r--r-- | deps/v8/test/cctest/interpreter/bytecode_expectations/ForOfLoop.golden | 1450 |
1 files changed, 563 insertions, 887 deletions
diff --git a/deps/v8/test/cctest/interpreter/bytecode_expectations/ForOfLoop.golden b/deps/v8/test/cctest/interpreter/bytecode_expectations/ForOfLoop.golden index 9755e0af17..33cccfc896 100644 --- a/deps/v8/test/cctest/interpreter/bytecode_expectations/ForOfLoop.golden +++ b/deps/v8/test/cctest/interpreter/bytecode_expectations/ForOfLoop.golden @@ -13,111 +13,83 @@ snippet: " } f([1, 2, 3]); " -frame size: 17 +frame size: 16 parameter count: 2 -bytecode array length: 245 +bytecode array length: 173 bytecodes: [ /* 10 E> */ B(StackCheck), - B(LdaZero), - B(Star), R(7), - B(Mov), R(context), R(13), - B(Mov), R(context), R(14), /* 34 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(0), - B(Star), R(16), - B(CallProperty0), R(16), R(arg0), U8(2), - B(Mov), R(arg0), R(15), + 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(4), - /* 34 E> */ B(LdaNamedProperty), R(4), U8(1), U8(4), B(Star), R(5), - /* 29 S> */ B(CallProperty0), R(5), R(4), U8(6), - B(Star), R(6), - /* 29 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(6), U8(1), - B(ToBooleanLogicalNot), - B(JumpIfFalse), U8(7), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(6), U8(1), - B(LdaNamedProperty), R(6), U8(2), U8(8), - B(JumpIfToBooleanTrue), U8(28), - B(LdaNamedProperty), R(6), U8(3), U8(10), + B(LdaNamedProperty), R(5), U8(1), U8(4), + B(Star), R(4), + B(LdaFalse), B(Star), R(8), - B(LdaSmi), I8(2), - B(Star), R(7), - B(Mov), R(8), R(3), + B(Mov), R(context), R(11), + B(LdaTrue), + B(Star), R(8), + /* 29 S> */ B(CallProperty0), R(4), R(5), U8(6), + B(Star), R(12), + B(JumpIfJSReceiver), U8(7), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(12), U8(1), + B(LdaNamedProperty), R(12), U8(2), U8(8), + B(JumpIfToBooleanTrue), U8(26), + B(LdaNamedProperty), R(12), U8(3), U8(10), + B(Star), R(12), + B(LdaFalse), + B(Star), R(8), + B(Mov), R(12), R(3), /* 20 E> */ B(StackCheck), - B(Mov), R(3), R(1), + /* 29 S> */ B(Mov), R(3), R(1), /* 49 S> */ B(Mov), R(1), R(0), - B(LdaZero), - B(Star), R(7), - B(JumpLoop), U8(47), I8(0), - B(Jump), U8(33), - B(Star), R(15), - /* 49 E> */ B(CreateCatchContext), R(15), U8(4), - B(PushContext), R(15), - B(Star), R(14), - B(LdaSmi), I8(2), - B(TestEqualStrict), R(7), U8(12), - B(JumpIfFalse), U8(6), - B(LdaSmi), I8(1), - B(Star), R(7), - B(LdaImmutableCurrentContextSlot), U8(4), - B(Star), R(16), - B(CallRuntime), U16(Runtime::kReThrow), R(16), U8(1), - B(PopContext), R(15), + 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), - B(SetPendingMessage), + /* 49 E> */ B(SetPendingMessage), + 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(LdaZero), - B(TestEqualStrict), R(7), U8(13), - B(JumpIfTrue), U8(90), - B(LdaNamedProperty), R(4), U8(5), U8(14), - B(Star), R(9), - B(TestUndetectable), - B(JumpIfFalse), U8(4), - B(Jump), U8(79), - B(LdaSmi), I8(1), - B(TestEqualStrict), R(7), U8(16), - B(JumpIfFalse), U8(47), - B(Ldar), R(9), + B(JumpIfUndefined), U8(52), + B(JumpIfNull), U8(50), B(TestTypeOf), U8(6), - B(JumpIfFalse), U8(4), - B(Jump), U8(18), + B(JumpIfTrue), U8(18), B(Wide), B(LdaSmi), I16(154), B(Star), R(14), - B(LdaConstant), U8(6), + B(LdaConstant), U8(5), B(Star), R(15), B(CallRuntime), U16(Runtime::kNewTypeError), R(14), U8(2), B(Throw), B(Mov), R(context), R(14), - B(Mov), R(9), R(15), - B(Mov), R(4), R(16), - B(InvokeIntrinsic), U8(Runtime::k_Call), R(15), U8(2), - B(Jump), U8(6), - B(LdaTheHole), - B(SetPendingMessage), + B(CallProperty0), R(13), R(5), U8(14), + B(JumpIfJSReceiver), U8(21), + B(Star), R(15), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(15), U8(1), + B(Jump), U8(12), + B(Star), R(14), + B(LdaZero), + B(TestReferenceEqual), R(9), + B(JumpIfTrue), U8(5), B(Ldar), R(14), - B(Jump), U8(27), - B(Mov), R(9), R(14), - B(Mov), R(4), R(15), - B(InvokeIntrinsic), U8(Runtime::k_Call), R(14), U8(2), - B(Star), R(10), - B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(10), U8(1), - B(JumpIfToBooleanFalse), U8(4), - B(Jump), U8(7), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(10), U8(1), - B(Ldar), R(13), + B(ReThrow), + 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), /* 54 S> */ B(Return), @@ -127,14 +99,12 @@ constant pool: [ ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"], - SCOPE_INFO_TYPE, ONE_BYTE_INTERNALIZED_STRING_TYPE ["return"], ONE_BYTE_INTERNALIZED_STRING_TYPE [""], ] handlers: [ - [7, 121, 129], - [10, 88, 90], - [189, 199, 201], + [35, 81, 89], + [135, 148, 150], ] --- @@ -144,149 +114,121 @@ snippet: " } f([1, 2, 3]); " -frame size: 24 +frame size: 22 parameter count: 2 -bytecode array length: 325 +bytecode array length: 254 bytecodes: [ B(CreateFunctionContext), U8(0), U8(4), - B(PushContext), R(9), + B(PushContext), R(2), B(Ldar), R(this), B(StaCurrentContextSlot), U8(5), B(Ldar), R(arg0), B(StaCurrentContextSlot), U8(4), B(CreateMappedArguments), B(StaCurrentContextSlot), U8(7), - B(Ldar), R(8), + B(Ldar), R(1), B(StaCurrentContextSlot), U8(6), /* 10 E> */ B(StackCheck), B(CreateBlockContext), U8(1), - B(PushContext), R(10), + B(PushContext), R(3), B(LdaTheHole), B(StaCurrentContextSlot), U8(4), - B(LdaZero), - B(Star), R(4), - B(Mov), R(context), R(13), - B(Mov), R(context), R(14), - /* 34 S> */ B(LdaContextSlot), R(10), U8(4), U8(0), - B(Star), R(15), - B(LdaNamedProperty), R(15), U8(2), U8(0), - B(Star), R(16), - B(CallProperty0), R(16), R(15), U8(2), + /* 34 S> */ B(LdaContextSlot), R(3), U8(4), U8(0), + B(Star), R(6), + B(LdaNamedProperty), R(6), U8(2), 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(1), - /* 34 E> */ B(LdaNamedProperty), R(1), U8(3), U8(4), - B(Star), R(2), - /* 29 S> */ B(CallProperty0), R(2), R(1), U8(6), - B(Star), R(3), - /* 29 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(3), U8(1), - B(ToBooleanLogicalNot), - B(JumpIfFalse), U8(7), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(3), U8(1), - B(LdaNamedProperty), R(3), U8(4), U8(8), - B(JumpIfToBooleanTrue), U8(76), - B(LdaNamedProperty), R(3), U8(5), U8(10), B(Star), R(5), - B(LdaSmi), I8(2), + B(LdaNamedProperty), R(5), U8(3), U8(4), B(Star), R(4), - B(Mov), R(5), R(0), + B(LdaFalse), + B(Star), R(8), + B(Mov), R(context), R(11), + B(LdaTrue), + B(Star), R(8), + /* 29 S> */ B(CallProperty0), R(4), R(5), U8(6), + B(Star), R(12), + B(JumpIfJSReceiver), U8(7), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(12), U8(1), + B(LdaNamedProperty), R(12), U8(4), U8(8), + B(JumpIfToBooleanTrue), U8(75), + B(LdaNamedProperty), R(12), U8(5), U8(10), + B(Star), R(12), + B(LdaFalse), + B(Star), R(8), + B(Mov), R(12), R(0), /* 20 E> */ B(StackCheck), B(CreateBlockContext), U8(6), - B(PushContext), R(15), + B(PushContext), R(13), B(LdaTheHole), B(StaCurrentContextSlot), U8(4), - B(Ldar), R(5), - 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(16), + B(Star), R(14), B(LdaConstant), U8(8), - B(Star), R(17), + B(Star), R(15), B(LdaZero), - B(Star), R(21), + B(Star), R(19), B(LdaSmi), I8(37), - B(Star), R(22), + B(Star), R(20), B(LdaSmi), I8(41), - B(Star), R(23), - B(Mov), R(16), R(18), - B(Mov), R(17), R(19), - B(Mov), R(closure), R(20), - B(CallRuntime), U16(Runtime::kResolvePossiblyDirectEval), R(18), U8(6), - B(Star), R(16), - /* 41 E> */ B(CallUndefinedReceiver1), R(16), R(17), U8(14), - B(PopContext), R(15), - B(LdaZero), - B(Star), R(4), - B(JumpLoop), U8(95), I8(0), - B(Jump), U8(33), - B(Star), R(15), - B(CreateCatchContext), R(15), U8(9), - B(PushContext), R(15), + 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), - B(LdaSmi), I8(2), - B(TestEqualStrict), R(4), U8(16), - B(JumpIfFalse), U8(6), - B(LdaSmi), I8(1), - B(Star), R(4), - B(LdaImmutableCurrentContextSlot), U8(4), - B(Star), R(16), - B(CallRuntime), U16(Runtime::kReThrow), R(16), U8(1), - B(PopContext), R(15), + /* 41 E> */ B(CallUndefinedReceiver1), R(14), R(15), U8(14), + B(PopContext), R(13), + B(Mov), R(0), R(12), + B(JumpLoop), U8(92), 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), B(SetPendingMessage), - B(Star), R(13), - B(LdaZero), - B(TestEqualStrict), R(4), U8(17), - B(JumpIfTrue), U8(90), - B(LdaNamedProperty), R(1), U8(10), U8(18), - B(Star), R(6), - B(TestUndetectable), - B(JumpIfFalse), U8(4), - B(Jump), U8(79), - B(LdaSmi), I8(1), - B(TestEqualStrict), R(4), U8(20), - B(JumpIfFalse), U8(47), - B(Ldar), R(6), + 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(TestTypeOf), U8(6), - B(JumpIfFalse), U8(4), - B(Jump), U8(18), + B(JumpIfTrue), U8(18), B(Wide), B(LdaSmi), I16(154), - B(Star), R(14), - B(LdaConstant), U8(11), B(Star), R(15), - B(CallRuntime), U16(Runtime::kNewTypeError), R(14), U8(2), + B(LdaConstant), U8(10), + B(Star), R(16), + B(CallRuntime), U16(Runtime::kNewTypeError), R(15), U8(2), B(Throw), - B(Mov), R(context), R(14), - B(Mov), R(6), R(15), - B(Mov), R(1), R(16), - B(InvokeIntrinsic), U8(Runtime::k_Call), R(15), U8(2), - B(Jump), U8(6), - B(LdaTheHole), - B(SetPendingMessage), - B(Ldar), R(14), - B(Jump), U8(27), - B(Mov), R(6), R(14), - B(Mov), R(1), R(15), - B(InvokeIntrinsic), U8(Runtime::k_Call), R(14), U8(2), - B(Star), R(7), - B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(7), U8(1), - B(JumpIfToBooleanFalse), U8(4), - B(Jump), U8(7), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(7), U8(1), - B(Ldar), R(13), + B(Mov), R(context), R(15), + B(CallProperty0), R(14), R(5), U8(18), + B(JumpIfJSReceiver), U8(21), + B(Star), R(16), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(16), U8(1), + B(Jump), U8(12), + B(Star), R(15), + B(LdaZero), + B(TestReferenceEqual), R(9), + B(JumpIfTrue), U8(5), + B(Ldar), R(15), + B(ReThrow), + 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(PopContext), R(10), + B(PopContext), R(3), B(LdaUndefined), /* 54 S> */ B(Return), ] @@ -300,14 +242,12 @@ constant pool: [ SCOPE_INFO_TYPE, ONE_BYTE_INTERNALIZED_STRING_TYPE ["eval"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["1"], - SCOPE_INFO_TYPE, ONE_BYTE_INTERNALIZED_STRING_TYPE ["return"], ONE_BYTE_INTERNALIZED_STRING_TYPE [""], ] handlers: [ - [34, 199, 207], - [37, 166, 168], - [267, 277, 279], + [65, 160, 168], + [214, 227, 229], ] --- @@ -319,117 +259,89 @@ snippet: " " frame size: 15 parameter count: 2 -bytecode array length: 261 +bytecode array length: 190 bytecodes: [ /* 10 E> */ B(StackCheck), - B(LdaZero), - B(Star), R(5), - B(Mov), R(context), R(11), - B(Mov), R(context), R(12), /* 34 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(0), - B(Star), R(14), - B(CallProperty0), R(14), R(arg0), U8(2), - B(Mov), R(arg0), R(13), + 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(2), - /* 34 E> */ B(LdaNamedProperty), R(2), U8(1), U8(4), B(Star), R(3), - /* 29 S> */ B(CallProperty0), R(3), R(2), U8(6), - B(Star), R(4), - /* 29 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(4), U8(1), - B(ToBooleanLogicalNot), - B(JumpIfFalse), U8(7), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(4), U8(1), - B(LdaNamedProperty), R(4), U8(2), U8(8), - B(JumpIfToBooleanTrue), U8(44), - B(LdaNamedProperty), R(4), U8(3), U8(10), + B(LdaNamedProperty), R(3), U8(1), U8(4), + B(Star), R(2), + B(LdaFalse), B(Star), R(6), - B(LdaSmi), I8(2), - B(Star), R(5), - B(Mov), R(6), R(1), + B(Mov), R(context), R(9), + B(LdaTrue), + B(Star), R(6), + /* 29 S> */ B(CallProperty0), R(2), R(3), U8(6), + B(Star), R(10), + B(JumpIfJSReceiver), U8(7), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(10), U8(1), + B(LdaNamedProperty), R(10), U8(2), U8(8), + B(JumpIfToBooleanTrue), U8(43), + B(LdaNamedProperty), R(10), U8(3), U8(10), + B(Star), R(10), + B(LdaFalse), + B(Star), R(6), + B(Mov), R(10), R(1), /* 20 E> */ B(StackCheck), B(CreateBlockContext), U8(4), - B(PushContext), R(13), + B(PushContext), R(11), B(LdaTheHole), B(StaCurrentContextSlot), U8(4), - B(Ldar), R(6), - B(StaCurrentContextSlot), U8(4), + /* 29 S> */ B(Ldar), R(1), + /* 29 E> */ B(StaCurrentContextSlot), U8(4), /* 41 S> */ B(CreateClosure), U8(5), U8(12), U8(2), - B(Star), R(14), - /* 67 E> */ B(CallUndefinedReceiver0), R(14), U8(13), - B(PopContext), R(13), - B(LdaZero), - B(Star), R(5), - B(JumpLoop), U8(63), I8(0), - B(Jump), U8(33), - B(Star), R(13), - B(CreateCatchContext), R(13), U8(6), - B(PushContext), R(13), B(Star), R(12), - B(LdaSmi), I8(2), - B(TestEqualStrict), R(5), U8(15), - B(JumpIfFalse), U8(6), - B(LdaSmi), I8(1), - B(Star), R(5), - B(LdaImmutableCurrentContextSlot), U8(4), - B(Star), R(14), - B(CallRuntime), U16(Runtime::kReThrow), R(14), U8(1), - B(PopContext), R(13), + /* 67 E> */ B(CallUndefinedReceiver0), R(12), U8(13), + B(PopContext), R(11), + B(Mov), R(1), R(10), + B(JumpLoop), U8(60), 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(LdaZero), - B(TestEqualStrict), R(5), U8(16), - B(JumpIfTrue), U8(90), - B(LdaNamedProperty), R(2), U8(7), U8(17), - B(Star), R(7), - B(TestUndetectable), - B(JumpIfFalse), U8(4), - B(Jump), U8(79), - B(LdaSmi), I8(1), - B(TestEqualStrict), R(5), U8(19), - B(JumpIfFalse), U8(47), - B(Ldar), R(7), + B(Star), R(9), + B(Ldar), R(6), + B(JumpIfToBooleanTrue), U8(60), + B(LdaNamedProperty), R(3), U8(6), U8(15), + B(Star), R(12), + B(JumpIfUndefined), U8(52), + B(JumpIfNull), U8(50), B(TestTypeOf), U8(6), - B(JumpIfFalse), U8(4), - B(Jump), U8(18), + B(JumpIfTrue), U8(18), B(Wide), B(LdaSmi), I16(154), - B(Star), R(12), - B(LdaConstant), U8(8), B(Star), R(13), - B(CallRuntime), U16(Runtime::kNewTypeError), R(12), U8(2), + B(LdaConstant), U8(7), + B(Star), R(14), + B(CallRuntime), U16(Runtime::kNewTypeError), R(13), U8(2), B(Throw), - B(Mov), R(context), R(12), - B(Mov), R(7), R(13), - B(Mov), R(2), R(14), - B(InvokeIntrinsic), U8(Runtime::k_Call), R(13), U8(2), - B(Jump), U8(6), - B(LdaTheHole), - B(SetPendingMessage), - B(Ldar), R(12), - B(Jump), U8(27), - B(Mov), R(7), R(12), - B(Mov), R(2), R(13), - B(InvokeIntrinsic), U8(Runtime::k_Call), R(12), U8(2), - B(Star), R(8), - B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(8), U8(1), - B(JumpIfToBooleanFalse), U8(4), - B(Jump), U8(7), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(8), U8(1), - B(Ldar), R(11), + B(Mov), R(context), R(13), + B(CallProperty0), R(12), R(3), U8(17), + B(JumpIfJSReceiver), U8(21), + B(Star), R(14), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(14), U8(1), + B(Jump), U8(12), + B(Star), R(13), + B(LdaZero), + B(TestReferenceEqual), R(7), + B(JumpIfTrue), U8(5), + B(Ldar), R(13), + B(ReThrow), + 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), @@ -441,14 +353,12 @@ constant pool: [ ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"], SCOPE_INFO_TYPE, SHARED_FUNCTION_INFO_TYPE, - SCOPE_INFO_TYPE, ONE_BYTE_INTERNALIZED_STRING_TYPE ["return"], ONE_BYTE_INTERNALIZED_STRING_TYPE [""], ] handlers: [ - [7, 137, 145], - [10, 104, 106], - [205, 215, 217], + [35, 98, 106], + [152, 165, 167], ] --- @@ -458,127 +368,92 @@ snippet: " } f([{ x: 0, y: 3 }, { x: 1, y: 9 }, { x: -12, y: 17 }]); " -frame size: 20 +frame size: 18 parameter count: 2 -bytecode array length: 283 +bytecode array length: 197 bytecodes: [ /* 10 E> */ B(StackCheck), - B(LdaZero), - B(Star), R(10), - B(Mov), R(context), R(16), - B(Mov), R(context), R(17), /* 41 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(0), - B(Star), R(19), - B(CallProperty0), R(19), R(arg0), U8(2), - B(Mov), R(arg0), R(18), + 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), - /* 41 E> */ B(LdaNamedProperty), R(7), U8(1), U8(4), - B(Star), R(8), - /* 36 S> */ B(CallProperty0), R(8), R(7), U8(6), - B(Star), R(9), - /* 36 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(9), U8(1), - B(ToBooleanLogicalNot), - B(JumpIfFalse), U8(7), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(9), U8(1), - B(LdaNamedProperty), R(9), U8(2), U8(8), - B(JumpIfToBooleanTrue), U8(66), - B(LdaNamedProperty), R(9), U8(3), U8(10), - B(Star), R(11), - B(LdaSmi), I8(2), + B(LdaNamedProperty), R(7), U8(1), U8(4), + B(Star), R(6), + B(LdaFalse), + B(Star), R(10), + B(Mov), R(context), R(13), + B(LdaTrue), + B(Star), R(10), + /* 36 S> */ B(CallProperty0), R(6), R(7), U8(6), + B(Star), R(14), + 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(LdaFalse), B(Star), R(10), - B(Mov), R(11), R(5), + B(Mov), R(14), R(5), /* 20 E> */ B(StackCheck), - B(Mov), R(5), R(6), - B(Ldar), R(6), - B(JumpIfUndefined), U8(6), - B(Ldar), R(6), - B(JumpIfNotNull), U8(16), - B(LdaSmi), I8(81), - B(Star), R(18), - B(LdaConstant), U8(4), - B(Star), R(19), - B(CallRuntime), U16(Runtime::kNewTypeError), R(18), U8(2), - /* 31 E> */ B(Throw), - /* 31 S> */ B(LdaNamedProperty), R(6), U8(4), U8(12), + /* 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), B(Star), R(1), - /* 34 S> */ B(LdaNamedProperty), R(6), U8(5), U8(14), + /* 34 S> */ B(LdaNamedProperty), R(15), U8(5), U8(14), B(Star), R(2), /* 56 S> */ B(Ldar), R(2), /* 58 E> */ B(Add), R(1), U8(16), B(Star), R(0), - B(LdaZero), - B(Star), R(10), - B(JumpLoop), U8(85), I8(0), - B(Jump), U8(33), - B(Star), R(18), - /* 56 E> */ B(CreateCatchContext), R(18), U8(6), - B(PushContext), R(18), - B(Star), R(17), - B(LdaSmi), I8(2), - B(TestEqualStrict), R(10), U8(17), - B(JumpIfFalse), U8(6), - B(LdaSmi), I8(1), - B(Star), R(10), - B(LdaImmutableCurrentContextSlot), U8(4), - B(Star), R(19), - B(CallRuntime), U16(Runtime::kReThrow), R(19), U8(1), - B(PopContext), R(18), + B(JumpLoop), U8(67), I8(0), B(LdaSmi), I8(-1), - B(Star), R(15), - B(Star), R(14), + B(Star), R(12), + B(Star), R(11), B(Jump), U8(7), - B(Star), R(15), + B(Star), R(12), B(LdaZero), - B(Star), R(14), + B(Star), R(11), B(LdaTheHole), - B(SetPendingMessage), - B(Star), R(16), - B(LdaZero), - B(TestEqualStrict), R(10), U8(18), - B(JumpIfTrue), U8(90), - B(LdaNamedProperty), R(7), U8(7), U8(19), - B(Star), R(12), - B(TestUndetectable), - B(JumpIfFalse), U8(4), - B(Jump), U8(79), - B(LdaSmi), I8(1), - B(TestEqualStrict), R(10), U8(21), - B(JumpIfFalse), U8(47), - B(Ldar), R(12), + /* 56 E> */ B(SetPendingMessage), + 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(TestTypeOf), U8(6), - B(JumpIfFalse), U8(4), - B(Jump), U8(18), + B(JumpIfTrue), U8(18), B(Wide), B(LdaSmi), I16(154), + B(Star), R(16), + B(LdaConstant), U8(7), B(Star), R(17), - B(LdaConstant), U8(8), - B(Star), R(18), - B(CallRuntime), U16(Runtime::kNewTypeError), R(17), U8(2), + B(CallRuntime), U16(Runtime::kNewTypeError), R(16), U8(2), B(Throw), - B(Mov), R(context), R(17), - B(Mov), R(12), R(18), - B(Mov), R(7), R(19), - B(InvokeIntrinsic), U8(Runtime::k_Call), R(18), U8(2), - B(Jump), U8(6), - B(LdaTheHole), - B(SetPendingMessage), - B(Ldar), R(17), - B(Jump), U8(27), - B(Mov), R(12), R(17), - B(Mov), R(7), R(18), - B(InvokeIntrinsic), U8(Runtime::k_Call), R(17), U8(2), - B(Star), R(13), - B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(13), U8(1), - B(JumpIfToBooleanFalse), U8(4), - B(Jump), U8(7), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(13), U8(1), + B(Mov), R(context), R(16), + B(CallProperty0), R(15), R(7), U8(19), + B(JumpIfJSReceiver), U8(21), + B(Star), R(17), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(17), U8(1), + B(Jump), U8(12), + B(Star), R(16), + B(LdaZero), + B(TestReferenceEqual), R(11), + B(JumpIfTrue), U8(5), B(Ldar), R(16), + B(ReThrow), + B(Ldar), R(13), B(SetPendingMessage), B(LdaZero), - B(TestReferenceEqual), R(14), + B(TestReferenceEqual), R(11), B(JumpIfFalse), U8(5), - B(Ldar), R(15), + B(Ldar), R(12), B(ReThrow), B(LdaUndefined), /* 65 S> */ B(Return), @@ -590,14 +465,12 @@ constant pool: [ ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["x"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["y"], - SCOPE_INFO_TYPE, ONE_BYTE_INTERNALIZED_STRING_TYPE ["return"], ONE_BYTE_INTERNALIZED_STRING_TYPE [""], ] handlers: [ - [7, 159, 167], - [10, 126, 128], - [227, 237, 239], + [35, 105, 113], + [159, 172, 174], ] --- @@ -607,125 +480,97 @@ snippet: " } f([1, 2, 3]); " -frame size: 18 +frame size: 17 parameter count: 2 -bytecode array length: 286 +bytecode array length: 214 bytecodes: [ B(SwitchOnGeneratorState), R(3), U8(0), U8(1), - B(Mov), R(closure), R(12), - B(Mov), R(this), R(13), - B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(12), U8(2), + B(Mov), R(closure), R(5), + B(Mov), R(this), R(6), + B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(5), U8(2), B(Star), R(3), /* 11 E> */ B(StackCheck), - /* 11 E> */ B(SuspendGenerator), R(3), R(0), U8(12), U8(0), - B(ResumeGenerator), R(3), R(0), U8(12), - B(Star), R(12), + /* 11 E> */ B(SuspendGenerator), R(3), R(0), U8(5), U8(0), + B(ResumeGenerator), R(3), R(0), U8(5), + B(Star), R(5), B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(3), U8(1), B(SwitchOnSmiNoFeedback), U8(1), U8(2), I8(0), - B(Ldar), R(12), + B(Ldar), R(5), /* 11 E> */ B(Throw), - B(Ldar), R(12), + B(Ldar), R(5), /* 55 S> */ B(Return), - B(LdaZero), - B(Star), R(8), - B(Mov), R(context), R(14), - B(Mov), R(context), R(15), /* 35 S> */ B(LdaNamedProperty), R(arg0), U8(3), U8(0), - B(Star), R(17), - B(CallProperty0), R(17), R(arg0), U8(2), - B(Mov), R(arg0), R(16), + 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(5), - /* 35 E> */ B(LdaNamedProperty), R(5), U8(4), U8(4), B(Star), R(6), - /* 30 S> */ B(CallProperty0), R(6), R(5), U8(6), - B(Star), R(7), - /* 30 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(7), U8(1), - B(ToBooleanLogicalNot), - B(JumpIfFalse), U8(7), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(7), U8(1), - B(LdaNamedProperty), R(7), U8(5), U8(8), - B(JumpIfToBooleanTrue), U8(28), - B(LdaNamedProperty), R(7), U8(6), U8(10), + B(LdaNamedProperty), R(6), U8(4), U8(4), + B(Star), R(5), + B(LdaFalse), B(Star), R(9), - B(LdaSmi), I8(2), - B(Star), R(8), - B(Mov), R(9), R(4), + B(Mov), R(context), R(12), + B(LdaTrue), + B(Star), R(9), + /* 30 S> */ B(CallProperty0), R(5), R(6), U8(6), + B(Star), R(13), + B(JumpIfJSReceiver), U8(7), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(13), U8(1), + B(LdaNamedProperty), R(13), U8(5), U8(8), + B(JumpIfToBooleanTrue), U8(26), + B(LdaNamedProperty), R(13), U8(6), U8(10), + B(Star), R(13), + B(LdaFalse), + B(Star), R(9), + B(Mov), R(13), R(4), /* 21 E> */ B(StackCheck), - B(Mov), R(4), R(1), + /* 30 S> */ B(Mov), R(4), R(1), /* 50 S> */ B(Mov), R(1), R(0), - B(LdaZero), - B(Star), R(8), - B(JumpLoop), U8(47), I8(0), - B(Jump), U8(33), - B(Star), R(16), - /* 50 E> */ B(CreateCatchContext), R(16), U8(7), - B(PushContext), R(16), - B(Star), R(15), - B(LdaSmi), I8(2), - B(TestEqualStrict), R(8), U8(12), - B(JumpIfFalse), U8(6), - B(LdaSmi), I8(1), - B(Star), R(8), - B(LdaImmutableCurrentContextSlot), U8(4), - B(Star), R(17), - B(CallRuntime), U16(Runtime::kReThrow), R(17), U8(1), - B(PopContext), R(16), + B(Ldar), R(13), + B(JumpLoop), U8(43), I8(0), B(LdaSmi), I8(-1), - B(Star), R(13), - B(Star), R(12), + B(Star), R(11), + B(Star), R(10), B(Jump), U8(7), - B(Star), R(13), + B(Star), R(11), B(LdaZero), - B(Star), R(12), + B(Star), R(10), B(LdaTheHole), - B(SetPendingMessage), + /* 50 E> */ B(SetPendingMessage), + 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(LdaZero), - B(TestEqualStrict), R(8), U8(13), - B(JumpIfTrue), U8(90), - B(LdaNamedProperty), R(5), U8(8), U8(14), - B(Star), R(10), - B(TestUndetectable), - B(JumpIfFalse), U8(4), - B(Jump), U8(79), - B(LdaSmi), I8(1), - B(TestEqualStrict), R(8), U8(16), - B(JumpIfFalse), U8(47), - B(Ldar), R(10), + B(JumpIfUndefined), U8(52), + B(JumpIfNull), U8(50), B(TestTypeOf), U8(6), - B(JumpIfFalse), U8(4), - B(Jump), U8(18), + B(JumpIfTrue), U8(18), B(Wide), B(LdaSmi), I16(154), B(Star), R(15), - B(LdaConstant), U8(9), + B(LdaConstant), U8(8), B(Star), R(16), B(CallRuntime), U16(Runtime::kNewTypeError), R(15), U8(2), B(Throw), B(Mov), R(context), R(15), - B(Mov), R(10), R(16), - B(Mov), R(5), R(17), - B(InvokeIntrinsic), U8(Runtime::k_Call), R(16), U8(2), - B(Jump), U8(6), - B(LdaTheHole), - B(SetPendingMessage), + B(CallProperty0), R(14), R(6), U8(14), + B(JumpIfJSReceiver), U8(21), + B(Star), R(16), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(16), U8(1), + B(Jump), U8(12), + B(Star), R(15), + B(LdaZero), + B(TestReferenceEqual), R(10), + B(JumpIfTrue), U8(5), B(Ldar), R(15), - B(Jump), U8(27), - B(Mov), R(10), R(15), - B(Mov), R(5), R(16), - B(InvokeIntrinsic), U8(Runtime::k_Call), R(15), U8(2), - B(Star), R(11), - B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(11), U8(1), - B(JumpIfToBooleanFalse), U8(4), - B(Jump), U8(7), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(11), U8(1), - B(Ldar), R(14), + B(ReThrow), + B(Ldar), R(12), B(SetPendingMessage), B(LdaZero), - B(TestReferenceEqual), R(12), + B(TestReferenceEqual), R(10), B(JumpIfFalse), U8(5), - B(Ldar), R(13), + B(Ldar), R(11), B(ReThrow), B(LdaUndefined), /* 55 S> */ B(Return), @@ -738,14 +583,12 @@ constant pool: [ ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"], - SCOPE_INFO_TYPE, ONE_BYTE_INTERNALIZED_STRING_TYPE ["return"], ONE_BYTE_INTERNALIZED_STRING_TYPE [""], ] handlers: [ - [48, 162, 170], - [51, 129, 131], - [230, 240, 242], + [76, 122, 130], + [176, 189, 191], ] --- @@ -755,166 +598,136 @@ snippet: " } f([1, 2, 3]); " -frame size: 17 +frame size: 16 parameter count: 2 -bytecode array length: 330 +bytecode array length: 258 bytecodes: [ B(SwitchOnGeneratorState), R(2), U8(0), U8(2), - B(Mov), R(closure), R(11), - B(Mov), R(this), R(12), - B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(11), U8(2), + B(Mov), R(closure), R(4), + B(Mov), R(this), R(5), + B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(4), U8(2), B(Star), R(2), /* 11 E> */ B(StackCheck), - /* 11 E> */ B(SuspendGenerator), R(2), R(0), U8(11), U8(0), - B(ResumeGenerator), R(2), R(0), U8(11), - B(Star), R(11), + /* 11 E> */ B(SuspendGenerator), R(2), R(0), U8(4), U8(0), + B(ResumeGenerator), R(2), R(0), U8(4), + B(Star), R(4), B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(2), U8(1), B(SwitchOnSmiNoFeedback), U8(2), U8(2), I8(0), - B(Ldar), R(11), + B(Ldar), R(4), /* 11 E> */ B(Throw), - B(Ldar), R(11), + B(Ldar), R(4), /* 49 S> */ B(Return), - B(LdaZero), - B(Star), R(7), - B(Mov), R(context), R(13), - B(Mov), R(context), R(14), /* 35 S> */ B(LdaNamedProperty), R(arg0), U8(4), U8(0), - B(Star), R(16), - B(CallProperty0), R(16), R(arg0), U8(2), - B(Mov), R(arg0), R(15), + 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(4), - /* 35 E> */ B(LdaNamedProperty), R(4), U8(5), U8(4), B(Star), R(5), - /* 30 S> */ B(CallProperty0), R(5), R(4), U8(6), - B(Star), R(6), - /* 30 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(6), U8(1), - B(ToBooleanLogicalNot), - B(JumpIfFalse), U8(7), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(6), U8(1), - B(LdaNamedProperty), R(6), U8(6), U8(8), - B(JumpIfToBooleanTrue), U8(65), - B(LdaNamedProperty), R(6), U8(7), U8(10), + B(LdaNamedProperty), R(5), U8(5), U8(4), + B(Star), R(4), + B(LdaFalse), B(Star), R(8), - B(LdaSmi), I8(2), - B(Star), R(7), - B(Mov), R(8), R(3), + B(Mov), R(context), R(11), + B(LdaTrue), + B(Star), R(8), + /* 30 S> */ B(CallProperty0), R(4), R(5), U8(6), + B(Star), R(12), + B(JumpIfJSReceiver), U8(7), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(12), U8(1), + B(LdaNamedProperty), R(12), U8(6), U8(8), + B(JumpIfToBooleanTrue), U8(64), + B(LdaNamedProperty), R(12), U8(7), U8(10), + B(Star), R(12), + B(LdaFalse), + B(Star), R(8), + B(Mov), R(12), R(3), /* 21 E> */ B(StackCheck), - B(Mov), R(3), R(0), + /* 30 S> */ B(Mov), R(3), R(0), /* 40 S> */ B(LdaFalse), - B(Star), R(16), - B(Mov), R(0), R(15), - B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(15), U8(2), - /* 40 E> */ B(SuspendGenerator), R(2), R(0), U8(15), U8(1), - B(ResumeGenerator), R(2), R(0), U8(15), - B(Star), R(15), + B(Star), R(14), + B(Mov), R(0), R(13), + B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(13), U8(2), + /* 40 E> */ B(SuspendGenerator), R(2), R(0), U8(13), U8(1), + B(ResumeGenerator), R(2), R(0), U8(13), + B(Star), R(13), B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(2), U8(1), B(SwitchOnSmiNoFeedback), U8(8), U8(2), I8(0), - B(Ldar), R(15), + B(Ldar), R(13), /* 40 E> */ B(Throw), - B(LdaZero), - B(Star), R(11), - B(Mov), R(15), R(12), - B(Jump), U8(55), - B(LdaZero), - B(Star), R(7), - B(JumpLoop), U8(84), I8(0), - B(Jump), U8(33), - B(Star), R(15), - B(CreateCatchContext), R(15), U8(10), - B(PushContext), R(15), - B(Star), R(14), - B(LdaSmi), I8(2), - B(TestEqualStrict), R(7), U8(12), - B(JumpIfFalse), U8(6), B(LdaSmi), I8(1), - B(Star), R(7), - B(LdaImmutableCurrentContextSlot), U8(4), - B(Star), R(16), - B(CallRuntime), U16(Runtime::kReThrow), R(16), U8(1), - B(PopContext), R(15), + B(Star), R(9), + B(Mov), R(13), R(10), + B(Jump), U8(20), + B(Ldar), R(13), + B(JumpLoop), U8(81), I8(0), B(LdaSmi), I8(-1), - B(Star), R(12), - B(Star), R(11), - B(Jump), U8(8), - B(Star), R(12), - B(LdaSmi), I8(1), - B(Star), R(11), + B(Star), R(10), + B(Star), R(9), + B(Jump), U8(7), + B(Star), R(10), + B(LdaZero), + B(Star), R(9), B(LdaTheHole), B(SetPendingMessage), + 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(LdaZero), - B(TestEqualStrict), R(7), U8(13), - B(JumpIfTrue), U8(90), - B(LdaNamedProperty), R(4), U8(11), U8(14), - B(Star), R(9), - B(TestUndetectable), - B(JumpIfFalse), U8(4), - B(Jump), U8(79), - B(LdaSmi), I8(1), - B(TestEqualStrict), R(7), U8(16), - B(JumpIfFalse), U8(47), - B(Ldar), R(9), + B(JumpIfUndefined), U8(52), + B(JumpIfNull), U8(50), B(TestTypeOf), U8(6), - B(JumpIfFalse), U8(4), - B(Jump), U8(18), + B(JumpIfTrue), U8(18), B(Wide), B(LdaSmi), I16(154), B(Star), R(14), - B(LdaConstant), U8(12), + B(LdaConstant), U8(11), B(Star), R(15), B(CallRuntime), U16(Runtime::kNewTypeError), R(14), U8(2), B(Throw), B(Mov), R(context), R(14), - B(Mov), R(9), R(15), - B(Mov), R(4), R(16), - B(InvokeIntrinsic), U8(Runtime::k_Call), R(15), U8(2), - B(Jump), U8(6), - B(LdaTheHole), - B(SetPendingMessage), + B(CallProperty0), R(13), R(5), U8(14), + B(JumpIfJSReceiver), U8(21), + B(Star), R(15), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(15), U8(1), + B(Jump), U8(12), + B(Star), R(14), + B(LdaZero), + B(TestReferenceEqual), R(9), + B(JumpIfTrue), U8(5), B(Ldar), R(14), - B(Jump), U8(27), - B(Mov), R(9), R(14), - B(Mov), R(4), R(15), - B(InvokeIntrinsic), U8(Runtime::k_Call), R(14), U8(2), - B(Star), R(10), - B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(10), U8(1), - B(JumpIfToBooleanFalse), U8(4), - B(Jump), U8(7), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(10), U8(1), - B(Ldar), R(13), - B(SetPendingMessage), + B(ReThrow), B(Ldar), R(11), - B(SwitchOnSmiNoFeedback), U8(13), U8(2), I8(0), + B(SetPendingMessage), + B(Ldar), R(9), + B(SwitchOnSmiNoFeedback), U8(12), U8(2), I8(0), B(Jump), U8(8), - B(Ldar), R(12), - /* 49 S> */ B(Return), - B(Ldar), R(12), + B(Ldar), R(10), B(ReThrow), + B(Ldar), R(10), + /* 49 S> */ B(Return), B(LdaUndefined), /* 49 S> */ B(Return), ] constant pool: [ Smi [22], - Smi [135], + Smi [129], Smi [10], Smi [7], SYMBOL_TYPE, ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"], - Smi [15], + Smi [16], Smi [7], - SCOPE_INFO_TYPE, ONE_BYTE_INTERNALIZED_STRING_TYPE ["return"], ONE_BYTE_INTERNALIZED_STRING_TYPE [""], Smi [6], Smi [9], ] handlers: [ - [48, 199, 207], - [51, 166, 168], - [268, 278, 280], + [76, 160, 168], + [214, 227, 229], ] --- @@ -924,171 +737,111 @@ snippet: " } f([1, 2, 3]); " -frame size: 23 +frame size: 18 parameter count: 2 -bytecode array length: 367 +bytecode array length: 232 bytecodes: [ + B(Mov), R(closure), R(5), + B(Mov), R(this), R(6), + B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionEnter), R(5), U8(2), + B(Star), R(3), /* 16 E> */ B(StackCheck), - B(CallJSRuntime), U8(%async_function_promise_create), R(0), U8(0), - B(Star), R(0), - B(Mov), R(context), R(15), - B(Mov), R(context), R(16), - B(LdaZero), - B(Star), R(9), - B(Mov), R(context), R(19), - B(Mov), R(context), R(20), + B(Mov), R(context), R(5), /* 40 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(0), - B(Star), R(22), - B(CallProperty0), R(22), R(arg0), U8(2), - B(Mov), R(arg0), R(21), + 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(6), - /* 40 E> */ B(LdaNamedProperty), R(6), U8(1), U8(4), B(Star), R(7), - /* 35 S> */ B(CallProperty0), R(7), R(6), U8(6), - B(Star), R(8), - /* 35 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(8), U8(1), - B(ToBooleanLogicalNot), - B(JumpIfFalse), U8(7), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(8), U8(1), - B(LdaNamedProperty), R(8), U8(2), U8(8), - B(JumpIfToBooleanTrue), U8(28), - B(LdaNamedProperty), R(8), U8(3), U8(10), + B(LdaNamedProperty), R(7), U8(1), U8(4), + B(Star), R(6), + B(LdaFalse), B(Star), R(10), - B(LdaSmi), I8(2), - B(Star), R(9), - B(Mov), R(10), R(5), + B(Mov), R(context), R(13), + B(LdaTrue), + B(Star), R(10), + /* 35 S> */ B(CallProperty0), R(6), R(7), U8(6), + B(Star), R(14), + B(JumpIfJSReceiver), U8(7), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(14), U8(1), + B(LdaNamedProperty), R(14), U8(2), U8(8), + B(JumpIfToBooleanTrue), U8(26), + B(LdaNamedProperty), R(14), U8(3), U8(10), + B(Star), R(14), + B(LdaFalse), + B(Star), R(10), + B(Mov), R(14), R(4), /* 26 E> */ B(StackCheck), - B(Mov), R(5), R(2), - /* 55 S> */ B(Mov), R(2), R(1), - B(LdaZero), - B(Star), R(9), - B(JumpLoop), U8(47), I8(0), - B(Jump), U8(37), - B(Star), R(21), - /* 55 E> */ B(CreateCatchContext), R(21), U8(4), - B(Star), R(20), - B(LdaTheHole), - B(SetPendingMessage), - B(Ldar), R(20), - B(PushContext), R(21), - B(LdaSmi), I8(2), - B(TestEqualStrict), R(9), U8(12), - B(JumpIfFalse), U8(6), - B(LdaSmi), I8(1), - B(Star), R(9), - B(LdaImmutableCurrentContextSlot), U8(4), - B(Star), R(22), - B(CallRuntime), U16(Runtime::kReThrow), R(22), U8(1), - B(PopContext), R(21), + /* 35 S> */ B(Mov), R(4), R(1), + /* 55 S> */ B(Mov), R(1), R(0), + B(Ldar), R(14), + B(JumpLoop), U8(43), I8(0), B(LdaSmi), I8(-1), - B(Star), R(18), - B(Star), R(17), + B(Star), R(12), + B(Star), R(11), B(Jump), U8(7), - B(Star), R(18), - B(LdaZero), - B(Star), R(17), - B(LdaTheHole), - B(SetPendingMessage), - B(Star), R(19), + B(Star), R(12), B(LdaZero), - B(TestEqualStrict), R(9), U8(13), - B(JumpIfTrue), U8(90), - B(LdaNamedProperty), R(6), U8(5), U8(14), B(Star), R(11), - B(TestUndetectable), - B(JumpIfFalse), U8(4), - B(Jump), U8(79), - B(LdaSmi), I8(1), - B(TestEqualStrict), R(9), U8(16), - B(JumpIfFalse), U8(47), - B(Ldar), R(11), + B(LdaTheHole), + /* 55 E> */ B(SetPendingMessage), + 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(TestTypeOf), U8(6), - B(JumpIfFalse), U8(4), - B(Jump), U8(18), + B(JumpIfTrue), U8(18), B(Wide), B(LdaSmi), I16(154), - B(Star), R(20), - B(LdaConstant), U8(6), - B(Star), R(21), - B(CallRuntime), U16(Runtime::kNewTypeError), R(20), U8(2), + B(Star), R(16), + B(LdaConstant), U8(5), + B(Star), R(17), + B(CallRuntime), U16(Runtime::kNewTypeError), R(16), U8(2), B(Throw), - B(Mov), R(context), R(20), - B(Mov), R(11), R(21), - B(Mov), R(6), R(22), - B(InvokeIntrinsic), U8(Runtime::k_Call), R(21), U8(2), - B(Jump), U8(6), - B(LdaTheHole), - B(SetPendingMessage), - B(Ldar), R(20), - B(Jump), U8(27), - B(Mov), R(11), R(20), - B(Mov), R(6), R(21), - B(InvokeIntrinsic), U8(Runtime::k_Call), R(20), U8(2), - B(Star), R(12), - B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(12), U8(1), - B(JumpIfToBooleanFalse), U8(4), - B(Jump), U8(7), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(12), U8(1), - B(Ldar), R(19), + B(Mov), R(context), R(16), + B(CallProperty0), R(15), R(7), U8(14), + B(JumpIfJSReceiver), U8(21), + B(Star), R(17), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(17), U8(1), + B(Jump), U8(12), + B(Star), R(16), + B(LdaZero), + B(TestReferenceEqual), R(11), + B(JumpIfTrue), U8(5), + B(Ldar), R(16), + B(ReThrow), + B(Ldar), R(13), B(SetPendingMessage), B(LdaZero), - B(TestReferenceEqual), R(17), + B(TestReferenceEqual), R(11), B(JumpIfFalse), U8(5), - B(Ldar), R(18), + B(Ldar), R(12), B(ReThrow), B(LdaUndefined), - B(Star), R(14), - B(LdaZero), - B(Star), R(13), - B(Jump), U8(56), - B(Jump), U8(40), - B(Star), R(17), - B(CreateCatchContext), R(17), U8(7), - B(Star), R(16), - B(LdaTheHole), - B(SetPendingMessage), - B(Ldar), R(16), - B(PushContext), R(17), - B(LdaImmutableCurrentContextSlot), U8(4), - B(Star), R(19), + B(Star), R(7), B(LdaFalse), - B(Star), R(20), - B(Mov), R(0), R(18), - B(InvokeIntrinsic), U8(Runtime::k_RejectPromise), R(18), U8(3), - B(PopContext), R(17), - B(LdaSmi), I8(1), - B(Star), R(13), - B(Mov), R(0), R(14), - B(Jump), U8(16), - B(LdaSmi), I8(-1), - B(Star), R(14), - B(Star), R(13), - B(Jump), U8(8), - B(Star), R(14), - B(LdaSmi), I8(2), - B(Star), R(13), + B(Star), R(8), + B(Mov), R(3), R(6), + B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionResolve), R(6), U8(3), + /* 60 S> */ B(Return), + B(Jump), U8(30), + B(Star), R(6), + B(CreateCatchContext), R(6), U8(6), + B(Star), R(5), B(LdaTheHole), B(SetPendingMessage), - B(Star), R(15), + B(Ldar), R(5), + B(PushContext), R(6), + B(LdaImmutableCurrentContextSlot), U8(4), + B(Star), R(8), B(LdaFalse), - B(Star), R(17), - B(Mov), R(0), R(16), - B(CallJSRuntime), U8(%async_function_promise_release), R(16), U8(2), - B(Ldar), R(15), - B(SetPendingMessage), - B(Ldar), R(13), - B(SwitchOnSmiNoFeedback), U8(8), U8(3), I8(0), - B(Jump), U8(21), - B(Mov), R(0), R(16), - B(Mov), R(14), R(17), - B(InvokeIntrinsic), U8(Runtime::k_ResolvePromise), R(16), U8(2), - B(Ldar), R(0), - /* 60 S> */ B(Return), - B(Ldar), R(14), + B(Star), R(9), + B(Mov), R(3), R(7), + B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionReject), R(7), U8(3), /* 60 S> */ B(Return), - B(Ldar), R(14), - B(ReThrow), B(LdaUndefined), /* 60 S> */ B(Return), ] @@ -1097,20 +850,14 @@ constant pool: [ ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"], - SCOPE_INFO_TYPE, ONE_BYTE_INTERNALIZED_STRING_TYPE ["return"], ONE_BYTE_INTERNALIZED_STRING_TYPE [""], SCOPE_INFO_TYPE, - Smi [6], - Smi [19], - Smi [22], ] handlers: [ - [10, 307, 315], - [13, 267, 269], - [19, 137, 145], - [22, 100, 102], - [205, 215, 217], + [16, 200, 202], + [50, 96, 104], + [150, 163, 165], ] --- @@ -1120,211 +867,140 @@ snippet: " } f([1, 2, 3]); " -frame size: 23 +frame size: 17 parameter count: 2 -bytecode array length: 418 +bytecode array length: 268 bytecodes: [ - B(SwitchOnGeneratorState), R(3), U8(0), U8(1), - B(Mov), R(closure), R(12), - B(Mov), R(this), R(13), - B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(12), U8(2), - B(Star), R(3), + B(SwitchOnGeneratorState), R(2), U8(0), U8(1), + B(Mov), R(closure), R(4), + B(Mov), R(this), R(5), + B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionEnter), R(4), U8(2), + B(Star), R(2), /* 16 E> */ B(StackCheck), - B(CallJSRuntime), U8(%async_function_promise_create), R(0), U8(0), - B(Star), R(0), - B(Mov), R(context), R(14), - B(Mov), R(context), R(15), - B(LdaZero), - B(Star), R(8), - B(Mov), R(context), R(18), - B(Mov), R(context), R(19), + B(Mov), R(context), R(4), /* 40 S> */ B(LdaNamedProperty), R(arg0), U8(1), U8(0), - B(Star), R(21), - B(CallProperty0), R(21), R(arg0), U8(2), - B(Mov), R(arg0), R(20), + 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(5), - /* 40 E> */ B(LdaNamedProperty), R(5), U8(2), U8(4), B(Star), R(6), - /* 35 S> */ B(CallProperty0), R(6), R(5), U8(6), - B(Star), R(7), - /* 35 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(7), U8(1), - B(ToBooleanLogicalNot), - B(JumpIfFalse), U8(7), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(7), U8(1), - B(LdaNamedProperty), R(7), U8(3), U8(8), - B(JumpIfToBooleanTrue), U8(63), - B(LdaNamedProperty), R(7), U8(4), U8(10), + B(LdaNamedProperty), R(6), U8(2), U8(4), + B(Star), R(5), + B(LdaFalse), B(Star), R(9), - B(LdaSmi), I8(2), - B(Star), R(8), - B(Mov), R(9), R(4), + B(Mov), R(context), R(12), + B(LdaTrue), + B(Star), R(9), + /* 35 S> */ B(CallProperty0), R(5), R(6), U8(6), + B(Star), R(13), + B(JumpIfJSReceiver), U8(7), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(13), U8(1), + B(LdaNamedProperty), R(13), U8(3), U8(8), + B(JumpIfToBooleanTrue), U8(58), + B(LdaNamedProperty), R(13), U8(4), U8(10), + B(Star), R(13), + B(LdaFalse), + B(Star), R(9), + B(Mov), R(13), R(3), /* 26 E> */ B(StackCheck), - B(Mov), R(4), R(1), - /* 45 S> */ B(Mov), R(3), R(20), - B(Mov), R(1), R(21), - B(Mov), R(0), R(22), - B(CallJSRuntime), U8(%async_function_await_uncaught), R(20), U8(3), - /* 45 E> */ B(SuspendGenerator), R(3), R(0), U8(20), U8(0), - B(ResumeGenerator), R(3), R(0), U8(20), - B(Star), R(20), - B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(3), U8(1), - B(Star), R(21), + /* 35 S> */ B(Mov), R(3), R(0), + /* 45 S> */ B(Mov), R(2), R(14), + B(Mov), R(0), R(15), + B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionAwaitUncaught), R(14), U8(2), + /* 45 E> */ B(SuspendGenerator), R(2), R(0), U8(14), U8(0), + B(ResumeGenerator), R(2), R(0), U8(14), + B(Star), R(14), + B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(2), U8(1), + B(Star), R(15), B(LdaZero), - B(TestReferenceEqual), R(21), + B(TestReferenceEqual), R(15), B(JumpIfTrue), U8(5), - B(Ldar), R(20), + B(Ldar), R(14), B(ReThrow), - B(LdaZero), - B(Star), R(8), - B(JumpLoop), U8(82), I8(0), - B(Jump), U8(37), - B(Star), R(20), - B(CreateCatchContext), R(20), U8(5), - B(Star), R(19), - B(LdaTheHole), - B(SetPendingMessage), - B(Ldar), R(19), - B(PushContext), R(20), - B(LdaSmi), I8(2), - B(TestEqualStrict), R(8), U8(12), - B(JumpIfFalse), U8(6), - B(LdaSmi), I8(1), - B(Star), R(8), - B(LdaImmutableCurrentContextSlot), U8(4), - B(Star), R(21), - B(CallRuntime), U16(Runtime::kReThrow), R(21), U8(1), - B(PopContext), R(20), + B(Ldar), R(14), + B(JumpLoop), U8(75), I8(0), B(LdaSmi), I8(-1), - B(Star), R(17), - B(Star), R(16), + B(Star), R(11), + B(Star), R(10), B(Jump), U8(7), - B(Star), R(17), + B(Star), R(11), B(LdaZero), - B(Star), R(16), + B(Star), R(10), B(LdaTheHole), B(SetPendingMessage), - B(Star), R(18), - B(LdaZero), - B(TestEqualStrict), R(8), U8(13), - B(JumpIfTrue), U8(90), - B(LdaNamedProperty), R(5), U8(6), U8(14), - B(Star), R(10), - B(TestUndetectable), - B(JumpIfFalse), U8(4), - B(Jump), U8(79), - B(LdaSmi), I8(1), - B(TestEqualStrict), R(8), U8(16), - B(JumpIfFalse), U8(47), - B(Ldar), R(10), + 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(TestTypeOf), U8(6), - B(JumpIfFalse), U8(4), - B(Jump), U8(18), + B(JumpIfTrue), U8(18), B(Wide), B(LdaSmi), I16(154), - B(Star), R(19), - B(LdaConstant), U8(7), - B(Star), R(20), - B(CallRuntime), U16(Runtime::kNewTypeError), R(19), U8(2), + B(Star), R(15), + B(LdaConstant), U8(6), + B(Star), R(16), + B(CallRuntime), U16(Runtime::kNewTypeError), R(15), U8(2), B(Throw), - B(Mov), R(context), R(19), - B(Mov), R(10), R(20), - B(Mov), R(5), R(21), - B(InvokeIntrinsic), U8(Runtime::k_Call), R(20), U8(2), - B(Jump), U8(6), - B(LdaTheHole), - B(SetPendingMessage), - B(Ldar), R(19), - B(Jump), U8(27), - B(Mov), R(10), R(19), - B(Mov), R(5), R(20), - B(InvokeIntrinsic), U8(Runtime::k_Call), R(19), U8(2), - B(Star), R(11), - B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(11), U8(1), - B(JumpIfToBooleanFalse), U8(4), - B(Jump), U8(7), - B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(11), U8(1), - B(Ldar), R(18), + B(Mov), R(context), R(15), + B(CallProperty0), R(14), R(6), U8(14), + B(JumpIfJSReceiver), U8(21), + B(Star), R(16), + B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(16), U8(1), + B(Jump), U8(12), + B(Star), R(15), + B(LdaZero), + B(TestReferenceEqual), R(10), + B(JumpIfTrue), U8(5), + B(Ldar), R(15), + B(ReThrow), + B(Ldar), R(12), B(SetPendingMessage), B(LdaZero), - B(TestReferenceEqual), R(16), + B(TestReferenceEqual), R(10), B(JumpIfFalse), U8(5), - B(Ldar), R(17), + B(Ldar), R(11), B(ReThrow), B(LdaUndefined), - B(Star), R(13), - B(LdaZero), - B(Star), R(12), - B(Jump), U8(56), - B(Jump), U8(40), - B(Star), R(16), - B(CreateCatchContext), R(16), U8(8), - B(Star), R(15), + B(Star), R(6), + B(LdaTrue), + B(Star), R(7), + B(Mov), R(2), R(5), + B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionResolve), R(5), U8(3), + /* 54 S> */ B(Return), + B(Jump), U8(30), + B(Star), R(5), + B(CreateCatchContext), R(5), U8(7), + B(Star), R(4), B(LdaTheHole), B(SetPendingMessage), - B(Ldar), R(15), - B(PushContext), R(16), + B(Ldar), R(4), + B(PushContext), R(5), B(LdaImmutableCurrentContextSlot), U8(4), - B(Star), R(18), - B(LdaFalse), - B(Star), R(19), - B(Mov), R(0), R(17), - B(InvokeIntrinsic), U8(Runtime::k_RejectPromise), R(17), U8(3), - B(PopContext), R(16), - B(LdaSmi), I8(1), - B(Star), R(12), - B(Mov), R(0), R(13), - B(Jump), U8(16), - B(LdaSmi), I8(-1), - B(Star), R(13), - B(Star), R(12), - B(Jump), U8(8), - B(Star), R(13), - B(LdaSmi), I8(2), - B(Star), R(12), - B(LdaTheHole), - B(SetPendingMessage), - B(Star), R(14), + B(Star), R(7), B(LdaTrue), - B(Star), R(16), - B(Mov), R(0), R(15), - B(CallJSRuntime), U8(%async_function_promise_release), R(15), U8(2), - B(Ldar), R(14), - B(SetPendingMessage), - B(Ldar), R(12), - B(SwitchOnSmiNoFeedback), U8(9), U8(3), I8(0), - B(Jump), U8(21), - B(Mov), R(0), R(15), - B(Mov), R(13), R(16), - B(InvokeIntrinsic), U8(Runtime::k_ResolvePromise), R(15), U8(2), - B(Ldar), R(0), - /* 54 S> */ B(Return), - B(Ldar), R(13), + B(Star), R(8), + B(Mov), R(2), R(6), + B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionReject), R(6), U8(3), /* 54 S> */ B(Return), - B(Ldar), R(13), - B(ReThrow), B(LdaUndefined), /* 54 S> */ B(Return), ] constant pool: [ - Smi [125], + Smi [107], SYMBOL_TYPE, ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"], ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"], - SCOPE_INFO_TYPE, ONE_BYTE_INTERNALIZED_STRING_TYPE ["return"], ONE_BYTE_INTERNALIZED_STRING_TYPE [""], SCOPE_INFO_TYPE, - Smi [6], - Smi [19], - Smi [22], ] handlers: [ - [26, 358, 366], - [29, 318, 320], - [35, 188, 196], - [38, 151, 153], - [256, 266, 268], + [20, 236, 238], + [54, 132, 140], + [186, 199, 201], ] |