[ignition] Use jump table for generator resume mode
Bug: v8:6351 Change-Id: Iad82fcfb4172d7a9cbadffa1e40fd1cd26866895 Reviewed-on: https://chromium-review.googlesource.com/521107 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#45705}
This commit is contained in:
parent
a234136074
commit
0ef0fc50b1
@ -2581,49 +2581,51 @@ void BytecodeGenerator::BuildGeneratorResume(
|
||||
if (expr->on_abrupt_resume() != Suspend::kNoControl) {
|
||||
builder()->StoreAccumulatorInRegister(input);
|
||||
|
||||
Register resume_mode = register_allocator()->NewRegister();
|
||||
builder()
|
||||
->CallRuntime(Runtime::kInlineGeneratorGetResumeMode, generator)
|
||||
.StoreAccumulatorInRegister(resume_mode);
|
||||
builder()->CallRuntime(Runtime::kInlineGeneratorGetResumeMode, generator);
|
||||
|
||||
// Now dispatch on resume mode.
|
||||
BytecodeLabel resume_with_next;
|
||||
BytecodeLabel resume_with_throw;
|
||||
STATIC_ASSERT(JSGeneratorObject::kNext + 1 == JSGeneratorObject::kReturn);
|
||||
BytecodeJumpTable* jump_table =
|
||||
builder()->AllocateJumpTable(2, JSGeneratorObject::kNext);
|
||||
|
||||
builder()
|
||||
->LoadLiteral(Smi::FromInt(JSGeneratorObject::kNext))
|
||||
.CompareOperation(Token::EQ_STRICT, resume_mode)
|
||||
.JumpIfTrue(ToBooleanMode::kAlreadyBoolean, &resume_with_next)
|
||||
.LoadLiteral(Smi::FromInt(JSGeneratorObject::kThrow))
|
||||
.CompareOperation(Token::EQ_STRICT, resume_mode)
|
||||
.JumpIfTrue(ToBooleanMode::kAlreadyBoolean, &resume_with_throw);
|
||||
// Fall through for resuming with return.
|
||||
builder()->SwitchOnSmiNoFeedback(jump_table);
|
||||
|
||||
if (expr->is_async_generator()) {
|
||||
// Async generator methods will produce the iter result object.
|
||||
{
|
||||
// Resume with throw (switch fallthrough).
|
||||
// TODO(leszeks): Add a debug-only check that the accumulator is
|
||||
// JSGeneratorObject::kThrow.
|
||||
builder()->SetExpressionPosition(expr);
|
||||
builder()->LoadAccumulatorWithRegister(input);
|
||||
execution_control()->AsyncReturnAccumulator();
|
||||
} else {
|
||||
RegisterList args = register_allocator()->NewRegisterList(2);
|
||||
builder()
|
||||
->MoveRegister(input, args[0])
|
||||
.LoadTrue()
|
||||
.StoreAccumulatorInRegister(args[1])
|
||||
.CallRuntime(Runtime::kInlineCreateIterResultObject, args);
|
||||
execution_control()->ReturnAccumulator();
|
||||
if (expr->rethrow_on_exception()) {
|
||||
builder()->ReThrow();
|
||||
} else {
|
||||
builder()->Throw();
|
||||
}
|
||||
}
|
||||
|
||||
builder()->Bind(&resume_with_throw);
|
||||
builder()->SetExpressionPosition(expr);
|
||||
builder()->LoadAccumulatorWithRegister(input);
|
||||
if (expr->rethrow_on_exception()) {
|
||||
builder()->ReThrow();
|
||||
} else {
|
||||
builder()->Throw();
|
||||
{
|
||||
// Resume with return.
|
||||
builder()->Bind(jump_table, JSGeneratorObject::kReturn);
|
||||
if (expr->is_async_generator()) {
|
||||
// Async generator methods will produce the iter result object.
|
||||
builder()->LoadAccumulatorWithRegister(input);
|
||||
execution_control()->AsyncReturnAccumulator();
|
||||
} else {
|
||||
RegisterList args = register_allocator()->NewRegisterList(2);
|
||||
builder()
|
||||
->MoveRegister(input, args[0])
|
||||
.LoadTrue()
|
||||
.StoreAccumulatorInRegister(args[1])
|
||||
.CallRuntime(Runtime::kInlineCreateIterResultObject, args);
|
||||
execution_control()->ReturnAccumulator();
|
||||
}
|
||||
}
|
||||
|
||||
builder()->Bind(&resume_with_next);
|
||||
builder()->LoadAccumulatorWithRegister(input);
|
||||
{
|
||||
// Resume with next.
|
||||
builder()->Bind(jump_table, JSGeneratorObject::kNext);
|
||||
builder()->LoadAccumulatorWithRegister(input);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -16,7 +16,7 @@ snippet: "
|
||||
"
|
||||
frame size: 27
|
||||
parameter count: 1
|
||||
bytecode array length: 739
|
||||
bytecode array length: 712
|
||||
bytecodes: [
|
||||
B(Mov), R(new_target), R(11),
|
||||
B(Ldar), R(new_target),
|
||||
@ -91,31 +91,25 @@ bytecodes: [
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(22), U8(1),
|
||||
B(Star), R(23),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(22), U8(1),
|
||||
B(Star), R(24),
|
||||
B(LdaZero),
|
||||
B(TestEqualStrictNoFeedback), R(24),
|
||||
B(JumpIfTrue), U8(28),
|
||||
B(LdaSmi), I8(2),
|
||||
B(TestEqualStrictNoFeedback), R(24),
|
||||
B(JumpIfTrue), U8(19),
|
||||
B(SwitchOnSmiNoFeedback), U8(8), U8(2), I8(0),
|
||||
B(Ldar), R(23),
|
||||
/* 40 E> */ B(ReThrow),
|
||||
B(LdaTrue),
|
||||
B(Star), R(26),
|
||||
B(Mov), R(23), R(25),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(25), U8(2),
|
||||
B(Star), R(25),
|
||||
B(Mov), R(23), R(24),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(24), U8(2),
|
||||
B(Star), R(19),
|
||||
B(LdaZero),
|
||||
B(Star), R(18),
|
||||
B(Jump), U8(101),
|
||||
B(Ldar), R(23),
|
||||
/* 40 E> */ B(ReThrow),
|
||||
B(Jump), U8(98),
|
||||
B(Mov), R(23), R(5),
|
||||
/* 40 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(5), U8(1),
|
||||
B(ToBooleanLogicalNot),
|
||||
B(JumpIfFalse), U8(7),
|
||||
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(5), U8(1),
|
||||
B(LdaNamedProperty), R(5), U8(8), U8(16),
|
||||
B(LdaNamedProperty), R(5), U8(10), U8(16),
|
||||
B(JumpIfToBooleanTrue), U8(25),
|
||||
B(LdaNamedProperty), R(5), U8(9), U8(18),
|
||||
B(LdaNamedProperty), R(5), U8(11), U8(18),
|
||||
B(Star), R(8),
|
||||
B(LdaSmi), I8(2),
|
||||
B(Star), R(6),
|
||||
@ -124,11 +118,11 @@ bytecodes: [
|
||||
B(Mov), R(3), R(0),
|
||||
B(LdaZero),
|
||||
B(Star), R(6),
|
||||
B(JumpLoop), U8(153), I8(0),
|
||||
B(JumpLoop), U8(144), I8(0),
|
||||
B(Jump), U8(40),
|
||||
B(Star), R(22),
|
||||
B(Ldar), R(closure),
|
||||
B(CreateCatchContext), R(22), U8(10), U8(11),
|
||||
B(CreateCatchContext), R(22), U8(12), U8(13),
|
||||
B(Star), R(21),
|
||||
B(LdaTheHole),
|
||||
B(SetPendingMessage),
|
||||
@ -154,22 +148,22 @@ bytecodes: [
|
||||
B(Star), R(20),
|
||||
B(LdaZero),
|
||||
B(TestEqualStrict), R(6), U8(21),
|
||||
B(JumpIfTrueConstant), U8(16),
|
||||
B(LdaNamedProperty), R(4), U8(12), U8(22),
|
||||
B(JumpIfTrue), U8(253),
|
||||
B(LdaNamedProperty), R(4), U8(14), U8(22),
|
||||
B(Star), R(9),
|
||||
B(TestUndetectable),
|
||||
B(JumpIfFalse), U8(4),
|
||||
B(JumpConstant), U8(15),
|
||||
B(Jump), U8(242),
|
||||
B(LdaSmi), I8(1),
|
||||
B(TestEqualStrict), R(6), U8(25),
|
||||
B(JumpIfFalse), U8(145),
|
||||
B(JumpIfFalse), U8(136),
|
||||
B(Ldar), R(9),
|
||||
B(TestTypeOf), U8(5),
|
||||
B(JumpIfFalse), U8(4),
|
||||
B(Jump), U8(18),
|
||||
B(Wide), B(LdaSmi), I16(130),
|
||||
B(Star), R(21),
|
||||
B(LdaConstant), U8(13),
|
||||
B(LdaConstant), U8(15),
|
||||
B(Star), R(22),
|
||||
B(CallRuntime), U16(Runtime::kNewTypeError), R(21), U8(2),
|
||||
B(Throw),
|
||||
@ -195,35 +189,29 @@ bytecodes: [
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(22), U8(1),
|
||||
B(Star), R(23),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(22), U8(1),
|
||||
B(Star), R(24),
|
||||
B(LdaZero),
|
||||
B(TestEqualStrictNoFeedback), R(24),
|
||||
B(JumpIfTrue), U8(28),
|
||||
B(LdaSmi), I8(2),
|
||||
B(TestEqualStrictNoFeedback), R(24),
|
||||
B(JumpIfTrue), U8(19),
|
||||
B(SwitchOnSmiNoFeedback), U8(16), U8(2), I8(0),
|
||||
B(Ldar), R(23),
|
||||
B(ReThrow),
|
||||
B(LdaTrue),
|
||||
B(Star), R(26),
|
||||
B(Mov), R(23), R(25),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(25), U8(2),
|
||||
B(Star), R(25),
|
||||
B(Mov), R(23), R(24),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(24), U8(2),
|
||||
B(Star), R(15),
|
||||
B(LdaZero),
|
||||
B(Star), R(14),
|
||||
B(Jump), U8(237),
|
||||
B(Ldar), R(23),
|
||||
B(ReThrow),
|
||||
B(Jump), U8(225),
|
||||
B(Ldar), R(23),
|
||||
B(Jump), U8(20),
|
||||
B(Star), R(22),
|
||||
B(Ldar), R(closure),
|
||||
B(CreateCatchContext), R(22), U8(10), U8(14),
|
||||
B(CreateCatchContext), R(22), U8(12), U8(18),
|
||||
B(Star), R(21),
|
||||
B(LdaTheHole),
|
||||
B(SetPendingMessage),
|
||||
B(Ldar), R(21),
|
||||
B(PushContext), R(22),
|
||||
B(PopContext), R(22),
|
||||
B(Jump), U8(110),
|
||||
B(Jump), U8(101),
|
||||
B(LdaUndefined),
|
||||
B(Star), R(22),
|
||||
B(Mov), R(9), R(24),
|
||||
@ -245,23 +233,17 @@ bytecodes: [
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(21), U8(1),
|
||||
B(Star), R(22),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(21), U8(1),
|
||||
B(Star), R(23),
|
||||
B(LdaZero),
|
||||
B(TestEqualStrictNoFeedback), R(23),
|
||||
B(JumpIfTrue), U8(28),
|
||||
B(LdaSmi), I8(2),
|
||||
B(TestEqualStrictNoFeedback), R(23),
|
||||
B(JumpIfTrue), U8(19),
|
||||
B(SwitchOnSmiNoFeedback), U8(19), U8(2), I8(0),
|
||||
B(Ldar), R(22),
|
||||
B(ReThrow),
|
||||
B(LdaTrue),
|
||||
B(Star), R(25),
|
||||
B(Mov), R(22), R(24),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(24), U8(2),
|
||||
B(Star), R(24),
|
||||
B(Mov), R(22), R(23),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(23), U8(2),
|
||||
B(Star), R(15),
|
||||
B(LdaZero),
|
||||
B(Star), R(14),
|
||||
B(Jump), U8(121),
|
||||
B(Ldar), R(22),
|
||||
B(ReThrow),
|
||||
B(Jump), U8(118),
|
||||
B(Mov), R(22), R(10),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(10), U8(1),
|
||||
B(JumpIfToBooleanFalse), U8(4),
|
||||
@ -270,7 +252,7 @@ bytecodes: [
|
||||
B(Ldar), R(20),
|
||||
B(SetPendingMessage),
|
||||
B(Ldar), R(18),
|
||||
B(SwitchOnSmiNoFeedback), U8(17), U8(2), I8(0),
|
||||
B(SwitchOnSmiNoFeedback), U8(21), U8(2), I8(0),
|
||||
B(Jump), U8(13),
|
||||
B(LdaZero),
|
||||
B(Star), R(14),
|
||||
@ -291,7 +273,7 @@ bytecodes: [
|
||||
B(Jump), U8(45),
|
||||
B(Star), R(18),
|
||||
B(Ldar), R(closure),
|
||||
B(CreateCatchContext), R(18), U8(10), U8(19),
|
||||
B(CreateCatchContext), R(18), U8(12), U8(23),
|
||||
B(Star), R(17),
|
||||
B(LdaTheHole),
|
||||
B(SetPendingMessage),
|
||||
@ -326,7 +308,7 @@ bytecodes: [
|
||||
B(Ldar), R(16),
|
||||
B(SetPendingMessage),
|
||||
B(Ldar), R(14),
|
||||
B(SwitchOnSmiNoFeedback), U8(20), U8(2), I8(0),
|
||||
B(SwitchOnSmiNoFeedback), U8(24), U8(2), I8(0),
|
||||
B(Jump), U8(8),
|
||||
B(Ldar), R(15),
|
||||
/* 57 S> */ B(Return),
|
||||
@ -337,22 +319,26 @@ bytecodes: [
|
||||
]
|
||||
constant pool: [
|
||||
Smi [102],
|
||||
Smi [406],
|
||||
Smi [522],
|
||||
Smi [397],
|
||||
Smi [504],
|
||||
TUPLE2_TYPE,
|
||||
SYMBOL_TYPE,
|
||||
SYMBOL_TYPE,
|
||||
Smi [59],
|
||||
ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
|
||||
Smi [24],
|
||||
Smi [7],
|
||||
ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
|
||||
ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
|
||||
ONE_BYTE_INTERNALIZED_STRING_TYPE [".catch"],
|
||||
FIXED_ARRAY_TYPE,
|
||||
ONE_BYTE_INTERNALIZED_STRING_TYPE ["return"],
|
||||
ONE_BYTE_INTERNALIZED_STRING_TYPE [""],
|
||||
Smi [24],
|
||||
Smi [7],
|
||||
FIXED_ARRAY_TYPE,
|
||||
Smi [260],
|
||||
Smi [271],
|
||||
Smi [24],
|
||||
Smi [7],
|
||||
Smi [6],
|
||||
Smi [14],
|
||||
FIXED_ARRAY_TYPE,
|
||||
@ -360,11 +346,11 @@ constant pool: [
|
||||
Smi [9],
|
||||
]
|
||||
handlers: [
|
||||
[62, 694, 700],
|
||||
[65, 649, 651],
|
||||
[71, 315, 321],
|
||||
[74, 275, 277],
|
||||
[382, 476, 478],
|
||||
[62, 667, 673],
|
||||
[65, 622, 624],
|
||||
[71, 306, 312],
|
||||
[74, 266, 268],
|
||||
[373, 458, 460],
|
||||
]
|
||||
|
||||
---
|
||||
@ -376,7 +362,7 @@ snippet: "
|
||||
"
|
||||
frame size: 27
|
||||
parameter count: 1
|
||||
bytecode array length: 767
|
||||
bytecode array length: 740
|
||||
bytecodes: [
|
||||
B(Mov), R(new_target), R(11),
|
||||
B(Ldar), R(new_target),
|
||||
@ -451,31 +437,25 @@ bytecodes: [
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(22), U8(1),
|
||||
B(Star), R(23),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(22), U8(1),
|
||||
B(Star), R(24),
|
||||
B(LdaZero),
|
||||
B(TestEqualStrictNoFeedback), R(24),
|
||||
B(JumpIfTrue), U8(28),
|
||||
B(LdaSmi), I8(2),
|
||||
B(TestEqualStrictNoFeedback), R(24),
|
||||
B(JumpIfTrue), U8(19),
|
||||
B(SwitchOnSmiNoFeedback), U8(8), U8(2), I8(0),
|
||||
B(Ldar), R(23),
|
||||
/* 40 E> */ B(ReThrow),
|
||||
B(LdaTrue),
|
||||
B(Star), R(26),
|
||||
B(Mov), R(23), R(25),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(25), U8(2),
|
||||
B(Star), R(25),
|
||||
B(Mov), R(23), R(24),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(24), U8(2),
|
||||
B(Star), R(19),
|
||||
B(LdaZero),
|
||||
B(Star), R(18),
|
||||
B(Jump), U8(104),
|
||||
B(Ldar), R(23),
|
||||
/* 40 E> */ B(ReThrow),
|
||||
B(Jump), U8(101),
|
||||
B(Mov), R(23), R(5),
|
||||
/* 40 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(5), U8(1),
|
||||
B(ToBooleanLogicalNot),
|
||||
B(JumpIfFalse), U8(7),
|
||||
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(5), U8(1),
|
||||
B(LdaNamedProperty), R(5), U8(8), U8(16),
|
||||
B(LdaNamedProperty), R(5), U8(10), U8(16),
|
||||
B(JumpIfToBooleanTrue), U8(28),
|
||||
B(LdaNamedProperty), R(5), U8(9), U8(18),
|
||||
B(LdaNamedProperty), R(5), U8(11), U8(18),
|
||||
B(Star), R(8),
|
||||
B(LdaSmi), I8(2),
|
||||
B(Star), R(6),
|
||||
@ -489,7 +469,7 @@ bytecodes: [
|
||||
B(Jump), U8(40),
|
||||
B(Star), R(22),
|
||||
B(Ldar), R(closure),
|
||||
B(CreateCatchContext), R(22), U8(10), U8(11),
|
||||
B(CreateCatchContext), R(22), U8(12), U8(13),
|
||||
B(Star), R(21),
|
||||
B(LdaTheHole),
|
||||
B(SetPendingMessage),
|
||||
@ -515,22 +495,22 @@ bytecodes: [
|
||||
B(Star), R(20),
|
||||
B(LdaZero),
|
||||
B(TestEqualStrict), R(6), U8(21),
|
||||
B(JumpIfTrueConstant), U8(16),
|
||||
B(LdaNamedProperty), R(4), U8(12), U8(22),
|
||||
B(JumpIfTrue), U8(253),
|
||||
B(LdaNamedProperty), R(4), U8(14), U8(22),
|
||||
B(Star), R(9),
|
||||
B(TestUndetectable),
|
||||
B(JumpIfFalse), U8(4),
|
||||
B(JumpConstant), U8(15),
|
||||
B(Jump), U8(242),
|
||||
B(LdaSmi), I8(1),
|
||||
B(TestEqualStrict), R(6), U8(25),
|
||||
B(JumpIfFalse), U8(145),
|
||||
B(JumpIfFalse), U8(136),
|
||||
B(Ldar), R(9),
|
||||
B(TestTypeOf), U8(5),
|
||||
B(JumpIfFalse), U8(4),
|
||||
B(Jump), U8(18),
|
||||
B(Wide), B(LdaSmi), I16(130),
|
||||
B(Star), R(21),
|
||||
B(LdaConstant), U8(13),
|
||||
B(LdaConstant), U8(15),
|
||||
B(Star), R(22),
|
||||
B(CallRuntime), U16(Runtime::kNewTypeError), R(21), U8(2),
|
||||
B(Throw),
|
||||
@ -556,35 +536,29 @@ bytecodes: [
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(22), U8(1),
|
||||
B(Star), R(23),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(22), U8(1),
|
||||
B(Star), R(24),
|
||||
B(LdaZero),
|
||||
B(TestEqualStrictNoFeedback), R(24),
|
||||
B(JumpIfTrue), U8(28),
|
||||
B(LdaSmi), I8(2),
|
||||
B(TestEqualStrictNoFeedback), R(24),
|
||||
B(JumpIfTrue), U8(19),
|
||||
B(SwitchOnSmiNoFeedback), U8(16), U8(2), I8(0),
|
||||
B(Ldar), R(23),
|
||||
B(ReThrow),
|
||||
B(LdaTrue),
|
||||
B(Star), R(26),
|
||||
B(Mov), R(23), R(25),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(25), U8(2),
|
||||
B(Star), R(25),
|
||||
B(Mov), R(23), R(24),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(24), U8(2),
|
||||
B(Star), R(15),
|
||||
B(LdaZero),
|
||||
B(Star), R(14),
|
||||
B(Jump), U8(246),
|
||||
B(Ldar), R(23),
|
||||
B(ReThrow),
|
||||
B(Jump), U8(234),
|
||||
B(Ldar), R(23),
|
||||
B(Jump), U8(20),
|
||||
B(Star), R(22),
|
||||
B(Ldar), R(closure),
|
||||
B(CreateCatchContext), R(22), U8(10), U8(14),
|
||||
B(CreateCatchContext), R(22), U8(12), U8(18),
|
||||
B(Star), R(21),
|
||||
B(LdaTheHole),
|
||||
B(SetPendingMessage),
|
||||
B(Ldar), R(21),
|
||||
B(PushContext), R(22),
|
||||
B(PopContext), R(22),
|
||||
B(Jump), U8(110),
|
||||
B(Jump), U8(101),
|
||||
B(LdaUndefined),
|
||||
B(Star), R(22),
|
||||
B(Mov), R(9), R(24),
|
||||
@ -606,23 +580,17 @@ bytecodes: [
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(21), U8(1),
|
||||
B(Star), R(22),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(21), U8(1),
|
||||
B(Star), R(23),
|
||||
B(LdaZero),
|
||||
B(TestEqualStrictNoFeedback), R(23),
|
||||
B(JumpIfTrue), U8(28),
|
||||
B(LdaSmi), I8(2),
|
||||
B(TestEqualStrictNoFeedback), R(23),
|
||||
B(JumpIfTrue), U8(19),
|
||||
B(SwitchOnSmiNoFeedback), U8(19), U8(2), I8(0),
|
||||
B(Ldar), R(22),
|
||||
B(ReThrow),
|
||||
B(LdaTrue),
|
||||
B(Star), R(25),
|
||||
B(Mov), R(22), R(24),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(24), U8(2),
|
||||
B(Star), R(24),
|
||||
B(Mov), R(22), R(23),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(23), U8(2),
|
||||
B(Star), R(15),
|
||||
B(LdaZero),
|
||||
B(Star), R(14),
|
||||
B(Jump), U8(130),
|
||||
B(Ldar), R(22),
|
||||
B(ReThrow),
|
||||
B(Jump), U8(127),
|
||||
B(Mov), R(22), R(10),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(10), U8(1),
|
||||
B(JumpIfToBooleanFalse), U8(4),
|
||||
@ -631,7 +599,7 @@ bytecodes: [
|
||||
B(Ldar), R(20),
|
||||
B(SetPendingMessage),
|
||||
B(Ldar), R(18),
|
||||
B(SwitchOnSmiNoFeedback), U8(17), U8(3), I8(0),
|
||||
B(SwitchOnSmiNoFeedback), U8(21), U8(3), I8(0),
|
||||
B(Jump), U8(22),
|
||||
B(LdaZero),
|
||||
B(Star), R(14),
|
||||
@ -656,7 +624,7 @@ bytecodes: [
|
||||
B(Jump), U8(45),
|
||||
B(Star), R(18),
|
||||
B(Ldar), R(closure),
|
||||
B(CreateCatchContext), R(18), U8(10), U8(20),
|
||||
B(CreateCatchContext), R(18), U8(12), U8(24),
|
||||
B(Star), R(17),
|
||||
B(LdaTheHole),
|
||||
B(SetPendingMessage),
|
||||
@ -691,7 +659,7 @@ bytecodes: [
|
||||
B(Ldar), R(16),
|
||||
B(SetPendingMessage),
|
||||
B(Ldar), R(14),
|
||||
B(SwitchOnSmiNoFeedback), U8(21), U8(3), I8(0),
|
||||
B(SwitchOnSmiNoFeedback), U8(25), U8(3), I8(0),
|
||||
B(Jump), U8(24),
|
||||
B(Ldar), R(15),
|
||||
/* 68 S> */ B(Return),
|
||||
@ -709,22 +677,26 @@ bytecodes: [
|
||||
]
|
||||
constant pool: [
|
||||
Smi [102],
|
||||
Smi [409],
|
||||
Smi [525],
|
||||
Smi [400],
|
||||
Smi [507],
|
||||
TUPLE2_TYPE,
|
||||
SYMBOL_TYPE,
|
||||
SYMBOL_TYPE,
|
||||
Smi [59],
|
||||
ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
|
||||
Smi [24],
|
||||
Smi [7],
|
||||
ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
|
||||
ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
|
||||
ONE_BYTE_INTERNALIZED_STRING_TYPE [".catch"],
|
||||
FIXED_ARRAY_TYPE,
|
||||
ONE_BYTE_INTERNALIZED_STRING_TYPE ["return"],
|
||||
ONE_BYTE_INTERNALIZED_STRING_TYPE [""],
|
||||
Smi [24],
|
||||
Smi [7],
|
||||
FIXED_ARRAY_TYPE,
|
||||
Smi [260],
|
||||
Smi [271],
|
||||
Smi [24],
|
||||
Smi [7],
|
||||
Smi [6],
|
||||
Smi [14],
|
||||
Smi [23],
|
||||
@ -734,11 +706,11 @@ constant pool: [
|
||||
Smi [25],
|
||||
]
|
||||
handlers: [
|
||||
[62, 706, 712],
|
||||
[65, 661, 663],
|
||||
[71, 318, 324],
|
||||
[74, 278, 280],
|
||||
[385, 479, 481],
|
||||
[62, 679, 685],
|
||||
[65, 634, 636],
|
||||
[71, 309, 315],
|
||||
[74, 269, 271],
|
||||
[376, 461, 463],
|
||||
]
|
||||
|
||||
---
|
||||
@ -753,7 +725,7 @@ snippet: "
|
||||
"
|
||||
frame size: 27
|
||||
parameter count: 1
|
||||
bytecode array length: 757
|
||||
bytecode array length: 730
|
||||
bytecodes: [
|
||||
B(Mov), R(new_target), R(11),
|
||||
B(Ldar), R(new_target),
|
||||
@ -828,31 +800,25 @@ bytecodes: [
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(22), U8(1),
|
||||
B(Star), R(23),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(22), U8(1),
|
||||
B(Star), R(24),
|
||||
B(LdaZero),
|
||||
B(TestEqualStrictNoFeedback), R(24),
|
||||
B(JumpIfTrue), U8(28),
|
||||
B(LdaSmi), I8(2),
|
||||
B(TestEqualStrictNoFeedback), R(24),
|
||||
B(JumpIfTrue), U8(19),
|
||||
B(SwitchOnSmiNoFeedback), U8(8), U8(2), I8(0),
|
||||
B(Ldar), R(23),
|
||||
/* 40 E> */ B(ReThrow),
|
||||
B(LdaTrue),
|
||||
B(Star), R(26),
|
||||
B(Mov), R(23), R(25),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(25), U8(2),
|
||||
B(Star), R(25),
|
||||
B(Mov), R(23), R(24),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(24), U8(2),
|
||||
B(Star), R(19),
|
||||
B(LdaZero),
|
||||
B(Star), R(18),
|
||||
B(Jump), U8(119),
|
||||
B(Ldar), R(23),
|
||||
/* 40 E> */ B(ReThrow),
|
||||
B(Jump), U8(116),
|
||||
B(Mov), R(23), R(5),
|
||||
/* 40 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(5), U8(1),
|
||||
B(ToBooleanLogicalNot),
|
||||
B(JumpIfFalse), U8(7),
|
||||
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(5), U8(1),
|
||||
B(LdaNamedProperty), R(5), U8(8), U8(16),
|
||||
B(LdaNamedProperty), R(5), U8(10), U8(16),
|
||||
B(JumpIfToBooleanTrue), U8(43),
|
||||
B(LdaNamedProperty), R(5), U8(9), U8(18),
|
||||
B(LdaNamedProperty), R(5), U8(11), U8(18),
|
||||
B(Star), R(8),
|
||||
B(LdaSmi), I8(2),
|
||||
B(Star), R(6),
|
||||
@ -869,11 +835,11 @@ bytecodes: [
|
||||
/* 103 S> */ B(Jump), U8(8),
|
||||
B(LdaZero),
|
||||
B(Star), R(6),
|
||||
B(JumpLoop), U8(171), I8(0),
|
||||
B(JumpLoop), U8(162), I8(0),
|
||||
B(Jump), U8(40),
|
||||
B(Star), R(22),
|
||||
B(Ldar), R(closure),
|
||||
B(CreateCatchContext), R(22), U8(10), U8(11),
|
||||
B(CreateCatchContext), R(22), U8(12), U8(13),
|
||||
B(Star), R(21),
|
||||
B(LdaTheHole),
|
||||
B(SetPendingMessage),
|
||||
@ -899,22 +865,22 @@ bytecodes: [
|
||||
B(Star), R(20),
|
||||
B(LdaZero),
|
||||
B(TestEqualStrict), R(6), U8(23),
|
||||
B(JumpIfTrueConstant), U8(16),
|
||||
B(LdaNamedProperty), R(4), U8(12), U8(24),
|
||||
B(JumpIfTrue), U8(253),
|
||||
B(LdaNamedProperty), R(4), U8(14), U8(24),
|
||||
B(Star), R(9),
|
||||
B(TestUndetectable),
|
||||
B(JumpIfFalse), U8(4),
|
||||
B(JumpConstant), U8(15),
|
||||
B(Jump), U8(242),
|
||||
B(LdaSmi), I8(1),
|
||||
B(TestEqualStrict), R(6), U8(27),
|
||||
B(JumpIfFalse), U8(145),
|
||||
B(JumpIfFalse), U8(136),
|
||||
B(Ldar), R(9),
|
||||
B(TestTypeOf), U8(5),
|
||||
B(JumpIfFalse), U8(4),
|
||||
B(Jump), U8(18),
|
||||
B(Wide), B(LdaSmi), I16(130),
|
||||
B(Star), R(21),
|
||||
B(LdaConstant), U8(13),
|
||||
B(LdaConstant), U8(15),
|
||||
B(Star), R(22),
|
||||
B(CallRuntime), U16(Runtime::kNewTypeError), R(21), U8(2),
|
||||
B(Throw),
|
||||
@ -940,35 +906,29 @@ bytecodes: [
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(22), U8(1),
|
||||
B(Star), R(23),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(22), U8(1),
|
||||
B(Star), R(24),
|
||||
B(LdaZero),
|
||||
B(TestEqualStrictNoFeedback), R(24),
|
||||
B(JumpIfTrue), U8(28),
|
||||
B(LdaSmi), I8(2),
|
||||
B(TestEqualStrictNoFeedback), R(24),
|
||||
B(JumpIfTrue), U8(19),
|
||||
B(SwitchOnSmiNoFeedback), U8(16), U8(2), I8(0),
|
||||
B(Ldar), R(23),
|
||||
B(ReThrow),
|
||||
B(LdaTrue),
|
||||
B(Star), R(26),
|
||||
B(Mov), R(23), R(25),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(25), U8(2),
|
||||
B(Star), R(25),
|
||||
B(Mov), R(23), R(24),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(24), U8(2),
|
||||
B(Star), R(15),
|
||||
B(LdaZero),
|
||||
B(Star), R(14),
|
||||
B(Jump), U8(237),
|
||||
B(Ldar), R(23),
|
||||
B(ReThrow),
|
||||
B(Jump), U8(225),
|
||||
B(Ldar), R(23),
|
||||
B(Jump), U8(20),
|
||||
B(Star), R(22),
|
||||
B(Ldar), R(closure),
|
||||
B(CreateCatchContext), R(22), U8(10), U8(14),
|
||||
B(CreateCatchContext), R(22), U8(12), U8(18),
|
||||
B(Star), R(21),
|
||||
B(LdaTheHole),
|
||||
B(SetPendingMessage),
|
||||
B(Ldar), R(21),
|
||||
B(PushContext), R(22),
|
||||
B(PopContext), R(22),
|
||||
B(Jump), U8(110),
|
||||
B(Jump), U8(101),
|
||||
B(LdaUndefined),
|
||||
B(Star), R(22),
|
||||
B(Mov), R(9), R(24),
|
||||
@ -990,23 +950,17 @@ bytecodes: [
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(21), U8(1),
|
||||
B(Star), R(22),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(21), U8(1),
|
||||
B(Star), R(23),
|
||||
B(LdaZero),
|
||||
B(TestEqualStrictNoFeedback), R(23),
|
||||
B(JumpIfTrue), U8(28),
|
||||
B(LdaSmi), I8(2),
|
||||
B(TestEqualStrictNoFeedback), R(23),
|
||||
B(JumpIfTrue), U8(19),
|
||||
B(SwitchOnSmiNoFeedback), U8(19), U8(2), I8(0),
|
||||
B(Ldar), R(22),
|
||||
B(ReThrow),
|
||||
B(LdaTrue),
|
||||
B(Star), R(25),
|
||||
B(Mov), R(22), R(24),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(24), U8(2),
|
||||
B(Star), R(24),
|
||||
B(Mov), R(22), R(23),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(23), U8(2),
|
||||
B(Star), R(15),
|
||||
B(LdaZero),
|
||||
B(Star), R(14),
|
||||
B(Jump), U8(121),
|
||||
B(Ldar), R(22),
|
||||
B(ReThrow),
|
||||
B(Jump), U8(118),
|
||||
B(Mov), R(22), R(10),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(10), U8(1),
|
||||
B(JumpIfToBooleanFalse), U8(4),
|
||||
@ -1015,7 +969,7 @@ bytecodes: [
|
||||
B(Ldar), R(20),
|
||||
B(SetPendingMessage),
|
||||
B(Ldar), R(18),
|
||||
B(SwitchOnSmiNoFeedback), U8(17), U8(2), I8(0),
|
||||
B(SwitchOnSmiNoFeedback), U8(21), U8(2), I8(0),
|
||||
B(Jump), U8(13),
|
||||
B(LdaZero),
|
||||
B(Star), R(14),
|
||||
@ -1036,7 +990,7 @@ bytecodes: [
|
||||
B(Jump), U8(45),
|
||||
B(Star), R(18),
|
||||
B(Ldar), R(closure),
|
||||
B(CreateCatchContext), R(18), U8(10), U8(19),
|
||||
B(CreateCatchContext), R(18), U8(12), U8(23),
|
||||
B(Star), R(17),
|
||||
B(LdaTheHole),
|
||||
B(SetPendingMessage),
|
||||
@ -1071,7 +1025,7 @@ bytecodes: [
|
||||
B(Ldar), R(16),
|
||||
B(SetPendingMessage),
|
||||
B(Ldar), R(14),
|
||||
B(SwitchOnSmiNoFeedback), U8(20), U8(2), I8(0),
|
||||
B(SwitchOnSmiNoFeedback), U8(24), U8(2), I8(0),
|
||||
B(Jump), U8(8),
|
||||
B(Ldar), R(15),
|
||||
/* 114 S> */ B(Return),
|
||||
@ -1082,22 +1036,26 @@ bytecodes: [
|
||||
]
|
||||
constant pool: [
|
||||
Smi [102],
|
||||
Smi [424],
|
||||
Smi [540],
|
||||
Smi [415],
|
||||
Smi [522],
|
||||
TUPLE2_TYPE,
|
||||
SYMBOL_TYPE,
|
||||
SYMBOL_TYPE,
|
||||
Smi [59],
|
||||
ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
|
||||
Smi [24],
|
||||
Smi [7],
|
||||
ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
|
||||
ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
|
||||
ONE_BYTE_INTERNALIZED_STRING_TYPE [".catch"],
|
||||
FIXED_ARRAY_TYPE,
|
||||
ONE_BYTE_INTERNALIZED_STRING_TYPE ["return"],
|
||||
ONE_BYTE_INTERNALIZED_STRING_TYPE [""],
|
||||
Smi [24],
|
||||
Smi [7],
|
||||
FIXED_ARRAY_TYPE,
|
||||
Smi [260],
|
||||
Smi [271],
|
||||
Smi [24],
|
||||
Smi [7],
|
||||
Smi [6],
|
||||
Smi [14],
|
||||
FIXED_ARRAY_TYPE,
|
||||
@ -1105,11 +1063,11 @@ constant pool: [
|
||||
Smi [9],
|
||||
]
|
||||
handlers: [
|
||||
[62, 712, 718],
|
||||
[65, 667, 669],
|
||||
[71, 333, 339],
|
||||
[74, 293, 295],
|
||||
[400, 494, 496],
|
||||
[62, 685, 691],
|
||||
[65, 640, 642],
|
||||
[71, 324, 330],
|
||||
[74, 284, 286],
|
||||
[391, 476, 478],
|
||||
]
|
||||
|
||||
---
|
||||
|
@ -643,7 +643,7 @@ snippet: "
|
||||
"
|
||||
frame size: 24
|
||||
parameter count: 2
|
||||
bytecode array length: 446
|
||||
bytecode array length: 437
|
||||
bytecodes: [
|
||||
B(Mov), R(new_target), R(11),
|
||||
B(Ldar), R(new_target),
|
||||
@ -681,36 +681,30 @@ bytecodes: [
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(18), U8(1),
|
||||
B(Star), R(19),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(18), U8(1),
|
||||
B(Star), R(20),
|
||||
B(LdaZero),
|
||||
B(TestEqualStrictNoFeedback), R(20),
|
||||
B(JumpIfTrue), U8(28),
|
||||
B(LdaSmi), I8(2),
|
||||
B(TestEqualStrictNoFeedback), R(20),
|
||||
B(JumpIfTrue), U8(19),
|
||||
B(SwitchOnSmiNoFeedback), U8(1), U8(2), I8(0),
|
||||
B(Ldar), R(19),
|
||||
/* 11 E> */ B(Throw),
|
||||
B(LdaTrue),
|
||||
B(Star), R(22),
|
||||
B(Mov), R(19), R(21),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(21), U8(2),
|
||||
B(Star), R(21),
|
||||
B(Mov), R(19), R(20),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(20), U8(2),
|
||||
B(Star), R(16),
|
||||
B(LdaZero),
|
||||
B(Star), R(15),
|
||||
B(JumpConstant), U8(10),
|
||||
B(Ldar), R(19),
|
||||
/* 11 E> */ B(Throw),
|
||||
B(JumpConstant), U8(12),
|
||||
B(LdaZero),
|
||||
B(Star), R(7),
|
||||
B(Mov), R(context), R(20),
|
||||
B(Mov), R(context), R(21),
|
||||
/* 35 S> */ B(LdaImmutableCurrentContextSlot), U8(4),
|
||||
B(Star), R(22),
|
||||
B(LdaNamedProperty), R(22), U8(1), U8(3),
|
||||
B(LdaNamedProperty), R(22), U8(3), U8(3),
|
||||
B(Star), R(23),
|
||||
B(CallProperty0), R(23), R(22), U8(5),
|
||||
B(JumpIfJSReceiver), U8(7),
|
||||
B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
|
||||
B(Star), R(5),
|
||||
/* 30 S> */ B(LdaNamedProperty), R(5), U8(2), U8(9),
|
||||
/* 30 S> */ B(LdaNamedProperty), R(5), U8(4), U8(9),
|
||||
B(Star), R(22),
|
||||
B(CallProperty0), R(22), R(5), U8(7),
|
||||
B(Star), R(6),
|
||||
@ -718,9 +712,9 @@ bytecodes: [
|
||||
B(ToBooleanLogicalNot),
|
||||
B(JumpIfFalse), U8(7),
|
||||
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(6), U8(1),
|
||||
B(LdaNamedProperty), R(6), U8(3), U8(11),
|
||||
B(LdaNamedProperty), R(6), U8(5), U8(11),
|
||||
B(JumpIfToBooleanTrue), U8(28),
|
||||
B(LdaNamedProperty), R(6), U8(4), U8(13),
|
||||
B(LdaNamedProperty), R(6), U8(6), U8(13),
|
||||
B(Star), R(8),
|
||||
B(LdaSmi), I8(2),
|
||||
B(Star), R(7),
|
||||
@ -734,7 +728,7 @@ bytecodes: [
|
||||
B(Jump), U8(36),
|
||||
B(Star), R(22),
|
||||
B(Ldar), R(closure),
|
||||
/* 50 E> */ B(CreateCatchContext), R(22), U8(5), U8(6),
|
||||
/* 50 E> */ B(CreateCatchContext), R(22), U8(7), U8(8),
|
||||
B(PushContext), R(22),
|
||||
B(Star), R(21),
|
||||
B(LdaSmi), I8(2),
|
||||
@ -758,7 +752,7 @@ bytecodes: [
|
||||
B(LdaZero),
|
||||
B(TestEqualStrict), R(7), U8(16),
|
||||
B(JumpIfTrue), U8(104),
|
||||
B(LdaNamedProperty), R(5), U8(7), U8(17),
|
||||
B(LdaNamedProperty), R(5), U8(9), U8(17),
|
||||
B(Star), R(9),
|
||||
B(TestUndetectable),
|
||||
B(JumpIfFalse), U8(4),
|
||||
@ -772,7 +766,7 @@ bytecodes: [
|
||||
B(Jump), U8(18),
|
||||
B(Wide), B(LdaSmi), I16(130),
|
||||
B(Star), R(21),
|
||||
B(LdaConstant), U8(8),
|
||||
B(LdaConstant), U8(10),
|
||||
B(Star), R(22),
|
||||
B(CallRuntime), U16(Runtime::kNewTypeError), R(21), U8(2),
|
||||
B(Throw),
|
||||
@ -783,7 +777,7 @@ bytecodes: [
|
||||
B(Jump), U8(20),
|
||||
B(Star), R(22),
|
||||
B(Ldar), R(closure),
|
||||
B(CreateCatchContext), R(22), U8(5), U8(9),
|
||||
B(CreateCatchContext), R(22), U8(7), U8(11),
|
||||
B(Star), R(21),
|
||||
B(LdaTheHole),
|
||||
B(SetPendingMessage),
|
||||
@ -830,7 +824,7 @@ bytecodes: [
|
||||
B(Ldar), R(17),
|
||||
B(SetPendingMessage),
|
||||
B(Ldar), R(15),
|
||||
B(SwitchOnSmiNoFeedback), U8(11), U8(2), I8(0),
|
||||
B(SwitchOnSmiNoFeedback), U8(13), U8(2), I8(0),
|
||||
B(Jump), U8(8),
|
||||
B(Ldar), R(16),
|
||||
/* 55 S> */ B(Return),
|
||||
@ -841,6 +835,8 @@ bytecodes: [
|
||||
]
|
||||
constant pool: [
|
||||
Smi [58],
|
||||
Smi [24],
|
||||
Smi [7],
|
||||
SYMBOL_TYPE,
|
||||
ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
|
||||
ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
|
||||
@ -850,15 +846,15 @@ constant pool: [
|
||||
ONE_BYTE_INTERNALIZED_STRING_TYPE ["return"],
|
||||
ONE_BYTE_INTERNALIZED_STRING_TYPE [""],
|
||||
FIXED_ARRAY_TYPE,
|
||||
Smi [298],
|
||||
Smi [295],
|
||||
Smi [6],
|
||||
Smi [9],
|
||||
]
|
||||
handlers: [
|
||||
[60, 407, 413],
|
||||
[132, 250, 256],
|
||||
[135, 214, 216],
|
||||
[316, 326, 328],
|
||||
[60, 398, 404],
|
||||
[123, 241, 247],
|
||||
[126, 205, 207],
|
||||
[307, 317, 319],
|
||||
]
|
||||
|
||||
---
|
||||
@ -868,9 +864,9 @@ snippet: "
|
||||
}
|
||||
f([1, 2, 3]);
|
||||
"
|
||||
frame size: 26
|
||||
frame size: 25
|
||||
parameter count: 2
|
||||
bytecode array length: 552
|
||||
bytecode array length: 534
|
||||
bytecodes: [
|
||||
B(Mov), R(new_target), R(10),
|
||||
B(Ldar), R(new_target),
|
||||
@ -908,44 +904,38 @@ bytecodes: [
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(17), U8(1),
|
||||
B(Star), R(18),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(17), U8(1),
|
||||
B(Star), R(19),
|
||||
B(LdaZero),
|
||||
B(TestEqualStrictNoFeedback), R(19),
|
||||
B(JumpIfTrue), U8(28),
|
||||
B(LdaSmi), I8(2),
|
||||
B(TestEqualStrictNoFeedback), R(19),
|
||||
B(JumpIfTrue), U8(19),
|
||||
B(SwitchOnSmiNoFeedback), U8(2), U8(2), I8(0),
|
||||
B(Ldar), R(18),
|
||||
/* 11 E> */ B(Throw),
|
||||
B(LdaTrue),
|
||||
B(Star), R(21),
|
||||
B(Mov), R(18), R(20),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(20), U8(2),
|
||||
B(Star), R(20),
|
||||
B(Mov), R(18), R(19),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(19), U8(2),
|
||||
B(Star), R(15),
|
||||
B(LdaZero),
|
||||
B(Star), R(14),
|
||||
B(JumpConstant), U8(14),
|
||||
B(Ldar), R(18),
|
||||
/* 11 E> */ B(Throw),
|
||||
B(JumpConstant), U8(18),
|
||||
B(LdaZero),
|
||||
B(Star), R(6),
|
||||
B(Mov), R(context), R(19),
|
||||
B(Mov), R(context), R(20),
|
||||
/* 35 S> */ B(LdaImmutableCurrentContextSlot), U8(4),
|
||||
B(Star), R(21),
|
||||
B(LdaNamedProperty), R(21), U8(2), U8(3),
|
||||
B(LdaNamedProperty), R(21), U8(4), U8(3),
|
||||
B(Star), R(22),
|
||||
B(CallProperty0), R(22), R(21), U8(5),
|
||||
B(JumpIfJSReceiver), U8(7),
|
||||
B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
|
||||
B(Star), R(4),
|
||||
B(Ldar), R(11),
|
||||
B(SwitchOnSmiNoFeedback), U8(3), U8(1), I8(1),
|
||||
B(SwitchOnSmiNoFeedback), U8(5), U8(1), I8(1),
|
||||
B(LdaSmi), I8(-2),
|
||||
/* 35 E> */ B(TestEqualStrictNoFeedback), R(11),
|
||||
B(JumpIfTrue), U8(11),
|
||||
B(LdaSmi), I8(79),
|
||||
B(Star), R(21),
|
||||
B(CallRuntime), U16(Runtime::kAbort), R(21), U8(1),
|
||||
/* 30 S> */ B(LdaNamedProperty), R(4), U8(4), U8(9),
|
||||
/* 30 S> */ B(LdaNamedProperty), R(4), U8(6), U8(9),
|
||||
B(Star), R(21),
|
||||
B(CallProperty0), R(21), R(4), U8(7),
|
||||
B(Star), R(5),
|
||||
@ -953,9 +943,9 @@ bytecodes: [
|
||||
B(ToBooleanLogicalNot),
|
||||
B(JumpIfFalse), U8(7),
|
||||
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(5), U8(1),
|
||||
B(LdaNamedProperty), R(5), U8(5), U8(11),
|
||||
B(JumpIfToBooleanTrue), U8(101),
|
||||
B(LdaNamedProperty), R(5), U8(6), U8(13),
|
||||
B(LdaNamedProperty), R(5), U8(7), U8(11),
|
||||
B(JumpIfToBooleanTrue), U8(92),
|
||||
B(LdaNamedProperty), R(5), U8(8), U8(13),
|
||||
B(Star), R(7),
|
||||
B(LdaSmi), I8(2),
|
||||
B(Star), R(6),
|
||||
@ -978,30 +968,24 @@ bytecodes: [
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(21), U8(1),
|
||||
B(Star), R(22),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(21), U8(1),
|
||||
B(Star), R(23),
|
||||
B(LdaZero),
|
||||
B(TestEqualStrictNoFeedback), R(23),
|
||||
B(JumpIfTrue), U8(28),
|
||||
B(LdaSmi), I8(2),
|
||||
B(TestEqualStrictNoFeedback), R(23),
|
||||
B(JumpIfTrue), U8(19),
|
||||
B(SwitchOnSmiNoFeedback), U8(9), U8(2), I8(0),
|
||||
B(Ldar), R(22),
|
||||
/* 40 E> */ B(Throw),
|
||||
B(LdaTrue),
|
||||
B(Star), R(25),
|
||||
B(Mov), R(22), R(24),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(24), U8(2),
|
||||
B(Star), R(24),
|
||||
B(Mov), R(22), R(23),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(23), U8(2),
|
||||
B(Star), R(18),
|
||||
B(LdaZero),
|
||||
B(Star), R(17),
|
||||
B(Jump), U8(59),
|
||||
B(Ldar), R(22),
|
||||
/* 40 E> */ B(Throw),
|
||||
B(Jump), U8(56),
|
||||
B(LdaZero),
|
||||
B(Star), R(6),
|
||||
B(JumpLoop), U8(147), I8(0),
|
||||
B(JumpLoop), U8(138), I8(0),
|
||||
B(Jump), U8(36),
|
||||
B(Star), R(21),
|
||||
B(Ldar), R(closure),
|
||||
B(CreateCatchContext), R(21), U8(7), U8(8),
|
||||
B(CreateCatchContext), R(21), U8(11), U8(12),
|
||||
B(PushContext), R(21),
|
||||
B(Star), R(20),
|
||||
B(LdaSmi), I8(2),
|
||||
@ -1025,7 +1009,7 @@ bytecodes: [
|
||||
B(LdaZero),
|
||||
B(TestEqualStrict), R(6), U8(16),
|
||||
B(JumpIfTrue), U8(104),
|
||||
B(LdaNamedProperty), R(4), U8(9), U8(17),
|
||||
B(LdaNamedProperty), R(4), U8(13), U8(17),
|
||||
B(Star), R(8),
|
||||
B(TestUndetectable),
|
||||
B(JumpIfFalse), U8(4),
|
||||
@ -1039,7 +1023,7 @@ bytecodes: [
|
||||
B(Jump), U8(18),
|
||||
B(Wide), B(LdaSmi), I16(130),
|
||||
B(Star), R(20),
|
||||
B(LdaConstant), U8(10),
|
||||
B(LdaConstant), U8(14),
|
||||
B(Star), R(21),
|
||||
B(CallRuntime), U16(Runtime::kNewTypeError), R(20), U8(2),
|
||||
B(Throw),
|
||||
@ -1050,7 +1034,7 @@ bytecodes: [
|
||||
B(Jump), U8(20),
|
||||
B(Star), R(21),
|
||||
B(Ldar), R(closure),
|
||||
B(CreateCatchContext), R(21), U8(7), U8(11),
|
||||
B(CreateCatchContext), R(21), U8(11), U8(15),
|
||||
B(Star), R(20),
|
||||
B(LdaTheHole),
|
||||
B(SetPendingMessage),
|
||||
@ -1069,7 +1053,7 @@ bytecodes: [
|
||||
B(Ldar), R(19),
|
||||
B(SetPendingMessage),
|
||||
B(Ldar), R(17),
|
||||
B(SwitchOnSmiNoFeedback), U8(12), U8(2), I8(0),
|
||||
B(SwitchOnSmiNoFeedback), U8(16), U8(2), I8(0),
|
||||
B(Jump), U8(19),
|
||||
B(LdaZero),
|
||||
B(Star), R(14),
|
||||
@ -1101,7 +1085,7 @@ bytecodes: [
|
||||
B(Ldar), R(16),
|
||||
B(SetPendingMessage),
|
||||
B(Ldar), R(14),
|
||||
B(SwitchOnSmiNoFeedback), U8(15), U8(2), I8(0),
|
||||
B(SwitchOnSmiNoFeedback), U8(19), U8(2), I8(0),
|
||||
B(Jump), U8(8),
|
||||
B(Ldar), R(15),
|
||||
/* 49 S> */ B(Return),
|
||||
@ -1112,12 +1096,16 @@ bytecodes: [
|
||||
]
|
||||
constant pool: [
|
||||
Smi [58],
|
||||
Smi [141],
|
||||
Smi [132],
|
||||
Smi [24],
|
||||
Smi [7],
|
||||
SYMBOL_TYPE,
|
||||
Smi [91],
|
||||
ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
|
||||
ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
|
||||
ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
|
||||
Smi [24],
|
||||
Smi [7],
|
||||
ONE_BYTE_INTERNALIZED_STRING_TYPE [".catch"],
|
||||
FIXED_ARRAY_TYPE,
|
||||
ONE_BYTE_INTERNALIZED_STRING_TYPE ["return"],
|
||||
@ -1125,15 +1113,15 @@ constant pool: [
|
||||
FIXED_ARRAY_TYPE,
|
||||
Smi [6],
|
||||
Smi [14],
|
||||
Smi [404],
|
||||
Smi [392],
|
||||
Smi [6],
|
||||
Smi [9],
|
||||
]
|
||||
handlers: [
|
||||
[60, 513, 519],
|
||||
[132, 344, 350],
|
||||
[135, 308, 310],
|
||||
[411, 421, 423],
|
||||
[60, 495, 501],
|
||||
[123, 326, 332],
|
||||
[126, 290, 292],
|
||||
[393, 403, 405],
|
||||
]
|
||||
|
||||
---
|
||||
@ -1357,7 +1345,7 @@ snippet: "
|
||||
"
|
||||
frame size: 28
|
||||
parameter count: 2
|
||||
bytecode array length: 558
|
||||
bytecode array length: 549
|
||||
bytecodes: [
|
||||
B(Mov), R(new_target), R(11),
|
||||
B(Ldar), R(new_target),
|
||||
@ -1417,7 +1405,7 @@ bytecodes: [
|
||||
B(JumpIfFalse), U8(7),
|
||||
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(6), U8(1),
|
||||
B(LdaNamedProperty), R(6), U8(4), U8(11),
|
||||
B(JumpIfToBooleanTrue), U8(107),
|
||||
B(JumpIfToBooleanTrue), U8(98),
|
||||
B(LdaNamedProperty), R(6), U8(5), U8(13),
|
||||
B(Star), R(8),
|
||||
B(LdaSmi), I8(2),
|
||||
@ -1443,30 +1431,24 @@ bytecodes: [
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(23), U8(1),
|
||||
B(Star), R(24),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(23), U8(1),
|
||||
B(Star), R(25),
|
||||
B(LdaZero),
|
||||
B(TestEqualStrictNoFeedback), R(25),
|
||||
B(JumpIfTrue), U8(28),
|
||||
B(LdaSmi), I8(2),
|
||||
B(TestEqualStrictNoFeedback), R(25),
|
||||
B(JumpIfTrue), U8(19),
|
||||
B(SwitchOnSmiNoFeedback), U8(6), U8(2), I8(0),
|
||||
B(Ldar), R(24),
|
||||
/* 45 E> */ B(ReThrow),
|
||||
B(LdaTrue),
|
||||
B(Star), R(27),
|
||||
B(Mov), R(24), R(26),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(26), U8(2),
|
||||
B(Star), R(26),
|
||||
B(Mov), R(24), R(25),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(25), U8(2),
|
||||
B(Star), R(20),
|
||||
B(LdaZero),
|
||||
B(Star), R(19),
|
||||
B(Jump), U8(63),
|
||||
B(Ldar), R(24),
|
||||
/* 45 E> */ B(ReThrow),
|
||||
B(Jump), U8(60),
|
||||
B(LdaZero),
|
||||
B(Star), R(7),
|
||||
B(JumpLoop), U8(153), I8(0),
|
||||
B(JumpLoop), U8(144), I8(0),
|
||||
B(Jump), U8(40),
|
||||
B(Star), R(23),
|
||||
B(Ldar), R(closure),
|
||||
B(CreateCatchContext), R(23), U8(6), U8(7),
|
||||
B(CreateCatchContext), R(23), U8(8), U8(9),
|
||||
B(Star), R(22),
|
||||
B(LdaTheHole),
|
||||
B(SetPendingMessage),
|
||||
@ -1493,7 +1475,7 @@ bytecodes: [
|
||||
B(LdaZero),
|
||||
B(TestEqualStrict), R(7), U8(16),
|
||||
B(JumpIfTrue), U8(104),
|
||||
B(LdaNamedProperty), R(5), U8(8), U8(17),
|
||||
B(LdaNamedProperty), R(5), U8(10), U8(17),
|
||||
B(Star), R(9),
|
||||
B(TestUndetectable),
|
||||
B(JumpIfFalse), U8(4),
|
||||
@ -1507,7 +1489,7 @@ bytecodes: [
|
||||
B(Jump), U8(18),
|
||||
B(Wide), B(LdaSmi), I16(130),
|
||||
B(Star), R(22),
|
||||
B(LdaConstant), U8(9),
|
||||
B(LdaConstant), U8(11),
|
||||
B(Star), R(23),
|
||||
B(CallRuntime), U16(Runtime::kNewTypeError), R(22), U8(2),
|
||||
B(Throw),
|
||||
@ -1518,7 +1500,7 @@ bytecodes: [
|
||||
B(Jump), U8(20),
|
||||
B(Star), R(23),
|
||||
B(Ldar), R(closure),
|
||||
B(CreateCatchContext), R(23), U8(6), U8(10),
|
||||
B(CreateCatchContext), R(23), U8(8), U8(12),
|
||||
B(Star), R(22),
|
||||
B(LdaTheHole),
|
||||
B(SetPendingMessage),
|
||||
@ -1537,7 +1519,7 @@ bytecodes: [
|
||||
B(Ldar), R(21),
|
||||
B(SetPendingMessage),
|
||||
B(Ldar), R(19),
|
||||
B(SwitchOnSmiNoFeedback), U8(11), U8(2), I8(0),
|
||||
B(SwitchOnSmiNoFeedback), U8(13), U8(2), I8(0),
|
||||
B(Jump), U8(13),
|
||||
B(LdaZero),
|
||||
B(Star), R(15),
|
||||
@ -1558,7 +1540,7 @@ bytecodes: [
|
||||
B(Jump), U8(45),
|
||||
B(Star), R(19),
|
||||
B(Ldar), R(closure),
|
||||
B(CreateCatchContext), R(19), U8(6), U8(13),
|
||||
B(CreateCatchContext), R(19), U8(8), U8(15),
|
||||
B(Star), R(18),
|
||||
B(LdaTheHole),
|
||||
B(SetPendingMessage),
|
||||
@ -1593,7 +1575,7 @@ bytecodes: [
|
||||
B(Ldar), R(17),
|
||||
B(SetPendingMessage),
|
||||
B(Ldar), R(15),
|
||||
B(SwitchOnSmiNoFeedback), U8(14), U8(2), I8(0),
|
||||
B(SwitchOnSmiNoFeedback), U8(16), U8(2), I8(0),
|
||||
B(Jump), U8(8),
|
||||
B(Ldar), R(16),
|
||||
/* 54 S> */ B(Return),
|
||||
@ -1609,6 +1591,8 @@ constant pool: [
|
||||
ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
|
||||
ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
|
||||
ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
|
||||
Smi [24],
|
||||
Smi [7],
|
||||
ONE_BYTE_INTERNALIZED_STRING_TYPE [".catch"],
|
||||
FIXED_ARRAY_TYPE,
|
||||
ONE_BYTE_INTERNALIZED_STRING_TYPE ["return"],
|
||||
@ -1621,10 +1605,10 @@ constant pool: [
|
||||
Smi [9],
|
||||
]
|
||||
handlers: [
|
||||
[70, 513, 519],
|
||||
[73, 468, 470],
|
||||
[79, 301, 307],
|
||||
[82, 261, 263],
|
||||
[368, 378, 380],
|
||||
[70, 504, 510],
|
||||
[73, 459, 461],
|
||||
[79, 292, 298],
|
||||
[82, 252, 254],
|
||||
[359, 369, 371],
|
||||
]
|
||||
|
||||
|
@ -11,9 +11,9 @@ snippet: "
|
||||
function* f() { }
|
||||
f();
|
||||
"
|
||||
frame size: 12
|
||||
frame size: 11
|
||||
parameter count: 1
|
||||
bytecode array length: 174
|
||||
bytecode array length: 165
|
||||
bytecodes: [
|
||||
B(Mov), R(new_target), R(1),
|
||||
B(Ldar), R(new_target),
|
||||
@ -47,23 +47,17 @@ bytecodes: [
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(7), U8(1),
|
||||
B(Star), R(8),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(7), U8(1),
|
||||
B(Star), R(9),
|
||||
B(LdaZero),
|
||||
B(TestEqualStrictNoFeedback), R(9),
|
||||
B(JumpIfTrue), U8(28),
|
||||
B(LdaSmi), I8(2),
|
||||
B(TestEqualStrictNoFeedback), R(9),
|
||||
B(JumpIfTrue), U8(19),
|
||||
B(SwitchOnSmiNoFeedback), U8(1), U8(2), I8(0),
|
||||
B(Ldar), R(8),
|
||||
/* 11 E> */ B(Throw),
|
||||
B(LdaTrue),
|
||||
B(Star), R(11),
|
||||
B(Mov), R(8), R(10),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(10), U8(2),
|
||||
B(Star), R(10),
|
||||
B(Mov), R(8), R(9),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(9), U8(2),
|
||||
B(Star), R(5),
|
||||
B(LdaZero),
|
||||
B(Star), R(4),
|
||||
B(Jump), U8(34),
|
||||
B(Ldar), R(8),
|
||||
/* 11 E> */ B(Throw),
|
||||
B(Jump), U8(31),
|
||||
B(LdaUndefined),
|
||||
B(Star), R(7),
|
||||
B(LdaTrue),
|
||||
@ -86,7 +80,7 @@ bytecodes: [
|
||||
B(Ldar), R(6),
|
||||
B(SetPendingMessage),
|
||||
B(Ldar), R(4),
|
||||
B(SwitchOnSmiNoFeedback), U8(1), U8(2), I8(0),
|
||||
B(SwitchOnSmiNoFeedback), U8(3), U8(2), I8(0),
|
||||
B(Jump), U8(8),
|
||||
B(Ldar), R(5),
|
||||
/* 16 S> */ B(Return),
|
||||
@ -97,11 +91,13 @@ bytecodes: [
|
||||
]
|
||||
constant pool: [
|
||||
Smi [50],
|
||||
Smi [24],
|
||||
Smi [7],
|
||||
Smi [6],
|
||||
Smi [9],
|
||||
]
|
||||
handlers: [
|
||||
[52, 135, 141],
|
||||
[52, 126, 132],
|
||||
]
|
||||
|
||||
---
|
||||
@ -109,9 +105,9 @@ snippet: "
|
||||
function* f() { yield 42 }
|
||||
f();
|
||||
"
|
||||
frame size: 12
|
||||
frame size: 11
|
||||
parameter count: 1
|
||||
bytecode array length: 251
|
||||
bytecode array length: 233
|
||||
bytecodes: [
|
||||
B(Mov), R(new_target), R(1),
|
||||
B(Ldar), R(new_target),
|
||||
@ -145,23 +141,17 @@ bytecodes: [
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(7), U8(1),
|
||||
B(Star), R(8),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(7), U8(1),
|
||||
B(Star), R(9),
|
||||
B(LdaZero),
|
||||
B(TestEqualStrictNoFeedback), R(9),
|
||||
B(JumpIfTrue), U8(28),
|
||||
B(LdaSmi), I8(2),
|
||||
B(TestEqualStrictNoFeedback), R(9),
|
||||
B(JumpIfTrue), U8(19),
|
||||
B(SwitchOnSmiNoFeedback), U8(2), U8(2), I8(0),
|
||||
B(Ldar), R(8),
|
||||
/* 11 E> */ B(Throw),
|
||||
B(LdaTrue),
|
||||
B(Star), R(11),
|
||||
B(Mov), R(8), R(10),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(10), U8(2),
|
||||
B(Star), R(10),
|
||||
B(Mov), R(8), R(9),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(9), U8(2),
|
||||
B(Star), R(5),
|
||||
B(LdaZero),
|
||||
B(Star), R(4),
|
||||
B(Jump), U8(111),
|
||||
B(Ldar), R(8),
|
||||
/* 11 E> */ B(Throw),
|
||||
B(Jump), U8(99),
|
||||
/* 16 S> */ B(LdaSmi), I8(42),
|
||||
B(Star), R(8),
|
||||
B(LdaFalse),
|
||||
@ -179,23 +169,17 @@ bytecodes: [
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(7), U8(1),
|
||||
B(Star), R(8),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(7), U8(1),
|
||||
B(Star), R(9),
|
||||
B(LdaZero),
|
||||
B(TestEqualStrictNoFeedback), R(9),
|
||||
B(JumpIfTrue), U8(28),
|
||||
B(LdaSmi), I8(2),
|
||||
B(TestEqualStrictNoFeedback), R(9),
|
||||
B(JumpIfTrue), U8(19),
|
||||
B(SwitchOnSmiNoFeedback), U8(4), U8(2), I8(0),
|
||||
B(Ldar), R(8),
|
||||
/* 16 E> */ B(Throw),
|
||||
B(LdaTrue),
|
||||
B(Star), R(11),
|
||||
B(Mov), R(8), R(10),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(10), U8(2),
|
||||
B(Star), R(10),
|
||||
B(Mov), R(8), R(9),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(9), U8(2),
|
||||
B(Star), R(5),
|
||||
B(LdaZero),
|
||||
B(Star), R(4),
|
||||
B(Jump), U8(34),
|
||||
B(Ldar), R(8),
|
||||
/* 16 E> */ B(Throw),
|
||||
B(Jump), U8(31),
|
||||
B(LdaUndefined),
|
||||
B(Star), R(7),
|
||||
B(LdaTrue),
|
||||
@ -218,7 +202,7 @@ bytecodes: [
|
||||
B(Ldar), R(6),
|
||||
B(SetPendingMessage),
|
||||
B(Ldar), R(4),
|
||||
B(SwitchOnSmiNoFeedback), U8(2), U8(2), I8(0),
|
||||
B(SwitchOnSmiNoFeedback), U8(6), U8(2), I8(0),
|
||||
B(Jump), U8(8),
|
||||
B(Ldar), R(5),
|
||||
/* 25 S> */ B(Return),
|
||||
@ -229,12 +213,16 @@ bytecodes: [
|
||||
]
|
||||
constant pool: [
|
||||
Smi [50],
|
||||
Smi [127],
|
||||
Smi [118],
|
||||
Smi [24],
|
||||
Smi [7],
|
||||
Smi [24],
|
||||
Smi [7],
|
||||
Smi [6],
|
||||
Smi [9],
|
||||
]
|
||||
handlers: [
|
||||
[52, 212, 218],
|
||||
[52, 194, 200],
|
||||
]
|
||||
|
||||
---
|
||||
@ -242,9 +230,9 @@ snippet: "
|
||||
function* f() { for (let x of [42]) yield x }
|
||||
f();
|
||||
"
|
||||
frame size: 25
|
||||
frame size: 24
|
||||
parameter count: 1
|
||||
bytecode array length: 546
|
||||
bytecode array length: 528
|
||||
bytecodes: [
|
||||
B(Mov), R(new_target), R(10),
|
||||
B(Ldar), R(new_target),
|
||||
@ -278,44 +266,38 @@ bytecodes: [
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(16), U8(1),
|
||||
B(Star), R(17),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(16), U8(1),
|
||||
B(Star), R(18),
|
||||
B(LdaZero),
|
||||
B(TestEqualStrictNoFeedback), R(18),
|
||||
B(JumpIfTrue), U8(28),
|
||||
B(LdaSmi), I8(2),
|
||||
B(TestEqualStrictNoFeedback), R(18),
|
||||
B(JumpIfTrue), U8(19),
|
||||
B(SwitchOnSmiNoFeedback), U8(2), U8(2), I8(0),
|
||||
B(Ldar), R(17),
|
||||
/* 11 E> */ B(Throw),
|
||||
B(LdaTrue),
|
||||
B(Star), R(20),
|
||||
B(Mov), R(17), R(19),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(19), U8(2),
|
||||
B(Star), R(19),
|
||||
B(Mov), R(17), R(18),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(18), U8(2),
|
||||
B(Star), R(14),
|
||||
B(LdaZero),
|
||||
B(Star), R(13),
|
||||
B(JumpConstant), U8(15),
|
||||
B(Ldar), R(17),
|
||||
/* 11 E> */ B(Throw),
|
||||
B(JumpConstant), U8(19),
|
||||
B(LdaZero),
|
||||
B(Star), R(6),
|
||||
B(Mov), R(context), R(18),
|
||||
B(Mov), R(context), R(19),
|
||||
/* 30 S> */ B(CreateArrayLiteral), U8(2), U8(3), U8(17),
|
||||
/* 30 S> */ B(CreateArrayLiteral), U8(4), U8(3), U8(17),
|
||||
B(Star), R(20),
|
||||
B(LdaNamedProperty), R(20), U8(3), U8(4),
|
||||
B(LdaNamedProperty), R(20), U8(5), U8(4),
|
||||
B(Star), R(21),
|
||||
B(CallProperty0), R(21), R(20), U8(6),
|
||||
B(JumpIfJSReceiver), U8(7),
|
||||
B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
|
||||
B(Star), R(4),
|
||||
B(Ldar), R(11),
|
||||
B(SwitchOnSmiNoFeedback), U8(4), U8(1), I8(1),
|
||||
B(SwitchOnSmiNoFeedback), U8(6), U8(1), I8(1),
|
||||
B(LdaSmi), I8(-2),
|
||||
/* 30 E> */ B(TestEqualStrictNoFeedback), R(11),
|
||||
B(JumpIfTrue), U8(11),
|
||||
B(LdaSmi), I8(79),
|
||||
B(Star), R(20),
|
||||
B(CallRuntime), U16(Runtime::kAbort), R(20), U8(1),
|
||||
/* 25 S> */ B(LdaNamedProperty), R(4), U8(5), U8(10),
|
||||
/* 25 S> */ B(LdaNamedProperty), R(4), U8(7), U8(10),
|
||||
B(Star), R(20),
|
||||
B(CallProperty0), R(20), R(4), U8(8),
|
||||
B(Star), R(5),
|
||||
@ -323,9 +305,9 @@ bytecodes: [
|
||||
B(ToBooleanLogicalNot),
|
||||
B(JumpIfFalse), U8(7),
|
||||
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(5), U8(1),
|
||||
B(LdaNamedProperty), R(5), U8(6), U8(12),
|
||||
B(JumpIfToBooleanTrue), U8(101),
|
||||
B(LdaNamedProperty), R(5), U8(7), U8(14),
|
||||
B(LdaNamedProperty), R(5), U8(8), U8(12),
|
||||
B(JumpIfToBooleanTrue), U8(92),
|
||||
B(LdaNamedProperty), R(5), U8(9), U8(14),
|
||||
B(Star), R(7),
|
||||
B(LdaSmi), I8(2),
|
||||
B(Star), R(6),
|
||||
@ -348,30 +330,24 @@ bytecodes: [
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(20), U8(1),
|
||||
B(Star), R(21),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(20), U8(1),
|
||||
B(Star), R(22),
|
||||
B(LdaZero),
|
||||
B(TestEqualStrictNoFeedback), R(22),
|
||||
B(JumpIfTrue), U8(28),
|
||||
B(LdaSmi), I8(2),
|
||||
B(TestEqualStrictNoFeedback), R(22),
|
||||
B(JumpIfTrue), U8(19),
|
||||
B(SwitchOnSmiNoFeedback), U8(10), U8(2), I8(0),
|
||||
B(Ldar), R(21),
|
||||
/* 36 E> */ B(Throw),
|
||||
B(LdaTrue),
|
||||
B(Star), R(24),
|
||||
B(Mov), R(21), R(23),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(23), U8(2),
|
||||
B(Star), R(23),
|
||||
B(Mov), R(21), R(22),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(22), U8(2),
|
||||
B(Star), R(17),
|
||||
B(LdaZero),
|
||||
B(Star), R(16),
|
||||
B(Jump), U8(59),
|
||||
B(Ldar), R(21),
|
||||
/* 36 E> */ B(Throw),
|
||||
B(Jump), U8(56),
|
||||
B(LdaZero),
|
||||
B(Star), R(6),
|
||||
B(JumpLoop), U8(147), I8(0),
|
||||
B(JumpLoop), U8(138), I8(0),
|
||||
B(Jump), U8(36),
|
||||
B(Star), R(20),
|
||||
B(Ldar), R(closure),
|
||||
B(CreateCatchContext), R(20), U8(8), U8(9),
|
||||
B(CreateCatchContext), R(20), U8(12), U8(13),
|
||||
B(PushContext), R(20),
|
||||
B(Star), R(19),
|
||||
B(LdaSmi), I8(2),
|
||||
@ -395,7 +371,7 @@ bytecodes: [
|
||||
B(LdaZero),
|
||||
B(TestEqualStrict), R(6), U8(17),
|
||||
B(JumpIfTrue), U8(104),
|
||||
B(LdaNamedProperty), R(4), U8(10), U8(18),
|
||||
B(LdaNamedProperty), R(4), U8(14), U8(18),
|
||||
B(Star), R(8),
|
||||
B(TestUndetectable),
|
||||
B(JumpIfFalse), U8(4),
|
||||
@ -409,7 +385,7 @@ bytecodes: [
|
||||
B(Jump), U8(18),
|
||||
B(Wide), B(LdaSmi), I16(130),
|
||||
B(Star), R(19),
|
||||
B(LdaConstant), U8(11),
|
||||
B(LdaConstant), U8(15),
|
||||
B(Star), R(20),
|
||||
B(CallRuntime), U16(Runtime::kNewTypeError), R(19), U8(2),
|
||||
B(Throw),
|
||||
@ -420,7 +396,7 @@ bytecodes: [
|
||||
B(Jump), U8(20),
|
||||
B(Star), R(20),
|
||||
B(Ldar), R(closure),
|
||||
B(CreateCatchContext), R(20), U8(8), U8(12),
|
||||
B(CreateCatchContext), R(20), U8(12), U8(16),
|
||||
B(Star), R(19),
|
||||
B(LdaTheHole),
|
||||
B(SetPendingMessage),
|
||||
@ -439,7 +415,7 @@ bytecodes: [
|
||||
B(Ldar), R(18),
|
||||
B(SetPendingMessage),
|
||||
B(Ldar), R(16),
|
||||
B(SwitchOnSmiNoFeedback), U8(13), U8(2), I8(0),
|
||||
B(SwitchOnSmiNoFeedback), U8(17), U8(2), I8(0),
|
||||
B(Jump), U8(19),
|
||||
B(LdaZero),
|
||||
B(Star), R(13),
|
||||
@ -471,7 +447,7 @@ bytecodes: [
|
||||
B(Ldar), R(15),
|
||||
B(SetPendingMessage),
|
||||
B(Ldar), R(13),
|
||||
B(SwitchOnSmiNoFeedback), U8(16), U8(2), I8(0),
|
||||
B(SwitchOnSmiNoFeedback), U8(20), U8(2), I8(0),
|
||||
B(Jump), U8(8),
|
||||
B(Ldar), R(14),
|
||||
/* 44 S> */ B(Return),
|
||||
@ -482,13 +458,17 @@ bytecodes: [
|
||||
]
|
||||
constant pool: [
|
||||
Smi [50],
|
||||
Smi [135],
|
||||
Smi [126],
|
||||
Smi [24],
|
||||
Smi [7],
|
||||
TUPLE2_TYPE,
|
||||
SYMBOL_TYPE,
|
||||
Smi [91],
|
||||
ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
|
||||
ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
|
||||
ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
|
||||
Smi [24],
|
||||
Smi [7],
|
||||
ONE_BYTE_INTERNALIZED_STRING_TYPE [".catch"],
|
||||
FIXED_ARRAY_TYPE,
|
||||
ONE_BYTE_INTERNALIZED_STRING_TYPE ["return"],
|
||||
@ -496,15 +476,15 @@ constant pool: [
|
||||
FIXED_ARRAY_TYPE,
|
||||
Smi [6],
|
||||
Smi [14],
|
||||
Smi [406],
|
||||
Smi [394],
|
||||
Smi [6],
|
||||
Smi [9],
|
||||
]
|
||||
handlers: [
|
||||
[52, 507, 513],
|
||||
[124, 338, 344],
|
||||
[127, 302, 304],
|
||||
[405, 415, 417],
|
||||
[52, 489, 495],
|
||||
[115, 320, 326],
|
||||
[118, 284, 286],
|
||||
[387, 397, 399],
|
||||
]
|
||||
|
||||
---
|
||||
@ -513,9 +493,9 @@ snippet: "
|
||||
function* f() { yield* g() }
|
||||
f();
|
||||
"
|
||||
frame size: 20
|
||||
frame size: 19
|
||||
parameter count: 1
|
||||
bytecode array length: 590
|
||||
bytecode array length: 581
|
||||
bytecodes: [
|
||||
B(Mov), R(new_target), R(9),
|
||||
B(Ldar), R(new_target),
|
||||
@ -549,41 +529,35 @@ bytecodes: [
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(15), U8(1),
|
||||
B(Star), R(16),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(15), U8(1),
|
||||
B(Star), R(17),
|
||||
B(LdaZero),
|
||||
B(TestEqualStrictNoFeedback), R(17),
|
||||
B(JumpIfTrue), U8(28),
|
||||
B(LdaSmi), I8(2),
|
||||
B(TestEqualStrictNoFeedback), R(17),
|
||||
B(JumpIfTrue), U8(19),
|
||||
B(SwitchOnSmiNoFeedback), U8(2), U8(2), I8(0),
|
||||
B(Ldar), R(16),
|
||||
/* 38 E> */ B(Throw),
|
||||
B(LdaTrue),
|
||||
B(Star), R(19),
|
||||
B(Mov), R(16), R(18),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(18), U8(2),
|
||||
B(Star), R(18),
|
||||
B(Mov), R(16), R(17),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(17), U8(2),
|
||||
B(Star), R(13),
|
||||
B(LdaZero),
|
||||
B(Star), R(12),
|
||||
B(JumpConstant), U8(13),
|
||||
B(Ldar), R(16),
|
||||
/* 38 E> */ B(Throw),
|
||||
B(JumpConstant), U8(15),
|
||||
/* 43 S> */ B(LdaUndefined),
|
||||
B(Star), R(1),
|
||||
B(LdaZero),
|
||||
B(Star), R(2),
|
||||
B(LdaUndefined),
|
||||
B(Star), R(3),
|
||||
B(LdaGlobal), U8(2), U8(5),
|
||||
B(LdaGlobal), U8(4), U8(5),
|
||||
B(Star), R(17),
|
||||
/* 50 E> */ B(CallUndefinedReceiver0), R(17), U8(3),
|
||||
B(Star), R(15),
|
||||
B(LdaNamedProperty), R(15), U8(3), U8(7),
|
||||
B(LdaNamedProperty), R(15), U8(5), U8(7),
|
||||
B(Star), R(16),
|
||||
B(CallProperty0), R(16), R(15), U8(9),
|
||||
B(JumpIfJSReceiver), U8(7),
|
||||
B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
|
||||
B(Star), R(4),
|
||||
B(Ldar), R(10),
|
||||
B(SwitchOnSmiNoFeedback), U8(4), U8(1), I8(1),
|
||||
B(SwitchOnSmiNoFeedback), U8(6), U8(1), I8(1),
|
||||
B(LdaSmi), I8(-2),
|
||||
B(TestEqualStrictNoFeedback), R(10),
|
||||
B(JumpIfTrue), U8(11),
|
||||
@ -602,7 +576,7 @@ bytecodes: [
|
||||
B(TestEqualStrict), R(15), U8(28),
|
||||
B(JumpIfTrue), U8(88),
|
||||
B(Jump), U8(246),
|
||||
B(LdaNamedProperty), R(4), U8(5), U8(13),
|
||||
B(LdaNamedProperty), R(4), U8(7), U8(13),
|
||||
B(Star), R(16),
|
||||
B(CallProperty1), R(16), R(4), R(1), U8(11),
|
||||
B(Star), R(3),
|
||||
@ -611,7 +585,7 @@ bytecodes: [
|
||||
B(Jump), U8(7),
|
||||
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(3), U8(1),
|
||||
B(Jump), U8(218),
|
||||
B(LdaNamedProperty), R(4), U8(6), U8(16),
|
||||
B(LdaNamedProperty), R(4), U8(8), U8(16),
|
||||
B(Star), R(3),
|
||||
B(TestUndetectable),
|
||||
B(JumpIfFalse), U8(19),
|
||||
@ -622,7 +596,7 @@ bytecodes: [
|
||||
B(Star), R(13),
|
||||
B(LdaZero),
|
||||
B(Star), R(12),
|
||||
B(JumpConstant), U8(14),
|
||||
B(JumpConstant), U8(16),
|
||||
B(Mov), R(3), R(16),
|
||||
B(Mov), R(4), R(17),
|
||||
B(Mov), R(1), R(18),
|
||||
@ -633,11 +607,11 @@ bytecodes: [
|
||||
B(Jump), U8(7),
|
||||
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(3), U8(1),
|
||||
B(Jump), U8(162),
|
||||
B(LdaNamedProperty), R(4), U8(7), U8(20),
|
||||
B(LdaNamedProperty), R(4), U8(9), U8(20),
|
||||
B(Star), R(5),
|
||||
B(TestUndetectable),
|
||||
B(JumpIfFalse), U8(123),
|
||||
B(LdaNamedProperty), R(4), U8(6), U8(23),
|
||||
B(LdaNamedProperty), R(4), U8(8), U8(23),
|
||||
B(Star), R(6),
|
||||
B(TestUndetectable),
|
||||
B(JumpIfFalse), U8(4),
|
||||
@ -653,7 +627,7 @@ bytecodes: [
|
||||
B(Jump), U8(18),
|
||||
B(Wide), B(LdaSmi), I16(130),
|
||||
B(Star), R(16),
|
||||
B(LdaConstant), U8(8),
|
||||
B(LdaConstant), U8(10),
|
||||
B(Star), R(17),
|
||||
B(CallRuntime), U16(Runtime::kNewTypeError), R(16), U8(2),
|
||||
B(Throw),
|
||||
@ -664,7 +638,7 @@ bytecodes: [
|
||||
B(Jump), U8(20),
|
||||
B(Star), R(17),
|
||||
B(Ldar), R(closure),
|
||||
B(CreateCatchContext), R(17), U8(9), U8(10),
|
||||
B(CreateCatchContext), R(17), U8(11), U8(12),
|
||||
B(Star), R(16),
|
||||
B(LdaTheHole),
|
||||
B(SetPendingMessage),
|
||||
@ -682,7 +656,7 @@ bytecodes: [
|
||||
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(7), U8(1),
|
||||
B(Wide), B(LdaSmi), I16(144),
|
||||
B(Star), R(16),
|
||||
B(LdaConstant), U8(8),
|
||||
B(LdaConstant), U8(10),
|
||||
B(Star), R(17),
|
||||
B(CallRuntime), U16(Runtime::kNewTypeError), R(16), U8(2),
|
||||
B(Throw),
|
||||
@ -696,7 +670,7 @@ bytecodes: [
|
||||
B(Jump), U8(7),
|
||||
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(3), U8(1),
|
||||
B(Jump), U8(2),
|
||||
B(LdaNamedProperty), R(3), U8(11), U8(29),
|
||||
B(LdaNamedProperty), R(3), U8(13), U8(29),
|
||||
B(JumpIfToBooleanFalse), U8(4),
|
||||
B(Jump), U8(48),
|
||||
B(LdaSmi), I8(1),
|
||||
@ -717,7 +691,7 @@ bytecodes: [
|
||||
B(LdaSmi), I8(1),
|
||||
B(TestEqualStrict), R(2), U8(31),
|
||||
B(JumpIfFalse), U8(22),
|
||||
B(LdaNamedProperty), R(3), U8(12), U8(32),
|
||||
B(LdaNamedProperty), R(3), U8(14), U8(32),
|
||||
B(Star), R(15),
|
||||
B(LdaTrue),
|
||||
B(Star), R(16),
|
||||
@ -726,7 +700,7 @@ bytecodes: [
|
||||
B(LdaZero),
|
||||
B(Star), R(12),
|
||||
B(Jump), U8(37),
|
||||
B(LdaNamedProperty), R(3), U8(12), U8(34),
|
||||
B(LdaNamedProperty), R(3), U8(14), U8(34),
|
||||
B(Star), R(8),
|
||||
B(LdaUndefined),
|
||||
B(Star), R(15),
|
||||
@ -750,7 +724,7 @@ bytecodes: [
|
||||
B(Ldar), R(14),
|
||||
B(SetPendingMessage),
|
||||
B(Ldar), R(12),
|
||||
B(SwitchOnSmiNoFeedback), U8(15), U8(2), I8(0),
|
||||
B(SwitchOnSmiNoFeedback), U8(17), U8(2), I8(0),
|
||||
B(Jump), U8(8),
|
||||
B(Ldar), R(13),
|
||||
/* 54 S> */ B(Return),
|
||||
@ -761,7 +735,9 @@ bytecodes: [
|
||||
]
|
||||
constant pool: [
|
||||
Smi [50],
|
||||
Smi [139],
|
||||
Smi [130],
|
||||
Smi [24],
|
||||
Smi [7],
|
||||
ONE_BYTE_INTERNALIZED_STRING_TYPE ["g"],
|
||||
SYMBOL_TYPE,
|
||||
Smi [313],
|
||||
@ -773,13 +749,13 @@ constant pool: [
|
||||
FIXED_ARRAY_TYPE,
|
||||
ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
|
||||
ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
|
||||
Smi [450],
|
||||
Smi [447],
|
||||
Smi [308],
|
||||
Smi [6],
|
||||
Smi [9],
|
||||
]
|
||||
handlers: [
|
||||
[52, 551, 557],
|
||||
[344, 354, 356],
|
||||
[52, 542, 548],
|
||||
[335, 345, 347],
|
||||
]
|
||||
|
||||
|
@ -11,9 +11,9 @@ top level: yes
|
||||
snippet: "
|
||||
import \"bar\";
|
||||
"
|
||||
frame size: 9
|
||||
frame size: 8
|
||||
parameter count: 2
|
||||
bytecode array length: 141
|
||||
bytecode array length: 132
|
||||
bytecodes: [
|
||||
B(Mov), R(new_target), R(0),
|
||||
B(Ldar), R(new_target),
|
||||
@ -53,20 +53,14 @@ bytecodes: [
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(4), U8(1),
|
||||
B(Star), R(5),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(4), U8(1),
|
||||
B(Star), R(6),
|
||||
B(LdaZero),
|
||||
B(TestEqualStrictNoFeedback), R(6),
|
||||
B(JumpIfTrue), U8(22),
|
||||
B(LdaSmi), I8(2),
|
||||
B(TestEqualStrictNoFeedback), R(6),
|
||||
B(JumpIfTrue), U8(13),
|
||||
B(LdaTrue),
|
||||
B(Star), R(8),
|
||||
B(Mov), R(5), R(7),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(7), U8(2),
|
||||
/* 13 S> */ B(Return),
|
||||
B(SwitchOnSmiNoFeedback), U8(2), U8(2), I8(0),
|
||||
B(Ldar), R(5),
|
||||
/* 0 E> */ B(Throw),
|
||||
B(LdaTrue),
|
||||
B(Star), R(7),
|
||||
B(Mov), R(5), R(6),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(6), U8(2),
|
||||
/* 13 S> */ B(Return),
|
||||
B(Ldar), R(5),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
B(LdaCurrentContextSlot), U8(5),
|
||||
@ -79,6 +73,8 @@ bytecodes: [
|
||||
constant pool: [
|
||||
Smi [63],
|
||||
FIXED_ARRAY_TYPE,
|
||||
Smi [18],
|
||||
Smi [7],
|
||||
]
|
||||
handlers: [
|
||||
]
|
||||
@ -87,9 +83,9 @@ handlers: [
|
||||
snippet: "
|
||||
import {foo} from \"bar\";
|
||||
"
|
||||
frame size: 9
|
||||
frame size: 8
|
||||
parameter count: 2
|
||||
bytecode array length: 141
|
||||
bytecode array length: 132
|
||||
bytecodes: [
|
||||
B(Mov), R(new_target), R(0),
|
||||
B(Ldar), R(new_target),
|
||||
@ -129,20 +125,14 @@ bytecodes: [
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(4), U8(1),
|
||||
B(Star), R(5),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(4), U8(1),
|
||||
B(Star), R(6),
|
||||
B(LdaZero),
|
||||
B(TestEqualStrictNoFeedback), R(6),
|
||||
B(JumpIfTrue), U8(22),
|
||||
B(LdaSmi), I8(2),
|
||||
B(TestEqualStrictNoFeedback), R(6),
|
||||
B(JumpIfTrue), U8(13),
|
||||
B(LdaTrue),
|
||||
B(Star), R(8),
|
||||
B(Mov), R(5), R(7),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(7), U8(2),
|
||||
/* 24 S> */ B(Return),
|
||||
B(SwitchOnSmiNoFeedback), U8(2), U8(2), I8(0),
|
||||
B(Ldar), R(5),
|
||||
/* 0 E> */ B(Throw),
|
||||
B(LdaTrue),
|
||||
B(Star), R(7),
|
||||
B(Mov), R(5), R(6),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(6), U8(2),
|
||||
/* 24 S> */ B(Return),
|
||||
B(Ldar), R(5),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
B(LdaCurrentContextSlot), U8(5),
|
||||
@ -155,6 +145,8 @@ bytecodes: [
|
||||
constant pool: [
|
||||
Smi [63],
|
||||
FIXED_ARRAY_TYPE,
|
||||
Smi [18],
|
||||
Smi [7],
|
||||
]
|
||||
handlers: [
|
||||
]
|
||||
@ -165,9 +157,9 @@ snippet: "
|
||||
goo(42);
|
||||
{ let x; { goo(42) } };
|
||||
"
|
||||
frame size: 9
|
||||
frame size: 8
|
||||
parameter count: 2
|
||||
bytecode array length: 203
|
||||
bytecode array length: 194
|
||||
bytecodes: [
|
||||
B(Mov), R(new_target), R(0),
|
||||
B(Ldar), R(new_target),
|
||||
@ -207,23 +199,17 @@ bytecodes: [
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(4), U8(1),
|
||||
B(Star), R(5),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(4), U8(1),
|
||||
B(Star), R(6),
|
||||
B(LdaZero),
|
||||
B(TestEqualStrictNoFeedback), R(6),
|
||||
B(JumpIfTrue), U8(22),
|
||||
B(LdaSmi), I8(2),
|
||||
B(TestEqualStrictNoFeedback), R(6),
|
||||
B(JumpIfTrue), U8(13),
|
||||
B(LdaTrue),
|
||||
B(Star), R(8),
|
||||
B(Mov), R(5), R(7),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(7), U8(2),
|
||||
/* 64 S> */ B(Return),
|
||||
B(SwitchOnSmiNoFeedback), U8(2), U8(2), I8(0),
|
||||
B(Ldar), R(5),
|
||||
/* 0 E> */ B(Throw),
|
||||
B(LdaTrue),
|
||||
B(Star), R(7),
|
||||
B(Mov), R(5), R(6),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(6), U8(2),
|
||||
/* 64 S> */ B(Return),
|
||||
/* 32 S> */ B(LdaModuleVariable), I8(-1), U8(0),
|
||||
B(JumpIfNotHole), U8(11),
|
||||
B(LdaConstant), U8(2),
|
||||
B(LdaConstant), U8(4),
|
||||
B(Star), R(5),
|
||||
B(CallRuntime), U16(Runtime::kThrowReferenceError), R(5), U8(1),
|
||||
B(Star), R(4),
|
||||
@ -231,7 +217,7 @@ bytecodes: [
|
||||
B(Star), R(5),
|
||||
/* 32 E> */ B(CallUndefinedReceiver1), R(4), R(5), U8(3),
|
||||
B(Ldar), R(closure),
|
||||
B(CreateBlockContext), U8(3),
|
||||
B(CreateBlockContext), U8(5),
|
||||
B(PushContext), R(4),
|
||||
B(LdaTheHole),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
@ -239,7 +225,7 @@ bytecodes: [
|
||||
/* 47 E> */ B(StaCurrentContextSlot), U8(4),
|
||||
/* 52 S> */ B(LdaModuleVariable), I8(-1), U8(1),
|
||||
B(JumpIfNotHole), U8(11),
|
||||
B(LdaConstant), U8(2),
|
||||
B(LdaConstant), U8(4),
|
||||
B(Star), R(6),
|
||||
B(CallRuntime), U16(Runtime::kThrowReferenceError), R(6), U8(1),
|
||||
B(Star), R(5),
|
||||
@ -258,6 +244,8 @@ bytecodes: [
|
||||
constant pool: [
|
||||
Smi [63],
|
||||
FIXED_ARRAY_TYPE,
|
||||
Smi [18],
|
||||
Smi [7],
|
||||
ONE_BYTE_INTERNALIZED_STRING_TYPE ["goo"],
|
||||
FIXED_ARRAY_TYPE,
|
||||
]
|
||||
@ -270,9 +258,9 @@ snippet: "
|
||||
foo++;
|
||||
{ let x; { foo++ } };
|
||||
"
|
||||
frame size: 9
|
||||
frame size: 8
|
||||
parameter count: 2
|
||||
bytecode array length: 183
|
||||
bytecode array length: 174
|
||||
bytecodes: [
|
||||
B(Mov), R(new_target), R(0),
|
||||
B(Ldar), R(new_target),
|
||||
@ -312,27 +300,21 @@ bytecodes: [
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(4), U8(1),
|
||||
B(Star), R(5),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(4), U8(1),
|
||||
B(Star), R(6),
|
||||
B(LdaZero),
|
||||
B(TestEqualStrictNoFeedback), R(6),
|
||||
B(JumpIfTrue), U8(22),
|
||||
B(LdaSmi), I8(2),
|
||||
B(TestEqualStrictNoFeedback), R(6),
|
||||
B(JumpIfTrue), U8(13),
|
||||
B(LdaTrue),
|
||||
B(Star), R(8),
|
||||
B(Mov), R(5), R(7),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(7), U8(2),
|
||||
/* 49 S> */ B(Return),
|
||||
B(SwitchOnSmiNoFeedback), U8(2), U8(2), I8(0),
|
||||
B(Ldar), R(5),
|
||||
/* 0 E> */ B(Throw),
|
||||
B(LdaTrue),
|
||||
B(Star), R(7),
|
||||
B(Mov), R(5), R(6),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(6), U8(2),
|
||||
/* 49 S> */ B(Return),
|
||||
/* 17 S> */ B(LdaSmi), I8(42),
|
||||
/* 17 E> */ B(StaModuleVariable), I8(1), U8(0),
|
||||
/* 21 S> */ B(LdaModuleVariable), I8(1), U8(0),
|
||||
B(Inc), U8(3),
|
||||
/* 24 E> */ B(StaModuleVariable), I8(1), U8(0),
|
||||
B(Ldar), R(closure),
|
||||
B(CreateBlockContext), U8(2),
|
||||
B(CreateBlockContext), U8(4),
|
||||
B(PushContext), R(4),
|
||||
B(LdaTheHole),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
@ -356,6 +338,8 @@ bytecodes: [
|
||||
constant pool: [
|
||||
Smi [63],
|
||||
FIXED_ARRAY_TYPE,
|
||||
Smi [18],
|
||||
Smi [7],
|
||||
FIXED_ARRAY_TYPE,
|
||||
]
|
||||
handlers: [
|
||||
@ -367,9 +351,9 @@ snippet: "
|
||||
foo++;
|
||||
{ let x; { foo++ } };
|
||||
"
|
||||
frame size: 9
|
||||
frame size: 8
|
||||
parameter count: 2
|
||||
bytecode array length: 187
|
||||
bytecode array length: 178
|
||||
bytecodes: [
|
||||
B(Mov), R(new_target), R(0),
|
||||
B(Ldar), R(new_target),
|
||||
@ -411,27 +395,21 @@ bytecodes: [
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(4), U8(1),
|
||||
B(Star), R(5),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(4), U8(1),
|
||||
B(Star), R(6),
|
||||
B(LdaZero),
|
||||
B(TestEqualStrictNoFeedback), R(6),
|
||||
B(JumpIfTrue), U8(22),
|
||||
B(LdaSmi), I8(2),
|
||||
B(TestEqualStrictNoFeedback), R(6),
|
||||
B(JumpIfTrue), U8(13),
|
||||
B(LdaTrue),
|
||||
B(Star), R(8),
|
||||
B(Mov), R(5), R(7),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(7), U8(2),
|
||||
/* 49 S> */ B(Return),
|
||||
B(SwitchOnSmiNoFeedback), U8(2), U8(2), I8(0),
|
||||
B(Ldar), R(5),
|
||||
/* 0 E> */ B(Throw),
|
||||
B(LdaTrue),
|
||||
B(Star), R(7),
|
||||
B(Mov), R(5), R(6),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(6), U8(2),
|
||||
/* 49 S> */ B(Return),
|
||||
/* 17 S> */ B(LdaSmi), I8(42),
|
||||
/* 17 E> */ B(StaModuleVariable), I8(1), U8(0),
|
||||
/* 21 S> */ B(LdaModuleVariable), I8(1), U8(0),
|
||||
B(Inc), U8(3),
|
||||
/* 24 E> */ B(StaModuleVariable), I8(1), U8(0),
|
||||
B(Ldar), R(closure),
|
||||
B(CreateBlockContext), U8(2),
|
||||
B(CreateBlockContext), U8(4),
|
||||
B(PushContext), R(4),
|
||||
B(LdaTheHole),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
@ -455,6 +433,8 @@ bytecodes: [
|
||||
constant pool: [
|
||||
Smi [67],
|
||||
FIXED_ARRAY_TYPE,
|
||||
Smi [18],
|
||||
Smi [7],
|
||||
FIXED_ARRAY_TYPE,
|
||||
]
|
||||
handlers: [
|
||||
@ -466,9 +446,9 @@ snippet: "
|
||||
foo++;
|
||||
{ let x; { foo++ } };
|
||||
"
|
||||
frame size: 9
|
||||
frame size: 8
|
||||
parameter count: 2
|
||||
bytecode array length: 191
|
||||
bytecode array length: 182
|
||||
bytecodes: [
|
||||
B(Mov), R(new_target), R(0),
|
||||
B(Ldar), R(new_target),
|
||||
@ -510,27 +490,21 @@ bytecodes: [
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(4), U8(1),
|
||||
B(Star), R(5),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(4), U8(1),
|
||||
B(Star), R(6),
|
||||
B(LdaZero),
|
||||
B(TestEqualStrictNoFeedback), R(6),
|
||||
B(JumpIfTrue), U8(22),
|
||||
B(LdaSmi), I8(2),
|
||||
B(TestEqualStrictNoFeedback), R(6),
|
||||
B(JumpIfTrue), U8(13),
|
||||
B(LdaTrue),
|
||||
B(Star), R(8),
|
||||
B(Mov), R(5), R(7),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(7), U8(2),
|
||||
/* 51 S> */ B(Return),
|
||||
B(SwitchOnSmiNoFeedback), U8(2), U8(2), I8(0),
|
||||
B(Ldar), R(5),
|
||||
/* 0 E> */ B(Throw),
|
||||
B(LdaTrue),
|
||||
B(Star), R(7),
|
||||
B(Mov), R(5), R(6),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(6), U8(2),
|
||||
/* 51 S> */ B(Return),
|
||||
/* 19 S> */ B(LdaSmi), I8(42),
|
||||
/* 19 E> */ B(StaModuleVariable), I8(1), U8(0),
|
||||
/* 23 S> */ B(LdaModuleVariable), I8(1), U8(0),
|
||||
B(Inc), U8(3),
|
||||
/* 26 E> */ B(CallRuntime), U16(Runtime::kThrowConstAssignError), R(0), U8(0),
|
||||
B(Ldar), R(closure),
|
||||
B(CreateBlockContext), U8(2),
|
||||
B(CreateBlockContext), U8(4),
|
||||
B(PushContext), R(4),
|
||||
B(LdaTheHole),
|
||||
B(StaCurrentContextSlot), U8(4),
|
||||
@ -554,6 +528,8 @@ bytecodes: [
|
||||
constant pool: [
|
||||
Smi [67],
|
||||
FIXED_ARRAY_TYPE,
|
||||
Smi [18],
|
||||
Smi [7],
|
||||
FIXED_ARRAY_TYPE,
|
||||
]
|
||||
handlers: [
|
||||
@ -563,9 +539,9 @@ handlers: [
|
||||
snippet: "
|
||||
export default (function () {});
|
||||
"
|
||||
frame size: 9
|
||||
frame size: 8
|
||||
parameter count: 2
|
||||
bytecode array length: 152
|
||||
bytecode array length: 143
|
||||
bytecodes: [
|
||||
B(Mov), R(new_target), R(0),
|
||||
B(Ldar), R(new_target),
|
||||
@ -607,23 +583,17 @@ bytecodes: [
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(4), U8(1),
|
||||
B(Star), R(5),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(4), U8(1),
|
||||
B(Star), R(6),
|
||||
B(LdaZero),
|
||||
B(TestEqualStrictNoFeedback), R(6),
|
||||
B(JumpIfTrue), U8(22),
|
||||
B(LdaSmi), I8(2),
|
||||
B(TestEqualStrictNoFeedback), R(6),
|
||||
B(JumpIfTrue), U8(13),
|
||||
B(LdaTrue),
|
||||
B(Star), R(8),
|
||||
B(Mov), R(5), R(7),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(7), U8(2),
|
||||
/* 32 S> */ B(Return),
|
||||
B(SwitchOnSmiNoFeedback), U8(2), U8(2), I8(0),
|
||||
B(Ldar), R(5),
|
||||
/* 0 E> */ B(Throw),
|
||||
B(LdaTrue),
|
||||
B(Star), R(7),
|
||||
B(Mov), R(5), R(6),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(6), U8(2),
|
||||
/* 32 S> */ B(Return),
|
||||
B(Ldar), R(5),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
B(CreateClosure), U8(2), U8(3), U8(0),
|
||||
B(CreateClosure), U8(4), U8(3), U8(0),
|
||||
B(StaModuleVariable), I8(1), U8(0),
|
||||
B(LdaCurrentContextSlot), U8(5),
|
||||
B(Star), R(4),
|
||||
@ -635,6 +605,8 @@ bytecodes: [
|
||||
constant pool: [
|
||||
Smi [67],
|
||||
FIXED_ARRAY_TYPE,
|
||||
Smi [18],
|
||||
Smi [7],
|
||||
SHARED_FUNCTION_INFO_TYPE,
|
||||
]
|
||||
handlers: [
|
||||
@ -646,7 +618,7 @@ snippet: "
|
||||
"
|
||||
frame size: 9
|
||||
parameter count: 2
|
||||
bytecode array length: 185
|
||||
bytecode array length: 176
|
||||
bytecodes: [
|
||||
B(Mov), R(new_target), R(0),
|
||||
B(Ldar), R(new_target),
|
||||
@ -688,23 +660,17 @@ bytecodes: [
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(4), U8(1),
|
||||
B(Star), R(5),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(4), U8(1),
|
||||
B(Star), R(6),
|
||||
B(LdaZero),
|
||||
B(TestEqualStrictNoFeedback), R(6),
|
||||
B(JumpIfTrue), U8(22),
|
||||
B(LdaSmi), I8(2),
|
||||
B(TestEqualStrictNoFeedback), R(6),
|
||||
B(JumpIfTrue), U8(13),
|
||||
B(LdaTrue),
|
||||
B(Star), R(8),
|
||||
B(Mov), R(5), R(7),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(7), U8(2),
|
||||
/* 26 S> */ B(Return),
|
||||
B(SwitchOnSmiNoFeedback), U8(2), U8(2), I8(0),
|
||||
B(Ldar), R(5),
|
||||
/* 0 E> */ B(Throw),
|
||||
B(LdaTrue),
|
||||
B(Star), R(7),
|
||||
B(Mov), R(5), R(6),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(6), U8(2),
|
||||
/* 26 S> */ B(Return),
|
||||
B(Ldar), R(5),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
B(CreateClosure), U8(2), U8(3), U8(0),
|
||||
B(CreateClosure), U8(4), U8(3), U8(0),
|
||||
B(Star), R(4),
|
||||
B(LdaTheHole),
|
||||
B(Star), R(5),
|
||||
@ -728,6 +694,8 @@ bytecodes: [
|
||||
constant pool: [
|
||||
Smi [67],
|
||||
FIXED_ARRAY_TYPE,
|
||||
Smi [18],
|
||||
Smi [7],
|
||||
SHARED_FUNCTION_INFO_TYPE,
|
||||
]
|
||||
handlers: [
|
||||
@ -737,9 +705,9 @@ handlers: [
|
||||
snippet: "
|
||||
export {foo as goo} from \"bar\"
|
||||
"
|
||||
frame size: 9
|
||||
frame size: 8
|
||||
parameter count: 2
|
||||
bytecode array length: 141
|
||||
bytecode array length: 132
|
||||
bytecodes: [
|
||||
B(Mov), R(new_target), R(0),
|
||||
B(Ldar), R(new_target),
|
||||
@ -779,20 +747,14 @@ bytecodes: [
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(4), U8(1),
|
||||
B(Star), R(5),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(4), U8(1),
|
||||
B(Star), R(6),
|
||||
B(LdaZero),
|
||||
B(TestEqualStrictNoFeedback), R(6),
|
||||
B(JumpIfTrue), U8(22),
|
||||
B(LdaSmi), I8(2),
|
||||
B(TestEqualStrictNoFeedback), R(6),
|
||||
B(JumpIfTrue), U8(13),
|
||||
B(LdaTrue),
|
||||
B(Star), R(8),
|
||||
B(Mov), R(5), R(7),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(7), U8(2),
|
||||
/* 30 S> */ B(Return),
|
||||
B(SwitchOnSmiNoFeedback), U8(2), U8(2), I8(0),
|
||||
B(Ldar), R(5),
|
||||
/* 0 E> */ B(Throw),
|
||||
B(LdaTrue),
|
||||
B(Star), R(7),
|
||||
B(Mov), R(5), R(6),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(6), U8(2),
|
||||
/* 30 S> */ B(Return),
|
||||
B(Ldar), R(5),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
B(LdaCurrentContextSlot), U8(5),
|
||||
@ -805,6 +767,8 @@ bytecodes: [
|
||||
constant pool: [
|
||||
Smi [63],
|
||||
FIXED_ARRAY_TYPE,
|
||||
Smi [18],
|
||||
Smi [7],
|
||||
]
|
||||
handlers: [
|
||||
]
|
||||
@ -813,9 +777,9 @@ handlers: [
|
||||
snippet: "
|
||||
export * from \"bar\"
|
||||
"
|
||||
frame size: 9
|
||||
frame size: 8
|
||||
parameter count: 2
|
||||
bytecode array length: 141
|
||||
bytecode array length: 132
|
||||
bytecodes: [
|
||||
B(Mov), R(new_target), R(0),
|
||||
B(Ldar), R(new_target),
|
||||
@ -855,20 +819,14 @@ bytecodes: [
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(4), U8(1),
|
||||
B(Star), R(5),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(4), U8(1),
|
||||
B(Star), R(6),
|
||||
B(LdaZero),
|
||||
B(TestEqualStrictNoFeedback), R(6),
|
||||
B(JumpIfTrue), U8(22),
|
||||
B(LdaSmi), I8(2),
|
||||
B(TestEqualStrictNoFeedback), R(6),
|
||||
B(JumpIfTrue), U8(13),
|
||||
B(LdaTrue),
|
||||
B(Star), R(8),
|
||||
B(Mov), R(5), R(7),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(7), U8(2),
|
||||
/* 19 S> */ B(Return),
|
||||
B(SwitchOnSmiNoFeedback), U8(2), U8(2), I8(0),
|
||||
B(Ldar), R(5),
|
||||
/* 0 E> */ B(Throw),
|
||||
B(LdaTrue),
|
||||
B(Star), R(7),
|
||||
B(Mov), R(5), R(6),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(6), U8(2),
|
||||
/* 19 S> */ B(Return),
|
||||
B(Ldar), R(5),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
B(LdaCurrentContextSlot), U8(5),
|
||||
@ -881,6 +839,8 @@ bytecodes: [
|
||||
constant pool: [
|
||||
Smi [63],
|
||||
FIXED_ARRAY_TYPE,
|
||||
Smi [18],
|
||||
Smi [7],
|
||||
]
|
||||
handlers: [
|
||||
]
|
||||
@ -890,9 +850,9 @@ snippet: "
|
||||
import * as foo from \"bar\"
|
||||
foo.f(foo, foo.x);
|
||||
"
|
||||
frame size: 9
|
||||
frame size: 8
|
||||
parameter count: 2
|
||||
bytecode array length: 179
|
||||
bytecode array length: 170
|
||||
bytecodes: [
|
||||
B(Mov), R(new_target), R(0),
|
||||
B(Ldar), R(new_target),
|
||||
@ -936,29 +896,23 @@ bytecodes: [
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(4), U8(1),
|
||||
B(Star), R(5),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(4), U8(1),
|
||||
B(Star), R(6),
|
||||
B(LdaZero),
|
||||
B(TestEqualStrictNoFeedback), R(6),
|
||||
B(JumpIfTrue), U8(22),
|
||||
B(LdaSmi), I8(2),
|
||||
B(TestEqualStrictNoFeedback), R(6),
|
||||
B(JumpIfTrue), U8(13),
|
||||
B(LdaTrue),
|
||||
B(Star), R(8),
|
||||
B(Mov), R(5), R(7),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(7), U8(2),
|
||||
/* 45 S> */ B(Return),
|
||||
B(SwitchOnSmiNoFeedback), U8(2), U8(2), I8(0),
|
||||
B(Ldar), R(5),
|
||||
/* 0 E> */ B(Throw),
|
||||
B(LdaTrue),
|
||||
B(Star), R(7),
|
||||
B(Mov), R(5), R(6),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(6), U8(2),
|
||||
/* 45 S> */ B(Return),
|
||||
/* 27 S> */ B(LdaImmutableCurrentContextSlot), U8(5),
|
||||
B(Star), R(5),
|
||||
/* 30 E> */ B(LdaNamedProperty), R(5), U8(2), U8(5),
|
||||
/* 30 E> */ B(LdaNamedProperty), R(5), U8(4), U8(5),
|
||||
B(Star), R(4),
|
||||
B(LdaImmutableCurrentContextSlot), U8(5),
|
||||
B(Star), R(6),
|
||||
B(LdaImmutableCurrentContextSlot), U8(5),
|
||||
B(Star), R(7),
|
||||
/* 41 E> */ B(LdaNamedProperty), R(7), U8(3), U8(7),
|
||||
/* 41 E> */ B(LdaNamedProperty), R(7), U8(5), U8(7),
|
||||
B(Star), R(7),
|
||||
/* 31 E> */ B(CallProperty2), R(4), R(5), R(6), R(7), U8(3),
|
||||
B(StaCurrentContextSlot), U8(6),
|
||||
@ -972,6 +926,8 @@ bytecodes: [
|
||||
constant pool: [
|
||||
Smi [73],
|
||||
FIXED_ARRAY_TYPE,
|
||||
Smi [18],
|
||||
Smi [7],
|
||||
ONE_BYTE_INTERNALIZED_STRING_TYPE ["f"],
|
||||
ONE_BYTE_INTERNALIZED_STRING_TYPE ["x"],
|
||||
]
|
||||
|
@ -271,9 +271,9 @@ snippet: "
|
||||
}
|
||||
f();
|
||||
"
|
||||
frame size: 18
|
||||
frame size: 17
|
||||
parameter count: 1
|
||||
bytecode array length: 254
|
||||
bytecode array length: 245
|
||||
bytecodes: [
|
||||
B(Mov), R(new_target), R(7),
|
||||
B(Ldar), R(new_target),
|
||||
@ -307,23 +307,17 @@ bytecodes: [
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(13), U8(1),
|
||||
B(Star), R(14),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(13), U8(1),
|
||||
B(Star), R(15),
|
||||
B(LdaZero),
|
||||
B(TestEqualStrictNoFeedback), R(15),
|
||||
B(JumpIfTrue), U8(28),
|
||||
B(LdaSmi), I8(2),
|
||||
B(TestEqualStrictNoFeedback), R(15),
|
||||
B(JumpIfTrue), U8(19),
|
||||
B(SwitchOnSmiNoFeedback), U8(1), U8(2), I8(0),
|
||||
B(Ldar), R(14),
|
||||
/* 11 E> */ B(Throw),
|
||||
B(LdaTrue),
|
||||
B(Star), R(17),
|
||||
B(Mov), R(14), R(16),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(16), U8(2),
|
||||
B(Star), R(16),
|
||||
B(Mov), R(14), R(15),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(15), U8(2),
|
||||
B(Star), R(11),
|
||||
B(LdaZero),
|
||||
B(Star), R(10),
|
||||
B(Jump), U8(114),
|
||||
B(Ldar), R(14),
|
||||
/* 11 E> */ B(Throw),
|
||||
B(Jump), U8(111),
|
||||
/* 31 S> */ B(LdaZero),
|
||||
B(Star), R(2),
|
||||
B(Star), R(4),
|
||||
@ -384,7 +378,7 @@ bytecodes: [
|
||||
B(Ldar), R(12),
|
||||
B(SetPendingMessage),
|
||||
B(Ldar), R(10),
|
||||
B(SwitchOnSmiNoFeedback), U8(1), U8(2), I8(0),
|
||||
B(SwitchOnSmiNoFeedback), U8(3), U8(2), I8(0),
|
||||
B(Jump), U8(8),
|
||||
B(Ldar), R(11),
|
||||
/* 62 S> */ B(Return),
|
||||
@ -395,11 +389,13 @@ bytecodes: [
|
||||
]
|
||||
constant pool: [
|
||||
Smi [50],
|
||||
Smi [24],
|
||||
Smi [7],
|
||||
Smi [6],
|
||||
Smi [9],
|
||||
]
|
||||
handlers: [
|
||||
[52, 215, 221],
|
||||
[52, 206, 212],
|
||||
]
|
||||
|
||||
---
|
||||
@ -409,9 +405,9 @@ snippet: "
|
||||
}
|
||||
f();
|
||||
"
|
||||
frame size: 17
|
||||
frame size: 16
|
||||
parameter count: 1
|
||||
bytecode array length: 369
|
||||
bytecode array length: 351
|
||||
bytecodes: [
|
||||
B(Mov), R(new_target), R(6),
|
||||
B(Ldar), R(new_target),
|
||||
@ -445,30 +441,24 @@ bytecodes: [
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(12), U8(1),
|
||||
B(Star), R(13),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(12), U8(1),
|
||||
B(Star), R(14),
|
||||
B(LdaZero),
|
||||
B(TestEqualStrictNoFeedback), R(14),
|
||||
B(JumpIfTrue), U8(28),
|
||||
B(LdaSmi), I8(2),
|
||||
B(TestEqualStrictNoFeedback), R(14),
|
||||
B(JumpIfTrue), U8(19),
|
||||
B(SwitchOnSmiNoFeedback), U8(2), U8(2), I8(0),
|
||||
B(Ldar), R(13),
|
||||
/* 11 E> */ B(Throw),
|
||||
B(LdaTrue),
|
||||
B(Star), R(16),
|
||||
B(Mov), R(13), R(15),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(15), U8(2),
|
||||
B(Star), R(15),
|
||||
B(Mov), R(13), R(14),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(14), U8(2),
|
||||
B(Star), R(10),
|
||||
B(LdaZero),
|
||||
B(Star), R(9),
|
||||
B(Jump), U8(229),
|
||||
B(Ldar), R(13),
|
||||
/* 11 E> */ B(Throw),
|
||||
B(Jump), U8(217),
|
||||
/* 31 S> */ B(LdaZero),
|
||||
B(Star), R(1),
|
||||
B(Star), R(3),
|
||||
B(LdaSmi), I8(1),
|
||||
B(Star), R(4),
|
||||
B(Ldar), R(7),
|
||||
B(SwitchOnSmiNoFeedback), U8(2), U8(1), I8(1),
|
||||
B(SwitchOnSmiNoFeedback), U8(4), U8(1), I8(1),
|
||||
B(LdaSmi), I8(-2),
|
||||
/* 54 E> */ B(TestEqualStrictNoFeedback), R(7),
|
||||
B(JumpIfTrue), U8(11),
|
||||
@ -492,9 +482,9 @@ bytecodes: [
|
||||
/* 36 E> */ B(TestLessThan), R(0), U8(5),
|
||||
B(JumpIfFalse), U8(4),
|
||||
B(Jump), U8(4),
|
||||
B(Jump), U8(130),
|
||||
B(Jump), U8(121),
|
||||
B(Ldar), R(7),
|
||||
B(SwitchOnSmiNoFeedback), U8(3), U8(1), I8(1),
|
||||
B(SwitchOnSmiNoFeedback), U8(5), U8(1), I8(1),
|
||||
B(LdaSmi), I8(-2),
|
||||
B(TestEqualStrictNoFeedback), R(7),
|
||||
B(JumpIfTrue), U8(11),
|
||||
@ -503,7 +493,7 @@ bytecodes: [
|
||||
B(CallRuntime), U16(Runtime::kAbort), R(12), U8(1),
|
||||
B(LdaSmi), I8(1),
|
||||
B(TestEqual), R(5), U8(6),
|
||||
B(JumpIfFalse), U8(90),
|
||||
B(JumpIfFalse), U8(81),
|
||||
/* 18 E> */ B(StackCheck),
|
||||
/* 47 S> */ B(LdaFalse),
|
||||
B(Star), R(14),
|
||||
@ -521,33 +511,27 @@ bytecodes: [
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(12), U8(1),
|
||||
B(Star), R(13),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(12), U8(1),
|
||||
B(Star), R(14),
|
||||
B(LdaZero),
|
||||
B(TestEqualStrictNoFeedback), R(14),
|
||||
B(JumpIfTrue), U8(28),
|
||||
B(LdaSmi), I8(2),
|
||||
B(TestEqualStrictNoFeedback), R(14),
|
||||
B(JumpIfTrue), U8(19),
|
||||
B(SwitchOnSmiNoFeedback), U8(6), U8(2), I8(0),
|
||||
B(Ldar), R(13),
|
||||
/* 47 E> */ B(Throw),
|
||||
B(LdaTrue),
|
||||
B(Star), R(16),
|
||||
B(Mov), R(13), R(15),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(15), U8(2),
|
||||
B(Star), R(15),
|
||||
B(Mov), R(13), R(14),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(14), U8(2),
|
||||
B(Star), R(10),
|
||||
B(LdaZero),
|
||||
B(Star), R(9),
|
||||
B(Jump), U8(57),
|
||||
B(Ldar), R(13),
|
||||
/* 47 E> */ B(Throw),
|
||||
B(Jump), U8(54),
|
||||
B(LdaZero),
|
||||
B(Star), R(5),
|
||||
B(Mov), R(0), R(3),
|
||||
B(Ldar), R(0),
|
||||
B(JumpLoop), U8(113), I8(1),
|
||||
B(JumpLoop), U8(104), I8(1),
|
||||
B(LdaSmi), I8(1),
|
||||
/* 54 E> */ B(TestEqual), R(5), U8(7),
|
||||
B(JumpIfFalse), U8(4),
|
||||
B(Jump), U8(5),
|
||||
B(JumpLoop), U8(183), I8(0),
|
||||
B(JumpLoop), U8(174), I8(0),
|
||||
B(LdaUndefined),
|
||||
B(Star), R(12),
|
||||
B(LdaTrue),
|
||||
@ -570,7 +554,7 @@ bytecodes: [
|
||||
B(Ldar), R(11),
|
||||
B(SetPendingMessage),
|
||||
B(Ldar), R(9),
|
||||
B(SwitchOnSmiNoFeedback), U8(4), U8(2), I8(0),
|
||||
B(SwitchOnSmiNoFeedback), U8(8), U8(2), I8(0),
|
||||
B(Jump), U8(8),
|
||||
B(Ldar), R(10),
|
||||
/* 56 S> */ B(Return),
|
||||
@ -581,14 +565,18 @@ bytecodes: [
|
||||
]
|
||||
constant pool: [
|
||||
Smi [50],
|
||||
Smi [110],
|
||||
Smi [101],
|
||||
Smi [24],
|
||||
Smi [7],
|
||||
Smi [56],
|
||||
Smi [52],
|
||||
Smi [24],
|
||||
Smi [7],
|
||||
Smi [6],
|
||||
Smi [9],
|
||||
]
|
||||
handlers: [
|
||||
[52, 330, 336],
|
||||
[52, 312, 318],
|
||||
]
|
||||
|
||||
---
|
||||
@ -724,7 +712,7 @@ snippet: "
|
||||
"
|
||||
frame size: 19
|
||||
parameter count: 1
|
||||
bytecode array length: 377
|
||||
bytecode array length: 368
|
||||
bytecodes: [
|
||||
B(Mov), R(new_target), R(7),
|
||||
B(Ldar), R(new_target),
|
||||
@ -781,7 +769,7 @@ bytecodes: [
|
||||
/* 41 E> */ B(TestLessThan), R(0), U8(5),
|
||||
B(JumpIfFalse), U8(4),
|
||||
B(Jump), U8(4),
|
||||
B(Jump), U8(136),
|
||||
B(Jump), U8(127),
|
||||
B(Ldar), R(8),
|
||||
B(SwitchOnSmiNoFeedback), U8(2), U8(1), I8(0),
|
||||
B(LdaSmi), I8(-2),
|
||||
@ -792,7 +780,7 @@ bytecodes: [
|
||||
B(CallRuntime), U16(Runtime::kAbort), R(14), U8(1),
|
||||
B(LdaSmi), I8(1),
|
||||
B(TestEqual), R(6), U8(6),
|
||||
B(JumpIfFalse), U8(96),
|
||||
B(JumpIfFalse), U8(87),
|
||||
/* 23 E> */ B(StackCheck),
|
||||
/* 52 S> */ B(LdaUndefined),
|
||||
B(Star), R(15),
|
||||
@ -812,33 +800,27 @@ bytecodes: [
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(14), U8(1),
|
||||
B(Star), R(15),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(14), U8(1),
|
||||
B(Star), R(16),
|
||||
B(LdaZero),
|
||||
B(TestEqualStrictNoFeedback), R(16),
|
||||
B(JumpIfTrue), U8(28),
|
||||
B(LdaSmi), I8(2),
|
||||
B(TestEqualStrictNoFeedback), R(16),
|
||||
B(JumpIfTrue), U8(19),
|
||||
B(SwitchOnSmiNoFeedback), U8(3), U8(2), I8(0),
|
||||
B(Ldar), R(15),
|
||||
/* 52 E> */ B(ReThrow),
|
||||
B(LdaTrue),
|
||||
B(Star), R(18),
|
||||
B(Mov), R(15), R(17),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(17), U8(2),
|
||||
B(Star), R(17),
|
||||
B(Mov), R(15), R(16),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(16), U8(2),
|
||||
B(Star), R(11),
|
||||
B(LdaZero),
|
||||
B(Star), R(10),
|
||||
B(Jump), U8(106),
|
||||
B(Ldar), R(15),
|
||||
/* 52 E> */ B(ReThrow),
|
||||
B(Jump), U8(103),
|
||||
B(LdaZero),
|
||||
B(Star), R(6),
|
||||
B(Mov), R(0), R(4),
|
||||
B(Ldar), R(0),
|
||||
B(JumpLoop), U8(119), I8(1),
|
||||
B(JumpLoop), U8(110), I8(1),
|
||||
B(LdaSmi), I8(1),
|
||||
/* 59 E> */ B(TestEqual), R(6), U8(7),
|
||||
B(JumpIfFalse), U8(4),
|
||||
B(Jump), U8(5),
|
||||
B(JumpLoop), U8(189), I8(0),
|
||||
B(JumpLoop), U8(180), I8(0),
|
||||
B(LdaUndefined),
|
||||
B(Star), R(14),
|
||||
B(LdaUndefined),
|
||||
@ -852,7 +834,7 @@ bytecodes: [
|
||||
B(Jump), U8(45),
|
||||
B(Star), R(14),
|
||||
B(Ldar), R(closure),
|
||||
B(CreateCatchContext), R(14), U8(3), U8(4),
|
||||
B(CreateCatchContext), R(14), U8(5), U8(6),
|
||||
B(Star), R(13),
|
||||
B(LdaTheHole),
|
||||
B(SetPendingMessage),
|
||||
@ -887,7 +869,7 @@ bytecodes: [
|
||||
B(Ldar), R(12),
|
||||
B(SetPendingMessage),
|
||||
B(Ldar), R(10),
|
||||
B(SwitchOnSmiNoFeedback), U8(5), U8(2), I8(0),
|
||||
B(SwitchOnSmiNoFeedback), U8(7), U8(2), I8(0),
|
||||
B(Jump), U8(8),
|
||||
B(Ldar), R(11),
|
||||
/* 61 S> */ B(Return),
|
||||
@ -900,13 +882,15 @@ constant pool: [
|
||||
Smi [57],
|
||||
Smi [56],
|
||||
Smi [58],
|
||||
Smi [24],
|
||||
Smi [7],
|
||||
ONE_BYTE_INTERNALIZED_STRING_TYPE [".catch"],
|
||||
FIXED_ARRAY_TYPE,
|
||||
Smi [6],
|
||||
Smi [9],
|
||||
]
|
||||
handlers: [
|
||||
[62, 332, 338],
|
||||
[65, 287, 289],
|
||||
[62, 323, 329],
|
||||
[65, 278, 280],
|
||||
]
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user