[ignition] Move generator object creation to BytecodeGenerator

This lets us avoid allocating the "this" variable for every
generator, since the BytecodeGenerator can directly read
the receiver via BytecodeArrayBuilder::Receive() when passing
it into %_CreateJSGeneratorObject.

Bug: v8:6351
Change-Id: Ib5e1f3303b6b5d5fc051ce76ea62129fd6afac65
Reviewed-on: https://chromium-review.googlesource.com/500507
Commit-Queue: Adam Klein <adamk@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Caitlin Potter <caitp@igalia.com>
Cr-Commit-Position: refs/heads/master@{#45281}
This commit is contained in:
Adam Klein 2017-05-12 10:29:53 -07:00 committed by Commit Bot
parent fc5765ce79
commit 68f0a47b28
8 changed files with 712 additions and 766 deletions

View File

@ -774,6 +774,12 @@ void BytecodeGenerator::GenerateBytecodeBody() {
// Build assignment to {new.target} variable if it is used.
VisitNewTargetVariable(closure_scope()->new_target_var());
// Create a generator object if necessary and initialize the
// {.generator_object} variable.
if (IsResumableFunction(info()->literal()->kind())) {
BuildGeneratorObjectVariableInitialization();
}
// Emit tracing call if requested to do so.
if (FLAG_trace) builder()->CallRuntime(Runtime::kTraceEnter);
@ -3526,6 +3532,20 @@ void BytecodeGenerator::VisitNewTargetVariable(Variable* variable) {
builder()->Bind(&flush_state_label);
}
void BytecodeGenerator::BuildGeneratorObjectVariableInitialization() {
DCHECK(IsResumableFunction(info()->literal()->kind()));
DCHECK_NOT_NULL(closure_scope()->generator_object_var());
RegisterAllocationScope register_scope(this);
RegisterList args = register_allocator()->NewRegisterList(2);
builder()
->MoveRegister(Register::function_closure(), args[0])
.MoveRegister(builder()->Receiver(), args[1])
.CallRuntime(Runtime::kInlineCreateJSGeneratorObject, args);
BuildVariableAssignment(closure_scope()->generator_object_var(), Token::INIT,
FeedbackSlot::Invalid(), HoleCheckMode::kElided);
}
void BytecodeGenerator::VisitFunctionClosureForContext() {
ValueResultScope value_execution_result(this);
if (closure_scope()->is_script_scope()) {

View File

@ -144,6 +144,7 @@ class BytecodeGenerator final : public AstVisitor<BytecodeGenerator> {
void BuildClassLiteral(ClassLiteral* expr);
void VisitThisFunctionVariable(Variable* variable);
void VisitNewTargetVariable(Variable* variable);
void BuildGeneratorObjectVariableInitialization();
void VisitBlockDeclarationsAndStatements(Block* stmt);
void VisitFunctionClosureForContext();
void VisitSetHomeObject(Register value, Register home_object,

View File

@ -3132,22 +3132,6 @@ Block* Parser::BuildRejectPromiseOnException(Block* inner_block) {
return result;
}
Assignment* Parser::BuildCreateJSGeneratorObject(int pos, FunctionKind kind) {
// .generator = %_CreateJSGeneratorObject(...);
DCHECK_NOT_NULL(function_state_->generator_object_variable());
ZoneList<Expression*>* args = new (zone()) ZoneList<Expression*>(2, zone());
args->Add(factory()->NewThisFunction(pos), zone());
args->Add(IsArrowFunction(kind) ? GetLiteralUndefined(pos)
: ThisExpression(kNoSourcePosition),
zone());
Expression* allocation = factory()->NewCallRuntime(
Runtime::kInlineCreateJSGeneratorObject, args, pos);
VariableProxy* proxy =
factory()->NewVariableProxy(function_state_->generator_object_variable());
return factory()->NewAssignment(Token::INIT, proxy, allocation,
kNoSourcePosition);
}
Expression* Parser::BuildResolvePromise(Expression* value, int pos) {
// %ResolvePromise(.promise, value), .promise
ZoneList<Expression*>* args = new (zone()) ZoneList<Expression*>(2, zone());
@ -3197,13 +3181,17 @@ Variable* Parser::AsyncGeneratorAwaitVariable() {
}
Expression* Parser::BuildInitialYield(int pos, FunctionKind kind) {
Assignment* assignment = BuildCreateJSGeneratorObject(pos, kind);
VariableProxy* generator =
// We access the generator object twice: once for the {generator}
// member of the Suspend AST node, and once for the result of
// the initial yield.
Expression* yield_result =
factory()->NewVariableProxy(function_state_->generator_object_variable());
Expression* generator_object =
factory()->NewVariableProxy(function_state_->generator_object_variable());
// The position of the yield is important for reporting the exception
// caused by calling the .throw method on a generator suspended at the
// initial yield (i.e. right after generator instantiation).
return BuildSuspend(generator, assignment, scope()->start_position(),
return BuildSuspend(generator_object, yield_result, scope()->start_position(),
Suspend::kOnExceptionThrow, SuspendFlags::kYield);
}
@ -3867,9 +3855,6 @@ void Parser::PrepareAsyncFunctionBody(ZoneList<Statement*>* body,
if (function_state_->generator_object_variable() == nullptr) {
PrepareGeneratorVariables();
}
body->Add(factory()->NewExpressionStatement(
BuildCreateJSGeneratorObject(pos, kind), kNoSourcePosition),
zone());
}
// This method completes the desugaring of the body of async_function.

View File

@ -648,7 +648,7 @@ snippet: "
"
frame size: 15
parameter count: 2
bytecode array length: 623
bytecode array length: 620
bytecodes: [
B(Ldar), R(new_target),
B(JumpIfUndefined), U8(27),
@ -658,30 +658,28 @@ bytecodes: [
B(Star), R(4),
B(LdaZero),
B(TestEqualStrictNoFeedback), R(4),
B(JumpIfTrue), U8(57),
B(JumpIfTrue), U8(54),
B(LdaSmi), I8(79),
B(Star), R(6),
B(CallRuntime), U16(Runtime::kAbort), R(6), U8(1),
B(LdaSmi), I8(-2),
B(Star), R(4),
B(CreateFunctionContext), U8(10),
B(CreateFunctionContext), U8(9),
B(PushContext), R(0),
B(Ldar), R(this),
B(StaCurrentContextSlot), U8(5),
B(Ldar), R(arg0),
B(StaCurrentContextSlot), U8(4),
B(Mov), R(closure), R(6),
B(Mov), R(this), R(7),
B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(6), U8(2),
B(StaCurrentContextSlot), U8(5),
/* 11 E> */ B(StackCheck),
B(Mov), R(context), R(8),
B(LdaImmutableCurrentContextSlot), U8(5),
B(Star), R(10),
B(Mov), R(closure), R(9),
/* 11 E> */ B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(9), U8(2),
B(StaCurrentContextSlot), U8(6),
B(Star), R(9),
B(LdaImmutableCurrentContextSlot), U8(6),
B(LdaImmutableCurrentContextSlot), U8(5),
B(Star), R(10),
B(LdaZero),
B(SuspendGenerator), R(10), U8(0),
/* 11 E> */ B(SuspendGenerator), R(10), U8(0),
B(Ldar), R(9),
/* 55 S> */ B(Return),
B(LdaSmi), I8(-2),
@ -712,7 +710,7 @@ bytecodes: [
B(LdaTheHole),
B(StaCurrentContextSlot), U8(4),
B(LdaZero),
B(StaContextSlot), R(1), U8(10), U8(0),
B(StaContextSlot), R(1), U8(9), U8(0),
B(Mov), R(context), R(11),
B(Mov), R(context), R(12),
/* 35 S> */ B(LdaImmutableContextSlot), R(1), U8(4), U8(0),
@ -722,39 +720,39 @@ bytecodes: [
B(CallProperty0), R(14), R(13), U8(5),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
/* 35 E> */ B(StaContextSlot), R(1), U8(8), U8(0),
/* 32 S> */ B(LdaContextSlot), R(1), U8(8), U8(0),
/* 35 E> */ B(StaContextSlot), R(1), U8(7), U8(0),
/* 32 S> */ B(LdaContextSlot), R(1), U8(7), U8(0),
B(Star), R(14),
B(LdaNamedProperty), R(14), U8(2), U8(9),
B(Star), R(13),
/* 32 E> */ B(CallProperty0), R(13), R(14), U8(7),
/* 32 E> */ B(StaContextSlot), R(1), U8(9), U8(0),
/* 32 E> */ B(StaContextSlot), R(1), U8(8), U8(0),
B(Star), R(13),
B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(13), U8(1),
B(ToBooleanLogicalNot),
B(JumpIfFalse), U8(13),
B(LdaContextSlot), R(1), U8(9), U8(0),
B(LdaContextSlot), R(1), U8(8), U8(0),
B(Star), R(13),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(13), U8(1),
B(LdaContextSlot), R(1), U8(9), U8(0),
B(LdaContextSlot), R(1), U8(8), U8(0),
B(Star), R(13),
B(LdaNamedProperty), R(13), U8(3), U8(11),
B(JumpIfToBooleanTrue), U8(73),
B(LdaContextSlot), R(1), U8(9), U8(0),
B(LdaContextSlot), R(1), U8(8), U8(0),
B(Star), R(13),
B(LdaNamedProperty), R(13), U8(4), U8(13),
B(StaContextSlot), R(1), U8(11), U8(0),
B(LdaSmi), I8(2),
B(StaContextSlot), R(1), U8(10), U8(0),
B(LdaContextSlot), R(1), U8(11), U8(0),
B(StaContextSlot), R(1), U8(7), U8(0),
B(LdaSmi), I8(2),
B(StaContextSlot), R(1), U8(9), U8(0),
B(LdaContextSlot), R(1), U8(10), U8(0),
B(StaContextSlot), R(1), U8(6), U8(0),
/* 21 E> */ B(StackCheck),
B(Ldar), R(closure),
B(CreateBlockContext), U8(5),
B(PushContext), R(2),
B(LdaTheHole),
B(StaCurrentContextSlot), U8(4),
B(LdaContextSlot), R(1), U8(7), U8(0),
B(LdaContextSlot), R(1), U8(6), U8(0),
B(StaCurrentContextSlot), U8(4),
B(Ldar), R(closure),
B(CreateBlockContext), U8(6),
@ -766,7 +764,7 @@ bytecodes: [
B(PopContext), R(3),
B(PopContext), R(2),
B(LdaZero),
B(StaContextSlot), R(1), U8(10), U8(0),
B(StaContextSlot), R(1), U8(9), U8(0),
B(JumpLoop), U8(120), I8(0),
B(Jump), U8(44),
B(Star), R(13),
@ -774,13 +772,13 @@ bytecodes: [
B(CreateCatchContext), R(13), U8(7), U8(8),
B(PushContext), R(2),
B(Star), R(12),
B(LdaContextSlot), R(1), U8(10), U8(0),
B(LdaContextSlot), R(1), U8(9), U8(0),
B(Star), R(13),
B(LdaSmi), I8(2),
B(TestEqualStrict), R(13), U8(15),
B(JumpIfFalse), U8(8),
B(LdaSmi), I8(1),
B(StaContextSlot), R(1), U8(10), U8(0),
B(StaContextSlot), R(1), U8(9), U8(0),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(13),
B(CallRuntime), U16(Runtime::kReThrow), R(13), U8(1),
@ -794,25 +792,25 @@ bytecodes: [
B(LdaTheHole),
B(SetPendingMessage),
B(Star), R(11),
B(LdaContextSlot), R(1), U8(10), U8(0),
B(LdaContextSlot), R(1), U8(9), U8(0),
B(Star), R(12),
B(LdaZero),
B(TestEqualStrict), R(12), U8(16),
B(JumpIfTrue), U8(150),
B(LdaContextSlot), R(1), U8(8), U8(0),
B(LdaContextSlot), R(1), U8(7), U8(0),
B(Star), R(12),
B(LdaNamedProperty), R(12), U8(9), U8(17),
B(StaContextSlot), R(1), U8(12), U8(0),
B(LdaContextSlot), R(1), U8(12), U8(0),
B(StaContextSlot), R(1), U8(11), U8(0),
B(LdaContextSlot), R(1), U8(11), U8(0),
B(TestUndetectable),
B(JumpIfFalse), U8(4),
B(Jump), U8(127),
B(LdaContextSlot), R(1), U8(10), U8(0),
B(LdaContextSlot), R(1), U8(9), U8(0),
B(Star), R(12),
B(LdaSmi), I8(1),
B(TestEqualStrict), R(12), U8(20),
B(JumpIfFalse), U8(69),
B(LdaContextSlot), R(1), U8(12), U8(0),
B(LdaContextSlot), R(1), U8(11), U8(0),
B(TestTypeOf), U8(5),
B(JumpIfFalse), U8(4),
B(Jump), U8(18),
@ -823,9 +821,9 @@ bytecodes: [
B(CallRuntime), U16(Runtime::kNewTypeError), R(12), U8(2),
B(Throw),
B(Mov), R(context), R(12),
B(LdaContextSlot), R(1), U8(12), U8(0),
B(LdaContextSlot), R(1), U8(11), U8(0),
B(Star), R(13),
B(LdaContextSlot), R(1), U8(8), U8(0),
B(LdaContextSlot), R(1), U8(7), U8(0),
B(Star), R(14),
B(InvokeIntrinsic), U8(Runtime::k_Call), R(13), U8(2),
B(Jump), U8(20),
@ -839,18 +837,18 @@ bytecodes: [
B(PushContext), R(2),
B(PopContext), R(2),
B(Jump), U8(47),
B(LdaContextSlot), R(1), U8(12), U8(0),
B(LdaContextSlot), R(1), U8(11), U8(0),
B(Star), R(12),
B(LdaContextSlot), R(1), U8(8), U8(0),
B(LdaContextSlot), R(1), U8(7), U8(0),
B(Star), R(13),
B(InvokeIntrinsic), U8(Runtime::k_Call), R(12), U8(2),
B(StaContextSlot), R(1), U8(13), U8(0),
B(LdaContextSlot), R(1), U8(13), U8(0),
B(StaContextSlot), R(1), U8(12), U8(0),
B(LdaContextSlot), R(1), U8(12), U8(0),
B(Star), R(12),
B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(12), U8(1),
B(JumpIfToBooleanFalse), U8(4),
B(Jump), U8(13),
B(LdaContextSlot), R(1), U8(13), U8(0),
B(LdaContextSlot), R(1), U8(12), U8(0),
B(Star), R(12),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(12), U8(1),
B(Ldar), R(11),
@ -884,7 +882,7 @@ bytecodes: [
B(LdaTheHole),
B(SetPendingMessage),
B(Star), R(8),
B(LdaImmutableCurrentContextSlot), U8(6),
B(LdaImmutableCurrentContextSlot), U8(5),
B(Star), R(9),
B(CallRuntime), U16(Runtime::k_GeneratorClose), R(9), U8(1),
B(Ldar), R(8),
@ -929,10 +927,10 @@ constant pool: [
Smi [449],
]
handlers: [
[49, 556, 562],
[141, 338, 344],
[144, 294, 296],
[430, 446, 448],
[57, 553, 559],
[138, 335, 341],
[141, 291, 293],
[427, 443, 445],
]
---
@ -944,7 +942,7 @@ snippet: "
"
frame size: 18
parameter count: 2
bytecode array length: 750
bytecode array length: 747
bytecodes: [
B(Ldar), R(new_target),
B(JumpIfUndefined), U8(33),
@ -954,33 +952,31 @@ bytecodes: [
B(Star), R(3),
B(LdaZero),
B(TestEqualStrictNoFeedback), R(3),
B(JumpIfTrue), U8(63),
B(JumpIfTrue), U8(60),
B(LdaSmi), I8(1),
B(TestEqualStrictNoFeedback), R(3),
B(JumpIfTrue), U8(153),
B(JumpIfTrue), U8(150),
B(LdaSmi), I8(79),
B(Star), R(5),
B(CallRuntime), U16(Runtime::kAbort), R(5), U8(1),
B(LdaSmi), I8(-2),
B(Star), R(3),
B(CreateFunctionContext), U8(10),
B(CreateFunctionContext), U8(9),
B(PushContext), R(0),
B(Ldar), R(this),
B(StaCurrentContextSlot), U8(5),
B(Ldar), R(arg0),
B(StaCurrentContextSlot), U8(4),
B(Mov), R(closure), R(5),
B(Mov), R(this), R(6),
B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(5), U8(2),
B(StaCurrentContextSlot), U8(5),
/* 11 E> */ B(StackCheck),
B(Mov), R(context), R(7),
B(LdaImmutableCurrentContextSlot), U8(5),
B(Star), R(9),
B(Mov), R(closure), R(8),
/* 11 E> */ B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(8), U8(2),
B(StaCurrentContextSlot), U8(6),
B(Star), R(8),
B(LdaImmutableCurrentContextSlot), U8(6),
B(LdaImmutableCurrentContextSlot), U8(5),
B(Star), R(9),
B(LdaZero),
B(SuspendGenerator), R(9), U8(0),
/* 11 E> */ B(SuspendGenerator), R(9), U8(0),
B(Ldar), R(8),
/* 49 S> */ B(Return),
B(LdaSmi), I8(-2),
@ -1011,7 +1007,7 @@ bytecodes: [
B(LdaTheHole),
B(StaCurrentContextSlot), U8(4),
B(LdaZero),
B(StaContextSlot), R(1), U8(10), U8(0),
B(StaContextSlot), R(1), U8(9), U8(0),
B(Mov), R(context), R(10),
B(Mov), R(context), R(11),
/* 35 S> */ B(LdaImmutableContextSlot), R(1), U8(4), U8(0),
@ -1021,7 +1017,7 @@ bytecodes: [
B(CallProperty0), R(13), R(12), U8(5),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
/* 35 E> */ B(StaContextSlot), R(1), U8(8), U8(0),
/* 35 E> */ B(StaContextSlot), R(1), U8(7), U8(0),
B(LdaSmi), I8(-2),
B(TestEqualStrictNoFeedback), R(3),
B(JumpIfTrue), U8(17),
@ -1031,38 +1027,38 @@ bytecodes: [
B(LdaSmi), I8(79),
B(Star), R(12),
B(CallRuntime), U16(Runtime::kAbort), R(12), U8(1),
/* 32 S> */ B(LdaContextSlot), R(1), U8(8), U8(0),
/* 32 S> */ B(LdaContextSlot), R(1), U8(7), U8(0),
B(Star), R(13),
B(LdaNamedProperty), R(13), U8(2), U8(9),
B(Star), R(12),
/* 32 E> */ B(CallProperty0), R(12), R(13), U8(7),
/* 32 E> */ B(StaContextSlot), R(1), U8(9), U8(0),
/* 32 E> */ B(StaContextSlot), R(1), U8(8), U8(0),
B(Star), R(12),
B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(12), U8(1),
B(ToBooleanLogicalNot),
B(JumpIfFalse), U8(13),
B(LdaContextSlot), R(1), U8(9), U8(0),
B(LdaContextSlot), R(1), U8(8), U8(0),
B(Star), R(12),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(12), U8(1),
B(LdaContextSlot), R(1), U8(9), U8(0),
B(LdaContextSlot), R(1), U8(8), U8(0),
B(Star), R(12),
B(LdaNamedProperty), R(12), U8(3), U8(11),
B(JumpIfToBooleanTrue), U8(144),
B(LdaContextSlot), R(1), U8(9), U8(0),
B(LdaContextSlot), R(1), U8(8), U8(0),
B(Star), R(12),
B(LdaNamedProperty), R(12), U8(4), U8(13),
B(StaContextSlot), R(1), U8(11), U8(0),
B(LdaSmi), I8(2),
B(StaContextSlot), R(1), U8(10), U8(0),
B(LdaContextSlot), R(1), U8(11), U8(0),
B(StaContextSlot), R(1), U8(7), U8(0),
B(LdaSmi), I8(2),
B(StaContextSlot), R(1), U8(9), U8(0),
B(LdaContextSlot), R(1), U8(10), U8(0),
B(StaContextSlot), R(1), U8(6), U8(0),
/* 21 E> */ B(StackCheck),
B(Ldar), R(closure),
B(CreateBlockContext), U8(5),
B(PushContext), R(2),
B(LdaTheHole),
B(StaCurrentContextSlot), U8(4),
B(LdaContextSlot), R(1), U8(7), U8(0),
B(LdaContextSlot), R(1), U8(6), U8(0),
B(StaCurrentContextSlot), U8(4),
/* 40 S> */ B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(12),
@ -1070,7 +1066,7 @@ bytecodes: [
B(Star), R(13),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(12), U8(2),
B(Star), R(12),
B(LdaImmutableContextSlot), R(1), U8(6), U8(0),
B(LdaImmutableContextSlot), R(1), U8(5), U8(0),
B(Star), R(13),
B(LdaSmi), I8(1),
B(SuspendGenerator), R(13), U8(0),
@ -1106,7 +1102,7 @@ bytecodes: [
/* 40 E> */ B(Throw),
B(PopContext), R(2),
B(LdaZero),
B(StaContextSlot), R(1), U8(10), U8(0),
B(StaContextSlot), R(1), U8(9), U8(0),
B(JumpLoop), U8(212), I8(0),
B(Jump), U8(44),
B(Star), R(12),
@ -1114,13 +1110,13 @@ bytecodes: [
B(CreateCatchContext), R(12), U8(6), U8(7),
B(PushContext), R(2),
B(Star), R(11),
B(LdaContextSlot), R(1), U8(10), U8(0),
B(LdaContextSlot), R(1), U8(9), U8(0),
B(Star), R(12),
B(LdaSmi), I8(2),
B(TestEqualStrict), R(12), U8(15),
B(JumpIfFalse), U8(8),
B(LdaSmi), I8(1),
B(StaContextSlot), R(1), U8(10), U8(0),
B(StaContextSlot), R(1), U8(9), U8(0),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(12),
B(CallRuntime), U16(Runtime::kReThrow), R(12), U8(1),
@ -1134,25 +1130,25 @@ bytecodes: [
B(LdaTheHole),
B(SetPendingMessage),
B(Star), R(10),
B(LdaContextSlot), R(1), U8(10), U8(0),
B(LdaContextSlot), R(1), U8(9), U8(0),
B(Star), R(11),
B(LdaZero),
B(TestEqualStrict), R(11), U8(16),
B(JumpIfTrue), U8(150),
B(LdaContextSlot), R(1), U8(8), U8(0),
B(LdaContextSlot), R(1), U8(7), U8(0),
B(Star), R(11),
B(LdaNamedProperty), R(11), U8(8), U8(17),
B(StaContextSlot), R(1), U8(12), U8(0),
B(LdaContextSlot), R(1), U8(12), U8(0),
B(StaContextSlot), R(1), U8(11), U8(0),
B(LdaContextSlot), R(1), U8(11), U8(0),
B(TestUndetectable),
B(JumpIfFalse), U8(4),
B(Jump), U8(127),
B(LdaContextSlot), R(1), U8(10), U8(0),
B(LdaContextSlot), R(1), U8(9), U8(0),
B(Star), R(11),
B(LdaSmi), I8(1),
B(TestEqualStrict), R(11), U8(20),
B(JumpIfFalse), U8(69),
B(LdaContextSlot), R(1), U8(12), U8(0),
B(LdaContextSlot), R(1), U8(11), U8(0),
B(TestTypeOf), U8(5),
B(JumpIfFalse), U8(4),
B(Jump), U8(18),
@ -1163,9 +1159,9 @@ bytecodes: [
B(CallRuntime), U16(Runtime::kNewTypeError), R(11), U8(2),
B(Throw),
B(Mov), R(context), R(11),
B(LdaContextSlot), R(1), U8(12), U8(0),
B(LdaContextSlot), R(1), U8(11), U8(0),
B(Star), R(12),
B(LdaContextSlot), R(1), U8(8), U8(0),
B(LdaContextSlot), R(1), U8(7), U8(0),
B(Star), R(13),
B(InvokeIntrinsic), U8(Runtime::k_Call), R(12), U8(2),
B(Jump), U8(20),
@ -1179,18 +1175,18 @@ bytecodes: [
B(PushContext), R(2),
B(PopContext), R(2),
B(Jump), U8(47),
B(LdaContextSlot), R(1), U8(12), U8(0),
B(LdaContextSlot), R(1), U8(11), U8(0),
B(Star), R(11),
B(LdaContextSlot), R(1), U8(8), U8(0),
B(LdaContextSlot), R(1), U8(7), U8(0),
B(Star), R(12),
B(InvokeIntrinsic), U8(Runtime::k_Call), R(11), U8(2),
B(StaContextSlot), R(1), U8(13), U8(0),
B(LdaContextSlot), R(1), U8(13), U8(0),
B(StaContextSlot), R(1), U8(12), U8(0),
B(LdaContextSlot), R(1), U8(12), U8(0),
B(Star), R(11),
B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(11), U8(1),
B(JumpIfToBooleanFalse), U8(4),
B(Jump), U8(13),
B(LdaContextSlot), R(1), U8(13), U8(0),
B(LdaContextSlot), R(1), U8(12), U8(0),
B(Star), R(11),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(11), U8(1),
B(Ldar), R(10),
@ -1233,7 +1229,7 @@ bytecodes: [
B(LdaTheHole),
B(SetPendingMessage),
B(Star), R(7),
B(LdaImmutableCurrentContextSlot), U8(6),
B(LdaImmutableCurrentContextSlot), U8(5),
B(Star), R(8),
B(CallRuntime), U16(Runtime::k_GeneratorClose), R(8), U8(1),
B(Ldar), R(7),
@ -1282,10 +1278,10 @@ constant pool: [
Smi [561],
]
handlers: [
[55, 674, 680],
[147, 436, 442],
[150, 392, 394],
[529, 545, 547],
[63, 671, 677],
[144, 433, 439],
[147, 389, 391],
[526, 542, 544],
]
---
@ -1297,7 +1293,7 @@ snippet: "
"
frame size: 16
parameter count: 2
bytecode array length: 618
bytecode array length: 613
bytecodes: [
B(Ldar), R(new_target),
B(JumpIfUndefined), U8(22),
@ -1310,22 +1306,19 @@ bytecodes: [
B(CallRuntime), U16(Runtime::kAbort), R(6), U8(1),
B(LdaSmi), I8(-2),
B(Star), R(4),
B(CreateFunctionContext), U8(11),
B(CreateFunctionContext), U8(10),
B(PushContext), R(0),
B(Ldar), R(this),
B(StaCurrentContextSlot), U8(5),
B(Ldar), R(arg0),
B(StaCurrentContextSlot), U8(4),
/* 16 E> */ B(StackCheck),
B(LdaImmutableCurrentContextSlot), U8(5),
B(Star), R(7),
B(Mov), R(closure), R(6),
B(Mov), R(this), R(7),
B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(6), U8(2),
B(StaCurrentContextSlot), U8(6),
B(StaCurrentContextSlot), U8(5),
/* 16 E> */ B(StackCheck),
B(LdaUndefined),
B(Star), R(6),
B(CallJSRuntime), U8(%async_function_promise_create), R(6), U8(1),
B(StaCurrentContextSlot), U8(14),
B(StaCurrentContextSlot), U8(13),
B(Mov), R(context), R(8),
B(Mov), R(context), R(9),
B(Ldar), R(closure),
@ -1334,7 +1327,7 @@ bytecodes: [
B(LdaTheHole),
B(StaCurrentContextSlot), U8(4),
B(LdaZero),
B(StaContextSlot), R(1), U8(10), U8(0),
B(StaContextSlot), R(1), U8(9), U8(0),
B(Mov), R(context), R(12),
B(Mov), R(context), R(13),
/* 40 S> */ B(LdaImmutableContextSlot), R(1), U8(4), U8(0),
@ -1344,39 +1337,39 @@ bytecodes: [
B(CallProperty0), R(15), R(14), U8(5),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
/* 40 E> */ B(StaContextSlot), R(1), U8(8), U8(0),
/* 37 S> */ B(LdaContextSlot), R(1), U8(8), U8(0),
/* 40 E> */ B(StaContextSlot), R(1), U8(7), U8(0),
/* 37 S> */ B(LdaContextSlot), R(1), U8(7), U8(0),
B(Star), R(15),
B(LdaNamedProperty), R(15), U8(2), U8(9),
B(Star), R(14),
/* 37 E> */ B(CallProperty0), R(14), R(15), U8(7),
/* 37 E> */ B(StaContextSlot), R(1), U8(9), U8(0),
/* 37 E> */ B(StaContextSlot), R(1), U8(8), U8(0),
B(Star), R(14),
B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(14), U8(1),
B(ToBooleanLogicalNot),
B(JumpIfFalse), U8(13),
B(LdaContextSlot), R(1), U8(9), U8(0),
B(LdaContextSlot), R(1), U8(8), U8(0),
B(Star), R(14),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(14), U8(1),
B(LdaContextSlot), R(1), U8(9), U8(0),
B(LdaContextSlot), R(1), U8(8), U8(0),
B(Star), R(14),
B(LdaNamedProperty), R(14), U8(3), U8(11),
B(JumpIfToBooleanTrue), U8(73),
B(LdaContextSlot), R(1), U8(9), U8(0),
B(LdaContextSlot), R(1), U8(8), U8(0),
B(Star), R(14),
B(LdaNamedProperty), R(14), U8(4), U8(13),
B(StaContextSlot), R(1), U8(11), U8(0),
B(LdaSmi), I8(2),
B(StaContextSlot), R(1), U8(10), U8(0),
B(LdaContextSlot), R(1), U8(11), U8(0),
B(StaContextSlot), R(1), U8(7), U8(0),
B(LdaSmi), I8(2),
B(StaContextSlot), R(1), U8(9), U8(0),
B(LdaContextSlot), R(1), U8(10), U8(0),
B(StaContextSlot), R(1), U8(6), U8(0),
/* 26 E> */ B(StackCheck),
B(Ldar), R(closure),
B(CreateBlockContext), U8(5),
B(PushContext), R(2),
B(LdaTheHole),
B(StaCurrentContextSlot), U8(4),
B(LdaContextSlot), R(1), U8(7), U8(0),
B(LdaContextSlot), R(1), U8(6), U8(0),
B(StaCurrentContextSlot), U8(4),
B(Ldar), R(closure),
B(CreateBlockContext), U8(6),
@ -1388,7 +1381,7 @@ bytecodes: [
B(PopContext), R(3),
B(PopContext), R(2),
B(LdaZero),
B(StaContextSlot), R(1), U8(10), U8(0),
B(StaContextSlot), R(1), U8(9), U8(0),
B(JumpLoop), U8(120), I8(0),
B(Jump), U8(48),
B(Star), R(14),
@ -1399,13 +1392,13 @@ bytecodes: [
B(SetPendingMessage),
B(Ldar), R(13),
B(PushContext), R(2),
B(LdaContextSlot), R(1), U8(10), U8(0),
B(LdaContextSlot), R(1), U8(9), U8(0),
B(Star), R(14),
B(LdaSmi), I8(2),
B(TestEqualStrict), R(14), U8(15),
B(JumpIfFalse), U8(8),
B(LdaSmi), I8(1),
B(StaContextSlot), R(1), U8(10), U8(0),
B(StaContextSlot), R(1), U8(9), U8(0),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(14),
B(CallRuntime), U16(Runtime::kReThrow), R(14), U8(1),
@ -1419,25 +1412,25 @@ bytecodes: [
B(LdaTheHole),
B(SetPendingMessage),
B(Star), R(12),
B(LdaContextSlot), R(1), U8(10), U8(0),
B(LdaContextSlot), R(1), U8(9), U8(0),
B(Star), R(13),
B(LdaZero),
B(TestEqualStrict), R(13), U8(16),
B(JumpIfTrue), U8(150),
B(LdaContextSlot), R(1), U8(8), U8(0),
B(LdaContextSlot), R(1), U8(7), U8(0),
B(Star), R(13),
B(LdaNamedProperty), R(13), U8(9), U8(17),
B(StaContextSlot), R(1), U8(12), U8(0),
B(LdaContextSlot), R(1), U8(12), U8(0),
B(StaContextSlot), R(1), U8(11), U8(0),
B(LdaContextSlot), R(1), U8(11), U8(0),
B(TestUndetectable),
B(JumpIfFalse), U8(4),
B(Jump), U8(127),
B(LdaContextSlot), R(1), U8(10), U8(0),
B(LdaContextSlot), R(1), U8(9), U8(0),
B(Star), R(13),
B(LdaSmi), I8(1),
B(TestEqualStrict), R(13), U8(20),
B(JumpIfFalse), U8(69),
B(LdaContextSlot), R(1), U8(12), U8(0),
B(LdaContextSlot), R(1), U8(11), U8(0),
B(TestTypeOf), U8(5),
B(JumpIfFalse), U8(4),
B(Jump), U8(18),
@ -1448,9 +1441,9 @@ bytecodes: [
B(CallRuntime), U16(Runtime::kNewTypeError), R(13), U8(2),
B(Throw),
B(Mov), R(context), R(13),
B(LdaContextSlot), R(1), U8(12), U8(0),
B(LdaContextSlot), R(1), U8(11), U8(0),
B(Star), R(14),
B(LdaContextSlot), R(1), U8(8), U8(0),
B(LdaContextSlot), R(1), U8(7), U8(0),
B(Star), R(15),
B(InvokeIntrinsic), U8(Runtime::k_Call), R(14), U8(2),
B(Jump), U8(20),
@ -1464,18 +1457,18 @@ bytecodes: [
B(PushContext), R(2),
B(PopContext), R(2),
B(Jump), U8(47),
B(LdaContextSlot), R(1), U8(12), U8(0),
B(LdaContextSlot), R(1), U8(11), U8(0),
B(Star), R(13),
B(LdaContextSlot), R(1), U8(8), U8(0),
B(LdaContextSlot), R(1), U8(7), U8(0),
B(Star), R(14),
B(InvokeIntrinsic), U8(Runtime::k_Call), R(13), U8(2),
B(StaContextSlot), R(1), U8(13), U8(0),
B(LdaContextSlot), R(1), U8(13), U8(0),
B(StaContextSlot), R(1), U8(12), U8(0),
B(LdaContextSlot), R(1), U8(12), U8(0),
B(Star), R(13),
B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(13), U8(1),
B(JumpIfToBooleanFalse), U8(4),
B(Jump), U8(13),
B(LdaContextSlot), R(1), U8(13), U8(0),
B(LdaContextSlot), R(1), U8(12), U8(0),
B(Star), R(13),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(13), U8(1),
B(Ldar), R(12),
@ -1491,12 +1484,12 @@ bytecodes: [
B(PopContext), R(1),
B(LdaUndefined),
B(Star), R(10),
B(LdaCurrentContextSlot), U8(14),
B(LdaCurrentContextSlot), U8(13),
B(Star), R(11),
B(LdaUndefined),
B(Star), R(12),
B(CallJSRuntime), U8(%promise_resolve), R(10), U8(3),
B(LdaCurrentContextSlot), U8(14),
B(LdaCurrentContextSlot), U8(13),
B(Star), R(7),
B(LdaZero),
B(Star), R(6),
@ -1512,14 +1505,14 @@ bytecodes: [
B(PushContext), R(1),
B(LdaUndefined),
B(Star), R(10),
B(LdaContextSlot), R(1), U8(14), U8(0),
B(LdaContextSlot), R(1), U8(13), U8(0),
B(Star), R(11),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(12),
B(LdaFalse),
B(Star), R(13),
B(CallJSRuntime), U8(%promise_internal_reject), R(10), U8(4),
B(LdaContextSlot), R(1), U8(14), U8(0),
B(LdaContextSlot), R(1), U8(13), U8(0),
B(PopContext), R(1),
B(PopContext), R(1),
B(Star), R(7),
@ -1537,7 +1530,7 @@ bytecodes: [
B(Star), R(8),
B(LdaUndefined),
B(Star), R(9),
B(LdaCurrentContextSlot), U8(14),
B(LdaCurrentContextSlot), U8(13),
B(Star), R(10),
B(CallJSRuntime), U8(%async_function_promise_release), R(9), U8(2),
B(Ldar), R(8),
@ -1577,11 +1570,11 @@ constant pool: [
FIXED_ARRAY_TYPE,
]
handlers: [
[66, 558, 564],
[69, 504, 506],
[86, 287, 293],
[89, 239, 241],
[379, 395, 397],
[61, 553, 559],
[64, 499, 501],
[81, 282, 288],
[84, 234, 236],
[374, 390, 392],
]
---
@ -1593,7 +1586,7 @@ snippet: "
"
frame size: 19
parameter count: 2
bytecode array length: 770
bytecode array length: 765
bytecodes: [
B(Ldar), R(new_target),
B(JumpIfUndefined), U8(27),
@ -1603,28 +1596,25 @@ bytecodes: [
B(Star), R(3),
B(LdaZero),
B(TestEqualStrictNoFeedback), R(3),
B(JumpIfTrue), U8(103),
B(JumpIfTrue), U8(98),
B(LdaSmi), I8(79),
B(Star), R(5),
B(CallRuntime), U16(Runtime::kAbort), R(5), U8(1),
B(LdaSmi), I8(-2),
B(Star), R(3),
B(CreateFunctionContext), U8(12),
B(CreateFunctionContext), U8(11),
B(PushContext), R(0),
B(Ldar), R(this),
B(StaCurrentContextSlot), U8(5),
B(Ldar), R(arg0),
B(StaCurrentContextSlot), U8(4),
/* 16 E> */ B(StackCheck),
B(LdaImmutableCurrentContextSlot), U8(5),
B(Star), R(6),
B(Mov), R(closure), R(5),
B(Mov), R(this), R(6),
B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(5), U8(2),
B(StaCurrentContextSlot), U8(6),
B(StaCurrentContextSlot), U8(5),
/* 16 E> */ B(StackCheck),
B(LdaUndefined),
B(Star), R(5),
B(CallJSRuntime), U8(%async_function_promise_create), R(5), U8(1),
B(StaCurrentContextSlot), U8(8),
B(StaCurrentContextSlot), U8(7),
B(Mov), R(context), R(7),
B(Mov), R(context), R(8),
B(Ldar), R(closure),
@ -1633,7 +1623,7 @@ bytecodes: [
B(LdaTheHole),
B(StaCurrentContextSlot), U8(4),
B(LdaZero),
B(StaContextSlot), R(1), U8(12), U8(0),
B(StaContextSlot), R(1), U8(11), U8(0),
B(Mov), R(context), R(11),
B(Mov), R(context), R(12),
/* 40 S> */ B(LdaImmutableContextSlot), R(1), U8(4), U8(0),
@ -1643,7 +1633,7 @@ bytecodes: [
B(CallProperty0), R(14), R(13), U8(5),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
/* 40 E> */ B(StaContextSlot), R(1), U8(10), U8(0),
/* 40 E> */ B(StaContextSlot), R(1), U8(9), U8(0),
B(LdaSmi), I8(-2),
B(TestEqualStrictNoFeedback), R(3),
B(JumpIfTrue), U8(16),
@ -1653,53 +1643,53 @@ bytecodes: [
B(LdaSmi), I8(79),
B(Star), R(13),
B(CallRuntime), U16(Runtime::kAbort), R(13), U8(1),
/* 37 S> */ B(LdaContextSlot), R(1), U8(10), U8(0),
/* 37 S> */ B(LdaContextSlot), R(1), U8(9), U8(0),
B(Star), R(14),
B(LdaNamedProperty), R(14), U8(2), U8(9),
B(Star), R(13),
/* 37 E> */ B(CallProperty0), R(13), R(14), U8(7),
/* 37 E> */ B(StaContextSlot), R(1), U8(11), U8(0),
/* 37 E> */ B(StaContextSlot), R(1), U8(10), U8(0),
B(Star), R(13),
B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(13), U8(1),
B(ToBooleanLogicalNot),
B(JumpIfFalse), U8(13),
B(LdaContextSlot), R(1), U8(11), U8(0),
B(LdaContextSlot), R(1), U8(10), U8(0),
B(Star), R(13),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(13), U8(1),
B(LdaContextSlot), R(1), U8(11), U8(0),
B(LdaContextSlot), R(1), U8(10), U8(0),
B(Star), R(13),
B(LdaNamedProperty), R(13), U8(3), U8(11),
B(JumpIfToBooleanTrue), U8(167),
B(LdaContextSlot), R(1), U8(11), U8(0),
B(LdaContextSlot), R(1), U8(10), U8(0),
B(Star), R(13),
B(LdaNamedProperty), R(13), U8(4), U8(13),
B(StaContextSlot), R(1), U8(13), U8(0),
B(LdaSmi), I8(2),
B(StaContextSlot), R(1), U8(12), U8(0),
B(LdaContextSlot), R(1), U8(13), U8(0),
B(StaContextSlot), R(1), U8(9), U8(0),
B(LdaSmi), I8(2),
B(StaContextSlot), R(1), U8(11), U8(0),
B(LdaContextSlot), R(1), U8(12), U8(0),
B(StaContextSlot), R(1), U8(8), U8(0),
/* 26 E> */ B(StackCheck),
B(Ldar), R(closure),
B(CreateBlockContext), U8(5),
B(PushContext), R(2),
B(LdaTheHole),
B(StaCurrentContextSlot), U8(4),
B(LdaContextSlot), R(1), U8(9), U8(0),
B(LdaContextSlot), R(1), U8(8), U8(0),
B(StaCurrentContextSlot), U8(4),
/* 51 S> */ B(LdaImmutableCurrentContextSlot), U8(4),
B(StaContextSlot), R(1), U8(7), U8(0),
B(StaContextSlot), R(1), U8(6), U8(0),
/* 45 S> */ B(LdaUndefined),
B(Star), R(13),
B(LdaImmutableContextSlot), R(1), U8(6), U8(0),
B(LdaImmutableContextSlot), R(1), U8(5), U8(0),
B(Star), R(14),
B(LdaContextSlot), R(1), U8(7), U8(0),
B(LdaContextSlot), R(1), U8(6), U8(0),
B(Star), R(15),
B(LdaContextSlot), R(1), U8(8), U8(0),
B(LdaContextSlot), R(1), U8(7), U8(0),
B(Star), R(16),
B(CallJSRuntime), U8(%async_function_await_uncaught), R(13), U8(4),
B(LdaContextSlot), R(1), U8(8), U8(0),
B(LdaContextSlot), R(1), U8(7), U8(0),
B(Star), R(13),
B(LdaImmutableContextSlot), R(1), U8(6), U8(0),
B(LdaImmutableContextSlot), R(1), U8(5), U8(0),
B(Star), R(14),
B(LdaZero),
B(SuspendGenerator), R(14), U8(2),
@ -1735,7 +1725,7 @@ bytecodes: [
B(ReThrow),
B(PopContext), R(2),
B(LdaZero),
B(StaContextSlot), R(1), U8(12), U8(0),
B(StaContextSlot), R(1), U8(11), U8(0),
B(JumpLoop), U8(234), I8(0),
B(Jump), U8(48),
B(Star), R(13),
@ -1746,13 +1736,13 @@ bytecodes: [
B(SetPendingMessage),
B(Ldar), R(12),
B(PushContext), R(2),
B(LdaContextSlot), R(1), U8(12), U8(0),
B(LdaContextSlot), R(1), U8(11), U8(0),
B(Star), R(13),
B(LdaSmi), I8(2),
B(TestEqualStrict), R(13), U8(15),
B(JumpIfFalse), U8(8),
B(LdaSmi), I8(1),
B(StaContextSlot), R(1), U8(12), U8(0),
B(StaContextSlot), R(1), U8(11), U8(0),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(13),
B(CallRuntime), U16(Runtime::kReThrow), R(13), U8(1),
@ -1766,25 +1756,25 @@ bytecodes: [
B(LdaTheHole),
B(SetPendingMessage),
B(Star), R(11),
B(LdaContextSlot), R(1), U8(12), U8(0),
B(LdaContextSlot), R(1), U8(11), U8(0),
B(Star), R(12),
B(LdaZero),
B(TestEqualStrict), R(12), U8(16),
B(JumpIfTrue), U8(150),
B(LdaContextSlot), R(1), U8(10), U8(0),
B(LdaContextSlot), R(1), U8(9), U8(0),
B(Star), R(12),
B(LdaNamedProperty), R(12), U8(8), U8(17),
B(StaContextSlot), R(1), U8(14), U8(0),
B(LdaContextSlot), R(1), U8(14), U8(0),
B(StaContextSlot), R(1), U8(13), U8(0),
B(LdaContextSlot), R(1), U8(13), U8(0),
B(TestUndetectable),
B(JumpIfFalse), U8(4),
B(Jump), U8(127),
B(LdaContextSlot), R(1), U8(12), U8(0),
B(LdaContextSlot), R(1), U8(11), U8(0),
B(Star), R(12),
B(LdaSmi), I8(1),
B(TestEqualStrict), R(12), U8(20),
B(JumpIfFalse), U8(69),
B(LdaContextSlot), R(1), U8(14), U8(0),
B(LdaContextSlot), R(1), U8(13), U8(0),
B(TestTypeOf), U8(5),
B(JumpIfFalse), U8(4),
B(Jump), U8(18),
@ -1795,9 +1785,9 @@ bytecodes: [
B(CallRuntime), U16(Runtime::kNewTypeError), R(12), U8(2),
B(Throw),
B(Mov), R(context), R(12),
B(LdaContextSlot), R(1), U8(14), U8(0),
B(LdaContextSlot), R(1), U8(13), U8(0),
B(Star), R(13),
B(LdaContextSlot), R(1), U8(10), U8(0),
B(LdaContextSlot), R(1), U8(9), U8(0),
B(Star), R(14),
B(InvokeIntrinsic), U8(Runtime::k_Call), R(13), U8(2),
B(Jump), U8(20),
@ -1811,18 +1801,18 @@ bytecodes: [
B(PushContext), R(2),
B(PopContext), R(2),
B(Jump), U8(47),
B(LdaContextSlot), R(1), U8(14), U8(0),
B(LdaContextSlot), R(1), U8(13), U8(0),
B(Star), R(12),
B(LdaContextSlot), R(1), U8(10), U8(0),
B(LdaContextSlot), R(1), U8(9), U8(0),
B(Star), R(13),
B(InvokeIntrinsic), U8(Runtime::k_Call), R(12), U8(2),
B(StaContextSlot), R(1), U8(15), U8(0),
B(LdaContextSlot), R(1), U8(15), U8(0),
B(StaContextSlot), R(1), U8(14), U8(0),
B(LdaContextSlot), R(1), U8(14), U8(0),
B(Star), R(12),
B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(12), U8(1),
B(JumpIfToBooleanFalse), U8(4),
B(Jump), U8(13),
B(LdaContextSlot), R(1), U8(15), U8(0),
B(LdaContextSlot), R(1), U8(14), U8(0),
B(Star), R(12),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(12), U8(1),
B(Ldar), R(11),
@ -1849,12 +1839,12 @@ bytecodes: [
B(PopContext), R(1),
B(LdaUndefined),
B(Star), R(9),
B(LdaCurrentContextSlot), U8(8),
B(LdaCurrentContextSlot), U8(7),
B(Star), R(10),
B(LdaUndefined),
B(Star), R(11),
B(CallJSRuntime), U8(%promise_resolve), R(9), U8(3),
B(LdaCurrentContextSlot), U8(8),
B(LdaCurrentContextSlot), U8(7),
B(Star), R(6),
B(LdaSmi), I8(1),
B(Star), R(5),
@ -1870,14 +1860,14 @@ bytecodes: [
B(PushContext), R(1),
B(LdaUndefined),
B(Star), R(9),
B(LdaContextSlot), R(1), U8(8), U8(0),
B(LdaContextSlot), R(1), U8(7), U8(0),
B(Star), R(10),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(11),
B(LdaFalse),
B(Star), R(12),
B(CallJSRuntime), U8(%promise_internal_reject), R(9), U8(4),
B(LdaContextSlot), R(1), U8(8), U8(0),
B(LdaContextSlot), R(1), U8(7), U8(0),
B(PopContext), R(1),
B(PopContext), R(1),
B(Star), R(6),
@ -1895,7 +1885,7 @@ bytecodes: [
B(Star), R(7),
B(LdaUndefined),
B(Star), R(8),
B(LdaCurrentContextSlot), U8(8),
B(LdaCurrentContextSlot), U8(7),
B(Star), R(9),
B(CallJSRuntime), U8(%async_function_promise_release), R(8), U8(2),
B(Ldar), R(7),
@ -1939,10 +1929,10 @@ constant pool: [
FIXED_ARRAY_TYPE,
]
handlers: [
[71, 701, 707],
[74, 647, 649],
[91, 406, 412],
[94, 358, 360],
[499, 515, 517],
[66, 696, 702],
[69, 642, 644],
[86, 401, 407],
[89, 353, 355],
[494, 510, 512],
]

View File

@ -13,7 +13,7 @@ snippet: "
"
frame size: 12
parameter count: 1
bytecode array length: 196
bytecode array length: 193
bytecodes: [
B(Ldar), R(new_target),
B(JumpIfUndefined), U8(27),
@ -23,28 +23,26 @@ bytecodes: [
B(Star), R(1),
B(LdaZero),
B(TestEqualStrictNoFeedback), R(1),
B(JumpIfTrue), U8(53),
B(JumpIfTrue), U8(50),
B(LdaSmi), I8(79),
B(Star), R(3),
B(CallRuntime), U16(Runtime::kAbort), R(3), U8(1),
B(LdaSmi), I8(-2),
B(Star), R(1),
B(CreateFunctionContext), U8(2),
B(CreateFunctionContext), U8(1),
B(PushContext), R(0),
B(Ldar), R(this),
B(Mov), R(closure), R(3),
B(Mov), R(this), R(4),
B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(3), U8(2),
B(StaCurrentContextSlot), U8(4),
/* 11 E> */ B(StackCheck),
B(Mov), R(context), R(5),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(7),
B(Mov), R(closure), R(6),
/* 11 E> */ B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(6), U8(2),
B(StaCurrentContextSlot), U8(5),
B(Star), R(6),
B(LdaImmutableCurrentContextSlot), U8(5),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(7),
B(LdaZero),
B(SuspendGenerator), R(7), U8(0),
/* 11 E> */ B(SuspendGenerator), R(7), U8(0),
B(Ldar), R(6),
/* 16 S> */ B(Return),
B(LdaSmi), I8(-2),
@ -87,7 +85,7 @@ bytecodes: [
B(LdaTheHole),
B(SetPendingMessage),
B(Star), R(5),
B(LdaImmutableCurrentContextSlot), U8(5),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(6),
B(CallRuntime), U16(Runtime::k_GeneratorClose), R(6), U8(1),
B(Ldar), R(5),
@ -114,7 +112,7 @@ bytecodes: [
constant pool: [
]
handlers: [
[45, 138, 144],
[53, 135, 141],
]
---
@ -124,7 +122,7 @@ snippet: "
"
frame size: 12
parameter count: 1
bytecode array length: 286
bytecode array length: 283
bytecodes: [
B(Ldar), R(new_target),
B(JumpIfUndefined), U8(33),
@ -134,31 +132,29 @@ bytecodes: [
B(Star), R(1),
B(LdaZero),
B(TestEqualStrictNoFeedback), R(1),
B(JumpIfTrue), U8(59),
B(JumpIfTrue), U8(56),
B(LdaSmi), I8(1),
B(TestEqualStrictNoFeedback), R(1),
B(JumpIfTrue), U8(127),
B(JumpIfTrue), U8(124),
B(LdaSmi), I8(79),
B(Star), R(3),
B(CallRuntime), U16(Runtime::kAbort), R(3), U8(1),
B(LdaSmi), I8(-2),
B(Star), R(1),
B(CreateFunctionContext), U8(2),
B(CreateFunctionContext), U8(1),
B(PushContext), R(0),
B(Ldar), R(this),
B(Mov), R(closure), R(3),
B(Mov), R(this), R(4),
B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(3), U8(2),
B(StaCurrentContextSlot), U8(4),
/* 11 E> */ B(StackCheck),
B(Mov), R(context), R(5),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(7),
B(Mov), R(closure), R(6),
/* 11 E> */ B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(6), U8(2),
B(StaCurrentContextSlot), U8(5),
B(Star), R(6),
B(LdaImmutableCurrentContextSlot), U8(5),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(7),
B(LdaZero),
B(SuspendGenerator), R(7), U8(0),
/* 11 E> */ B(SuspendGenerator), R(7), U8(0),
B(Ldar), R(6),
/* 25 S> */ B(Return),
B(LdaSmi), I8(-2),
@ -189,7 +185,7 @@ bytecodes: [
B(Star), R(7),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(6), U8(2),
B(Star), R(6),
B(LdaImmutableCurrentContextSlot), U8(5),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(7),
B(LdaSmi), I8(1),
B(SuspendGenerator), R(7), U8(0),
@ -235,7 +231,7 @@ bytecodes: [
B(LdaTheHole),
B(SetPendingMessage),
B(Star), R(5),
B(LdaImmutableCurrentContextSlot), U8(5),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(6),
B(CallRuntime), U16(Runtime::k_GeneratorClose), R(6), U8(1),
B(Ldar), R(5),
@ -267,7 +263,7 @@ bytecodes: [
constant pool: [
]
handlers: [
[51, 219, 225],
[59, 216, 222],
]
---
@ -277,7 +273,7 @@ snippet: "
"
frame size: 18
parameter count: 1
bytecode array length: 746
bytecode array length: 743
bytecodes: [
B(Ldar), R(new_target),
B(JumpIfUndefined), U8(33),
@ -287,31 +283,29 @@ bytecodes: [
B(Star), R(3),
B(LdaZero),
B(TestEqualStrictNoFeedback), R(3),
B(JumpIfTrue), U8(59),
B(JumpIfTrue), U8(56),
B(LdaSmi), I8(1),
B(TestEqualStrictNoFeedback), R(3),
B(JumpIfTrue), U8(149),
B(JumpIfTrue), U8(146),
B(LdaSmi), I8(79),
B(Star), R(5),
B(CallRuntime), U16(Runtime::kAbort), R(5), U8(1),
B(LdaSmi), I8(-2),
B(Star), R(3),
B(CreateFunctionContext), U8(9),
B(CreateFunctionContext), U8(8),
B(PushContext), R(0),
B(Ldar), R(this),
B(Mov), R(closure), R(5),
B(Mov), R(this), R(6),
B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(5), U8(2),
B(StaCurrentContextSlot), U8(4),
/* 11 E> */ B(StackCheck),
B(Mov), R(context), R(7),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(9),
B(Mov), R(closure), R(8),
/* 11 E> */ B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(8), U8(2),
B(StaCurrentContextSlot), U8(5),
B(Star), R(8),
B(LdaImmutableCurrentContextSlot), U8(5),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(9),
B(LdaZero),
B(SuspendGenerator), R(9), U8(0),
/* 11 E> */ B(SuspendGenerator), R(9), U8(0),
B(Ldar), R(8),
/* 44 S> */ B(Return),
B(LdaSmi), I8(-2),
@ -342,7 +336,7 @@ bytecodes: [
B(LdaTheHole),
B(StaCurrentContextSlot), U8(4),
B(LdaZero),
B(StaContextSlot), R(1), U8(9), U8(0),
B(StaContextSlot), R(1), U8(8), U8(0),
B(Mov), R(context), R(10),
B(Mov), R(context), R(11),
/* 30 S> */ B(CreateArrayLiteral), U8(1), U8(3), U8(17),
@ -352,7 +346,7 @@ bytecodes: [
B(CallProperty0), R(13), R(12), U8(6),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
/* 30 E> */ B(StaContextSlot), R(1), U8(7), U8(0),
/* 30 E> */ B(StaContextSlot), R(1), U8(6), U8(0),
B(LdaSmi), I8(-2),
B(TestEqualStrictNoFeedback), R(3),
B(JumpIfTrue), U8(17),
@ -362,38 +356,38 @@ bytecodes: [
B(LdaSmi), I8(79),
B(Star), R(12),
B(CallRuntime), U16(Runtime::kAbort), R(12), U8(1),
/* 27 S> */ B(LdaContextSlot), R(1), U8(7), U8(0),
/* 27 S> */ B(LdaContextSlot), R(1), U8(6), U8(0),
B(Star), R(13),
B(LdaNamedProperty), R(13), U8(3), U8(10),
B(Star), R(12),
/* 27 E> */ B(CallProperty0), R(12), R(13), U8(8),
/* 27 E> */ B(StaContextSlot), R(1), U8(8), U8(0),
/* 27 E> */ B(StaContextSlot), R(1), U8(7), U8(0),
B(Star), R(12),
B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(12), U8(1),
B(ToBooleanLogicalNot),
B(JumpIfFalse), U8(13),
B(LdaContextSlot), R(1), U8(8), U8(0),
B(LdaContextSlot), R(1), U8(7), U8(0),
B(Star), R(12),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(12), U8(1),
B(LdaContextSlot), R(1), U8(8), U8(0),
B(LdaContextSlot), R(1), U8(7), U8(0),
B(Star), R(12),
B(LdaNamedProperty), R(12), U8(4), U8(12),
B(JumpIfToBooleanTrue), U8(144),
B(LdaContextSlot), R(1), U8(8), U8(0),
B(LdaContextSlot), R(1), U8(7), U8(0),
B(Star), R(12),
B(LdaNamedProperty), R(12), U8(5), U8(14),
B(StaContextSlot), R(1), U8(10), U8(0),
B(LdaSmi), I8(2),
B(StaContextSlot), R(1), U8(9), U8(0),
B(LdaContextSlot), R(1), U8(10), U8(0),
B(StaContextSlot), R(1), U8(6), U8(0),
B(LdaSmi), I8(2),
B(StaContextSlot), R(1), U8(8), U8(0),
B(LdaContextSlot), R(1), U8(9), U8(0),
B(StaContextSlot), R(1), U8(5), U8(0),
/* 16 E> */ B(StackCheck),
B(Ldar), R(closure),
B(CreateBlockContext), U8(6),
B(PushContext), R(2),
B(LdaTheHole),
B(StaCurrentContextSlot), U8(4),
B(LdaContextSlot), R(1), U8(6), U8(0),
B(LdaContextSlot), R(1), U8(5), U8(0),
B(StaCurrentContextSlot), U8(4),
/* 36 S> */ B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(12),
@ -401,7 +395,7 @@ bytecodes: [
B(Star), R(13),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(12), U8(2),
B(Star), R(12),
B(LdaImmutableContextSlot), R(1), U8(5), U8(0),
B(LdaImmutableContextSlot), R(1), U8(4), U8(0),
B(Star), R(13),
B(LdaSmi), I8(1),
B(SuspendGenerator), R(13), U8(0),
@ -437,7 +431,7 @@ bytecodes: [
/* 36 E> */ B(Throw),
B(PopContext), R(2),
B(LdaZero),
B(StaContextSlot), R(1), U8(9), U8(0),
B(StaContextSlot), R(1), U8(8), U8(0),
B(JumpLoop), U8(212), I8(0),
B(Jump), U8(44),
B(Star), R(12),
@ -445,13 +439,13 @@ bytecodes: [
B(CreateCatchContext), R(12), U8(7), U8(8),
B(PushContext), R(2),
B(Star), R(11),
B(LdaContextSlot), R(1), U8(9), U8(0),
B(LdaContextSlot), R(1), U8(8), U8(0),
B(Star), R(12),
B(LdaSmi), I8(2),
B(TestEqualStrict), R(12), U8(16),
B(JumpIfFalse), U8(8),
B(LdaSmi), I8(1),
B(StaContextSlot), R(1), U8(9), U8(0),
B(StaContextSlot), R(1), U8(8), U8(0),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(12),
B(CallRuntime), U16(Runtime::kReThrow), R(12), U8(1),
@ -465,25 +459,25 @@ bytecodes: [
B(LdaTheHole),
B(SetPendingMessage),
B(Star), R(10),
B(LdaContextSlot), R(1), U8(9), U8(0),
B(LdaContextSlot), R(1), U8(8), U8(0),
B(Star), R(11),
B(LdaZero),
B(TestEqualStrict), R(11), U8(17),
B(JumpIfTrue), U8(150),
B(LdaContextSlot), R(1), U8(7), U8(0),
B(LdaContextSlot), R(1), U8(6), U8(0),
B(Star), R(11),
B(LdaNamedProperty), R(11), U8(9), U8(18),
B(StaContextSlot), R(1), U8(11), U8(0),
B(LdaContextSlot), R(1), U8(11), U8(0),
B(StaContextSlot), R(1), U8(10), U8(0),
B(LdaContextSlot), R(1), U8(10), U8(0),
B(TestUndetectable),
B(JumpIfFalse), U8(4),
B(Jump), U8(127),
B(LdaContextSlot), R(1), U8(9), U8(0),
B(LdaContextSlot), R(1), U8(8), U8(0),
B(Star), R(11),
B(LdaSmi), I8(1),
B(TestEqualStrict), R(11), U8(21),
B(JumpIfFalse), U8(69),
B(LdaContextSlot), R(1), U8(11), U8(0),
B(LdaContextSlot), R(1), U8(10), U8(0),
B(TestTypeOf), U8(5),
B(JumpIfFalse), U8(4),
B(Jump), U8(18),
@ -494,9 +488,9 @@ bytecodes: [
B(CallRuntime), U16(Runtime::kNewTypeError), R(11), U8(2),
B(Throw),
B(Mov), R(context), R(11),
B(LdaContextSlot), R(1), U8(11), U8(0),
B(LdaContextSlot), R(1), U8(10), U8(0),
B(Star), R(12),
B(LdaContextSlot), R(1), U8(7), U8(0),
B(LdaContextSlot), R(1), U8(6), U8(0),
B(Star), R(13),
B(InvokeIntrinsic), U8(Runtime::k_Call), R(12), U8(2),
B(Jump), U8(20),
@ -510,18 +504,18 @@ bytecodes: [
B(PushContext), R(2),
B(PopContext), R(2),
B(Jump), U8(47),
B(LdaContextSlot), R(1), U8(11), U8(0),
B(LdaContextSlot), R(1), U8(10), U8(0),
B(Star), R(11),
B(LdaContextSlot), R(1), U8(7), U8(0),
B(LdaContextSlot), R(1), U8(6), U8(0),
B(Star), R(12),
B(InvokeIntrinsic), U8(Runtime::k_Call), R(11), U8(2),
B(StaContextSlot), R(1), U8(12), U8(0),
B(LdaContextSlot), R(1), U8(12), U8(0),
B(StaContextSlot), R(1), U8(11), U8(0),
B(LdaContextSlot), R(1), U8(11), U8(0),
B(Star), R(11),
B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(11), U8(1),
B(JumpIfToBooleanFalse), U8(4),
B(Jump), U8(13),
B(LdaContextSlot), R(1), U8(12), U8(0),
B(LdaContextSlot), R(1), U8(11), U8(0),
B(Star), R(11),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(11), U8(1),
B(Ldar), R(10),
@ -564,7 +558,7 @@ bytecodes: [
B(LdaTheHole),
B(SetPendingMessage),
B(Star), R(7),
B(LdaImmutableCurrentContextSlot), U8(5),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(8),
B(CallRuntime), U16(Runtime::k_GeneratorClose), R(8), U8(1),
B(Ldar), R(7),
@ -614,9 +608,9 @@ constant pool: [
Smi [561],
]
handlers: [
[51, 670, 676],
[143, 432, 438],
[146, 388, 390],
[525, 541, 543],
[59, 667, 673],
[140, 429, 435],
[143, 385, 387],
[522, 538, 540],
]

View File

@ -13,7 +13,7 @@ snippet: "
"
frame size: 9
parameter count: 2
bytecode array length: 140
bytecode array length: 137
bytecodes: [
B(Ldar), R(new_target),
B(JumpIfUndefined), U8(27),
@ -23,7 +23,7 @@ bytecodes: [
B(Star), R(1),
B(LdaZero),
B(TestEqualStrictNoFeedback), R(1),
B(JumpIfTrue), U8(63),
B(JumpIfTrue), U8(60),
B(LdaSmi), I8(79),
B(Star), R(3),
B(CallRuntime), U16(Runtime::kAbort), R(3), U8(1),
@ -35,19 +35,17 @@ bytecodes: [
B(Mov), R(closure), R(4),
B(CallRuntime), U16(Runtime::kPushModuleContext), R(3), U8(3),
B(PushContext), R(0),
B(Ldar), R(this),
B(Mov), R(closure), R(3),
B(Mov), R(this), R(4),
B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(3), U8(2),
B(StaCurrentContextSlot), U8(4),
/* 0 E> */ B(StackCheck),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(4),
B(Mov), R(closure), R(3),
/* 0 E> */ B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(3), U8(2),
B(StaCurrentContextSlot), U8(5),
B(Star), R(3),
B(LdaImmutableCurrentContextSlot), U8(5),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(4),
B(LdaZero),
B(SuspendGenerator), R(4), U8(0),
/* 0 E> */ B(SuspendGenerator), R(4), U8(0),
B(Ldar), R(3),
/* 13 S> */ B(Return),
B(LdaSmi), I8(-2),
@ -70,8 +68,8 @@ bytecodes: [
B(Ldar), R(5),
/* 0 E> */ B(Throw),
B(Ldar), R(5),
B(StaCurrentContextSlot), U8(6),
B(LdaCurrentContextSlot), U8(6),
B(StaCurrentContextSlot), U8(5),
B(LdaCurrentContextSlot), U8(5),
B(Star), R(3),
B(LdaTrue),
B(Star), R(4),
@ -90,7 +88,7 @@ snippet: "
"
frame size: 9
parameter count: 2
bytecode array length: 140
bytecode array length: 137
bytecodes: [
B(Ldar), R(new_target),
B(JumpIfUndefined), U8(27),
@ -100,7 +98,7 @@ bytecodes: [
B(Star), R(1),
B(LdaZero),
B(TestEqualStrictNoFeedback), R(1),
B(JumpIfTrue), U8(63),
B(JumpIfTrue), U8(60),
B(LdaSmi), I8(79),
B(Star), R(3),
B(CallRuntime), U16(Runtime::kAbort), R(3), U8(1),
@ -112,19 +110,17 @@ bytecodes: [
B(Mov), R(closure), R(4),
B(CallRuntime), U16(Runtime::kPushModuleContext), R(3), U8(3),
B(PushContext), R(0),
B(Ldar), R(this),
B(Mov), R(closure), R(3),
B(Mov), R(this), R(4),
B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(3), U8(2),
B(StaCurrentContextSlot), U8(4),
/* 0 E> */ B(StackCheck),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(4),
B(Mov), R(closure), R(3),
/* 0 E> */ B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(3), U8(2),
B(StaCurrentContextSlot), U8(5),
B(Star), R(3),
B(LdaImmutableCurrentContextSlot), U8(5),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(4),
B(LdaZero),
B(SuspendGenerator), R(4), U8(0),
/* 0 E> */ B(SuspendGenerator), R(4), U8(0),
B(Ldar), R(3),
/* 24 S> */ B(Return),
B(LdaSmi), I8(-2),
@ -147,8 +143,8 @@ bytecodes: [
B(Ldar), R(5),
/* 0 E> */ B(Throw),
B(Ldar), R(5),
B(StaCurrentContextSlot), U8(6),
B(LdaCurrentContextSlot), U8(6),
B(StaCurrentContextSlot), U8(5),
B(LdaCurrentContextSlot), U8(5),
B(Star), R(3),
B(LdaTrue),
B(Star), R(4),
@ -169,7 +165,7 @@ snippet: "
"
frame size: 10
parameter count: 2
bytecode array length: 202
bytecode array length: 199
bytecodes: [
B(Ldar), R(new_target),
B(JumpIfUndefined), U8(27),
@ -179,7 +175,7 @@ bytecodes: [
B(Star), R(2),
B(LdaZero),
B(TestEqualStrictNoFeedback), R(2),
B(JumpIfTrue), U8(63),
B(JumpIfTrue), U8(60),
B(LdaSmi), I8(79),
B(Star), R(4),
B(CallRuntime), U16(Runtime::kAbort), R(4), U8(1),
@ -191,19 +187,17 @@ bytecodes: [
B(Mov), R(closure), R(5),
B(CallRuntime), U16(Runtime::kPushModuleContext), R(4), U8(3),
B(PushContext), R(0),
B(Ldar), R(this),
B(Mov), R(closure), R(4),
B(Mov), R(this), R(5),
B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(4), U8(2),
B(StaCurrentContextSlot), U8(4),
/* 0 E> */ B(StackCheck),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(5),
B(Mov), R(closure), R(4),
/* 0 E> */ B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(4), U8(2),
B(StaCurrentContextSlot), U8(5),
B(Star), R(4),
B(LdaImmutableCurrentContextSlot), U8(5),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(5),
B(LdaZero),
B(SuspendGenerator), R(5), U8(0),
/* 0 E> */ B(SuspendGenerator), R(5), U8(0),
B(Ldar), R(4),
/* 64 S> */ B(Return),
B(LdaSmi), I8(-2),
@ -250,9 +244,9 @@ bytecodes: [
B(LdaSmi), I8(42),
B(Star), R(5),
/* 52 E> */ B(CallUndefinedReceiver1), R(4), R(5), U8(5),
B(StaContextSlot), R(1), U8(6), U8(0),
B(StaContextSlot), R(1), U8(5), U8(0),
B(PopContext), R(1),
B(LdaCurrentContextSlot), U8(6),
B(LdaCurrentContextSlot), U8(5),
B(Star), R(4),
B(LdaTrue),
B(Star), R(5),
@ -275,7 +269,7 @@ snippet: "
"
frame size: 10
parameter count: 2
bytecode array length: 182
bytecode array length: 179
bytecodes: [
B(Ldar), R(new_target),
B(JumpIfUndefined), U8(27),
@ -285,7 +279,7 @@ bytecodes: [
B(Star), R(2),
B(LdaZero),
B(TestEqualStrictNoFeedback), R(2),
B(JumpIfTrue), U8(63),
B(JumpIfTrue), U8(60),
B(LdaSmi), I8(79),
B(Star), R(4),
B(CallRuntime), U16(Runtime::kAbort), R(4), U8(1),
@ -297,19 +291,17 @@ bytecodes: [
B(Mov), R(closure), R(5),
B(CallRuntime), U16(Runtime::kPushModuleContext), R(4), U8(3),
B(PushContext), R(0),
B(Ldar), R(this),
B(Mov), R(closure), R(4),
B(Mov), R(this), R(5),
B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(4), U8(2),
B(StaCurrentContextSlot), U8(4),
/* 0 E> */ B(StackCheck),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(5),
B(Mov), R(closure), R(4),
/* 0 E> */ B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(4), U8(2),
B(StaCurrentContextSlot), U8(5),
B(Star), R(4),
B(LdaImmutableCurrentContextSlot), U8(5),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(5),
B(LdaZero),
B(SuspendGenerator), R(5), U8(0),
/* 0 E> */ B(SuspendGenerator), R(5), U8(0),
B(Ldar), R(4),
/* 49 S> */ B(Return),
B(LdaSmi), I8(-2),
@ -349,9 +341,9 @@ bytecodes: [
B(Inc), U8(4),
/* 42 E> */ B(StaModuleVariable), I8(1), U8(1),
B(Ldar), R(4),
B(StaContextSlot), R(1), U8(6), U8(0),
B(StaContextSlot), R(1), U8(5), U8(0),
B(PopContext), R(1),
B(LdaCurrentContextSlot), U8(6),
B(LdaCurrentContextSlot), U8(5),
B(Star), R(4),
B(LdaTrue),
B(Star), R(5),
@ -373,7 +365,7 @@ snippet: "
"
frame size: 10
parameter count: 2
bytecode array length: 186
bytecode array length: 183
bytecodes: [
B(Ldar), R(new_target),
B(JumpIfUndefined), U8(27),
@ -383,7 +375,7 @@ bytecodes: [
B(Star), R(2),
B(LdaZero),
B(TestEqualStrictNoFeedback), R(2),
B(JumpIfTrue), U8(67),
B(JumpIfTrue), U8(64),
B(LdaSmi), I8(79),
B(Star), R(4),
B(CallRuntime), U16(Runtime::kAbort), R(4), U8(1),
@ -395,21 +387,19 @@ bytecodes: [
B(Mov), R(closure), R(5),
B(CallRuntime), U16(Runtime::kPushModuleContext), R(4), U8(3),
B(PushContext), R(0),
B(Ldar), R(this),
B(Mov), R(closure), R(4),
B(Mov), R(this), R(5),
B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(4), U8(2),
B(StaCurrentContextSlot), U8(4),
B(LdaTheHole),
B(StaModuleVariable), I8(1), U8(0),
/* 0 E> */ B(StackCheck),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(5),
B(Mov), R(closure), R(4),
/* 0 E> */ B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(4), U8(2),
B(StaCurrentContextSlot), U8(5),
B(Star), R(4),
B(LdaImmutableCurrentContextSlot), U8(5),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(5),
B(LdaZero),
B(SuspendGenerator), R(5), U8(0),
/* 0 E> */ B(SuspendGenerator), R(5), U8(0),
B(Ldar), R(4),
/* 49 S> */ B(Return),
B(LdaSmi), I8(-2),
@ -449,9 +439,9 @@ bytecodes: [
B(Inc), U8(4),
/* 42 E> */ B(StaModuleVariable), I8(1), U8(1),
B(Ldar), R(4),
B(StaContextSlot), R(1), U8(6), U8(0),
B(StaContextSlot), R(1), U8(5), U8(0),
B(PopContext), R(1),
B(LdaCurrentContextSlot), U8(6),
B(LdaCurrentContextSlot), U8(5),
B(Star), R(4),
B(LdaTrue),
B(Star), R(5),
@ -473,7 +463,7 @@ snippet: "
"
frame size: 10
parameter count: 2
bytecode array length: 190
bytecode array length: 187
bytecodes: [
B(Ldar), R(new_target),
B(JumpIfUndefined), U8(27),
@ -483,7 +473,7 @@ bytecodes: [
B(Star), R(2),
B(LdaZero),
B(TestEqualStrictNoFeedback), R(2),
B(JumpIfTrue), U8(67),
B(JumpIfTrue), U8(64),
B(LdaSmi), I8(79),
B(Star), R(4),
B(CallRuntime), U16(Runtime::kAbort), R(4), U8(1),
@ -495,21 +485,19 @@ bytecodes: [
B(Mov), R(closure), R(5),
B(CallRuntime), U16(Runtime::kPushModuleContext), R(4), U8(3),
B(PushContext), R(0),
B(Ldar), R(this),
B(Mov), R(closure), R(4),
B(Mov), R(this), R(5),
B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(4), U8(2),
B(StaCurrentContextSlot), U8(4),
B(LdaTheHole),
B(StaModuleVariable), I8(1), U8(0),
/* 0 E> */ B(StackCheck),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(5),
B(Mov), R(closure), R(4),
/* 0 E> */ B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(4), U8(2),
B(StaCurrentContextSlot), U8(5),
B(Star), R(4),
B(LdaImmutableCurrentContextSlot), U8(5),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(5),
B(LdaZero),
B(SuspendGenerator), R(5), U8(0),
/* 0 E> */ B(SuspendGenerator), R(5), U8(0),
B(Ldar), R(4),
/* 51 S> */ B(Return),
B(LdaSmi), I8(-2),
@ -549,9 +537,9 @@ bytecodes: [
B(Inc), U8(4),
/* 44 E> */ B(CallRuntime), U16(Runtime::kThrowConstAssignError), R(0), U8(0),
B(Ldar), R(4),
B(StaContextSlot), R(1), U8(6), U8(0),
B(StaContextSlot), R(1), U8(5), U8(0),
B(PopContext), R(1),
B(LdaCurrentContextSlot), U8(6),
B(LdaCurrentContextSlot), U8(5),
B(Star), R(4),
B(LdaTrue),
B(Star), R(5),
@ -571,7 +559,7 @@ snippet: "
"
frame size: 9
parameter count: 2
bytecode array length: 151
bytecode array length: 148
bytecodes: [
B(Ldar), R(new_target),
B(JumpIfUndefined), U8(27),
@ -581,7 +569,7 @@ bytecodes: [
B(Star), R(1),
B(LdaZero),
B(TestEqualStrictNoFeedback), R(1),
B(JumpIfTrue), U8(67),
B(JumpIfTrue), U8(64),
B(LdaSmi), I8(79),
B(Star), R(3),
B(CallRuntime), U16(Runtime::kAbort), R(3), U8(1),
@ -593,21 +581,19 @@ bytecodes: [
B(Mov), R(closure), R(4),
B(CallRuntime), U16(Runtime::kPushModuleContext), R(3), U8(3),
B(PushContext), R(0),
B(Ldar), R(this),
B(Mov), R(closure), R(3),
B(Mov), R(this), R(4),
B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(3), U8(2),
B(StaCurrentContextSlot), U8(4),
B(LdaTheHole),
B(StaModuleVariable), I8(1), U8(0),
/* 0 E> */ B(StackCheck),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(4),
B(Mov), R(closure), R(3),
/* 0 E> */ B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(3), U8(2),
B(StaCurrentContextSlot), U8(5),
B(Star), R(3),
B(LdaImmutableCurrentContextSlot), U8(5),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(4),
B(LdaZero),
B(SuspendGenerator), R(4), U8(0),
/* 0 E> */ B(SuspendGenerator), R(4), U8(0),
B(Ldar), R(3),
/* 32 S> */ B(Return),
B(LdaSmi), I8(-2),
@ -630,10 +616,10 @@ bytecodes: [
B(Ldar), R(5),
/* 0 E> */ B(Throw),
B(Ldar), R(5),
B(StaCurrentContextSlot), U8(6),
B(StaCurrentContextSlot), U8(5),
B(CreateClosure), U8(1), U8(3), U8(0),
B(StaModuleVariable), I8(1), U8(0),
B(LdaCurrentContextSlot), U8(6),
B(LdaCurrentContextSlot), U8(5),
B(Star), R(3),
B(LdaTrue),
B(Star), R(4),
@ -653,7 +639,7 @@ snippet: "
"
frame size: 9
parameter count: 2
bytecode array length: 184
bytecode array length: 181
bytecodes: [
B(Ldar), R(new_target),
B(JumpIfUndefined), U8(27),
@ -663,7 +649,7 @@ bytecodes: [
B(Star), R(1),
B(LdaZero),
B(TestEqualStrictNoFeedback), R(1),
B(JumpIfTrue), U8(67),
B(JumpIfTrue), U8(64),
B(LdaSmi), I8(79),
B(Star), R(3),
B(CallRuntime), U16(Runtime::kAbort), R(3), U8(1),
@ -675,21 +661,19 @@ bytecodes: [
B(Mov), R(closure), R(4),
B(CallRuntime), U16(Runtime::kPushModuleContext), R(3), U8(3),
B(PushContext), R(0),
B(Ldar), R(this),
B(Mov), R(closure), R(3),
B(Mov), R(this), R(4),
B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(3), U8(2),
B(StaCurrentContextSlot), U8(4),
B(LdaTheHole),
B(StaModuleVariable), I8(1), U8(0),
/* 0 E> */ B(StackCheck),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(4),
B(Mov), R(closure), R(3),
/* 0 E> */ B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(3), U8(2),
B(StaCurrentContextSlot), U8(5),
B(Star), R(3),
B(LdaImmutableCurrentContextSlot), U8(5),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(4),
B(LdaZero),
B(SuspendGenerator), R(4), U8(0),
/* 0 E> */ B(SuspendGenerator), R(4), U8(0),
B(Ldar), R(3),
/* 26 S> */ B(Return),
B(LdaSmi), I8(-2),
@ -712,7 +696,7 @@ bytecodes: [
B(Ldar), R(5),
/* 0 E> */ B(Throw),
B(Ldar), R(5),
B(StaCurrentContextSlot), U8(6),
B(StaCurrentContextSlot), U8(5),
B(CreateClosure), U8(1), U8(3), U8(0),
B(Star), R(3),
B(LdaTheHole),
@ -727,7 +711,7 @@ bytecodes: [
B(CallRuntime), U16(Runtime::kInstallClassNameAccessor), R(3), U8(1),
B(CallRuntime), U16(Runtime::kToFastProperties), R(3), U8(1),
B(StaModuleVariable), I8(1), U8(0),
B(LdaCurrentContextSlot), U8(6),
B(LdaCurrentContextSlot), U8(5),
B(Star), R(3),
B(LdaTrue),
B(Star), R(4),
@ -747,7 +731,7 @@ snippet: "
"
frame size: 9
parameter count: 2
bytecode array length: 140
bytecode array length: 137
bytecodes: [
B(Ldar), R(new_target),
B(JumpIfUndefined), U8(27),
@ -757,7 +741,7 @@ bytecodes: [
B(Star), R(1),
B(LdaZero),
B(TestEqualStrictNoFeedback), R(1),
B(JumpIfTrue), U8(63),
B(JumpIfTrue), U8(60),
B(LdaSmi), I8(79),
B(Star), R(3),
B(CallRuntime), U16(Runtime::kAbort), R(3), U8(1),
@ -769,19 +753,17 @@ bytecodes: [
B(Mov), R(closure), R(4),
B(CallRuntime), U16(Runtime::kPushModuleContext), R(3), U8(3),
B(PushContext), R(0),
B(Ldar), R(this),
B(Mov), R(closure), R(3),
B(Mov), R(this), R(4),
B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(3), U8(2),
B(StaCurrentContextSlot), U8(4),
/* 0 E> */ B(StackCheck),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(4),
B(Mov), R(closure), R(3),
/* 0 E> */ B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(3), U8(2),
B(StaCurrentContextSlot), U8(5),
B(Star), R(3),
B(LdaImmutableCurrentContextSlot), U8(5),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(4),
B(LdaZero),
B(SuspendGenerator), R(4), U8(0),
/* 0 E> */ B(SuspendGenerator), R(4), U8(0),
B(Ldar), R(3),
/* 30 S> */ B(Return),
B(LdaSmi), I8(-2),
@ -804,8 +786,8 @@ bytecodes: [
B(Ldar), R(5),
/* 0 E> */ B(Throw),
B(Ldar), R(5),
B(StaCurrentContextSlot), U8(6),
B(LdaCurrentContextSlot), U8(6),
B(StaCurrentContextSlot), U8(5),
B(LdaCurrentContextSlot), U8(5),
B(Star), R(3),
B(LdaTrue),
B(Star), R(4),
@ -824,7 +806,7 @@ snippet: "
"
frame size: 9
parameter count: 2
bytecode array length: 140
bytecode array length: 137
bytecodes: [
B(Ldar), R(new_target),
B(JumpIfUndefined), U8(27),
@ -834,7 +816,7 @@ bytecodes: [
B(Star), R(1),
B(LdaZero),
B(TestEqualStrictNoFeedback), R(1),
B(JumpIfTrue), U8(63),
B(JumpIfTrue), U8(60),
B(LdaSmi), I8(79),
B(Star), R(3),
B(CallRuntime), U16(Runtime::kAbort), R(3), U8(1),
@ -846,19 +828,17 @@ bytecodes: [
B(Mov), R(closure), R(4),
B(CallRuntime), U16(Runtime::kPushModuleContext), R(3), U8(3),
B(PushContext), R(0),
B(Ldar), R(this),
B(Mov), R(closure), R(3),
B(Mov), R(this), R(4),
B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(3), U8(2),
B(StaCurrentContextSlot), U8(4),
/* 0 E> */ B(StackCheck),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(4),
B(Mov), R(closure), R(3),
/* 0 E> */ B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(3), U8(2),
B(StaCurrentContextSlot), U8(5),
B(Star), R(3),
B(LdaImmutableCurrentContextSlot), U8(5),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(4),
B(LdaZero),
B(SuspendGenerator), R(4), U8(0),
/* 0 E> */ B(SuspendGenerator), R(4), U8(0),
B(Ldar), R(3),
/* 19 S> */ B(Return),
B(LdaSmi), I8(-2),
@ -881,8 +861,8 @@ bytecodes: [
B(Ldar), R(5),
/* 0 E> */ B(Throw),
B(Ldar), R(5),
B(StaCurrentContextSlot), U8(6),
B(LdaCurrentContextSlot), U8(6),
B(StaCurrentContextSlot), U8(5),
B(LdaCurrentContextSlot), U8(5),
B(Star), R(3),
B(LdaTrue),
B(Star), R(4),
@ -902,7 +882,7 @@ snippet: "
"
frame size: 9
parameter count: 2
bytecode array length: 178
bytecode array length: 175
bytecodes: [
B(Ldar), R(new_target),
B(JumpIfUndefined), U8(27),
@ -912,7 +892,7 @@ bytecodes: [
B(Star), R(1),
B(LdaZero),
B(TestEqualStrictNoFeedback), R(1),
B(JumpIfTrue), U8(73),
B(JumpIfTrue), U8(70),
B(LdaSmi), I8(79),
B(Star), R(3),
B(CallRuntime), U16(Runtime::kAbort), R(3), U8(1),
@ -924,23 +904,21 @@ bytecodes: [
B(Mov), R(closure), R(4),
B(CallRuntime), U16(Runtime::kPushModuleContext), R(3), U8(3),
B(PushContext), R(0),
B(Ldar), R(this),
B(Mov), R(closure), R(3),
B(Mov), R(this), R(4),
B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(3), U8(2),
B(StaCurrentContextSlot), U8(4),
B(LdaZero),
B(Star), R(3),
B(CallRuntime), U16(Runtime::kGetModuleNamespace), R(3), U8(1),
B(StaCurrentContextSlot), U8(6),
B(StaCurrentContextSlot), U8(5),
/* 0 E> */ B(StackCheck),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(4),
B(Mov), R(closure), R(3),
/* 0 E> */ B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(3), U8(2),
B(StaCurrentContextSlot), U8(5),
B(Star), R(3),
B(LdaImmutableCurrentContextSlot), U8(5),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(4),
B(LdaZero),
B(SuspendGenerator), R(4), U8(0),
/* 0 E> */ B(SuspendGenerator), R(4), U8(0),
B(Ldar), R(3),
/* 45 S> */ B(Return),
B(LdaSmi), I8(-2),
@ -962,19 +940,19 @@ bytecodes: [
/* 45 S> */ B(Return),
B(Ldar), R(5),
/* 0 E> */ B(Throw),
/* 27 S> */ B(LdaImmutableCurrentContextSlot), U8(6),
/* 27 S> */ B(LdaImmutableCurrentContextSlot), U8(5),
B(Star), R(4),
/* 30 E> */ B(LdaNamedProperty), R(4), U8(1), U8(5),
B(Star), R(3),
B(LdaImmutableCurrentContextSlot), U8(6),
B(LdaImmutableCurrentContextSlot), U8(5),
B(Star), R(5),
B(LdaImmutableCurrentContextSlot), U8(6),
B(LdaImmutableCurrentContextSlot), U8(5),
B(Star), R(6),
/* 41 E> */ B(LdaNamedProperty), R(6), U8(2), U8(7),
B(Star), R(6),
/* 31 E> */ B(CallProperty2), R(3), R(4), R(5), R(6), U8(3),
B(StaCurrentContextSlot), U8(7),
B(LdaCurrentContextSlot), U8(7),
B(StaCurrentContextSlot), U8(6),
B(LdaCurrentContextSlot), U8(6),
B(Star), R(3),
B(LdaTrue),
B(Star), R(4),

View File

@ -273,7 +273,7 @@ snippet: "
"
frame size: 15
parameter count: 1
bytecode array length: 354
bytecode array length: 351
bytecodes: [
B(Ldar), R(new_target),
B(JumpIfUndefined), U8(27),
@ -283,28 +283,26 @@ bytecodes: [
B(Star), R(4),
B(LdaZero),
B(TestEqualStrictNoFeedback), R(4),
B(JumpIfTrue), U8(53),
B(JumpIfTrue), U8(50),
B(LdaSmi), I8(79),
B(Star), R(6),
B(CallRuntime), U16(Runtime::kAbort), R(6), U8(1),
B(LdaSmi), I8(-2),
B(Star), R(4),
B(CreateFunctionContext), U8(5),
B(CreateFunctionContext), U8(4),
B(PushContext), R(0),
B(Ldar), R(this),
B(Mov), R(closure), R(6),
B(Mov), R(this), R(7),
B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(6), U8(2),
B(StaCurrentContextSlot), U8(4),
/* 11 E> */ B(StackCheck),
B(Mov), R(context), R(8),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(10),
B(Mov), R(closure), R(9),
/* 11 E> */ B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(9), U8(2),
B(StaCurrentContextSlot), U8(5),
B(Star), R(9),
B(LdaImmutableCurrentContextSlot), U8(5),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(10),
B(LdaZero),
B(SuspendGenerator), R(10), U8(0),
/* 11 E> */ B(SuspendGenerator), R(10), U8(0),
B(Ldar), R(9),
/* 62 S> */ B(Return),
B(LdaSmi), I8(-2),
@ -337,30 +335,30 @@ bytecodes: [
/* 31 S> */ B(LdaZero),
/* 31 E> */ B(StaCurrentContextSlot), U8(4),
B(LdaImmutableCurrentContextSlot), U8(4),
/* 60 E> */ B(StaContextSlot), R(1), U8(6), U8(0),
/* 60 E> */ B(StaContextSlot), R(1), U8(5), U8(0),
B(LdaSmi), I8(1),
B(StaContextSlot), R(1), U8(7), U8(0),
B(StaContextSlot), R(1), U8(6), U8(0),
B(StackCheck),
B(Ldar), R(closure),
B(CreateBlockContext), U8(1),
B(PushContext), R(2),
B(LdaTheHole),
B(StaCurrentContextSlot), U8(4),
B(LdaContextSlot), R(1), U8(6), U8(0),
B(LdaContextSlot), R(1), U8(5), U8(0),
B(StaCurrentContextSlot), U8(4),
B(LdaContextSlot), R(1), U8(7), U8(0),
B(LdaContextSlot), R(1), U8(6), U8(0),
B(Star), R(9),
B(LdaSmi), I8(1),
B(TestEqual), R(9), U8(3),
B(JumpIfFalse), U8(9),
B(LdaZero),
B(StaContextSlot), R(1), U8(7), U8(0),
B(StaContextSlot), R(1), U8(6), U8(0),
B(Jump), U8(8),
/* 44 S> */ B(LdaCurrentContextSlot), U8(4),
B(Inc), U8(4),
/* 44 E> */ B(StaCurrentContextSlot), U8(4),
B(LdaSmi), I8(1),
B(StaContextSlot), R(1), U8(8), U8(0),
B(StaContextSlot), R(1), U8(7), U8(0),
/* 36 S> */ B(LdaCurrentContextSlot), U8(4),
B(Star), R(9),
B(LdaSmi), I8(10),
@ -369,7 +367,7 @@ bytecodes: [
B(Jump), U8(6),
B(PopContext), R(2),
B(Jump), U8(69),
B(LdaContextSlot), R(1), U8(8), U8(0),
B(LdaContextSlot), R(1), U8(7), U8(0),
B(Star), R(9),
B(LdaSmi), I8(1),
B(TestEqual), R(9), U8(6),
@ -384,11 +382,11 @@ bytecodes: [
/* 57 E> */ B(StaCurrentContextSlot), U8(4),
B(PopContext), R(3),
B(LdaZero),
B(StaContextSlot), R(1), U8(8), U8(0),
B(StaContextSlot), R(1), U8(7), U8(0),
B(LdaCurrentContextSlot), U8(4),
/* 60 E> */ B(StaContextSlot), R(1), U8(6), U8(0),
/* 60 E> */ B(StaContextSlot), R(1), U8(5), U8(0),
B(JumpLoop), U8(42), I8(1),
B(LdaContextSlot), R(1), U8(8), U8(0),
B(LdaContextSlot), R(1), U8(7), U8(0),
B(Star), R(9),
B(LdaSmi), I8(1),
B(TestEqual), R(9), U8(7),
@ -416,7 +414,7 @@ bytecodes: [
B(LdaTheHole),
B(SetPendingMessage),
B(Star), R(8),
B(LdaImmutableCurrentContextSlot), U8(5),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(9),
B(CallRuntime), U16(Runtime::k_GeneratorClose), R(9), U8(1),
B(Ldar), R(8),
@ -446,7 +444,7 @@ constant pool: [
FIXED_ARRAY_TYPE,
]
handlers: [
[45, 296, 302],
[53, 293, 299],
]
---
@ -458,7 +456,7 @@ snippet: "
"
frame size: 14
parameter count: 1
bytecode array length: 479
bytecode array length: 476
bytecodes: [
B(Ldar), R(new_target),
B(JumpIfUndefined), U8(33),
@ -468,31 +466,29 @@ bytecodes: [
B(Star), R(3),
B(LdaZero),
B(TestEqualStrictNoFeedback), R(3),
B(JumpIfTrue), U8(59),
B(JumpIfTrue), U8(56),
B(LdaSmi), I8(1),
B(TestEqualStrictNoFeedback), R(3),
B(JumpIfTrue), U8(126),
B(JumpIfTrue), U8(123),
B(LdaSmi), I8(79),
B(Star), R(5),
B(CallRuntime), U16(Runtime::kAbort), R(5), U8(1),
B(LdaSmi), I8(-2),
B(Star), R(3),
B(CreateFunctionContext), U8(5),
B(CreateFunctionContext), U8(4),
B(PushContext), R(0),
B(Ldar), R(this),
B(Mov), R(closure), R(5),
B(Mov), R(this), R(6),
B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(5), U8(2),
B(StaCurrentContextSlot), U8(4),
/* 11 E> */ B(StackCheck),
B(Mov), R(context), R(7),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(9),
B(Mov), R(closure), R(8),
/* 11 E> */ B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(8), U8(2),
B(StaCurrentContextSlot), U8(5),
B(Star), R(8),
B(LdaImmutableCurrentContextSlot), U8(5),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(9),
B(LdaZero),
B(SuspendGenerator), R(9), U8(0),
/* 11 E> */ B(SuspendGenerator), R(9), U8(0),
B(Ldar), R(8),
/* 56 S> */ B(Return),
B(LdaSmi), I8(-2),
@ -525,9 +521,9 @@ bytecodes: [
/* 31 S> */ B(LdaZero),
/* 31 E> */ B(StaCurrentContextSlot), U8(4),
B(LdaImmutableCurrentContextSlot), U8(4),
/* 54 E> */ B(StaContextSlot), R(1), U8(6), U8(0),
/* 54 E> */ B(StaContextSlot), R(1), U8(5), U8(0),
B(LdaSmi), I8(1),
B(StaContextSlot), R(1), U8(7), U8(0),
B(StaContextSlot), R(1), U8(6), U8(0),
B(LdaSmi), I8(-2),
B(TestEqualStrictNoFeedback), R(3),
B(JumpIfTrue), U8(17),
@ -543,21 +539,21 @@ bytecodes: [
B(PushContext), R(2),
B(LdaTheHole),
B(StaCurrentContextSlot), U8(4),
B(LdaContextSlot), R(1), U8(6), U8(0),
B(LdaContextSlot), R(1), U8(5), U8(0),
B(StaCurrentContextSlot), U8(4),
B(LdaContextSlot), R(1), U8(7), U8(0),
B(LdaContextSlot), R(1), U8(6), U8(0),
B(Star), R(8),
B(LdaSmi), I8(1),
B(TestEqual), R(8), U8(3),
B(JumpIfFalse), U8(9),
B(LdaZero),
B(StaContextSlot), R(1), U8(7), U8(0),
B(StaContextSlot), R(1), U8(6), U8(0),
B(Jump), U8(8),
/* 44 S> */ B(LdaCurrentContextSlot), U8(4),
B(Inc), U8(4),
/* 44 E> */ B(StaCurrentContextSlot), U8(4),
B(LdaSmi), I8(1),
B(StaContextSlot), R(1), U8(8), U8(0),
B(StaContextSlot), R(1), U8(7), U8(0),
/* 36 S> */ B(LdaCurrentContextSlot), U8(4),
B(Star), R(8),
B(LdaSmi), I8(10),
@ -575,7 +571,7 @@ bytecodes: [
B(LdaSmi), I8(79),
B(Star), R(8),
B(CallRuntime), U16(Runtime::kAbort), R(8), U8(1),
B(LdaContextSlot), R(1), U8(8), U8(0),
B(LdaContextSlot), R(1), U8(7), U8(0),
B(Star), R(8),
B(LdaSmi), I8(1),
B(TestEqual), R(8), U8(6),
@ -587,7 +583,7 @@ bytecodes: [
B(Star), R(9),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(8), U8(2),
B(Star), R(8),
B(LdaImmutableContextSlot), R(1), U8(5), U8(0),
B(LdaImmutableContextSlot), R(1), U8(4), U8(0),
B(Star), R(9),
B(LdaSmi), I8(1),
B(SuspendGenerator), R(9), U8(0),
@ -620,11 +616,11 @@ bytecodes: [
B(Ldar), R(10),
/* 47 E> */ B(Throw),
B(LdaZero),
B(StaContextSlot), R(1), U8(8), U8(0),
B(StaContextSlot), R(1), U8(7), U8(0),
B(LdaCurrentContextSlot), U8(4),
/* 54 E> */ B(StaContextSlot), R(1), U8(6), U8(0),
/* 54 E> */ B(StaContextSlot), R(1), U8(5), U8(0),
B(JumpLoop), U8(131), I8(1),
B(LdaContextSlot), R(1), U8(8), U8(0),
B(LdaContextSlot), R(1), U8(7), U8(0),
B(Star), R(8),
B(LdaSmi), I8(1),
B(TestEqual), R(8), U8(7),
@ -652,7 +648,7 @@ bytecodes: [
B(LdaTheHole),
B(SetPendingMessage),
B(Star), R(7),
B(LdaImmutableCurrentContextSlot), U8(5),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(8),
B(CallRuntime), U16(Runtime::k_GeneratorClose), R(8), U8(1),
B(Ldar), R(7),
@ -687,7 +683,7 @@ constant pool: [
Smi [303],
]
handlers: [
[51, 412, 418],
[59, 409, 415],
]
---
@ -699,7 +695,7 @@ snippet: "
"
frame size: 14
parameter count: 1
bytecode array length: 360
bytecode array length: 355
bytecodes: [
B(Ldar), R(new_target),
B(JumpIfUndefined), U8(22),
@ -712,20 +708,17 @@ bytecodes: [
B(CallRuntime), U16(Runtime::kAbort), R(6), U8(1),
B(LdaSmi), I8(-2),
B(Star), R(4),
B(CreateFunctionContext), U8(6),
B(CreateFunctionContext), U8(5),
B(PushContext), R(0),
B(Ldar), R(this),
B(Mov), R(closure), R(6),
B(Mov), R(this), R(7),
B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(6), U8(2),
B(StaCurrentContextSlot), U8(4),
/* 16 E> */ B(StackCheck),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(7),
B(Mov), R(closure), R(6),
B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(6), U8(2),
B(StaCurrentContextSlot), U8(5),
B(LdaUndefined),
B(Star), R(6),
B(CallJSRuntime), U8(%async_function_promise_create), R(6), U8(1),
B(StaCurrentContextSlot), U8(9),
B(StaCurrentContextSlot), U8(8),
B(Mov), R(context), R(8),
B(Mov), R(context), R(9),
B(Ldar), R(closure),
@ -736,30 +729,30 @@ bytecodes: [
/* 36 S> */ B(LdaZero),
/* 36 E> */ B(StaCurrentContextSlot), U8(4),
B(LdaImmutableCurrentContextSlot), U8(4),
/* 65 E> */ B(StaContextSlot), R(1), U8(6), U8(0),
/* 65 E> */ B(StaContextSlot), R(1), U8(5), U8(0),
B(LdaSmi), I8(1),
B(StaContextSlot), R(1), U8(7), U8(0),
B(StaContextSlot), R(1), U8(6), U8(0),
B(StackCheck),
B(Ldar), R(closure),
B(CreateBlockContext), U8(1),
B(PushContext), R(2),
B(LdaTheHole),
B(StaCurrentContextSlot), U8(4),
B(LdaContextSlot), R(1), U8(6), U8(0),
B(LdaContextSlot), R(1), U8(5), U8(0),
B(StaCurrentContextSlot), U8(4),
B(LdaContextSlot), R(1), U8(7), U8(0),
B(LdaContextSlot), R(1), U8(6), U8(0),
B(Star), R(10),
B(LdaSmi), I8(1),
B(TestEqual), R(10), U8(3),
B(JumpIfFalse), U8(9),
B(LdaZero),
B(StaContextSlot), R(1), U8(7), U8(0),
B(StaContextSlot), R(1), U8(6), U8(0),
B(Jump), U8(8),
/* 49 S> */ B(LdaCurrentContextSlot), U8(4),
B(Inc), U8(4),
/* 49 E> */ B(StaCurrentContextSlot), U8(4),
B(LdaSmi), I8(1),
B(StaContextSlot), R(1), U8(8), U8(0),
B(StaContextSlot), R(1), U8(7), U8(0),
/* 41 S> */ B(LdaCurrentContextSlot), U8(4),
B(Star), R(10),
B(LdaSmi), I8(10),
@ -768,7 +761,7 @@ bytecodes: [
B(Jump), U8(6),
B(PopContext), R(2),
B(Jump), U8(69),
B(LdaContextSlot), R(1), U8(8), U8(0),
B(LdaContextSlot), R(1), U8(7), U8(0),
B(Star), R(10),
B(LdaSmi), I8(1),
B(TestEqual), R(10), U8(6),
@ -783,11 +776,11 @@ bytecodes: [
/* 62 E> */ B(StaCurrentContextSlot), U8(4),
B(PopContext), R(3),
B(LdaZero),
B(StaContextSlot), R(1), U8(8), U8(0),
B(StaContextSlot), R(1), U8(7), U8(0),
B(LdaCurrentContextSlot), U8(4),
/* 65 E> */ B(StaContextSlot), R(1), U8(6), U8(0),
/* 65 E> */ B(StaContextSlot), R(1), U8(5), U8(0),
B(JumpLoop), U8(42), I8(1),
B(LdaContextSlot), R(1), U8(8), U8(0),
B(LdaContextSlot), R(1), U8(7), U8(0),
B(Star), R(10),
B(LdaSmi), I8(1),
B(TestEqual), R(10), U8(7),
@ -799,12 +792,12 @@ bytecodes: [
B(PopContext), R(1),
B(LdaUndefined),
B(Star), R(10),
B(LdaCurrentContextSlot), U8(9),
B(LdaCurrentContextSlot), U8(8),
B(Star), R(11),
B(LdaUndefined),
B(Star), R(12),
B(CallJSRuntime), U8(%promise_resolve), R(10), U8(3),
B(LdaCurrentContextSlot), U8(9),
B(LdaCurrentContextSlot), U8(8),
B(Star), R(7),
B(LdaZero),
B(Star), R(6),
@ -820,14 +813,14 @@ bytecodes: [
B(PushContext), R(1),
B(LdaUndefined),
B(Star), R(10),
B(LdaContextSlot), R(1), U8(9), U8(0),
B(LdaContextSlot), R(1), U8(8), U8(0),
B(Star), R(11),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(12),
B(LdaFalse),
B(Star), R(13),
B(CallJSRuntime), U8(%promise_internal_reject), R(10), U8(4),
B(LdaContextSlot), R(1), U8(9), U8(0),
B(LdaContextSlot), R(1), U8(8), U8(0),
B(PopContext), R(1),
B(PopContext), R(1),
B(Star), R(7),
@ -845,7 +838,7 @@ bytecodes: [
B(Star), R(8),
B(LdaUndefined),
B(Star), R(9),
B(LdaCurrentContextSlot), U8(9),
B(LdaCurrentContextSlot), U8(8),
B(Star), R(10),
B(CallJSRuntime), U8(%async_function_promise_release), R(9), U8(2),
B(Ldar), R(8),
@ -877,8 +870,8 @@ constant pool: [
FIXED_ARRAY_TYPE,
]
handlers: [
[62, 300, 306],
[65, 246, 248],
[57, 295, 301],
[60, 241, 243],
]
---
@ -890,7 +883,7 @@ snippet: "
"
frame size: 15
parameter count: 1
bytecode array length: 512
bytecode array length: 507
bytecodes: [
B(Ldar), R(new_target),
B(JumpIfUndefined), U8(27),
@ -900,26 +893,23 @@ bytecodes: [
B(Star), R(3),
B(LdaZero),
B(TestEqualStrictNoFeedback), R(3),
B(JumpIfTrue), U8(76),
B(JumpIfTrue), U8(71),
B(LdaSmi), I8(79),
B(Star), R(5),
B(CallRuntime), U16(Runtime::kAbort), R(5), U8(1),
B(LdaSmi), I8(-2),
B(Star), R(3),
B(CreateFunctionContext), U8(7),
B(CreateFunctionContext), U8(6),
B(PushContext), R(0),
B(Ldar), R(this),
B(Mov), R(closure), R(5),
B(Mov), R(this), R(6),
B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(5), U8(2),
B(StaCurrentContextSlot), U8(4),
/* 16 E> */ B(StackCheck),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(6),
B(Mov), R(closure), R(5),
B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(5), U8(2),
B(StaCurrentContextSlot), U8(5),
B(LdaUndefined),
B(Star), R(5),
B(CallJSRuntime), U8(%async_function_promise_create), R(5), U8(1),
B(StaCurrentContextSlot), U8(7),
B(StaCurrentContextSlot), U8(6),
B(Mov), R(context), R(7),
B(Mov), R(context), R(8),
B(Ldar), R(closure),
@ -930,9 +920,9 @@ bytecodes: [
/* 36 S> */ B(LdaZero),
/* 36 E> */ B(StaCurrentContextSlot), U8(4),
B(LdaImmutableCurrentContextSlot), U8(4),
/* 59 E> */ B(StaContextSlot), R(1), U8(8), U8(0),
/* 59 E> */ B(StaContextSlot), R(1), U8(7), U8(0),
B(LdaSmi), I8(1),
B(StaContextSlot), R(1), U8(9), U8(0),
B(StaContextSlot), R(1), U8(8), U8(0),
B(LdaSmi), I8(-2),
B(TestEqualStrictNoFeedback), R(3),
B(JumpIfTrue), U8(16),
@ -948,21 +938,21 @@ bytecodes: [
B(PushContext), R(2),
B(LdaTheHole),
B(StaCurrentContextSlot), U8(4),
B(LdaContextSlot), R(1), U8(8), U8(0),
B(LdaContextSlot), R(1), U8(7), U8(0),
B(StaCurrentContextSlot), U8(4),
B(LdaContextSlot), R(1), U8(9), U8(0),
B(LdaContextSlot), R(1), U8(8), U8(0),
B(Star), R(9),
B(LdaSmi), I8(1),
B(TestEqual), R(9), U8(3),
B(JumpIfFalse), U8(9),
B(LdaZero),
B(StaContextSlot), R(1), U8(9), U8(0),
B(StaContextSlot), R(1), U8(8), U8(0),
B(Jump), U8(8),
/* 49 S> */ B(LdaCurrentContextSlot), U8(4),
B(Inc), U8(4),
/* 49 E> */ B(StaCurrentContextSlot), U8(4),
B(LdaSmi), I8(1),
B(StaContextSlot), R(1), U8(10), U8(0),
B(StaContextSlot), R(1), U8(9), U8(0),
/* 41 S> */ B(LdaCurrentContextSlot), U8(4),
B(Star), R(9),
B(LdaSmi), I8(10),
@ -980,26 +970,26 @@ bytecodes: [
B(LdaSmi), I8(79),
B(Star), R(9),
B(CallRuntime), U16(Runtime::kAbort), R(9), U8(1),
B(LdaContextSlot), R(1), U8(10), U8(0),
B(LdaContextSlot), R(1), U8(9), U8(0),
B(Star), R(9),
B(LdaSmi), I8(1),
B(TestEqual), R(9), U8(6),
B(JumpIfFalse), U8(128),
/* 23 E> */ B(StackCheck),
/* 58 S> */ B(LdaCurrentContextSlot), U8(4),
B(StaContextSlot), R(1), U8(6), U8(0),
B(StaContextSlot), R(1), U8(5), U8(0),
/* 52 S> */ B(LdaUndefined),
B(Star), R(9),
B(LdaImmutableContextSlot), R(1), U8(5), U8(0),
B(LdaImmutableContextSlot), R(1), U8(4), U8(0),
B(Star), R(10),
B(LdaContextSlot), R(1), U8(6), U8(0),
B(LdaContextSlot), R(1), U8(5), U8(0),
B(Star), R(11),
B(LdaContextSlot), R(1), U8(7), U8(0),
B(LdaContextSlot), R(1), U8(6), U8(0),
B(Star), R(12),
B(CallJSRuntime), U8(%async_function_await_uncaught), R(9), U8(4),
B(LdaContextSlot), R(1), U8(7), U8(0),
B(LdaContextSlot), R(1), U8(6), U8(0),
B(Star), R(9),
B(LdaImmutableContextSlot), R(1), U8(5), U8(0),
B(LdaImmutableContextSlot), R(1), U8(4), U8(0),
B(Star), R(10),
B(LdaZero),
B(SuspendGenerator), R(10), U8(2),
@ -1034,11 +1024,11 @@ bytecodes: [
B(Ldar), R(11),
B(ReThrow),
B(LdaZero),
B(StaContextSlot), R(1), U8(10), U8(0),
B(StaContextSlot), R(1), U8(9), U8(0),
B(LdaCurrentContextSlot), U8(4),
/* 59 E> */ B(StaContextSlot), R(1), U8(8), U8(0),
/* 59 E> */ B(StaContextSlot), R(1), U8(7), U8(0),
B(JumpLoop), U8(156), I8(1),
B(LdaContextSlot), R(1), U8(10), U8(0),
B(LdaContextSlot), R(1), U8(9), U8(0),
B(Star), R(9),
B(LdaSmi), I8(1),
B(TestEqual), R(9), U8(7),
@ -1050,12 +1040,12 @@ bytecodes: [
B(PopContext), R(1),
B(LdaUndefined),
B(Star), R(9),
B(LdaCurrentContextSlot), U8(7),
B(LdaCurrentContextSlot), U8(6),
B(Star), R(10),
B(LdaUndefined),
B(Star), R(11),
B(CallJSRuntime), U8(%promise_resolve), R(9), U8(3),
B(LdaCurrentContextSlot), U8(7),
B(LdaCurrentContextSlot), U8(6),
B(Star), R(6),
B(LdaSmi), I8(1),
B(Star), R(5),
@ -1071,14 +1061,14 @@ bytecodes: [
B(PushContext), R(1),
B(LdaUndefined),
B(Star), R(9),
B(LdaContextSlot), R(1), U8(7), U8(0),
B(LdaContextSlot), R(1), U8(6), U8(0),
B(Star), R(10),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(11),
B(LdaFalse),
B(Star), R(12),
B(CallJSRuntime), U8(%promise_internal_reject), R(9), U8(4),
B(LdaContextSlot), R(1), U8(7), U8(0),
B(LdaContextSlot), R(1), U8(6), U8(0),
B(PopContext), R(1),
B(PopContext), R(1),
B(Star), R(6),
@ -1096,7 +1086,7 @@ bytecodes: [
B(Star), R(7),
B(LdaUndefined),
B(Star), R(8),
B(LdaCurrentContextSlot), U8(7),
B(LdaCurrentContextSlot), U8(6),
B(Star), R(9),
B(CallJSRuntime), U8(%async_function_promise_release), R(8), U8(2),
B(Ldar), R(7),
@ -1132,7 +1122,7 @@ constant pool: [
FIXED_ARRAY_TYPE,
]
handlers: [
[67, 443, 449],
[70, 389, 391],
[62, 438, 444],
[65, 384, 386],
]