Commit 98927ea5 authored by Adam Klein's avatar Adam Klein Committed by Commit Bot

[ignition] Be smarter about register allocation in VisitSuspend

Split BytecodeGenerator::VisitSuspend into two pieces, one for
building the suspension code and one for resumption (these
are split into separate Build methods for convenience).
Each gets its own RegisterAllocationScope, which allows us to
reduce the register file size of the empty generator by 1.

For consistency, rename VisitGeneratorPrologue() to
BuildGeneratorPrologue() to match the names of the two
newly-created methods.

Bug: v8:6379
Change-Id: I08a617a44f99706cfff09bf86fb0a25a9cd6e032
Reviewed-on: https://chromium-review.googlesource.com/503593
Commit-Queue: Adam Klein <adamk@chromium.org>
Reviewed-by: 's avatarAleksey Kozyatinskiy <kozyatinskiy@chromium.org>
Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45318}
parent 762d689c
...@@ -2388,12 +2388,13 @@ void BytecodeGenerator::VisitAssignment(Assignment* expr) { ...@@ -2388,12 +2388,13 @@ void BytecodeGenerator::VisitAssignment(Assignment* expr) {
} }
} }
void BytecodeGenerator::VisitSuspend(Suspend* expr) { void BytecodeGenerator::BuildGeneratorSuspend(Suspend* expr,
Register generator) {
RegisterAllocationScope register_scope(this);
builder()->SetExpressionPosition(expr); builder()->SetExpressionPosition(expr);
Register value = VisitForRegisterValue(expr->expression()); Register value = VisitForRegisterValue(expr->expression());
Register generator = VisitForRegisterValue(expr->generator_object());
// Save context, registers, and state. Then return. // Save context, registers, and state. Then return.
builder() builder()
->LoadLiteral(Smi::FromInt(expr->suspend_id())) ->LoadLiteral(Smi::FromInt(expr->suspend_id()))
...@@ -2416,11 +2417,10 @@ void BytecodeGenerator::VisitSuspend(Suspend* expr) { ...@@ -2416,11 +2417,10 @@ void BytecodeGenerator::VisitSuspend(Suspend* expr) {
builder()->LoadAccumulatorWithRegister(value); builder()->LoadAccumulatorWithRegister(value);
} }
builder()->Return(); // Hard return (ignore any finally blocks). builder()->Return(); // Hard return (ignore any finally blocks).
}
builder()->Bind(generator_jump_table_, static_cast<int>(expr->suspend_id())); void BytecodeGenerator::BuildGeneratorResume(Suspend* expr,
// Upon resume, we continue here. Register generator) {
{
RegisterAllocationScope register_scope(this); RegisterAllocationScope register_scope(this);
// Update state to indicate that we have finished resuming. Loop headers // Update state to indicate that we have finished resuming. Loop headers
...@@ -2488,7 +2488,14 @@ void BytecodeGenerator::VisitSuspend(Suspend* expr) { ...@@ -2488,7 +2488,14 @@ void BytecodeGenerator::VisitSuspend(Suspend* expr) {
builder()->Bind(&resume_with_next); builder()->Bind(&resume_with_next);
builder()->LoadAccumulatorWithRegister(input); builder()->LoadAccumulatorWithRegister(input);
} }
void BytecodeGenerator::VisitSuspend(Suspend* expr) {
Register generator = VisitForRegisterValue(expr->generator_object());
BuildGeneratorSuspend(expr, generator);
builder()->Bind(generator_jump_table_, static_cast<int>(expr->suspend_id()));
// Upon resume, we continue here.
BuildGeneratorResume(expr, generator);
} }
void BytecodeGenerator::VisitThrow(Throw* expr) { void BytecodeGenerator::VisitThrow(Throw* expr) {
......
...@@ -135,6 +135,8 @@ class BytecodeGenerator final : public AstVisitor<BytecodeGenerator> { ...@@ -135,6 +135,8 @@ class BytecodeGenerator final : public AstVisitor<BytecodeGenerator> {
void BuildNewLocalWithContext(Scope* scope); void BuildNewLocalWithContext(Scope* scope);
void BuildGeneratorPrologue(); void BuildGeneratorPrologue();
void BuildGeneratorSuspend(Suspend* expr, Register generator);
void BuildGeneratorResume(Suspend* expr, Register generator);
void VisitArgumentsObject(Variable* variable); void VisitArgumentsObject(Variable* variable);
void VisitRestArgumentsArray(Variable* rest); void VisitRestArgumentsArray(Variable* rest);
......
...@@ -14,7 +14,7 @@ snippet: " ...@@ -14,7 +14,7 @@ snippet: "
} }
f(); f();
" "
frame size: 19 frame size: 18
parameter count: 1 parameter count: 1
bytecode array length: 1003 bytecode array length: 1003
bytecodes: [ bytecodes: [
...@@ -75,54 +75,54 @@ bytecodes: [ ...@@ -75,54 +75,54 @@ bytecodes: [
B(LdaSmi), I8(79), B(LdaSmi), I8(79),
B(Star), R(13), B(Star), R(13),
B(CallRuntime), U16(Runtime::kAbort), R(13), U8(1), B(CallRuntime), U16(Runtime::kAbort), R(13), U8(1),
/* 40 S> */ B(LdaImmutableContextSlot), R(1), U8(4), U8(0),
B(Star), R(13),
/* 40 S> */ B(LdaContextSlot), R(1), U8(6), U8(0), /* 40 S> */ B(LdaContextSlot), R(1), U8(6), U8(0),
B(Star), R(15),
B(LdaNamedProperty), R(15), U8(8), U8(14),
B(Star), R(14), B(Star), R(14),
B(LdaNamedProperty), R(14), U8(8), U8(14), /* 40 E> */ B(CallProperty0), R(14), R(15), U8(12),
B(Star), R(13),
/* 40 E> */ B(CallProperty0), R(13), R(14), U8(12),
B(StaContextSlot), R(1), U8(9), U8(0), B(StaContextSlot), R(1), U8(9), U8(0),
/* 40 S> */ B(LdaUndefined), /* 40 S> */ B(LdaUndefined),
B(Star), R(13),
B(LdaImmutableContextSlot), R(1), U8(4), U8(0),
B(Star), R(14), B(Star), R(14),
B(LdaContextSlot), R(1), U8(9), U8(0), B(LdaImmutableContextSlot), R(1), U8(4), U8(0),
B(Star), R(15), B(Star), R(15),
B(LdaContextSlot), R(1), U8(10), U8(0), B(LdaContextSlot), R(1), U8(9), U8(0),
B(Star), R(16), B(Star), R(16),
B(CallJSRuntime), U8(%async_function_await_uncaught), R(13), U8(4),
B(LdaContextSlot), R(1), U8(10), U8(0), B(LdaContextSlot), R(1), U8(10), U8(0),
B(Star), R(13), B(Star), R(17),
B(LdaImmutableContextSlot), R(1), U8(4), U8(0), B(CallJSRuntime), U8(%async_function_await_uncaught), R(14), U8(4),
B(LdaContextSlot), R(1), U8(10), U8(0),
B(Star), R(14), B(Star), R(14),
B(LdaZero), B(LdaZero),
B(SuspendGenerator), R(14), U8(2), B(SuspendGenerator), R(13), U8(2),
B(Ldar), R(13), B(Ldar), R(14),
/* 57 S> */ B(Return), /* 57 S> */ B(Return),
B(LdaSmi), I8(-2), B(LdaSmi), I8(-2),
B(Star), R(3), B(Star), R(3),
B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(14), U8(1), B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(13), U8(1),
B(Star), R(14),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(13), U8(1),
B(Star), R(15), B(Star), R(15),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(14), U8(1),
B(Star), R(16),
B(LdaZero), B(LdaZero),
B(TestEqualStrictNoFeedback), R(16), B(TestEqualStrictNoFeedback), R(15),
B(JumpIfTrue), U8(28), B(JumpIfTrue), U8(28),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(TestEqualStrictNoFeedback), R(16), B(TestEqualStrictNoFeedback), R(15),
B(JumpIfTrue), U8(19), B(JumpIfTrue), U8(19),
B(LdaTrue), B(LdaTrue),
B(Star), R(18), B(Star), R(17),
B(Mov), R(15), R(17), B(Mov), R(14), R(16),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(17), U8(2), B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(16), U8(2),
B(Star), R(10), B(Star), R(10),
B(LdaZero), B(LdaZero),
B(Star), R(9), B(Star), R(9),
B(Jump), U8(155), B(Jump), U8(155),
B(Ldar), R(15), B(Ldar), R(14),
B(ReThrow), B(ReThrow),
B(Ldar), R(15), B(Ldar), R(14),
/* 40 E> */ B(StaContextSlot), R(1), U8(7), U8(0), /* 40 E> */ B(StaContextSlot), R(1), U8(7), U8(0),
B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(15), U8(1), B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(14), U8(1),
B(ToBooleanLogicalNot), B(ToBooleanLogicalNot),
B(JumpIfFalse), U8(13), B(JumpIfFalse), U8(13),
B(LdaContextSlot), R(1), U8(7), U8(0), B(LdaContextSlot), R(1), U8(7), U8(0),
...@@ -210,45 +210,45 @@ bytecodes: [ ...@@ -210,45 +210,45 @@ bytecodes: [
B(CallRuntime), U16(Runtime::kNewTypeError), R(12), U8(2), B(CallRuntime), U16(Runtime::kNewTypeError), R(12), U8(2),
B(Throw), B(Throw),
B(Mov), R(context), R(12), B(Mov), R(context), R(12),
B(LdaContextSlot), R(1), U8(12), U8(0), B(LdaImmutableContextSlot), R(1), U8(4), U8(0),
B(Star), R(13), B(Star), R(13),
B(LdaContextSlot), R(1), U8(6), U8(0), B(LdaContextSlot), R(1), U8(12), U8(0),
B(Star), R(14), B(Star), R(14),
B(InvokeIntrinsic), U8(Runtime::k_Call), R(13), U8(2), B(LdaContextSlot), R(1), U8(6), U8(0),
B(Star), R(15),
B(InvokeIntrinsic), U8(Runtime::k_Call), R(14), U8(2),
B(StaContextSlot), R(1), U8(13), U8(0), B(StaContextSlot), R(1), U8(13), U8(0),
B(LdaUndefined), B(LdaUndefined),
B(Star), R(13),
B(LdaImmutableContextSlot), R(1), U8(4), U8(0),
B(Star), R(14), B(Star), R(14),
B(LdaContextSlot), R(1), U8(13), U8(0), B(LdaImmutableContextSlot), R(1), U8(4), U8(0),
B(Star), R(15), B(Star), R(15),
B(LdaContextSlot), R(1), U8(10), U8(0), B(LdaContextSlot), R(1), U8(13), U8(0),
B(Star), R(16), B(Star), R(16),
B(CallJSRuntime), U8(%async_function_await_caught), R(13), U8(4),
B(LdaContextSlot), R(1), U8(10), U8(0), B(LdaContextSlot), R(1), U8(10), U8(0),
B(Star), R(13), B(Star), R(17),
B(LdaImmutableContextSlot), R(1), U8(4), U8(0), B(CallJSRuntime), U8(%async_function_await_caught), R(14), U8(4),
B(LdaContextSlot), R(1), U8(10), U8(0),
B(Star), R(14), B(Star), R(14),
B(LdaSmi), I8(1), B(LdaSmi), I8(1),
B(SuspendGenerator), R(14), U8(2), B(SuspendGenerator), R(13), U8(2),
B(Ldar), R(13), B(Ldar), R(14),
/* 57 S> */ B(Return), /* 57 S> */ B(Return),
B(LdaSmi), I8(-2), B(LdaSmi), I8(-2),
B(Star), R(3), B(Star), R(3),
B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(14), U8(1), B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(13), U8(1),
B(Star), R(14),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(13), U8(1),
B(Star), R(15), B(Star), R(15),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(14), U8(1),
B(Star), R(16),
B(LdaZero), B(LdaZero),
B(TestEqualStrictNoFeedback), R(16), B(TestEqualStrictNoFeedback), R(15),
B(JumpIfTrue), U8(36), B(JumpIfTrue), U8(36),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(TestEqualStrictNoFeedback), R(16), B(TestEqualStrictNoFeedback), R(15),
B(JumpIfTrue), U8(27), B(JumpIfTrue), U8(27),
B(LdaTrue), B(LdaTrue),
B(Star), R(18), B(Star), R(17),
B(Mov), R(15), R(17), B(Mov), R(14), R(16),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(17), U8(2), B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(16), U8(2),
B(PopContext), R(1), B(PopContext), R(1),
B(PopContext), R(1), B(PopContext), R(1),
B(PopContext), R(1), B(PopContext), R(1),
...@@ -257,9 +257,9 @@ bytecodes: [ ...@@ -257,9 +257,9 @@ bytecodes: [
B(LdaZero), B(LdaZero),
B(Star), R(5), B(Star), R(5),
B(JumpConstant), U8(20), B(JumpConstant), U8(20),
B(Ldar), R(15), B(Ldar), R(14),
B(ReThrow), B(ReThrow),
B(Ldar), R(15), B(Ldar), R(14),
B(Jump), U8(20), B(Jump), U8(20),
B(Star), R(13), B(Star), R(13),
B(Ldar), R(closure), B(Ldar), R(closure),
...@@ -271,45 +271,45 @@ bytecodes: [ ...@@ -271,45 +271,45 @@ bytecodes: [
B(PushContext), R(2), B(PushContext), R(2),
B(PopContext), R(2), B(PopContext), R(2),
B(Jump), U8(156), B(Jump), U8(156),
B(LdaContextSlot), R(1), U8(12), U8(0), B(LdaImmutableContextSlot), R(1), U8(4), U8(0),
B(Star), R(12), B(Star), R(12),
B(LdaContextSlot), R(1), U8(6), U8(0), B(LdaContextSlot), R(1), U8(12), U8(0),
B(Star), R(13), B(Star), R(13),
B(InvokeIntrinsic), U8(Runtime::k_Call), R(12), U8(2), B(LdaContextSlot), R(1), U8(6), U8(0),
B(Star), R(14),
B(InvokeIntrinsic), U8(Runtime::k_Call), R(13), U8(2),
B(StaContextSlot), R(1), U8(15), U8(0), B(StaContextSlot), R(1), U8(15), U8(0),
B(LdaUndefined), B(LdaUndefined),
B(Star), R(12),
B(LdaImmutableContextSlot), R(1), U8(4), U8(0),
B(Star), R(13), B(Star), R(13),
B(LdaContextSlot), R(1), U8(15), U8(0), B(LdaImmutableContextSlot), R(1), U8(4), U8(0),
B(Star), R(14), B(Star), R(14),
B(LdaContextSlot), R(1), U8(10), U8(0), B(LdaContextSlot), R(1), U8(15), U8(0),
B(Star), R(15), B(Star), R(15),
B(CallJSRuntime), U8(%async_function_await_uncaught), R(12), U8(4),
B(LdaContextSlot), R(1), U8(10), U8(0), B(LdaContextSlot), R(1), U8(10), U8(0),
B(Star), R(12), B(Star), R(16),
B(LdaImmutableContextSlot), R(1), U8(4), U8(0), B(CallJSRuntime), U8(%async_function_await_uncaught), R(13), U8(4),
B(LdaContextSlot), R(1), U8(10), U8(0),
B(Star), R(13), B(Star), R(13),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(SuspendGenerator), R(13), U8(2), B(SuspendGenerator), R(12), U8(2),
B(Ldar), R(12), B(Ldar), R(13),
/* 57 S> */ B(Return), /* 57 S> */ B(Return),
B(LdaSmi), I8(-2), B(LdaSmi), I8(-2),
B(Star), R(3), B(Star), R(3),
B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(13), U8(1), B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(12), U8(1),
B(Star), R(13),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(12), U8(1),
B(Star), R(14), B(Star), R(14),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(13), U8(1),
B(Star), R(15),
B(LdaZero), B(LdaZero),
B(TestEqualStrictNoFeedback), R(15), B(TestEqualStrictNoFeedback), R(14),
B(JumpIfTrue), U8(37), B(JumpIfTrue), U8(37),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(TestEqualStrictNoFeedback), R(15), B(TestEqualStrictNoFeedback), R(14),
B(JumpIfTrue), U8(28), B(JumpIfTrue), U8(28),
B(LdaTrue), B(LdaTrue),
B(Star), R(17), B(Star), R(16),
B(Mov), R(14), R(16), B(Mov), R(13), R(15),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(16), U8(2), B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(15), U8(2),
B(PopContext), R(1), B(PopContext), R(1),
B(PopContext), R(1), B(PopContext), R(1),
B(PopContext), R(1), B(PopContext), R(1),
...@@ -318,9 +318,9 @@ bytecodes: [ ...@@ -318,9 +318,9 @@ bytecodes: [
B(LdaSmi), I8(1), B(LdaSmi), I8(1),
B(Star), R(5), B(Star), R(5),
B(Jump), U8(168), B(Jump), U8(168),
B(Ldar), R(14), B(Ldar), R(13),
B(ReThrow), B(ReThrow),
B(Ldar), R(14), B(Ldar), R(13),
B(StaContextSlot), R(1), U8(14), U8(0), B(StaContextSlot), R(1), U8(14), U8(0),
B(LdaContextSlot), R(1), U8(14), U8(0), B(LdaContextSlot), R(1), U8(14), U8(0),
B(Star), R(12), B(Star), R(12),
...@@ -477,7 +477,7 @@ snippet: " ...@@ -477,7 +477,7 @@ snippet: "
} }
f(); f();
" "
frame size: 19 frame size: 18
parameter count: 1 parameter count: 1
bytecode array length: 1061 bytecode array length: 1061
bytecodes: [ bytecodes: [
...@@ -538,54 +538,54 @@ bytecodes: [ ...@@ -538,54 +538,54 @@ bytecodes: [
B(LdaSmi), I8(79), B(LdaSmi), I8(79),
B(Star), R(13), B(Star), R(13),
B(CallRuntime), U16(Runtime::kAbort), R(13), U8(1), B(CallRuntime), U16(Runtime::kAbort), R(13), U8(1),
/* 40 S> */ B(LdaImmutableContextSlot), R(1), U8(4), U8(0),
B(Star), R(13),
/* 40 S> */ B(LdaContextSlot), R(1), U8(6), U8(0), /* 40 S> */ B(LdaContextSlot), R(1), U8(6), U8(0),
B(Star), R(15),
B(LdaNamedProperty), R(15), U8(8), U8(14),
B(Star), R(14), B(Star), R(14),
B(LdaNamedProperty), R(14), U8(8), U8(14), /* 40 E> */ B(CallProperty0), R(14), R(15), U8(12),
B(Star), R(13),
/* 40 E> */ B(CallProperty0), R(13), R(14), U8(12),
B(StaContextSlot), R(1), U8(9), U8(0), B(StaContextSlot), R(1), U8(9), U8(0),
/* 40 S> */ B(LdaUndefined), /* 40 S> */ B(LdaUndefined),
B(Star), R(13),
B(LdaImmutableContextSlot), R(1), U8(4), U8(0),
B(Star), R(14), B(Star), R(14),
B(LdaContextSlot), R(1), U8(9), U8(0), B(LdaImmutableContextSlot), R(1), U8(4), U8(0),
B(Star), R(15), B(Star), R(15),
B(LdaContextSlot), R(1), U8(10), U8(0), B(LdaContextSlot), R(1), U8(9), U8(0),
B(Star), R(16), B(Star), R(16),
B(CallJSRuntime), U8(%async_function_await_uncaught), R(13), U8(4),
B(LdaContextSlot), R(1), U8(10), U8(0), B(LdaContextSlot), R(1), U8(10), U8(0),
B(Star), R(13), B(Star), R(17),
B(LdaImmutableContextSlot), R(1), U8(4), U8(0), B(CallJSRuntime), U8(%async_function_await_uncaught), R(14), U8(4),
B(LdaContextSlot), R(1), U8(10), U8(0),
B(Star), R(14), B(Star), R(14),
B(LdaZero), B(LdaZero),
B(SuspendGenerator), R(14), U8(2), B(SuspendGenerator), R(13), U8(2),
B(Ldar), R(13), B(Ldar), R(14),
/* 68 S> */ B(Return), /* 68 S> */ B(Return),
B(LdaSmi), I8(-2), B(LdaSmi), I8(-2),
B(Star), R(3), B(Star), R(3),
B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(14), U8(1), B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(13), U8(1),
B(Star), R(14),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(13), U8(1),
B(Star), R(15), B(Star), R(15),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(14), U8(1),
B(Star), R(16),
B(LdaZero), B(LdaZero),
B(TestEqualStrictNoFeedback), R(16), B(TestEqualStrictNoFeedback), R(15),
B(JumpIfTrue), U8(28), B(JumpIfTrue), U8(28),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(TestEqualStrictNoFeedback), R(16), B(TestEqualStrictNoFeedback), R(15),
B(JumpIfTrue), U8(19), B(JumpIfTrue), U8(19),
B(LdaTrue), B(LdaTrue),
B(Star), R(18), B(Star), R(17),
B(Mov), R(15), R(17), B(Mov), R(14), R(16),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(17), U8(2), B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(16), U8(2),
B(Star), R(10), B(Star), R(10),
B(LdaZero), B(LdaZero),
B(Star), R(9), B(Star), R(9),
B(Jump), U8(167), B(Jump), U8(167),
B(Ldar), R(15), B(Ldar), R(14),
B(ReThrow), B(ReThrow),
B(Ldar), R(15), B(Ldar), R(14),
/* 40 E> */ B(StaContextSlot), R(1), U8(7), U8(0), /* 40 E> */ B(StaContextSlot), R(1), U8(7), U8(0),
B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(15), U8(1), B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(14), U8(1),
B(ToBooleanLogicalNot), B(ToBooleanLogicalNot),
B(JumpIfFalse), U8(13), B(JumpIfFalse), U8(13),
B(LdaContextSlot), R(1), U8(7), U8(0), B(LdaContextSlot), R(1), U8(7), U8(0),
...@@ -680,45 +680,45 @@ bytecodes: [ ...@@ -680,45 +680,45 @@ bytecodes: [
B(CallRuntime), U16(Runtime::kNewTypeError), R(12), U8(2), B(CallRuntime), U16(Runtime::kNewTypeError), R(12), U8(2),
B(Throw), B(Throw),
B(Mov), R(context), R(12), B(Mov), R(context), R(12),
B(LdaContextSlot), R(1), U8(12), U8(0), B(LdaImmutableContextSlot), R(1), U8(4), U8(0),
B(Star), R(13), B(Star), R(13),
B(LdaContextSlot), R(1), U8(6), U8(0), B(LdaContextSlot), R(1), U8(12), U8(0),
B(Star), R(14), B(Star), R(14),
B(InvokeIntrinsic), U8(Runtime::k_Call), R(13), U8(2), B(LdaContextSlot), R(1), U8(6), U8(0),
B(Star), R(15),
B(InvokeIntrinsic), U8(Runtime::k_Call), R(14), U8(2),
B(StaContextSlot), R(1), U8(13), U8(0), B(StaContextSlot), R(1), U8(13), U8(0),
B(LdaUndefined), B(LdaUndefined),
B(Star), R(13),
B(LdaImmutableContextSlot), R(1), U8(4), U8(0),
B(Star), R(14), B(Star), R(14),
B(LdaContextSlot), R(1), U8(13), U8(0), B(LdaImmutableContextSlot), R(1), U8(4), U8(0),
B(Star), R(15), B(Star), R(15),
B(LdaContextSlot), R(1), U8(10), U8(0), B(LdaContextSlot), R(1), U8(13), U8(0),
B(Star), R(16), B(Star), R(16),
B(CallJSRuntime), U8(%async_function_await_caught), R(13), U8(4),
B(LdaContextSlot), R(1), U8(10), U8(0), B(LdaContextSlot), R(1), U8(10), U8(0),
B(Star), R(13), B(Star), R(17),
B(LdaImmutableContextSlot), R(1), U8(4), U8(0), B(CallJSRuntime), U8(%async_function_await_caught), R(14), U8(4),
B(LdaContextSlot), R(1), U8(10), U8(0),
B(Star), R(14), B(Star), R(14),
B(LdaSmi), I8(1), B(LdaSmi), I8(1),
B(SuspendGenerator), R(14), U8(2), B(SuspendGenerator), R(13), U8(2),
B(Ldar), R(13), B(Ldar), R(14),
/* 68 S> */ B(Return), /* 68 S> */ B(Return),
B(LdaSmi), I8(-2), B(LdaSmi), I8(-2),
B(Star), R(3), B(Star), R(3),
B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(14), U8(1), B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(13), U8(1),
B(Star), R(14),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(13), U8(1),
B(Star), R(15), B(Star), R(15),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(14), U8(1),
B(Star), R(16),
B(LdaZero), B(LdaZero),
B(TestEqualStrictNoFeedback), R(16), B(TestEqualStrictNoFeedback), R(15),
B(JumpIfTrue), U8(36), B(JumpIfTrue), U8(36),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(TestEqualStrictNoFeedback), R(16), B(TestEqualStrictNoFeedback), R(15),
B(JumpIfTrue), U8(27), B(JumpIfTrue), U8(27),
B(LdaTrue), B(LdaTrue),
B(Star), R(18), B(Star), R(17),
B(Mov), R(15), R(17), B(Mov), R(14), R(16),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(17), U8(2), B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(16), U8(2),
B(PopContext), R(1), B(PopContext), R(1),
B(PopContext), R(1), B(PopContext), R(1),
B(PopContext), R(1), B(PopContext), R(1),
...@@ -727,9 +727,9 @@ bytecodes: [ ...@@ -727,9 +727,9 @@ bytecodes: [
B(LdaZero), B(LdaZero),
B(Star), R(5), B(Star), R(5),
B(JumpConstant), U8(20), B(JumpConstant), U8(20),
B(Ldar), R(15), B(Ldar), R(14),
B(ReThrow), B(ReThrow),
B(Ldar), R(15), B(Ldar), R(14),
B(Jump), U8(20), B(Jump), U8(20),
B(Star), R(13), B(Star), R(13),
B(Ldar), R(closure), B(Ldar), R(closure),
...@@ -741,45 +741,45 @@ bytecodes: [ ...@@ -741,45 +741,45 @@ bytecodes: [
B(PushContext), R(2), B(PushContext), R(2),
B(PopContext), R(2), B(PopContext), R(2),
B(Jump), U8(156), B(Jump), U8(156),
B(LdaContextSlot), R(1), U8(12), U8(0), B(LdaImmutableContextSlot), R(1), U8(4), U8(0),
B(Star), R(12), B(Star), R(12),
B(LdaContextSlot), R(1), U8(6), U8(0), B(LdaContextSlot), R(1), U8(12), U8(0),
B(Star), R(13), B(Star), R(13),
B(InvokeIntrinsic), U8(Runtime::k_Call), R(12), U8(2), B(LdaContextSlot), R(1), U8(6), U8(0),
B(Star), R(14),
B(InvokeIntrinsic), U8(Runtime::k_Call), R(13), U8(2),
B(StaContextSlot), R(1), U8(15), U8(0), B(StaContextSlot), R(1), U8(15), U8(0),
B(LdaUndefined), B(LdaUndefined),
B(Star), R(12),
B(LdaImmutableContextSlot), R(1), U8(4), U8(0),
B(Star), R(13), B(Star), R(13),
B(LdaContextSlot), R(1), U8(15), U8(0), B(LdaImmutableContextSlot), R(1), U8(4), U8(0),
B(Star), R(14), B(Star), R(14),
B(LdaContextSlot), R(1), U8(10), U8(0), B(LdaContextSlot), R(1), U8(15), U8(0),
B(Star), R(15), B(Star), R(15),
B(CallJSRuntime), U8(%async_function_await_uncaught), R(12), U8(4),
B(LdaContextSlot), R(1), U8(10), U8(0), B(LdaContextSlot), R(1), U8(10), U8(0),
B(Star), R(12), B(Star), R(16),
B(LdaImmutableContextSlot), R(1), U8(4), U8(0), B(CallJSRuntime), U8(%async_function_await_uncaught), R(13), U8(4),
B(LdaContextSlot), R(1), U8(10), U8(0),
B(Star), R(13), B(Star), R(13),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(SuspendGenerator), R(13), U8(2), B(SuspendGenerator), R(12), U8(2),
B(Ldar), R(12), B(Ldar), R(13),
/* 68 S> */ B(Return), /* 68 S> */ B(Return),
B(LdaSmi), I8(-2), B(LdaSmi), I8(-2),
B(Star), R(3), B(Star), R(3),
B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(13), U8(1), B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(12), U8(1),
B(Star), R(13),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(12), U8(1),
B(Star), R(14), B(Star), R(14),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(13), U8(1),
B(Star), R(15),
B(LdaZero), B(LdaZero),
B(TestEqualStrictNoFeedback), R(15), B(TestEqualStrictNoFeedback), R(14),
B(JumpIfTrue), U8(37), B(JumpIfTrue), U8(37),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(TestEqualStrictNoFeedback), R(15), B(TestEqualStrictNoFeedback), R(14),
B(JumpIfTrue), U8(28), B(JumpIfTrue), U8(28),
B(LdaTrue), B(LdaTrue),
B(Star), R(17), B(Star), R(16),
B(Mov), R(14), R(16), B(Mov), R(13), R(15),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(16), U8(2), B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(15), U8(2),
B(PopContext), R(1), B(PopContext), R(1),
B(PopContext), R(1), B(PopContext), R(1),
B(PopContext), R(1), B(PopContext), R(1),
...@@ -788,9 +788,9 @@ bytecodes: [ ...@@ -788,9 +788,9 @@ bytecodes: [
B(LdaSmi), I8(1), B(LdaSmi), I8(1),
B(Star), R(5), B(Star), R(5),
B(Jump), U8(191), B(Jump), U8(191),
B(Ldar), R(14), B(Ldar), R(13),
B(ReThrow), B(ReThrow),
B(Ldar), R(14), B(Ldar), R(13),
B(StaContextSlot), R(1), U8(14), U8(0), B(StaContextSlot), R(1), U8(14), U8(0),
B(LdaContextSlot), R(1), U8(14), U8(0), B(LdaContextSlot), R(1), U8(14), U8(0),
B(Star), R(12), B(Star), R(12),
...@@ -972,7 +972,7 @@ snippet: " ...@@ -972,7 +972,7 @@ snippet: "
} }
f(); f();
" "
frame size: 19 frame size: 18
parameter count: 1 parameter count: 1
bytecode array length: 1037 bytecode array length: 1037
bytecodes: [ bytecodes: [
...@@ -1033,54 +1033,54 @@ bytecodes: [ ...@@ -1033,54 +1033,54 @@ bytecodes: [
B(LdaSmi), I8(79), B(LdaSmi), I8(79),
B(Star), R(13), B(Star), R(13),
B(CallRuntime), U16(Runtime::kAbort), R(13), U8(1), B(CallRuntime), U16(Runtime::kAbort), R(13), U8(1),
/* 40 S> */ B(LdaImmutableContextSlot), R(1), U8(4), U8(0),
B(Star), R(13),
/* 40 S> */ B(LdaContextSlot), R(1), U8(6), U8(0), /* 40 S> */ B(LdaContextSlot), R(1), U8(6), U8(0),
B(Star), R(15),
B(LdaNamedProperty), R(15), U8(8), U8(14),
B(Star), R(14), B(Star), R(14),
B(LdaNamedProperty), R(14), U8(8), U8(14), /* 40 E> */ B(CallProperty0), R(14), R(15), U8(12),
B(Star), R(13),
/* 40 E> */ B(CallProperty0), R(13), R(14), U8(12),
B(StaContextSlot), R(1), U8(9), U8(0), B(StaContextSlot), R(1), U8(9), U8(0),
/* 40 S> */ B(LdaUndefined), /* 40 S> */ B(LdaUndefined),
B(Star), R(13),
B(LdaImmutableContextSlot), R(1), U8(4), U8(0),
B(Star), R(14), B(Star), R(14),
B(LdaContextSlot), R(1), U8(9), U8(0), B(LdaImmutableContextSlot), R(1), U8(4), U8(0),
B(Star), R(15), B(Star), R(15),
B(LdaContextSlot), R(1), U8(10), U8(0), B(LdaContextSlot), R(1), U8(9), U8(0),
B(Star), R(16), B(Star), R(16),
B(CallJSRuntime), U8(%async_function_await_uncaught), R(13), U8(4),
B(LdaContextSlot), R(1), U8(10), U8(0), B(LdaContextSlot), R(1), U8(10), U8(0),
B(Star), R(13), B(Star), R(17),
B(LdaImmutableContextSlot), R(1), U8(4), U8(0), B(CallJSRuntime), U8(%async_function_await_uncaught), R(14), U8(4),
B(LdaContextSlot), R(1), U8(10), U8(0),
B(Star), R(14), B(Star), R(14),
B(LdaZero), B(LdaZero),
B(SuspendGenerator), R(14), U8(2), B(SuspendGenerator), R(13), U8(2),
B(Ldar), R(13), B(Ldar), R(14),
/* 114 S> */ B(Return), /* 114 S> */ B(Return),
B(LdaSmi), I8(-2), B(LdaSmi), I8(-2),
B(Star), R(3), B(Star), R(3),
B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(14), U8(1), B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(13), U8(1),
B(Star), R(14),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(13), U8(1),
B(Star), R(15), B(Star), R(15),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(14), U8(1),
B(Star), R(16),
B(LdaZero), B(LdaZero),
B(TestEqualStrictNoFeedback), R(16), B(TestEqualStrictNoFeedback), R(15),
B(JumpIfTrue), U8(28), B(JumpIfTrue), U8(28),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(TestEqualStrictNoFeedback), R(16), B(TestEqualStrictNoFeedback), R(15),
B(JumpIfTrue), U8(19), B(JumpIfTrue), U8(19),
B(LdaTrue), B(LdaTrue),
B(Star), R(18), B(Star), R(17),
B(Mov), R(15), R(17), B(Mov), R(14), R(16),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(17), U8(2), B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(16), U8(2),
B(Star), R(10), B(Star), R(10),
B(LdaZero), B(LdaZero),
B(Star), R(9), B(Star), R(9),
B(Jump), U8(189), B(Jump), U8(189),
B(Ldar), R(15), B(Ldar), R(14),
B(ReThrow), B(ReThrow),
B(Ldar), R(15), B(Ldar), R(14),
/* 40 E> */ B(StaContextSlot), R(1), U8(7), U8(0), /* 40 E> */ B(StaContextSlot), R(1), U8(7), U8(0),
B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(15), U8(1), B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(14), U8(1),
B(ToBooleanLogicalNot), B(ToBooleanLogicalNot),
B(JumpIfFalse), U8(13), B(JumpIfFalse), U8(13),
B(LdaContextSlot), R(1), U8(7), U8(0), B(LdaContextSlot), R(1), U8(7), U8(0),
...@@ -1184,45 +1184,45 @@ bytecodes: [ ...@@ -1184,45 +1184,45 @@ bytecodes: [
B(CallRuntime), U16(Runtime::kNewTypeError), R(12), U8(2), B(CallRuntime), U16(Runtime::kNewTypeError), R(12), U8(2),
B(Throw), B(Throw),
B(Mov), R(context), R(12), B(Mov), R(context), R(12),
B(LdaContextSlot), R(1), U8(12), U8(0), B(LdaImmutableContextSlot), R(1), U8(4), U8(0),
B(Star), R(13), B(Star), R(13),
B(LdaContextSlot), R(1), U8(6), U8(0), B(LdaContextSlot), R(1), U8(12), U8(0),
B(Star), R(14), B(Star), R(14),
B(InvokeIntrinsic), U8(Runtime::k_Call), R(13), U8(2), B(LdaContextSlot), R(1), U8(6), U8(0),
B(Star), R(15),
B(InvokeIntrinsic), U8(Runtime::k_Call), R(14), U8(2),
B(StaContextSlot), R(1), U8(13), U8(0), B(StaContextSlot), R(1), U8(13), U8(0),
B(LdaUndefined), B(LdaUndefined),
B(Star), R(13),
B(LdaImmutableContextSlot), R(1), U8(4), U8(0),
B(Star), R(14), B(Star), R(14),
B(LdaContextSlot), R(1), U8(13), U8(0), B(LdaImmutableContextSlot), R(1), U8(4), U8(0),
B(Star), R(15), B(Star), R(15),
B(LdaContextSlot), R(1), U8(10), U8(0), B(LdaContextSlot), R(1), U8(13), U8(0),
B(Star), R(16), B(Star), R(16),
B(CallJSRuntime), U8(%async_function_await_caught), R(13), U8(4),
B(LdaContextSlot), R(1), U8(10), U8(0), B(LdaContextSlot), R(1), U8(10), U8(0),
B(Star), R(13), B(Star), R(17),
B(LdaImmutableContextSlot), R(1), U8(4), U8(0), B(CallJSRuntime), U8(%async_function_await_caught), R(14), U8(4),
B(LdaContextSlot), R(1), U8(10), U8(0),
B(Star), R(14), B(Star), R(14),
B(LdaSmi), I8(1), B(LdaSmi), I8(1),
B(SuspendGenerator), R(14), U8(2), B(SuspendGenerator), R(13), U8(2),
B(Ldar), R(13), B(Ldar), R(14),
/* 114 S> */ B(Return), /* 114 S> */ B(Return),
B(LdaSmi), I8(-2), B(LdaSmi), I8(-2),
B(Star), R(3), B(Star), R(3),
B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(14), U8(1), B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(13), U8(1),
B(Star), R(14),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(13), U8(1),
B(Star), R(15), B(Star), R(15),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(14), U8(1),
B(Star), R(16),
B(LdaZero), B(LdaZero),
B(TestEqualStrictNoFeedback), R(16), B(TestEqualStrictNoFeedback), R(15),
B(JumpIfTrue), U8(36), B(JumpIfTrue), U8(36),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(TestEqualStrictNoFeedback), R(16), B(TestEqualStrictNoFeedback), R(15),
B(JumpIfTrue), U8(27), B(JumpIfTrue), U8(27),
B(LdaTrue), B(LdaTrue),
B(Star), R(18), B(Star), R(17),
B(Mov), R(15), R(17), B(Mov), R(14), R(16),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(17), U8(2), B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(16), U8(2),
B(PopContext), R(1), B(PopContext), R(1),
B(PopContext), R(1), B(PopContext), R(1),
B(PopContext), R(1), B(PopContext), R(1),
...@@ -1231,9 +1231,9 @@ bytecodes: [ ...@@ -1231,9 +1231,9 @@ bytecodes: [
B(LdaZero), B(LdaZero),
B(Star), R(5), B(Star), R(5),
B(JumpConstant), U8(20), B(JumpConstant), U8(20),
B(Ldar), R(15), B(Ldar), R(14),
B(ReThrow), B(ReThrow),
B(Ldar), R(15), B(Ldar), R(14),
B(Jump), U8(20), B(Jump), U8(20),
B(Star), R(13), B(Star), R(13),
B(Ldar), R(closure), B(Ldar), R(closure),
...@@ -1245,45 +1245,45 @@ bytecodes: [ ...@@ -1245,45 +1245,45 @@ bytecodes: [
B(PushContext), R(2), B(PushContext), R(2),
B(PopContext), R(2), B(PopContext), R(2),
B(Jump), U8(156), B(Jump), U8(156),
B(LdaContextSlot), R(1), U8(12), U8(0), B(LdaImmutableContextSlot), R(1), U8(4), U8(0),
B(Star), R(12), B(Star), R(12),
B(LdaContextSlot), R(1), U8(6), U8(0), B(LdaContextSlot), R(1), U8(12), U8(0),
B(Star), R(13), B(Star), R(13),
B(InvokeIntrinsic), U8(Runtime::k_Call), R(12), U8(2), B(LdaContextSlot), R(1), U8(6), U8(0),
B(Star), R(14),
B(InvokeIntrinsic), U8(Runtime::k_Call), R(13), U8(2),
B(StaContextSlot), R(1), U8(15), U8(0), B(StaContextSlot), R(1), U8(15), U8(0),
B(LdaUndefined), B(LdaUndefined),
B(Star), R(12),
B(LdaImmutableContextSlot), R(1), U8(4), U8(0),
B(Star), R(13), B(Star), R(13),
B(LdaContextSlot), R(1), U8(15), U8(0), B(LdaImmutableContextSlot), R(1), U8(4), U8(0),
B(Star), R(14), B(Star), R(14),
B(LdaContextSlot), R(1), U8(10), U8(0), B(LdaContextSlot), R(1), U8(15), U8(0),
B(Star), R(15), B(Star), R(15),
B(CallJSRuntime), U8(%async_function_await_uncaught), R(12), U8(4),
B(LdaContextSlot), R(1), U8(10), U8(0), B(LdaContextSlot), R(1), U8(10), U8(0),
B(Star), R(12), B(Star), R(16),
B(LdaImmutableContextSlot), R(1), U8(4), U8(0), B(CallJSRuntime), U8(%async_function_await_uncaught), R(13), U8(4),
B(LdaContextSlot), R(1), U8(10), U8(0),
B(Star), R(13), B(Star), R(13),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(SuspendGenerator), R(13), U8(2), B(SuspendGenerator), R(12), U8(2),
B(Ldar), R(12), B(Ldar), R(13),
/* 114 S> */ B(Return), /* 114 S> */ B(Return),
B(LdaSmi), I8(-2), B(LdaSmi), I8(-2),
B(Star), R(3), B(Star), R(3),
B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(13), U8(1), B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(12), U8(1),
B(Star), R(13),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(12), U8(1),
B(Star), R(14), B(Star), R(14),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(13), U8(1),
B(Star), R(15),
B(LdaZero), B(LdaZero),
B(TestEqualStrictNoFeedback), R(15), B(TestEqualStrictNoFeedback), R(14),
B(JumpIfTrue), U8(37), B(JumpIfTrue), U8(37),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(TestEqualStrictNoFeedback), R(15), B(TestEqualStrictNoFeedback), R(14),
B(JumpIfTrue), U8(28), B(JumpIfTrue), U8(28),
B(LdaTrue), B(LdaTrue),
B(Star), R(17), B(Star), R(16),
B(Mov), R(14), R(16), B(Mov), R(13), R(15),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(16), U8(2), B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(15), U8(2),
B(PopContext), R(1), B(PopContext), R(1),
B(PopContext), R(1), B(PopContext), R(1),
B(PopContext), R(1), B(PopContext), R(1),
...@@ -1292,9 +1292,9 @@ bytecodes: [ ...@@ -1292,9 +1292,9 @@ bytecodes: [
B(LdaSmi), I8(1), B(LdaSmi), I8(1),
B(Star), R(5), B(Star), R(5),
B(Jump), U8(168), B(Jump), U8(168),
B(Ldar), R(14), B(Ldar), R(13),
B(ReThrow), B(ReThrow),
B(Ldar), R(14), B(Ldar), R(13),
B(StaContextSlot), R(1), U8(14), U8(0), B(StaContextSlot), R(1), U8(14), U8(0),
B(LdaContextSlot), R(1), U8(14), U8(0), B(LdaContextSlot), R(1), U8(14), U8(0),
B(Star), R(12), B(Star), R(12),
......
...@@ -677,30 +677,30 @@ bytecodes: [ ...@@ -677,30 +677,30 @@ bytecodes: [
B(LdaImmutableCurrentContextSlot), U8(5), B(LdaImmutableCurrentContextSlot), U8(5),
B(Star), R(10), B(Star), R(10),
B(LdaZero), B(LdaZero),
/* 11 E> */ B(SuspendGenerator), R(10), U8(0), /* 11 E> */ B(SuspendGenerator), R(9), U8(0),
B(Ldar), R(9), B(Ldar), R(10),
/* 55 S> */ B(Return), /* 55 S> */ B(Return),
B(LdaSmi), I8(-2), B(LdaSmi), I8(-2),
B(Star), R(4), B(Star), R(4),
B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(10), U8(1), B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(9), U8(1),
B(Star), R(10),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(9), U8(1),
B(Star), R(11), B(Star), R(11),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(10), U8(1),
B(Star), R(12),
B(LdaZero), B(LdaZero),
B(TestEqualStrictNoFeedback), R(12), B(TestEqualStrictNoFeedback), R(11),
B(JumpIfTrue), U8(28), B(JumpIfTrue), U8(28),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(TestEqualStrictNoFeedback), R(12), B(TestEqualStrictNoFeedback), R(11),
B(JumpIfTrue), U8(19), B(JumpIfTrue), U8(19),
B(LdaTrue), B(LdaTrue),
B(Star), R(14), B(Star), R(13),
B(Mov), R(11), R(13), B(Mov), R(10), R(12),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(13), U8(2), B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(12), U8(2),
B(Star), R(7), B(Star), R(7),
B(LdaZero), B(LdaZero),
B(Star), R(6), B(Star), R(6),
B(JumpConstant), U8(13), B(JumpConstant), U8(13),
B(Ldar), R(11), B(Ldar), R(10),
/* 11 E> */ B(Throw), /* 11 E> */ B(Throw),
B(Ldar), R(closure), B(Ldar), R(closure),
B(CreateBlockContext), U8(1), B(CreateBlockContext), U8(1),
...@@ -939,7 +939,7 @@ snippet: " ...@@ -939,7 +939,7 @@ snippet: "
} }
f([1, 2, 3]); f([1, 2, 3]);
" "
frame size: 18 frame size: 17
parameter count: 2 parameter count: 2
bytecode array length: 740 bytecode array length: 740
bytecodes: [ bytecodes: [
...@@ -970,30 +970,30 @@ bytecodes: [ ...@@ -970,30 +970,30 @@ bytecodes: [
B(LdaImmutableCurrentContextSlot), U8(5), B(LdaImmutableCurrentContextSlot), U8(5),
B(Star), R(9), B(Star), R(9),
B(LdaZero), B(LdaZero),
/* 11 E> */ B(SuspendGenerator), R(9), U8(0), /* 11 E> */ B(SuspendGenerator), R(8), U8(0),
B(Ldar), R(8), B(Ldar), R(9),
/* 49 S> */ B(Return), /* 49 S> */ B(Return),
B(LdaSmi), I8(-2), B(LdaSmi), I8(-2),
B(Star), R(3), B(Star), R(3),
B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(9), U8(1), B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(8), U8(1),
B(Star), R(9),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(8), U8(1),
B(Star), R(10), B(Star), R(10),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(9), U8(1),
B(Star), R(11),
B(LdaZero), B(LdaZero),
B(TestEqualStrictNoFeedback), R(11), B(TestEqualStrictNoFeedback), R(10),
B(JumpIfTrue), U8(28), B(JumpIfTrue), U8(28),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(TestEqualStrictNoFeedback), R(11), B(TestEqualStrictNoFeedback), R(10),
B(JumpIfTrue), U8(19), B(JumpIfTrue), U8(19),
B(LdaTrue), B(LdaTrue),
B(Star), R(13), B(Star), R(12),
B(Mov), R(10), R(12), B(Mov), R(9), R(11),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(12), U8(2), B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(11), U8(2),
B(Star), R(6), B(Star), R(6),
B(LdaZero), B(LdaZero),
B(Star), R(5), B(Star), R(5),
B(JumpConstant), U8(14), B(JumpConstant), U8(14),
B(Ldar), R(10), B(Ldar), R(9),
/* 11 E> */ B(Throw), /* 11 E> */ B(Throw),
B(Ldar), R(closure), B(Ldar), R(closure),
B(CreateBlockContext), U8(2), B(CreateBlockContext), U8(2),
...@@ -1053,34 +1053,34 @@ bytecodes: [ ...@@ -1053,34 +1053,34 @@ bytecodes: [
B(StaCurrentContextSlot), U8(4), B(StaCurrentContextSlot), U8(4),
B(LdaContextSlot), R(1), U8(6), U8(0), B(LdaContextSlot), R(1), U8(6), U8(0),
B(StaCurrentContextSlot), U8(4), B(StaCurrentContextSlot), U8(4),
/* 40 S> */ B(LdaImmutableCurrentContextSlot), U8(4), /* 40 S> */ B(LdaImmutableContextSlot), R(1), U8(5), U8(0),
B(Star), R(12), B(Star), R(12),
B(LdaFalse), B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(13), B(Star), R(13),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(12), U8(2), B(LdaFalse),
B(Star), R(12), B(Star), R(14),
B(LdaImmutableContextSlot), R(1), U8(5), U8(0), /* 46 E> */ B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(13), U8(2),
B(Star), R(13), B(Star), R(13),
B(LdaSmi), I8(1), B(LdaSmi), I8(1),
B(SuspendGenerator), R(13), U8(0), B(SuspendGenerator), R(12), U8(0),
B(Ldar), R(12), B(Ldar), R(13),
/* 49 S> */ B(Return), /* 49 S> */ B(Return),
B(LdaSmi), I8(-2), B(LdaSmi), I8(-2),
B(Star), R(3), B(Star), R(3),
B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(13), U8(1), B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(12), U8(1),
B(Star), R(13),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(12), U8(1),
B(Star), R(14), B(Star), R(14),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(13), U8(1),
B(Star), R(15),
B(LdaZero), B(LdaZero),
B(TestEqualStrictNoFeedback), R(15), B(TestEqualStrictNoFeedback), R(14),
B(JumpIfTrue), U8(40), B(JumpIfTrue), U8(40),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(TestEqualStrictNoFeedback), R(15), B(TestEqualStrictNoFeedback), R(14),
B(JumpIfTrue), U8(31), B(JumpIfTrue), U8(31),
B(LdaTrue), B(LdaTrue),
B(Star), R(17), B(Star), R(16),
B(Mov), R(14), R(16), B(Mov), R(13), R(15),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(16), U8(2), B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(15), U8(2),
B(PopContext), R(2), B(PopContext), R(2),
B(PopContext), R(2), B(PopContext), R(2),
B(PopContext), R(2), B(PopContext), R(2),
...@@ -1091,7 +1091,7 @@ bytecodes: [ ...@@ -1091,7 +1091,7 @@ bytecodes: [
B(LdaZero), B(LdaZero),
B(Star), R(8), B(Star), R(8),
B(Jump), U8(71), B(Jump), U8(71),
B(Ldar), R(14), B(Ldar), R(13),
/* 40 E> */ B(Throw), /* 40 E> */ B(Throw),
B(PopContext), R(2), B(PopContext), R(2),
B(LdaZero), B(LdaZero),
...@@ -1565,7 +1565,7 @@ snippet: " ...@@ -1565,7 +1565,7 @@ snippet: "
} }
f([1, 2, 3]); f([1, 2, 3]);
" "
frame size: 19 frame size: 18
parameter count: 2 parameter count: 2
bytecode array length: 765 bytecode array length: 765
bytecodes: [ bytecodes: [
...@@ -1654,41 +1654,41 @@ bytecodes: [ ...@@ -1654,41 +1654,41 @@ bytecodes: [
B(StaCurrentContextSlot), U8(4), B(StaCurrentContextSlot), U8(4),
B(LdaContextSlot), R(1), U8(8), U8(0), B(LdaContextSlot), R(1), U8(8), U8(0),
B(StaCurrentContextSlot), U8(4), B(StaCurrentContextSlot), U8(4),
/* 45 S> */ B(LdaImmutableContextSlot), R(1), U8(5), U8(0),
B(Star), R(13),
/* 51 S> */ B(LdaImmutableCurrentContextSlot), U8(4), /* 51 S> */ B(LdaImmutableCurrentContextSlot), U8(4),
B(StaContextSlot), R(1), U8(6), U8(0), B(StaContextSlot), R(1), U8(6), U8(0),
/* 45 S> */ B(LdaUndefined), /* 45 S> */ B(LdaUndefined),
B(Star), R(13),
B(LdaImmutableContextSlot), R(1), U8(5), U8(0),
B(Star), R(14), B(Star), R(14),
B(LdaContextSlot), R(1), U8(6), U8(0), B(LdaImmutableContextSlot), R(1), U8(5), U8(0),
B(Star), R(15), B(Star), R(15),
B(LdaContextSlot), R(1), U8(7), U8(0), B(LdaContextSlot), R(1), U8(6), U8(0),
B(Star), R(16), B(Star), R(16),
B(CallJSRuntime), U8(%async_function_await_uncaught), R(13), U8(4),
B(LdaContextSlot), R(1), U8(7), U8(0), B(LdaContextSlot), R(1), U8(7), U8(0),
B(Star), R(13), B(Star), R(17),
B(LdaImmutableContextSlot), R(1), U8(5), U8(0), B(CallJSRuntime), U8(%async_function_await_uncaught), R(14), U8(4),
B(LdaContextSlot), R(1), U8(7), U8(0),
B(Star), R(14), B(Star), R(14),
B(LdaZero), B(LdaZero),
B(SuspendGenerator), R(14), U8(2), B(SuspendGenerator), R(13), U8(2),
B(Ldar), R(13), B(Ldar), R(14),
/* 54 S> */ B(Return), /* 54 S> */ B(Return),
B(LdaSmi), I8(-2), B(LdaSmi), I8(-2),
B(Star), R(3), B(Star), R(3),
B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(14), U8(1), B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(13), U8(1),
B(Star), R(14),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(13), U8(1),
B(Star), R(15), B(Star), R(15),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(14), U8(1),
B(Star), R(16),
B(LdaZero), B(LdaZero),
B(TestEqualStrictNoFeedback), R(16), B(TestEqualStrictNoFeedback), R(15),
B(JumpIfTrue), U8(40), B(JumpIfTrue), U8(40),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(TestEqualStrictNoFeedback), R(16), B(TestEqualStrictNoFeedback), R(15),
B(JumpIfTrue), U8(31), B(JumpIfTrue), U8(31),
B(LdaTrue), B(LdaTrue),
B(Star), R(18), B(Star), R(17),
B(Mov), R(15), R(17), B(Mov), R(14), R(16),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(17), U8(2), B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(16), U8(2),
B(PopContext), R(2), B(PopContext), R(2),
B(PopContext), R(2), B(PopContext), R(2),
B(PopContext), R(2), B(PopContext), R(2),
...@@ -1699,7 +1699,7 @@ bytecodes: [ ...@@ -1699,7 +1699,7 @@ bytecodes: [
B(LdaZero), B(LdaZero),
B(Star), R(9), B(Star), R(9),
B(Jump), U8(75), B(Jump), U8(75),
B(Ldar), R(15), B(Ldar), R(14),
B(ReThrow), B(ReThrow),
B(PopContext), R(2), B(PopContext), R(2),
B(LdaZero), B(LdaZero),
......
...@@ -11,7 +11,7 @@ snippet: " ...@@ -11,7 +11,7 @@ snippet: "
function* f() { } function* f() { }
f(); f();
" "
frame size: 12 frame size: 11
parameter count: 1 parameter count: 1
bytecode array length: 192 bytecode array length: 192
bytecodes: [ bytecodes: [
...@@ -40,30 +40,30 @@ bytecodes: [ ...@@ -40,30 +40,30 @@ bytecodes: [
B(LdaImmutableCurrentContextSlot), U8(4), B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(7), B(Star), R(7),
B(LdaZero), B(LdaZero),
/* 11 E> */ B(SuspendGenerator), R(7), U8(0), /* 11 E> */ B(SuspendGenerator), R(6), U8(0),
B(Ldar), R(6), B(Ldar), R(7),
/* 16 S> */ B(Return), /* 16 S> */ B(Return),
B(LdaSmi), I8(-2), B(LdaSmi), I8(-2),
B(Star), R(1), B(Star), R(1),
B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(7), U8(1), B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(6), U8(1),
B(Star), R(7),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(6), U8(1),
B(Star), R(8), B(Star), R(8),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(7), U8(1),
B(Star), R(9),
B(LdaZero), B(LdaZero),
B(TestEqualStrictNoFeedback), R(9), B(TestEqualStrictNoFeedback), R(8),
B(JumpIfTrue), U8(28), B(JumpIfTrue), U8(28),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(TestEqualStrictNoFeedback), R(9), B(TestEqualStrictNoFeedback), R(8),
B(JumpIfTrue), U8(19), B(JumpIfTrue), U8(19),
B(LdaTrue), B(LdaTrue),
B(Star), R(11), B(Star), R(10),
B(Mov), R(8), R(10), B(Mov), R(7), R(9),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(10), U8(2), B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(9), U8(2),
B(Star), R(4), B(Star), R(4),
B(LdaZero), B(LdaZero),
B(Star), R(3), B(Star), R(3),
B(Jump), U8(35), B(Jump), U8(35),
B(Ldar), R(8), B(Ldar), R(7),
/* 11 E> */ B(Throw), /* 11 E> */ B(Throw),
B(LdaUndefined), B(LdaUndefined),
B(Star), R(6), B(Star), R(6),
...@@ -119,7 +119,7 @@ snippet: " ...@@ -119,7 +119,7 @@ snippet: "
function* f() { yield 42 } function* f() { yield 42 }
f(); f();
" "
frame size: 12 frame size: 11
parameter count: 1 parameter count: 1
bytecode array length: 276 bytecode array length: 276
bytecodes: [ bytecodes: [
...@@ -148,64 +148,64 @@ bytecodes: [ ...@@ -148,64 +148,64 @@ bytecodes: [
B(LdaImmutableCurrentContextSlot), U8(4), B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(7), B(Star), R(7),
B(LdaZero), B(LdaZero),
/* 11 E> */ B(SuspendGenerator), R(7), U8(0), /* 11 E> */ B(SuspendGenerator), R(6), U8(0),
B(Ldar), R(6), B(Ldar), R(7),
/* 25 S> */ B(Return), /* 25 S> */ B(Return),
B(LdaSmi), I8(-2), B(LdaSmi), I8(-2),
B(Star), R(1), B(Star), R(1),
B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(7), U8(1), B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(6), U8(1),
B(Star), R(7),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(6), U8(1),
B(Star), R(8), B(Star), R(8),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(7), U8(1),
B(Star), R(9),
B(LdaZero), B(LdaZero),
B(TestEqualStrictNoFeedback), R(9), B(TestEqualStrictNoFeedback), R(8),
B(JumpIfTrue), U8(28), B(JumpIfTrue), U8(28),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(TestEqualStrictNoFeedback), R(9), B(TestEqualStrictNoFeedback), R(8),
B(JumpIfTrue), U8(19), B(JumpIfTrue), U8(19),
B(LdaTrue), B(LdaTrue),
B(Star), R(11), B(Star), R(10),
B(Mov), R(8), R(10), B(Mov), R(7), R(9),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(10), U8(2), B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(9), U8(2),
B(Star), R(4), B(Star), R(4),
B(LdaZero), B(LdaZero),
B(Star), R(3), B(Star), R(3),
B(Jump), U8(110), B(Jump), U8(110),
B(Ldar), R(8), B(Ldar), R(7),
/* 11 E> */ B(Throw), /* 11 E> */ B(Throw),
/* 16 S> */ B(LdaSmi), I8(42), /* 16 S> */ B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(6), B(Star), R(6),
B(LdaFalse), B(LdaSmi), I8(42),
B(Star), R(7), B(Star), R(7),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(6), U8(2), B(LdaFalse),
B(Star), R(6), B(Star), R(8),
B(LdaImmutableCurrentContextSlot), U8(4), /* 16 E> */ B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(7), U8(2),
B(Star), R(7), B(Star), R(7),
B(LdaSmi), I8(1), B(LdaSmi), I8(1),
B(SuspendGenerator), R(7), U8(0), B(SuspendGenerator), R(6), U8(0),
B(Ldar), R(6), B(Ldar), R(7),
/* 25 S> */ B(Return), /* 25 S> */ B(Return),
B(LdaSmi), I8(-2), B(LdaSmi), I8(-2),
B(Star), R(1), B(Star), R(1),
B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(7), U8(1), B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(6), U8(1),
B(Star), R(7),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(6), U8(1),
B(Star), R(8), B(Star), R(8),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(7), U8(1),
B(Star), R(9),
B(LdaZero), B(LdaZero),
B(TestEqualStrictNoFeedback), R(9), B(TestEqualStrictNoFeedback), R(8),
B(JumpIfTrue), U8(29), B(JumpIfTrue), U8(29),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(TestEqualStrictNoFeedback), R(9), B(TestEqualStrictNoFeedback), R(8),
B(JumpIfTrue), U8(20), B(JumpIfTrue), U8(20),
B(LdaTrue), B(LdaTrue),
B(Star), R(11), B(Star), R(10),
B(Mov), R(8), R(10), B(Mov), R(7), R(9),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(10), U8(2), B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(9), U8(2),
B(Star), R(4), B(Star), R(4),
B(LdaSmi), I8(1), B(LdaSmi), I8(1),
B(Star), R(3), B(Star), R(3),
B(Jump), U8(35), B(Jump), U8(35),
B(Ldar), R(8), B(Ldar), R(7),
/* 16 E> */ B(Throw), /* 16 E> */ B(Throw),
B(LdaUndefined), B(LdaUndefined),
B(Star), R(6), B(Star), R(6),
...@@ -267,7 +267,7 @@ snippet: " ...@@ -267,7 +267,7 @@ snippet: "
function* f() { for (let x of [42]) yield x } function* f() { for (let x of [42]) yield x }
f(); f();
" "
frame size: 18 frame size: 17
parameter count: 1 parameter count: 1
bytecode array length: 736 bytecode array length: 736
bytecodes: [ bytecodes: [
...@@ -296,30 +296,30 @@ bytecodes: [ ...@@ -296,30 +296,30 @@ bytecodes: [
B(LdaImmutableCurrentContextSlot), U8(4), B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(9), B(Star), R(9),
B(LdaZero), B(LdaZero),
/* 11 E> */ B(SuspendGenerator), R(9), U8(0), /* 11 E> */ B(SuspendGenerator), R(8), U8(0),
B(Ldar), R(8), B(Ldar), R(9),
/* 44 S> */ B(Return), /* 44 S> */ B(Return),
B(LdaSmi), I8(-2), B(LdaSmi), I8(-2),
B(Star), R(3), B(Star), R(3),
B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(9), U8(1), B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(8), U8(1),
B(Star), R(9),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(8), U8(1),
B(Star), R(10), B(Star), R(10),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(9), U8(1),
B(Star), R(11),
B(LdaZero), B(LdaZero),
B(TestEqualStrictNoFeedback), R(11), B(TestEqualStrictNoFeedback), R(10),
B(JumpIfTrue), U8(28), B(JumpIfTrue), U8(28),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(TestEqualStrictNoFeedback), R(11), B(TestEqualStrictNoFeedback), R(10),
B(JumpIfTrue), U8(19), B(JumpIfTrue), U8(19),
B(LdaTrue), B(LdaTrue),
B(Star), R(13), B(Star), R(12),
B(Mov), R(10), R(12), B(Mov), R(9), R(11),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(12), U8(2), B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(11), U8(2),
B(Star), R(6), B(Star), R(6),
B(LdaZero), B(LdaZero),
B(Star), R(5), B(Star), R(5),
B(JumpConstant), U8(15), B(JumpConstant), U8(15),
B(Ldar), R(10), B(Ldar), R(9),
/* 11 E> */ B(Throw), /* 11 E> */ B(Throw),
B(Ldar), R(closure), B(Ldar), R(closure),
B(CreateBlockContext), U8(2), B(CreateBlockContext), U8(2),
...@@ -379,34 +379,34 @@ bytecodes: [ ...@@ -379,34 +379,34 @@ bytecodes: [
B(StaCurrentContextSlot), U8(4), B(StaCurrentContextSlot), U8(4),
B(LdaContextSlot), R(1), U8(5), U8(0), B(LdaContextSlot), R(1), U8(5), U8(0),
B(StaCurrentContextSlot), U8(4), B(StaCurrentContextSlot), U8(4),
/* 36 S> */ B(LdaImmutableCurrentContextSlot), U8(4), /* 36 S> */ B(LdaImmutableContextSlot), R(1), U8(4), U8(0),
B(Star), R(12), B(Star), R(12),
B(LdaFalse), B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(13), B(Star), R(13),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(12), U8(2), B(LdaFalse),
B(Star), R(12), B(Star), R(14),
B(LdaImmutableContextSlot), R(1), U8(4), U8(0), /* 42 E> */ B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(13), U8(2),
B(Star), R(13), B(Star), R(13),
B(LdaSmi), I8(1), B(LdaSmi), I8(1),
B(SuspendGenerator), R(13), U8(0), B(SuspendGenerator), R(12), U8(0),
B(Ldar), R(12), B(Ldar), R(13),
/* 44 S> */ B(Return), /* 44 S> */ B(Return),
B(LdaSmi), I8(-2), B(LdaSmi), I8(-2),
B(Star), R(3), B(Star), R(3),
B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(13), U8(1), B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(12), U8(1),
B(Star), R(13),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(12), U8(1),
B(Star), R(14), B(Star), R(14),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(13), U8(1),
B(Star), R(15),
B(LdaZero), B(LdaZero),
B(TestEqualStrictNoFeedback), R(15), B(TestEqualStrictNoFeedback), R(14),
B(JumpIfTrue), U8(40), B(JumpIfTrue), U8(40),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(TestEqualStrictNoFeedback), R(15), B(TestEqualStrictNoFeedback), R(14),
B(JumpIfTrue), U8(31), B(JumpIfTrue), U8(31),
B(LdaTrue), B(LdaTrue),
B(Star), R(17), B(Star), R(16),
B(Mov), R(14), R(16), B(Mov), R(13), R(15),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(16), U8(2), B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(15), U8(2),
B(PopContext), R(2), B(PopContext), R(2),
B(PopContext), R(2), B(PopContext), R(2),
B(PopContext), R(2), B(PopContext), R(2),
...@@ -417,7 +417,7 @@ bytecodes: [ ...@@ -417,7 +417,7 @@ bytecodes: [
B(LdaZero), B(LdaZero),
B(Star), R(8), B(Star), R(8),
B(Jump), U8(71), B(Jump), U8(71),
B(Ldar), R(14), B(Ldar), R(13),
/* 36 E> */ B(Throw), /* 36 E> */ B(Throw),
B(PopContext), R(2), B(PopContext), R(2),
B(LdaZero), B(LdaZero),
......
...@@ -11,7 +11,7 @@ top level: yes ...@@ -11,7 +11,7 @@ top level: yes
snippet: " snippet: "
import \"bar\"; import \"bar\";
" "
frame size: 9 frame size: 8
parameter count: 2 parameter count: 2
bytecode array length: 136 bytecode array length: 136
bytecodes: [ bytecodes: [
...@@ -43,29 +43,29 @@ bytecodes: [ ...@@ -43,29 +43,29 @@ bytecodes: [
B(LdaImmutableCurrentContextSlot), U8(4), B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(4), B(Star), R(4),
B(LdaZero), B(LdaZero),
/* 0 E> */ B(SuspendGenerator), R(4), U8(0), /* 0 E> */ B(SuspendGenerator), R(3), U8(0),
B(Ldar), R(3), B(Ldar), R(4),
/* 13 S> */ B(Return), /* 13 S> */ B(Return),
B(LdaSmi), I8(-2), B(LdaSmi), I8(-2),
B(Star), R(1), B(Star), R(1),
B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(4), U8(1), B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(3), U8(1),
B(Star), R(4),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(3), U8(1),
B(Star), R(5), B(Star), R(5),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(4), U8(1),
B(Star), R(6),
B(LdaZero), B(LdaZero),
B(TestEqualStrictNoFeedback), R(6), B(TestEqualStrictNoFeedback), R(5),
B(JumpIfTrue), U8(22), B(JumpIfTrue), U8(22),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(TestEqualStrictNoFeedback), R(6), B(TestEqualStrictNoFeedback), R(5),
B(JumpIfTrue), U8(13), B(JumpIfTrue), U8(13),
B(LdaTrue), B(LdaTrue),
B(Star), R(8), B(Star), R(7),
B(Mov), R(5), R(7), B(Mov), R(4), R(6),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(7), U8(2), B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(6), U8(2),
/* 13 S> */ B(Return), /* 13 S> */ B(Return),
B(Ldar), R(5), B(Ldar), R(4),
/* 0 E> */ B(Throw), /* 0 E> */ B(Throw),
B(Ldar), R(5), B(Ldar), R(4),
B(StaCurrentContextSlot), U8(5), B(StaCurrentContextSlot), U8(5),
B(LdaCurrentContextSlot), U8(5), B(LdaCurrentContextSlot), U8(5),
B(Star), R(3), B(Star), R(3),
...@@ -85,7 +85,7 @@ handlers: [ ...@@ -85,7 +85,7 @@ handlers: [
snippet: " snippet: "
import {foo} from \"bar\"; import {foo} from \"bar\";
" "
frame size: 9 frame size: 8
parameter count: 2 parameter count: 2
bytecode array length: 136 bytecode array length: 136
bytecodes: [ bytecodes: [
...@@ -117,29 +117,29 @@ bytecodes: [ ...@@ -117,29 +117,29 @@ bytecodes: [
B(LdaImmutableCurrentContextSlot), U8(4), B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(4), B(Star), R(4),
B(LdaZero), B(LdaZero),
/* 0 E> */ B(SuspendGenerator), R(4), U8(0), /* 0 E> */ B(SuspendGenerator), R(3), U8(0),
B(Ldar), R(3), B(Ldar), R(4),
/* 24 S> */ B(Return), /* 24 S> */ B(Return),
B(LdaSmi), I8(-2), B(LdaSmi), I8(-2),
B(Star), R(1), B(Star), R(1),
B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(4), U8(1), B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(3), U8(1),
B(Star), R(4),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(3), U8(1),
B(Star), R(5), B(Star), R(5),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(4), U8(1),
B(Star), R(6),
B(LdaZero), B(LdaZero),
B(TestEqualStrictNoFeedback), R(6), B(TestEqualStrictNoFeedback), R(5),
B(JumpIfTrue), U8(22), B(JumpIfTrue), U8(22),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(TestEqualStrictNoFeedback), R(6), B(TestEqualStrictNoFeedback), R(5),
B(JumpIfTrue), U8(13), B(JumpIfTrue), U8(13),
B(LdaTrue), B(LdaTrue),
B(Star), R(8), B(Star), R(7),
B(Mov), R(5), R(7), B(Mov), R(4), R(6),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(7), U8(2), B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(6), U8(2),
/* 24 S> */ B(Return), /* 24 S> */ B(Return),
B(Ldar), R(5), B(Ldar), R(4),
/* 0 E> */ B(Throw), /* 0 E> */ B(Throw),
B(Ldar), R(5), B(Ldar), R(4),
B(StaCurrentContextSlot), U8(5), B(StaCurrentContextSlot), U8(5),
B(LdaCurrentContextSlot), U8(5), B(LdaCurrentContextSlot), U8(5),
B(Star), R(3), B(Star), R(3),
...@@ -161,7 +161,7 @@ snippet: " ...@@ -161,7 +161,7 @@ snippet: "
goo(42); goo(42);
{ let x; { goo(42) } }; { let x; { goo(42) } };
" "
frame size: 10 frame size: 9
parameter count: 2 parameter count: 2
bytecode array length: 198 bytecode array length: 198
bytecodes: [ bytecodes: [
...@@ -193,27 +193,27 @@ bytecodes: [ ...@@ -193,27 +193,27 @@ bytecodes: [
B(LdaImmutableCurrentContextSlot), U8(4), B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(5), B(Star), R(5),
B(LdaZero), B(LdaZero),
/* 0 E> */ B(SuspendGenerator), R(5), U8(0), /* 0 E> */ B(SuspendGenerator), R(4), U8(0),
B(Ldar), R(4), B(Ldar), R(5),
/* 64 S> */ B(Return), /* 64 S> */ B(Return),
B(LdaSmi), I8(-2), B(LdaSmi), I8(-2),
B(Star), R(2), B(Star), R(2),
B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(5), U8(1), B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(4), U8(1),
B(Star), R(5),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(4), U8(1),
B(Star), R(6), B(Star), R(6),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(5), U8(1),
B(Star), R(7),
B(LdaZero), B(LdaZero),
B(TestEqualStrictNoFeedback), R(7), B(TestEqualStrictNoFeedback), R(6),
B(JumpIfTrue), U8(22), B(JumpIfTrue), U8(22),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(TestEqualStrictNoFeedback), R(7), B(TestEqualStrictNoFeedback), R(6),
B(JumpIfTrue), U8(13), B(JumpIfTrue), U8(13),
B(LdaTrue), B(LdaTrue),
B(Star), R(9), B(Star), R(8),
B(Mov), R(6), R(8), B(Mov), R(5), R(7),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(8), U8(2), B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(7), U8(2),
/* 64 S> */ B(Return), /* 64 S> */ B(Return),
B(Ldar), R(6), B(Ldar), R(5),
/* 0 E> */ B(Throw), /* 0 E> */ B(Throw),
/* 32 S> */ B(LdaModuleVariable), I8(-1), U8(0), /* 32 S> */ B(LdaModuleVariable), I8(-1), U8(0),
B(JumpIfNotHole), U8(11), B(JumpIfNotHole), U8(11),
...@@ -264,7 +264,7 @@ snippet: " ...@@ -264,7 +264,7 @@ snippet: "
foo++; foo++;
{ let x; { foo++ } }; { let x; { foo++ } };
" "
frame size: 10 frame size: 9
parameter count: 2 parameter count: 2
bytecode array length: 178 bytecode array length: 178
bytecodes: [ bytecodes: [
...@@ -296,27 +296,27 @@ bytecodes: [ ...@@ -296,27 +296,27 @@ bytecodes: [
B(LdaImmutableCurrentContextSlot), U8(4), B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(5), B(Star), R(5),
B(LdaZero), B(LdaZero),
/* 0 E> */ B(SuspendGenerator), R(5), U8(0), /* 0 E> */ B(SuspendGenerator), R(4), U8(0),
B(Ldar), R(4), B(Ldar), R(5),
/* 49 S> */ B(Return), /* 49 S> */ B(Return),
B(LdaSmi), I8(-2), B(LdaSmi), I8(-2),
B(Star), R(2), B(Star), R(2),
B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(5), U8(1), B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(4), U8(1),
B(Star), R(5),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(4), U8(1),
B(Star), R(6), B(Star), R(6),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(5), U8(1),
B(Star), R(7),
B(LdaZero), B(LdaZero),
B(TestEqualStrictNoFeedback), R(7), B(TestEqualStrictNoFeedback), R(6),
B(JumpIfTrue), U8(22), B(JumpIfTrue), U8(22),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(TestEqualStrictNoFeedback), R(7), B(TestEqualStrictNoFeedback), R(6),
B(JumpIfTrue), U8(13), B(JumpIfTrue), U8(13),
B(LdaTrue), B(LdaTrue),
B(Star), R(9), B(Star), R(8),
B(Mov), R(6), R(8), B(Mov), R(5), R(7),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(8), U8(2), B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(7), U8(2),
/* 49 S> */ B(Return), /* 49 S> */ B(Return),
B(Ldar), R(6), B(Ldar), R(5),
/* 0 E> */ B(Throw), /* 0 E> */ B(Throw),
/* 17 S> */ B(LdaSmi), I8(42), /* 17 S> */ B(LdaSmi), I8(42),
/* 17 E> */ B(StaModuleVariable), I8(1), U8(0), /* 17 E> */ B(StaModuleVariable), I8(1), U8(0),
...@@ -359,7 +359,7 @@ snippet: " ...@@ -359,7 +359,7 @@ snippet: "
foo++; foo++;
{ let x; { foo++ } }; { let x; { foo++ } };
" "
frame size: 10 frame size: 9
parameter count: 2 parameter count: 2
bytecode array length: 182 bytecode array length: 182
bytecodes: [ bytecodes: [
...@@ -393,27 +393,27 @@ bytecodes: [ ...@@ -393,27 +393,27 @@ bytecodes: [
B(LdaImmutableCurrentContextSlot), U8(4), B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(5), B(Star), R(5),
B(LdaZero), B(LdaZero),
/* 0 E> */ B(SuspendGenerator), R(5), U8(0), /* 0 E> */ B(SuspendGenerator), R(4), U8(0),
B(Ldar), R(4), B(Ldar), R(5),
/* 49 S> */ B(Return), /* 49 S> */ B(Return),
B(LdaSmi), I8(-2), B(LdaSmi), I8(-2),
B(Star), R(2), B(Star), R(2),
B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(5), U8(1), B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(4), U8(1),
B(Star), R(5),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(4), U8(1),
B(Star), R(6), B(Star), R(6),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(5), U8(1),
B(Star), R(7),
B(LdaZero), B(LdaZero),
B(TestEqualStrictNoFeedback), R(7), B(TestEqualStrictNoFeedback), R(6),
B(JumpIfTrue), U8(22), B(JumpIfTrue), U8(22),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(TestEqualStrictNoFeedback), R(7), B(TestEqualStrictNoFeedback), R(6),
B(JumpIfTrue), U8(13), B(JumpIfTrue), U8(13),
B(LdaTrue), B(LdaTrue),
B(Star), R(9), B(Star), R(8),
B(Mov), R(6), R(8), B(Mov), R(5), R(7),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(8), U8(2), B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(7), U8(2),
/* 49 S> */ B(Return), /* 49 S> */ B(Return),
B(Ldar), R(6), B(Ldar), R(5),
/* 0 E> */ B(Throw), /* 0 E> */ B(Throw),
/* 17 S> */ B(LdaSmi), I8(42), /* 17 S> */ B(LdaSmi), I8(42),
/* 17 E> */ B(StaModuleVariable), I8(1), U8(0), /* 17 E> */ B(StaModuleVariable), I8(1), U8(0),
...@@ -456,7 +456,7 @@ snippet: " ...@@ -456,7 +456,7 @@ snippet: "
foo++; foo++;
{ let x; { foo++ } }; { let x; { foo++ } };
" "
frame size: 10 frame size: 9
parameter count: 2 parameter count: 2
bytecode array length: 186 bytecode array length: 186
bytecodes: [ bytecodes: [
...@@ -490,27 +490,27 @@ bytecodes: [ ...@@ -490,27 +490,27 @@ bytecodes: [
B(LdaImmutableCurrentContextSlot), U8(4), B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(5), B(Star), R(5),
B(LdaZero), B(LdaZero),
/* 0 E> */ B(SuspendGenerator), R(5), U8(0), /* 0 E> */ B(SuspendGenerator), R(4), U8(0),
B(Ldar), R(4), B(Ldar), R(5),
/* 51 S> */ B(Return), /* 51 S> */ B(Return),
B(LdaSmi), I8(-2), B(LdaSmi), I8(-2),
B(Star), R(2), B(Star), R(2),
B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(5), U8(1), B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(4), U8(1),
B(Star), R(5),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(4), U8(1),
B(Star), R(6), B(Star), R(6),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(5), U8(1),
B(Star), R(7),
B(LdaZero), B(LdaZero),
B(TestEqualStrictNoFeedback), R(7), B(TestEqualStrictNoFeedback), R(6),
B(JumpIfTrue), U8(22), B(JumpIfTrue), U8(22),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(TestEqualStrictNoFeedback), R(7), B(TestEqualStrictNoFeedback), R(6),
B(JumpIfTrue), U8(13), B(JumpIfTrue), U8(13),
B(LdaTrue), B(LdaTrue),
B(Star), R(9), B(Star), R(8),
B(Mov), R(6), R(8), B(Mov), R(5), R(7),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(8), U8(2), B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(7), U8(2),
/* 51 S> */ B(Return), /* 51 S> */ B(Return),
B(Ldar), R(6), B(Ldar), R(5),
/* 0 E> */ B(Throw), /* 0 E> */ B(Throw),
/* 19 S> */ B(LdaSmi), I8(42), /* 19 S> */ B(LdaSmi), I8(42),
/* 19 E> */ B(StaModuleVariable), I8(1), U8(0), /* 19 E> */ B(StaModuleVariable), I8(1), U8(0),
...@@ -551,7 +551,7 @@ handlers: [ ...@@ -551,7 +551,7 @@ handlers: [
snippet: " snippet: "
export default (function () {}); export default (function () {});
" "
frame size: 9 frame size: 8
parameter count: 2 parameter count: 2
bytecode array length: 147 bytecode array length: 147
bytecodes: [ bytecodes: [
...@@ -585,29 +585,29 @@ bytecodes: [ ...@@ -585,29 +585,29 @@ bytecodes: [
B(LdaImmutableCurrentContextSlot), U8(4), B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(4), B(Star), R(4),
B(LdaZero), B(LdaZero),
/* 0 E> */ B(SuspendGenerator), R(4), U8(0), /* 0 E> */ B(SuspendGenerator), R(3), U8(0),
B(Ldar), R(3), B(Ldar), R(4),
/* 32 S> */ B(Return), /* 32 S> */ B(Return),
B(LdaSmi), I8(-2), B(LdaSmi), I8(-2),
B(Star), R(1), B(Star), R(1),
B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(4), U8(1), B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(3), U8(1),
B(Star), R(4),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(3), U8(1),
B(Star), R(5), B(Star), R(5),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(4), U8(1),
B(Star), R(6),
B(LdaZero), B(LdaZero),
B(TestEqualStrictNoFeedback), R(6), B(TestEqualStrictNoFeedback), R(5),
B(JumpIfTrue), U8(22), B(JumpIfTrue), U8(22),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(TestEqualStrictNoFeedback), R(6), B(TestEqualStrictNoFeedback), R(5),
B(JumpIfTrue), U8(13), B(JumpIfTrue), U8(13),
B(LdaTrue), B(LdaTrue),
B(Star), R(8), B(Star), R(7),
B(Mov), R(5), R(7), B(Mov), R(4), R(6),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(7), U8(2), B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(6), U8(2),
/* 32 S> */ B(Return), /* 32 S> */ B(Return),
B(Ldar), R(5), B(Ldar), R(4),
/* 0 E> */ B(Throw), /* 0 E> */ B(Throw),
B(Ldar), R(5), B(Ldar), R(4),
B(StaCurrentContextSlot), U8(5), B(StaCurrentContextSlot), U8(5),
B(CreateClosure), U8(2), U8(3), U8(0), B(CreateClosure), U8(2), U8(3), U8(0),
B(StaModuleVariable), I8(1), U8(0), B(StaModuleVariable), I8(1), U8(0),
...@@ -630,7 +630,7 @@ handlers: [ ...@@ -630,7 +630,7 @@ handlers: [
snippet: " snippet: "
export default (class {}); export default (class {});
" "
frame size: 9 frame size: 8
parameter count: 2 parameter count: 2
bytecode array length: 180 bytecode array length: 180
bytecodes: [ bytecodes: [
...@@ -664,29 +664,29 @@ bytecodes: [ ...@@ -664,29 +664,29 @@ bytecodes: [
B(LdaImmutableCurrentContextSlot), U8(4), B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(4), B(Star), R(4),
B(LdaZero), B(LdaZero),
/* 0 E> */ B(SuspendGenerator), R(4), U8(0), /* 0 E> */ B(SuspendGenerator), R(3), U8(0),
B(Ldar), R(3), B(Ldar), R(4),
/* 26 S> */ B(Return), /* 26 S> */ B(Return),
B(LdaSmi), I8(-2), B(LdaSmi), I8(-2),
B(Star), R(1), B(Star), R(1),
B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(4), U8(1), B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(3), U8(1),
B(Star), R(4),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(3), U8(1),
B(Star), R(5), B(Star), R(5),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(4), U8(1),
B(Star), R(6),
B(LdaZero), B(LdaZero),
B(TestEqualStrictNoFeedback), R(6), B(TestEqualStrictNoFeedback), R(5),
B(JumpIfTrue), U8(22), B(JumpIfTrue), U8(22),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(TestEqualStrictNoFeedback), R(6), B(TestEqualStrictNoFeedback), R(5),
B(JumpIfTrue), U8(13), B(JumpIfTrue), U8(13),
B(LdaTrue), B(LdaTrue),
B(Star), R(8), B(Star), R(7),
B(Mov), R(5), R(7), B(Mov), R(4), R(6),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(7), U8(2), B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(6), U8(2),
/* 26 S> */ B(Return), /* 26 S> */ B(Return),
B(Ldar), R(5), B(Ldar), R(4),
/* 0 E> */ B(Throw), /* 0 E> */ B(Throw),
B(Ldar), R(5), B(Ldar), R(4),
B(StaCurrentContextSlot), U8(5), B(StaCurrentContextSlot), U8(5),
B(CreateClosure), U8(2), U8(3), U8(0), B(CreateClosure), U8(2), U8(3), U8(0),
B(Star), R(3), B(Star), R(3),
...@@ -721,7 +721,7 @@ handlers: [ ...@@ -721,7 +721,7 @@ handlers: [
snippet: " snippet: "
export {foo as goo} from \"bar\" export {foo as goo} from \"bar\"
" "
frame size: 9 frame size: 8
parameter count: 2 parameter count: 2
bytecode array length: 136 bytecode array length: 136
bytecodes: [ bytecodes: [
...@@ -753,29 +753,29 @@ bytecodes: [ ...@@ -753,29 +753,29 @@ bytecodes: [
B(LdaImmutableCurrentContextSlot), U8(4), B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(4), B(Star), R(4),
B(LdaZero), B(LdaZero),
/* 0 E> */ B(SuspendGenerator), R(4), U8(0), /* 0 E> */ B(SuspendGenerator), R(3), U8(0),
B(Ldar), R(3), B(Ldar), R(4),
/* 30 S> */ B(Return), /* 30 S> */ B(Return),
B(LdaSmi), I8(-2), B(LdaSmi), I8(-2),
B(Star), R(1), B(Star), R(1),
B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(4), U8(1), B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(3), U8(1),
B(Star), R(4),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(3), U8(1),
B(Star), R(5), B(Star), R(5),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(4), U8(1),
B(Star), R(6),
B(LdaZero), B(LdaZero),
B(TestEqualStrictNoFeedback), R(6), B(TestEqualStrictNoFeedback), R(5),
B(JumpIfTrue), U8(22), B(JumpIfTrue), U8(22),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(TestEqualStrictNoFeedback), R(6), B(TestEqualStrictNoFeedback), R(5),
B(JumpIfTrue), U8(13), B(JumpIfTrue), U8(13),
B(LdaTrue), B(LdaTrue),
B(Star), R(8), B(Star), R(7),
B(Mov), R(5), R(7), B(Mov), R(4), R(6),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(7), U8(2), B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(6), U8(2),
/* 30 S> */ B(Return), /* 30 S> */ B(Return),
B(Ldar), R(5), B(Ldar), R(4),
/* 0 E> */ B(Throw), /* 0 E> */ B(Throw),
B(Ldar), R(5), B(Ldar), R(4),
B(StaCurrentContextSlot), U8(5), B(StaCurrentContextSlot), U8(5),
B(LdaCurrentContextSlot), U8(5), B(LdaCurrentContextSlot), U8(5),
B(Star), R(3), B(Star), R(3),
...@@ -795,7 +795,7 @@ handlers: [ ...@@ -795,7 +795,7 @@ handlers: [
snippet: " snippet: "
export * from \"bar\" export * from \"bar\"
" "
frame size: 9 frame size: 8
parameter count: 2 parameter count: 2
bytecode array length: 136 bytecode array length: 136
bytecodes: [ bytecodes: [
...@@ -827,29 +827,29 @@ bytecodes: [ ...@@ -827,29 +827,29 @@ bytecodes: [
B(LdaImmutableCurrentContextSlot), U8(4), B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(4), B(Star), R(4),
B(LdaZero), B(LdaZero),
/* 0 E> */ B(SuspendGenerator), R(4), U8(0), /* 0 E> */ B(SuspendGenerator), R(3), U8(0),
B(Ldar), R(3), B(Ldar), R(4),
/* 19 S> */ B(Return), /* 19 S> */ B(Return),
B(LdaSmi), I8(-2), B(LdaSmi), I8(-2),
B(Star), R(1), B(Star), R(1),
B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(4), U8(1), B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(3), U8(1),
B(Star), R(4),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(3), U8(1),
B(Star), R(5), B(Star), R(5),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(4), U8(1),
B(Star), R(6),
B(LdaZero), B(LdaZero),
B(TestEqualStrictNoFeedback), R(6), B(TestEqualStrictNoFeedback), R(5),
B(JumpIfTrue), U8(22), B(JumpIfTrue), U8(22),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(TestEqualStrictNoFeedback), R(6), B(TestEqualStrictNoFeedback), R(5),
B(JumpIfTrue), U8(13), B(JumpIfTrue), U8(13),
B(LdaTrue), B(LdaTrue),
B(Star), R(8), B(Star), R(7),
B(Mov), R(5), R(7), B(Mov), R(4), R(6),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(7), U8(2), B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(6), U8(2),
/* 19 S> */ B(Return), /* 19 S> */ B(Return),
B(Ldar), R(5), B(Ldar), R(4),
/* 0 E> */ B(Throw), /* 0 E> */ B(Throw),
B(Ldar), R(5), B(Ldar), R(4),
B(StaCurrentContextSlot), U8(5), B(StaCurrentContextSlot), U8(5),
B(LdaCurrentContextSlot), U8(5), B(LdaCurrentContextSlot), U8(5),
B(Star), R(3), B(Star), R(3),
...@@ -870,7 +870,7 @@ snippet: " ...@@ -870,7 +870,7 @@ snippet: "
import * as foo from \"bar\" import * as foo from \"bar\"
foo.f(foo, foo.x); foo.f(foo, foo.x);
" "
frame size: 9 frame size: 8
parameter count: 2 parameter count: 2
bytecode array length: 174 bytecode array length: 174
bytecodes: [ bytecodes: [
...@@ -906,27 +906,27 @@ bytecodes: [ ...@@ -906,27 +906,27 @@ bytecodes: [
B(LdaImmutableCurrentContextSlot), U8(4), B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(4), B(Star), R(4),
B(LdaZero), B(LdaZero),
/* 0 E> */ B(SuspendGenerator), R(4), U8(0), /* 0 E> */ B(SuspendGenerator), R(3), U8(0),
B(Ldar), R(3), B(Ldar), R(4),
/* 45 S> */ B(Return), /* 45 S> */ B(Return),
B(LdaSmi), I8(-2), B(LdaSmi), I8(-2),
B(Star), R(1), B(Star), R(1),
B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(4), U8(1), B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(3), U8(1),
B(Star), R(4),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(3), U8(1),
B(Star), R(5), B(Star), R(5),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(4), U8(1),
B(Star), R(6),
B(LdaZero), B(LdaZero),
B(TestEqualStrictNoFeedback), R(6), B(TestEqualStrictNoFeedback), R(5),
B(JumpIfTrue), U8(22), B(JumpIfTrue), U8(22),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(TestEqualStrictNoFeedback), R(6), B(TestEqualStrictNoFeedback), R(5),
B(JumpIfTrue), U8(13), B(JumpIfTrue), U8(13),
B(LdaTrue), B(LdaTrue),
B(Star), R(8), B(Star), R(7),
B(Mov), R(5), R(7), B(Mov), R(4), R(6),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(7), U8(2), B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(6), U8(2),
/* 45 S> */ B(Return), /* 45 S> */ B(Return),
B(Ldar), R(5), B(Ldar), R(4),
/* 0 E> */ B(Throw), /* 0 E> */ B(Throw),
/* 27 S> */ B(LdaImmutableCurrentContextSlot), U8(5), /* 27 S> */ B(LdaImmutableCurrentContextSlot), U8(5),
B(Star), R(4), B(Star), R(4),
......
...@@ -271,7 +271,7 @@ snippet: " ...@@ -271,7 +271,7 @@ snippet: "
} }
f(); f();
" "
frame size: 15 frame size: 14
parameter count: 1 parameter count: 1
bytecode array length: 350 bytecode array length: 350
bytecodes: [ bytecodes: [
...@@ -300,30 +300,30 @@ bytecodes: [ ...@@ -300,30 +300,30 @@ bytecodes: [
B(LdaImmutableCurrentContextSlot), U8(4), B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(10), B(Star), R(10),
B(LdaZero), B(LdaZero),
/* 11 E> */ B(SuspendGenerator), R(10), U8(0), /* 11 E> */ B(SuspendGenerator), R(9), U8(0),
B(Ldar), R(9), B(Ldar), R(10),
/* 62 S> */ B(Return), /* 62 S> */ B(Return),
B(LdaSmi), I8(-2), B(LdaSmi), I8(-2),
B(Star), R(4), B(Star), R(4),
B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(10), U8(1), B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(9), U8(1),
B(Star), R(10),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(9), U8(1),
B(Star), R(11), B(Star), R(11),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(10), U8(1),
B(Star), R(12),
B(LdaZero), B(LdaZero),
B(TestEqualStrictNoFeedback), R(12), B(TestEqualStrictNoFeedback), R(11),
B(JumpIfTrue), U8(28), B(JumpIfTrue), U8(28),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(TestEqualStrictNoFeedback), R(12), B(TestEqualStrictNoFeedback), R(11),
B(JumpIfTrue), U8(19), B(JumpIfTrue), U8(19),
B(LdaTrue), B(LdaTrue),
B(Star), R(14), B(Star), R(13),
B(Mov), R(11), R(13), B(Mov), R(10), R(12),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(13), U8(2), B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(12), U8(2),
B(Star), R(7), B(Star), R(7),
B(LdaZero), B(LdaZero),
B(Star), R(6), B(Star), R(6),
B(Jump), U8(193), B(Jump), U8(193),
B(Ldar), R(11), B(Ldar), R(10),
/* 11 E> */ B(Throw), /* 11 E> */ B(Throw),
B(Ldar), R(closure), B(Ldar), R(closure),
B(CreateBlockContext), U8(1), B(CreateBlockContext), U8(1),
...@@ -453,7 +453,7 @@ snippet: " ...@@ -453,7 +453,7 @@ snippet: "
} }
f(); f();
" "
frame size: 14 frame size: 13
parameter count: 1 parameter count: 1
bytecode array length: 469 bytecode array length: 469
bytecodes: [ bytecodes: [
...@@ -482,30 +482,30 @@ bytecodes: [ ...@@ -482,30 +482,30 @@ bytecodes: [
B(LdaImmutableCurrentContextSlot), U8(4), B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(9), B(Star), R(9),
B(LdaZero), B(LdaZero),
/* 11 E> */ B(SuspendGenerator), R(9), U8(0), /* 11 E> */ B(SuspendGenerator), R(8), U8(0),
B(Ldar), R(8), B(Ldar), R(9),
/* 56 S> */ B(Return), /* 56 S> */ B(Return),
B(LdaSmi), I8(-2), B(LdaSmi), I8(-2),
B(Star), R(3), B(Star), R(3),
B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(9), U8(1), B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(8), U8(1),
B(Star), R(9),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(8), U8(1),
B(Star), R(10), B(Star), R(10),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(9), U8(1),
B(Star), R(11),
B(LdaZero), B(LdaZero),
B(TestEqualStrictNoFeedback), R(11), B(TestEqualStrictNoFeedback), R(10),
B(JumpIfTrue), U8(28), B(JumpIfTrue), U8(28),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(TestEqualStrictNoFeedback), R(11), B(TestEqualStrictNoFeedback), R(10),
B(JumpIfTrue), U8(19), B(JumpIfTrue), U8(19),
B(LdaTrue), B(LdaTrue),
B(Star), R(13), B(Star), R(12),
B(Mov), R(10), R(12), B(Mov), R(9), R(11),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(12), U8(2), B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(11), U8(2),
B(Star), R(6), B(Star), R(6),
B(LdaZero), B(LdaZero),
B(Star), R(5), B(Star), R(5),
B(JumpConstant), U8(6), B(JumpConstant), U8(6),
B(Ldar), R(10), B(Ldar), R(9),
/* 11 E> */ B(Throw), /* 11 E> */ B(Throw),
B(Ldar), R(closure), B(Ldar), R(closure),
B(CreateBlockContext), U8(2), B(CreateBlockContext), U8(2),
...@@ -569,34 +569,34 @@ bytecodes: [ ...@@ -569,34 +569,34 @@ bytecodes: [
B(TestEqual), R(8), U8(6), B(TestEqual), R(8), U8(6),
B(JumpIfFalse), U8(102), B(JumpIfFalse), U8(102),
/* 18 E> */ B(StackCheck), /* 18 E> */ B(StackCheck),
/* 47 S> */ B(LdaCurrentContextSlot), U8(4), /* 47 S> */ B(LdaImmutableContextSlot), R(1), U8(4), U8(0),
B(Star), R(8), B(Star), R(8),
B(LdaFalse), B(LdaCurrentContextSlot), U8(4),
B(Star), R(9), B(Star), R(9),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(8), U8(2), B(LdaFalse),
B(Star), R(8), B(Star), R(10),
B(LdaImmutableContextSlot), R(1), U8(4), U8(0), /* 53 E> */ B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(9), U8(2),
B(Star), R(9), B(Star), R(9),
B(LdaSmi), I8(1), B(LdaSmi), I8(1),
B(SuspendGenerator), R(9), U8(0), B(SuspendGenerator), R(8), U8(0),
B(Ldar), R(8), B(Ldar), R(9),
/* 56 S> */ B(Return), /* 56 S> */ B(Return),
B(LdaSmi), I8(-2), B(LdaSmi), I8(-2),
B(Star), R(3), B(Star), R(3),
B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(9), U8(1), B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(8), U8(1),
B(Star), R(9),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(8), U8(1),
B(Star), R(10), B(Star), R(10),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(9), U8(1),
B(Star), R(11),
B(LdaZero), B(LdaZero),
B(TestEqualStrictNoFeedback), R(11), B(TestEqualStrictNoFeedback), R(10),
B(JumpIfTrue), U8(37), B(JumpIfTrue), U8(37),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(TestEqualStrictNoFeedback), R(11), B(TestEqualStrictNoFeedback), R(10),
B(JumpIfTrue), U8(28), B(JumpIfTrue), U8(28),
B(LdaTrue), B(LdaTrue),
B(Star), R(13), B(Star), R(12),
B(Mov), R(10), R(12), B(Mov), R(9), R(11),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(12), U8(2), B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(11), U8(2),
B(PopContext), R(2), B(PopContext), R(2),
B(PopContext), R(2), B(PopContext), R(2),
B(PopContext), R(1), B(PopContext), R(1),
...@@ -605,7 +605,7 @@ bytecodes: [ ...@@ -605,7 +605,7 @@ bytecodes: [
B(LdaSmi), I8(1), B(LdaSmi), I8(1),
B(Star), R(5), B(Star), R(5),
B(Jump), U8(73), B(Jump), U8(73),
B(Ldar), R(10), B(Ldar), R(9),
/* 47 E> */ B(Throw), /* 47 E> */ B(Throw),
B(LdaZero), B(LdaZero),
B(StaContextSlot), R(1), U8(7), U8(0), B(StaContextSlot), R(1), U8(7), U8(0),
...@@ -862,7 +862,7 @@ snippet: " ...@@ -862,7 +862,7 @@ snippet: "
} }
f(); f();
" "
frame size: 15 frame size: 14
parameter count: 1 parameter count: 1
bytecode array length: 508 bytecode array length: 508
bytecodes: [ bytecodes: [
...@@ -953,41 +953,41 @@ bytecodes: [ ...@@ -953,41 +953,41 @@ bytecodes: [
B(TestEqual), R(9), U8(6), B(TestEqual), R(9), U8(6),
B(JumpIfFalse), U8(128), B(JumpIfFalse), U8(128),
/* 23 E> */ B(StackCheck), /* 23 E> */ B(StackCheck),
/* 52 S> */ B(LdaImmutableContextSlot), R(1), U8(4), U8(0),
B(Star), R(9),
/* 58 S> */ B(LdaCurrentContextSlot), U8(4), /* 58 S> */ B(LdaCurrentContextSlot), U8(4),
B(StaContextSlot), R(1), U8(5), U8(0), B(StaContextSlot), R(1), U8(5), U8(0),
/* 52 S> */ B(LdaUndefined), /* 52 S> */ B(LdaUndefined),
B(Star), R(9),
B(LdaImmutableContextSlot), R(1), U8(4), U8(0),
B(Star), R(10), B(Star), R(10),
B(LdaContextSlot), R(1), U8(5), U8(0), B(LdaImmutableContextSlot), R(1), U8(4), U8(0),
B(Star), R(11), B(Star), R(11),
B(LdaContextSlot), R(1), U8(6), U8(0), B(LdaContextSlot), R(1), U8(5), U8(0),
B(Star), R(12), B(Star), R(12),
B(CallJSRuntime), U8(%async_function_await_uncaught), R(9), U8(4),
B(LdaContextSlot), R(1), U8(6), U8(0), B(LdaContextSlot), R(1), U8(6), U8(0),
B(Star), R(9), B(Star), R(13),
B(LdaImmutableContextSlot), R(1), U8(4), U8(0), B(CallJSRuntime), U8(%async_function_await_uncaught), R(10), U8(4),
B(LdaContextSlot), R(1), U8(6), U8(0),
B(Star), R(10), B(Star), R(10),
B(LdaZero), B(LdaZero),
B(SuspendGenerator), R(10), U8(2), B(SuspendGenerator), R(9), U8(2),
B(Ldar), R(9), B(Ldar), R(10),
/* 61 S> */ B(Return), /* 61 S> */ B(Return),
B(LdaSmi), I8(-2), B(LdaSmi), I8(-2),
B(Star), R(3), B(Star), R(3),
B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(10), U8(1), B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(9), U8(1),
B(Star), R(10),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(9), U8(1),
B(Star), R(11), B(Star), R(11),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(10), U8(1),
B(Star), R(12),
B(LdaZero), B(LdaZero),
B(TestEqualStrictNoFeedback), R(12), B(TestEqualStrictNoFeedback), R(11),
B(JumpIfTrue), U8(40), B(JumpIfTrue), U8(40),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(TestEqualStrictNoFeedback), R(12), B(TestEqualStrictNoFeedback), R(11),
B(JumpIfTrue), U8(31), B(JumpIfTrue), U8(31),
B(LdaTrue), B(LdaTrue),
B(Star), R(14), B(Star), R(13),
B(Mov), R(11), R(13), B(Mov), R(10), R(12),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(13), U8(2), B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(12), U8(2),
B(PopContext), R(2), B(PopContext), R(2),
B(PopContext), R(2), B(PopContext), R(2),
B(PopContext), R(1), B(PopContext), R(1),
...@@ -998,7 +998,7 @@ bytecodes: [ ...@@ -998,7 +998,7 @@ bytecodes: [
B(LdaZero), B(LdaZero),
B(Star), R(5), B(Star), R(5),
B(Jump), U8(136), B(Jump), U8(136),
B(Ldar), R(11), B(Ldar), R(10),
B(ReThrow), B(ReThrow),
B(LdaZero), B(LdaZero),
B(StaContextSlot), R(1), U8(9), U8(0), B(StaContextSlot), R(1), U8(9), U8(0),
......
...@@ -204,17 +204,17 @@ function testClasses() { ...@@ -204,17 +204,17 @@ function testClasses() {
|R|} |R|}
async function asyncFoo() { async function asyncFoo() {
|_|await Promise.resolve().then(v => v |_|* 2|R|); |_|await Promise.|C|resolve().|C|then(v => v |_|* 2|R|);
|C|return42(); |C|return42();
|_|await |C|asyncBoo(); |_|await |C|asyncBoo();
|R|} |R|}
async function asyncBoo() { async function asyncBoo() {
|_|await Promise.resolve(); |_|await Promise.|C|resolve();
|R|} |R|}
async function testAsyncAwait() { async function testAsyncAwait() {
|_|await asyncFoo(); |_|await |C|asyncFoo();
|_|await |C|awaitBoo(); |_|await |C|awaitBoo();
|R|} |R|}
...@@ -247,7 +247,7 @@ async function testPromiseComplex() { ...@@ -247,7 +247,7 @@ async function testPromiseComplex() {
var testPromise = |C|new Promise(resolve => nextTest |_|= resolve|R|); var testPromise = |C|new Promise(resolve => nextTest |_|= resolve|R|);
async function main() { async function main() {
async function foo() { async function foo() {
|_|await Promise.resolve(); |_|await Promise.|C|resolve();
|_|return 42; |_|return 42;
|R|} |R|}
var x = |_|1; var x = |_|1;
......
...@@ -798,11 +798,21 @@ break at: ...@@ -798,11 +798,21 @@ break at:
Running test: testAsyncAwait Running test: testAsyncAwait
break at:
async function testAsyncAwait() {
#await asyncFoo();
await awaitBoo();
break at: break at:
async function testAsyncAwait() { async function testAsyncAwait() {
await #asyncFoo(); await #asyncFoo();
await awaitBoo(); await awaitBoo();
break at:
async function asyncFoo() {
#await Promise.resolve().then(v => v * 2);
return42();
break at: break at:
async function asyncFoo() { async function asyncFoo() {
await Promise.resolve().#then(v => v * 2); await Promise.resolve().#then(v => v * 2);
...@@ -833,6 +843,11 @@ break at: ...@@ -833,6 +843,11 @@ break at:
#} #}
break at:
async function asyncBoo() {
#await Promise.resolve();
}
break at: break at:
async function asyncBoo() { async function asyncBoo() {
await Promise.#resolve(); await Promise.#resolve();
...@@ -870,6 +885,11 @@ break at: ...@@ -870,6 +885,11 @@ break at:
#setTimeout(returnCall, 0); #setTimeout(returnCall, 0);
await foo(); await foo();
break at:
setTimeout(returnCall, 0);
#await foo();
await foo();
break at: break at:
setTimeout(returnCall, 0); setTimeout(returnCall, 0);
await #foo(); await #foo();
...@@ -895,6 +915,11 @@ break at: ...@@ -895,6 +915,11 @@ break at:
#setTimeout(resolveNested, 0); #setTimeout(resolveNested, 0);
await p; await p;
break at:
setTimeout(resolveNested, 0);
#await p;
}
break at: break at:
setTimeout(resolveNested, 0); setTimeout(resolveNested, 0);
await #p; await #p;
...@@ -925,6 +950,11 @@ break at: ...@@ -925,6 +950,11 @@ break at:
#setTimeout(resolveNested, 0); #setTimeout(resolveNested, 0);
await p; await p;
break at:
setTimeout(resolveNested, 0);
#await p;
}
break at: break at:
setTimeout(resolveNested, 0); setTimeout(resolveNested, 0);
await #p; await #p;
...@@ -1052,6 +1082,11 @@ break at: ...@@ -1052,6 +1082,11 @@ break at:
returnFunction(emptyFunction(), x++, --y, x => 2 * x, returnCall())().a = await #foo((a => 2 *a)(5)); returnFunction(emptyFunction(), x++, --y, x => 2 * x, returnCall())().a = await #foo((a => 2 *a)(5));
nextTest(); nextTest();
break at:
async function foo() {
#await Promise.resolve();
return 42;
break at: break at:
async function foo() { async function foo() {
await Promise.#resolve(); await Promise.#resolve();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment