Commit b5843923 authored by Adam Klein's avatar Adam Klein Committed by Commit Bot

[generators] Remove generator_object_ member from Suspend AST node

Now that the BytecodeGenerator has a dedicated register holding
the generator object, BytecodeGenerator::VisitSuspend can
access the generator directly from that register. This reduces
by one the number of live registers at each suspend point.

Bug: v8:6351, v8:6460
Change-Id: I380a9d2bd8ca7eec6720e5392c1ca07dd0df0e2d
Reviewed-on: https://chromium-review.googlesource.com/522982
Commit-Queue: Adam Klein <adamk@chromium.org>
Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45710}
parent 218b4d30
......@@ -267,7 +267,6 @@ void AstExpressionRewriter::VisitAssignment(Assignment* node) {
void AstExpressionRewriter::VisitSuspend(Suspend* node) {
REWRITE_THIS(node);
AST_REWRITE_PROPERTY(Expression, node, generator_object);
AST_REWRITE_PROPERTY(Expression, node, expression);
}
......
......@@ -246,7 +246,6 @@ void AstNumberingVisitor::VisitSuspend(Suspend* node) {
suspend_count_++;
IncrementNodeCount();
node->set_base_id(ReserveIdRange(Suspend::num_ids()));
Visit(node->generator_object());
Visit(node->expression());
}
......
......@@ -359,7 +359,6 @@ void AstTraversalVisitor<Subclass>::VisitAssignment(Assignment* expr) {
template <class Subclass>
void AstTraversalVisitor<Subclass>::VisitSuspend(Suspend* expr) {
PROCESS_EXPRESSION(expr);
RECURSE_EXPRESSION(Visit(expr->generator_object()));
RECURSE_EXPRESSION(Visit(expr->expression()));
}
......
......@@ -2512,7 +2512,6 @@ class Suspend final : public Expression {
// desugar yield*.
enum OnAbruptResume { kOnExceptionThrow, kOnExceptionRethrow, kNoControl };
Expression* generator_object() const { return generator_object_; }
Expression* expression() const { return expression_; }
OnAbruptResume on_abrupt_resume() const {
return OnAbruptResumeField::decode(bit_field_);
......@@ -2543,7 +2542,6 @@ class Suspend final : public Expression {
SuspendFlags::kAsyncGenerator;
}
void set_generator_object(Expression* e) { generator_object_ = e; }
void set_expression(Expression* e) { expression_ = e; }
void set_suspend_id(int id) { suspend_id_ = id; }
void set_suspend_type(SuspendFlags type) {
......@@ -2554,18 +2552,14 @@ class Suspend final : public Expression {
private:
friend class AstNodeFactory;
Suspend(Expression* generator_object, Expression* expression, int pos,
OnAbruptResume on_abrupt_resume, SuspendFlags flags)
: Expression(pos, kSuspend),
suspend_id_(-1),
generator_object_(generator_object),
expression_(expression) {
Suspend(Expression* expression, int pos, OnAbruptResume on_abrupt_resume,
SuspendFlags flags)
: Expression(pos, kSuspend), suspend_id_(-1), expression_(expression) {
bit_field_ |= OnAbruptResumeField::encode(on_abrupt_resume) |
FlagsField::encode(flags);
}
int suspend_id_;
Expression* generator_object_;
Expression* expression_;
class OnAbruptResumeField
......@@ -3555,12 +3549,11 @@ class AstNodeFactory final BASE_EMBEDDED {
return assign;
}
Suspend* NewSuspend(Expression* generator_object, Expression* expression,
int pos, Suspend::OnAbruptResume on_abrupt_resume,
Suspend* NewSuspend(Expression* expression, int pos,
Suspend::OnAbruptResume on_abrupt_resume,
SuspendFlags flags) {
if (!expression) expression = NewUndefinedLiteral(pos);
return new (zone_)
Suspend(generator_object, expression, pos, on_abrupt_resume, flags);
return new (zone_) Suspend(expression, pos, on_abrupt_resume, flags);
}
Throw* NewThrow(Expression* exception, int pos) {
......
......@@ -150,7 +150,6 @@ void ALAA::VisitObjectLiteral(ObjectLiteral* e) {
void ALAA::VisitArrayLiteral(ArrayLiteral* e) { VisitExpressions(e->values()); }
void ALAA::VisitSuspend(Suspend* stmt) {
Visit(stmt->generator_object());
Visit(stmt->expression());
}
......
......@@ -468,7 +468,6 @@ void AstTyper::VisitAssignment(Assignment* expr) {
}
void AstTyper::VisitSuspend(Suspend* expr) {
RECURSE(Visit(expr->generator_object()));
RECURSE(Visit(expr->expression()));
// We don't know anything about the result type.
......
......@@ -2521,7 +2521,7 @@ void BytecodeGenerator::VisitAssignment(Assignment* expr) {
}
}
void BytecodeGenerator::BuildGeneratorSuspend(Suspend* expr, Register generator,
void BytecodeGenerator::BuildGeneratorSuspend(Suspend* expr,
RegisterList registers_to_save) {
RegisterAllocationScope register_scope(this);
......@@ -2531,7 +2531,7 @@ void BytecodeGenerator::BuildGeneratorSuspend(Suspend* expr, Register generator,
// Save context, registers, and state. Then return.
builder()
->LoadLiteral(Smi::FromInt(expr->suspend_id()))
.SuspendGenerator(generator, registers_to_save, expr->flags());
.SuspendGenerator(generator_object_, registers_to_save, expr->flags());
if (expr->IsNonInitialAsyncGeneratorYield()) {
// AsyncGenerator yields (with the exception of the initial yield) delegate
......@@ -2541,7 +2541,7 @@ void BytecodeGenerator::BuildGeneratorSuspend(Suspend* expr, Register generator,
// AsyncGeneratorYield:
// perform AsyncGeneratorResolve(<generator>, <value>, false).
builder()
->MoveRegister(generator, args[0])
->MoveRegister(generator_object_, args[0])
.MoveRegister(value, args[1])
.LoadFalse()
.StoreAccumulatorInRegister(args[2])
......@@ -2553,7 +2553,7 @@ void BytecodeGenerator::BuildGeneratorSuspend(Suspend* expr, Register generator,
}
void BytecodeGenerator::BuildGeneratorResume(
Suspend* expr, Register generator, RegisterList registers_to_restore) {
Suspend* expr, RegisterList registers_to_restore) {
RegisterAllocationScope register_scope(this);
// Clobbers all registers.
......@@ -2575,13 +2575,13 @@ void BytecodeGenerator::BuildGeneratorResume(
? Runtime::kInlineAsyncGeneratorGetAwaitInputOrDebugPos
: Runtime::kInlineGeneratorGetInputOrDebugPos;
DCHECK(generator.is_valid());
builder()->CallRuntime(get_generator_input, generator);
builder()->CallRuntime(get_generator_input, generator_object_);
if (expr->on_abrupt_resume() != Suspend::kNoControl) {
builder()->StoreAccumulatorInRegister(input);
builder()->CallRuntime(Runtime::kInlineGeneratorGetResumeMode, generator);
builder()->CallRuntime(Runtime::kInlineGeneratorGetResumeMode,
generator_object_);
// Now dispatch on resume mode.
STATIC_ASSERT(JSGeneratorObject::kNext + 1 == JSGeneratorObject::kReturn);
......@@ -2630,12 +2630,11 @@ void BytecodeGenerator::BuildGeneratorResume(
}
void BytecodeGenerator::VisitSuspend(Suspend* expr) {
Register generator = VisitForRegisterValue(expr->generator_object());
RegisterList registers(0, register_allocator()->next_register_index());
BuildGeneratorSuspend(expr, generator, registers);
BuildGeneratorSuspend(expr, registers);
builder()->Bind(generator_jump_table_, static_cast<int>(expr->suspend_id()));
// Upon resume, we continue here.
BuildGeneratorResume(expr, generator, registers);
BuildGeneratorResume(expr, registers);
}
void BytecodeGenerator::VisitThrow(Throw* expr) {
......
......@@ -136,10 +136,8 @@ class BytecodeGenerator final : public AstVisitor<BytecodeGenerator> {
void BuildNewLocalWithContext(Scope* scope);
void BuildGeneratorPrologue();
void BuildGeneratorSuspend(Suspend* expr, Register generator,
RegisterList registers_to_save);
void BuildGeneratorResume(Suspend* expr, Register generator,
RegisterList registers_to_restore);
void BuildGeneratorSuspend(Suspend* expr, RegisterList registers_to_save);
void BuildGeneratorResume(Suspend* expr, RegisterList registers_to_restore);
void VisitArgumentsObject(Variable* variable);
void VisitRestArgumentsArray(Variable* rest);
......
......@@ -1399,16 +1399,15 @@ class ParserBase {
}
inline SuspendExpressionT BuildSuspend(
ExpressionT generator, ExpressionT expr, int pos,
Suspend::OnAbruptResume on_abrupt_resume, SuspendFlags suspend_type) {
ExpressionT expr, int pos, Suspend::OnAbruptResume on_abrupt_resume,
SuspendFlags suspend_type) {
DCHECK_EQ(0,
static_cast<int>(suspend_type & ~SuspendFlags::kSuspendTypeMask));
if (V8_UNLIKELY(is_async_generator())) {
suspend_type = static_cast<SuspendFlags>(suspend_type |
SuspendFlags::kAsyncGenerator);
}
return factory()->NewSuspend(generator, expr, pos, on_abrupt_resume,
suspend_type);
return factory()->NewSuspend(expr, pos, on_abrupt_resume, suspend_type);
}
// Validation per ES6 object literals.
......@@ -2970,8 +2969,6 @@ typename ParserBase<Impl>::ExpressionT ParserBase<Impl>::ParseYieldExpression(
classifier()->RecordFormalParameterInitializerError(
scanner()->peek_location(), MessageTemplate::kYieldInParameter);
Expect(Token::YIELD, CHECK_OK);
ExpressionT generator_object =
factory()->NewVariableProxy(function_state_->generator_object_variable());
// The following initialization is necessary.
ExpressionT expression = impl()->EmptyExpression();
bool delegating = false; // yield*
......@@ -2999,7 +2996,7 @@ typename ParserBase<Impl>::ExpressionT ParserBase<Impl>::ParseYieldExpression(
}
if (delegating) {
return impl()->RewriteYieldStar(generator_object, expression, pos);
return impl()->RewriteYieldStar(expression, pos);
}
if (!is_async_generator()) {
......@@ -3010,9 +3007,8 @@ typename ParserBase<Impl>::ExpressionT ParserBase<Impl>::ParseYieldExpression(
// Hackily disambiguate o from o.next and o [Symbol.iterator]().
// TODO(verwaest): Come up with a better solution.
ExpressionT yield =
BuildSuspend(generator_object, expression, pos,
Suspend::kOnExceptionThrow, SuspendFlags::kYield);
ExpressionT yield = BuildSuspend(expression, pos, Suspend::kOnExceptionThrow,
SuspendFlags::kYield);
return yield;
}
......
......@@ -3177,17 +3177,12 @@ Variable* Parser::AsyncGeneratorAwaitVariable() {
}
Expression* Parser::BuildInitialYield(int pos, FunctionKind kind) {
// 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_object, yield_result, scope()->start_position(),
return BuildSuspend(yield_result, scope()->start_position(),
Suspend::kOnExceptionThrow, SuspendFlags::kYield);
}
......@@ -3922,8 +3917,8 @@ Expression* Parser::RewriteAwaitExpression(Expression* value, int await_pos) {
Expression* do_expr = factory()->NewDoExpression(
do_block, AsyncGeneratorAwaitVariable(), nopos);
return BuildSuspend(generator_object, do_expr, await_pos,
Suspend::kOnExceptionRethrow, SuspendFlags::kAwait);
return BuildSuspend(do_expr, await_pos, Suspend::kOnExceptionRethrow,
SuspendFlags::kAwait);
}
// The parser emits calls to AsyncFunctionAwaitCaught or but the
......@@ -3942,8 +3937,7 @@ Expression* Parser::RewriteAwaitExpression(Expression* value, int await_pos) {
Expression* do_expr =
factory()->NewDoExpression(do_block, PromiseVariable(), nopos);
return factory()->NewSuspend(generator_object, do_expr, await_pos,
Suspend::kOnExceptionRethrow,
return factory()->NewSuspend(do_expr, await_pos, Suspend::kOnExceptionRethrow,
SuspendFlags::kAwait);
}
......@@ -4288,8 +4282,7 @@ void Parser::SetFunctionName(Expression* value, const AstRawString* name) {
// output = %_Call(iteratorReturn, iterator, input);
// if (!IS_RECEIVER(output)) %ThrowIterResultNotAnObject(output);
Expression* Parser::RewriteYieldStar(Expression* generator,
Expression* iterable, int pos) {
Expression* Parser::RewriteYieldStar(Expression* iterable, int pos) {
const int nopos = kNoSourcePosition;
IteratorType type =
is_async_generator() ? IteratorType::kAsync : IteratorType::kNormal;
......@@ -4484,9 +4477,8 @@ Expression* Parser::RewriteYieldStar(Expression* generator,
Statement* yield_output;
{
Expression* output_proxy = factory()->NewVariableProxy(var_output);
Suspend* yield =
BuildSuspend(generator, output_proxy, nopos, Suspend::kNoControl,
SuspendFlags::kYieldStar);
Suspend* yield = BuildSuspend(output_proxy, nopos, Suspend::kNoControl,
SuspendFlags::kYieldStar);
yield_output = factory()->NewExpressionStatement(yield, nopos);
}
......
......@@ -688,8 +688,7 @@ class V8_EXPORT_PRIVATE Parser : public NON_EXPORTED_BASE(ParserBase<Parser>) {
Block* block,
Expression* return_value, bool* ok);
Expression* RewriteYieldStar(Expression* generator, Expression* expression,
int pos);
Expression* RewriteYieldStar(Expression* expression, int pos);
void AddArrowFunctionFormalParameters(ParserFormalParameters* parameters,
Expression* params, int end_pos,
......
......@@ -642,8 +642,7 @@ class PreParserFactory {
// default value inside an arrow function parameter list.
return PreParserExpression::Assignment(left.variables_);
}
PreParserExpression NewSuspend(PreParserExpression generator_object,
PreParserExpression expression, int pos,
PreParserExpression NewSuspend(PreParserExpression expression, int pos,
Suspend::OnAbruptResume on_abrupt_resume,
SuspendFlags flags) {
return PreParserExpression::Default();
......@@ -1014,8 +1013,7 @@ class PreParser : public ParserBase<PreParser> {
PreParserStatement block,
PreParserExpression return_value,
bool* ok) {}
V8_INLINE PreParserExpression RewriteYieldStar(PreParserExpression generator,
PreParserExpression expression,
V8_INLINE PreParserExpression RewriteYieldStar(PreParserExpression expression,
int pos) {
return PreParserExpression::Default();
}
......
......@@ -14,9 +14,9 @@ snippet: "
}
f();
"
frame size: 27
frame size: 26
parameter count: 1
bytecode array length: 712
bytecode array length: 703
bytecodes: [
B(Mov), R(new_target), R(11),
B(Ldar), R(new_target),
......@@ -71,39 +71,38 @@ bytecodes: [
B(Star), R(22),
B(CallRuntime), U16(Runtime::kAbort), R(22), U8(1),
/* 40 S> */ B(LdaUndefined),
B(Star), R(23),
/* 40 E> */ B(LdaNamedProperty), R(4), U8(7), U8(14),
B(Star), R(25),
B(CallProperty0), R(25), R(4), U8(12),
B(Star), R(25),
B(Mov), R(2), R(24),
B(Mov), R(7), R(26),
B(CallJSRuntime), U8(%async_function_await_uncaught), R(23), U8(4),
B(Star), R(22),
B(LdaNamedProperty), R(4), U8(7), U8(14),
B(Star), R(24),
B(CallProperty0), R(24), R(4), U8(12),
B(Star), R(24),
B(Mov), R(2), R(23),
B(Mov), R(7), R(25),
B(CallJSRuntime), U8(%async_function_await_uncaught), R(22), U8(4),
B(LdaZero),
B(Mov), R(2), R(22),
B(Mov), R(7), R(23),
B(SuspendGenerator), R(22), R(0), U8(23), U8(2),
B(Ldar), R(23),
B(Mov), R(7), R(22),
B(SuspendGenerator), R(11), R(0), U8(22), U8(2),
B(Ldar), R(22),
/* 57 S> */ B(Return),
B(RestoreGeneratorRegisters), R(11), R(0), U8(23),
B(RestoreGeneratorRegisters), R(11), R(0), U8(22),
B(LdaSmi), I8(-2),
B(Star), R(12),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(22), U8(1),
B(Star), R(23),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(22), U8(1),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(11), U8(1),
B(Star), R(22),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(11), U8(1),
B(SwitchOnSmiNoFeedback), U8(8), U8(2), I8(0),
B(Ldar), R(23),
B(Ldar), R(22),
/* 40 E> */ B(ReThrow),
B(LdaTrue),
B(Star), R(25),
B(Mov), R(23), R(24),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(24), U8(2),
B(Star), R(24),
B(Mov), R(22), R(23),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(23), U8(2),
B(Star), R(19),
B(LdaZero),
B(Star), R(18),
B(Jump), U8(98),
B(Mov), R(23), R(5),
/* 40 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(5), U8(1),
B(Mov), R(22), R(5),
/* 40 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(22), U8(1),
B(ToBooleanLogicalNot),
B(JumpIfFalse), U8(7),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(5), U8(1),
......@@ -118,7 +117,7 @@ bytecodes: [
B(Mov), R(3), R(0),
B(LdaZero),
B(Star), R(6),
B(JumpLoop), U8(144), I8(0),
B(JumpLoop), U8(141), I8(0),
B(Jump), U8(40),
B(Star), R(22),
B(Ldar), R(closure),
......@@ -148,15 +147,15 @@ bytecodes: [
B(Star), R(20),
B(LdaZero),
B(TestEqualStrict), R(6), U8(21),
B(JumpIfTrue), U8(253),
B(JumpIfTrue), U8(247),
B(LdaNamedProperty), R(4), U8(14), U8(22),
B(Star), R(9),
B(TestUndetectable),
B(JumpIfFalse), U8(4),
B(Jump), U8(242),
B(Jump), U8(236),
B(LdaSmi), I8(1),
B(TestEqualStrict), R(6), U8(25),
B(JumpIfFalse), U8(136),
B(JumpIfFalse), U8(133),
B(Ldar), R(9),
B(TestTypeOf), U8(5),
B(JumpIfFalse), U8(4),
......@@ -169,38 +168,37 @@ bytecodes: [
B(Throw),
B(Mov), R(context), R(21),
B(LdaUndefined),
B(Star), R(23),
B(Mov), R(9), R(25),
B(Mov), R(4), R(26),
B(InvokeIntrinsic), U8(Runtime::k_Call), R(25), U8(2),
B(Star), R(25),
B(Mov), R(2), R(24),
B(Mov), R(7), R(26),
B(CallJSRuntime), U8(%async_function_await_caught), R(23), U8(4),
B(Star), R(22),
B(Mov), R(9), R(24),
B(Mov), R(4), R(25),
B(InvokeIntrinsic), U8(Runtime::k_Call), R(24), U8(2),
B(Star), R(24),
B(Mov), R(2), R(23),
B(Mov), R(7), R(25),
B(CallJSRuntime), U8(%async_function_await_caught), R(22), U8(4),
B(LdaSmi), I8(1),
B(Mov), R(2), R(22),
B(Mov), R(7), R(23),
B(SuspendGenerator), R(22), R(0), U8(23), U8(2),
B(Ldar), R(23),
B(Mov), R(7), R(22),
B(SuspendGenerator), R(11), R(0), U8(22), U8(2),
B(Ldar), R(22),
/* 57 S> */ B(Return),
B(RestoreGeneratorRegisters), R(11), R(0), U8(23),
B(RestoreGeneratorRegisters), R(11), R(0), U8(22),
B(LdaSmi), I8(-2),
B(Star), R(12),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(22), U8(1),
B(Star), R(23),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(22), U8(1),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(11), U8(1),
B(Star), R(22),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(11), U8(1),
B(SwitchOnSmiNoFeedback), U8(16), U8(2), I8(0),
B(Ldar), R(23),
B(Ldar), R(22),
B(ReThrow),
B(LdaTrue),
B(Star), R(25),
B(Mov), R(23), R(24),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(24), U8(2),
B(Star), R(24),
B(Mov), R(22), R(23),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(23), U8(2),
B(Star), R(15),
B(LdaZero),
B(Star), R(14),
B(Jump), U8(225),
B(Ldar), R(23),
B(Jump), U8(222),
B(Ldar), R(22),
B(Jump), U8(20),
B(Star), R(22),
B(Ldar), R(closure),
......@@ -211,41 +209,40 @@ bytecodes: [
B(Ldar), R(21),
B(PushContext), R(22),
B(PopContext), R(22),
B(Jump), U8(101),
B(Jump), U8(98),
B(LdaUndefined),
B(Star), R(22),
B(Mov), R(9), R(24),
B(Mov), R(4), R(25),
B(InvokeIntrinsic), U8(Runtime::k_Call), R(24), U8(2),
B(Star), R(24),
B(Mov), R(2), R(23),
B(Mov), R(7), R(25),
B(CallJSRuntime), U8(%async_function_await_uncaught), R(22), U8(4),
B(Star), R(21),
B(Mov), R(9), R(23),
B(Mov), R(4), R(24),
B(InvokeIntrinsic), U8(Runtime::k_Call), R(23), U8(2),
B(Star), R(23),
B(Mov), R(2), R(22),
B(Mov), R(7), R(24),
B(CallJSRuntime), U8(%async_function_await_uncaught), R(21), U8(4),
B(LdaSmi), I8(2),
B(Mov), R(2), R(21),
B(Mov), R(7), R(22),
B(SuspendGenerator), R(21), R(0), U8(22), U8(2),
B(Ldar), R(22),
B(Mov), R(7), R(21),
B(SuspendGenerator), R(11), R(0), U8(21), U8(2),
B(Ldar), R(21),
/* 57 S> */ B(Return),
B(RestoreGeneratorRegisters), R(11), R(0), U8(22),
B(RestoreGeneratorRegisters), R(11), R(0), U8(21),
B(LdaSmi), I8(-2),
B(Star), R(12),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(21), U8(1),
B(Star), R(22),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(21), U8(1),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(11), U8(1),
B(Star), R(21),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(11), U8(1),
B(SwitchOnSmiNoFeedback), U8(19), U8(2), I8(0),
B(Ldar), R(22),
B(Ldar), R(21),
B(ReThrow),
B(LdaTrue),
B(Star), R(24),
B(Mov), R(22), R(23),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(23), U8(2),
B(Star), R(23),
B(Mov), R(21), R(22),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(22), U8(2),
B(Star), R(15),
B(LdaZero),
B(Star), R(14),
B(Jump), U8(118),
B(Mov), R(22), R(10),
B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(10), U8(1),
B(Mov), R(21), R(10),
B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(21), U8(1),
B(JumpIfToBooleanFalse), U8(4),
B(Jump), U8(7),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(10), U8(1),
......@@ -319,12 +316,12 @@ bytecodes: [
]
constant pool: [
Smi [102],
Smi [397],
Smi [504],
Smi [391],
Smi [495],
TUPLE2_TYPE,
SYMBOL_TYPE,
SYMBOL_TYPE,
Smi [59],
Smi [56],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
Smi [24],
Smi [7],
......@@ -346,11 +343,11 @@ constant pool: [
Smi [9],
]
handlers: [
[62, 667, 673],
[65, 622, 624],
[71, 306, 312],
[74, 266, 268],
[373, 458, 460],
[62, 658, 664],
[65, 613, 615],
[71, 303, 309],
[74, 263, 265],
[370, 452, 454],
]
---
......@@ -360,9 +357,9 @@ snippet: "
}
f();
"
frame size: 27
frame size: 26
parameter count: 1
bytecode array length: 740
bytecode array length: 731
bytecodes: [
B(Mov), R(new_target), R(11),
B(Ldar), R(new_target),
......@@ -417,39 +414,38 @@ bytecodes: [
B(Star), R(22),
B(CallRuntime), U16(Runtime::kAbort), R(22), U8(1),
/* 40 S> */ B(LdaUndefined),
B(Star), R(23),
/* 40 E> */ B(LdaNamedProperty), R(4), U8(7), U8(14),
B(Star), R(25),
B(CallProperty0), R(25), R(4), U8(12),
B(Star), R(25),
B(Mov), R(2), R(24),
B(Mov), R(7), R(26),
B(CallJSRuntime), U8(%async_function_await_uncaught), R(23), U8(4),
B(Star), R(22),
B(LdaNamedProperty), R(4), U8(7), U8(14),
B(Star), R(24),
B(CallProperty0), R(24), R(4), U8(12),
B(Star), R(24),
B(Mov), R(2), R(23),
B(Mov), R(7), R(25),
B(CallJSRuntime), U8(%async_function_await_uncaught), R(22), U8(4),
B(LdaZero),
B(Mov), R(2), R(22),
B(Mov), R(7), R(23),
B(SuspendGenerator), R(22), R(0), U8(23), U8(2),
B(Ldar), R(23),
B(Mov), R(7), R(22),
B(SuspendGenerator), R(11), R(0), U8(22), U8(2),
B(Ldar), R(22),
/* 68 S> */ B(Return),
B(RestoreGeneratorRegisters), R(11), R(0), U8(23),
B(RestoreGeneratorRegisters), R(11), R(0), U8(22),
B(LdaSmi), I8(-2),
B(Star), R(12),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(22), U8(1),
B(Star), R(23),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(22), U8(1),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(11), U8(1),
B(Star), R(22),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(11), U8(1),
B(SwitchOnSmiNoFeedback), U8(8), U8(2), I8(0),
B(Ldar), R(23),
B(Ldar), R(22),
/* 40 E> */ B(ReThrow),
B(LdaTrue),
B(Star), R(25),
B(Mov), R(23), R(24),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(24), U8(2),
B(Star), R(24),
B(Mov), R(22), R(23),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(23), U8(2),
B(Star), R(19),
B(LdaZero),
B(Star), R(18),
B(Jump), U8(101),
B(Mov), R(23), R(5),
/* 40 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(5), U8(1),
B(Mov), R(22), R(5),
/* 40 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(22), U8(1),
B(ToBooleanLogicalNot),
B(JumpIfFalse), U8(7),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(5), U8(1),
......@@ -495,15 +491,15 @@ bytecodes: [
B(Star), R(20),
B(LdaZero),
B(TestEqualStrict), R(6), U8(21),
B(JumpIfTrue), U8(253),
B(JumpIfTrue), U8(247),
B(LdaNamedProperty), R(4), U8(14), U8(22),
B(Star), R(9),
B(TestUndetectable),
B(JumpIfFalse), U8(4),
B(Jump), U8(242),
B(Jump), U8(236),
B(LdaSmi), I8(1),
B(TestEqualStrict), R(6), U8(25),
B(JumpIfFalse), U8(136),
B(JumpIfFalse), U8(133),
B(Ldar), R(9),
B(TestTypeOf), U8(5),
B(JumpIfFalse), U8(4),
......@@ -516,38 +512,37 @@ bytecodes: [
B(Throw),
B(Mov), R(context), R(21),
B(LdaUndefined),
B(Star), R(23),
B(Mov), R(9), R(25),
B(Mov), R(4), R(26),
B(InvokeIntrinsic), U8(Runtime::k_Call), R(25), U8(2),
B(Star), R(25),
B(Mov), R(2), R(24),
B(Mov), R(7), R(26),
B(CallJSRuntime), U8(%async_function_await_caught), R(23), U8(4),
B(Star), R(22),
B(Mov), R(9), R(24),
B(Mov), R(4), R(25),
B(InvokeIntrinsic), U8(Runtime::k_Call), R(24), U8(2),
B(Star), R(24),
B(Mov), R(2), R(23),
B(Mov), R(7), R(25),
B(CallJSRuntime), U8(%async_function_await_caught), R(22), U8(4),
B(LdaSmi), I8(1),
B(Mov), R(2), R(22),
B(Mov), R(7), R(23),
B(SuspendGenerator), R(22), R(0), U8(23), U8(2),
B(Ldar), R(23),
B(Mov), R(7), R(22),
B(SuspendGenerator), R(11), R(0), U8(22), U8(2),
B(Ldar), R(22),
/* 68 S> */ B(Return),
B(RestoreGeneratorRegisters), R(11), R(0), U8(23),
B(RestoreGeneratorRegisters), R(11), R(0), U8(22),
B(LdaSmi), I8(-2),
B(Star), R(12),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(22), U8(1),
B(Star), R(23),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(22), U8(1),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(11), U8(1),
B(Star), R(22),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(11), U8(1),
B(SwitchOnSmiNoFeedback), U8(16), U8(2), I8(0),
B(Ldar), R(23),
B(Ldar), R(22),
B(ReThrow),
B(LdaTrue),
B(Star), R(25),
B(Mov), R(23), R(24),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(24), U8(2),
B(Star), R(24),
B(Mov), R(22), R(23),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(23), U8(2),
B(Star), R(15),
B(LdaZero),
B(Star), R(14),
B(Jump), U8(234),
B(Ldar), R(23),
B(Jump), U8(231),
B(Ldar), R(22),
B(Jump), U8(20),
B(Star), R(22),
B(Ldar), R(closure),
......@@ -558,41 +553,40 @@ bytecodes: [
B(Ldar), R(21),
B(PushContext), R(22),
B(PopContext), R(22),
B(Jump), U8(101),
B(Jump), U8(98),
B(LdaUndefined),
B(Star), R(22),
B(Mov), R(9), R(24),
B(Mov), R(4), R(25),
B(InvokeIntrinsic), U8(Runtime::k_Call), R(24), U8(2),
B(Star), R(24),
B(Mov), R(2), R(23),
B(Mov), R(7), R(25),
B(CallJSRuntime), U8(%async_function_await_uncaught), R(22), U8(4),
B(Star), R(21),
B(Mov), R(9), R(23),
B(Mov), R(4), R(24),
B(InvokeIntrinsic), U8(Runtime::k_Call), R(23), U8(2),
B(Star), R(23),
B(Mov), R(2), R(22),
B(Mov), R(7), R(24),
B(CallJSRuntime), U8(%async_function_await_uncaught), R(21), U8(4),
B(LdaSmi), I8(2),
B(Mov), R(2), R(21),
B(Mov), R(7), R(22),
B(SuspendGenerator), R(21), R(0), U8(22), U8(2),
B(Ldar), R(22),
B(Mov), R(7), R(21),
B(SuspendGenerator), R(11), R(0), U8(21), U8(2),
B(Ldar), R(21),
/* 68 S> */ B(Return),
B(RestoreGeneratorRegisters), R(11), R(0), U8(22),
B(RestoreGeneratorRegisters), R(11), R(0), U8(21),
B(LdaSmi), I8(-2),
B(Star), R(12),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(21), U8(1),
B(Star), R(22),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(21), U8(1),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(11), U8(1),
B(Star), R(21),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(11), U8(1),
B(SwitchOnSmiNoFeedback), U8(19), U8(2), I8(0),
B(Ldar), R(22),
B(Ldar), R(21),
B(ReThrow),
B(LdaTrue),
B(Star), R(24),
B(Mov), R(22), R(23),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(23), U8(2),
B(Star), R(23),
B(Mov), R(21), R(22),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(22), U8(2),
B(Star), R(15),
B(LdaZero),
B(Star), R(14),
B(Jump), U8(127),
B(Mov), R(22), R(10),
B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(10), U8(1),
B(Mov), R(21), R(10),
B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(21), U8(1),
B(JumpIfToBooleanFalse), U8(4),
B(Jump), U8(7),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(10), U8(1),
......@@ -677,12 +671,12 @@ bytecodes: [
]
constant pool: [
Smi [102],
Smi [400],
Smi [507],
Smi [394],
Smi [498],
TUPLE2_TYPE,
SYMBOL_TYPE,
SYMBOL_TYPE,
Smi [59],
Smi [56],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
Smi [24],
Smi [7],
......@@ -706,11 +700,11 @@ constant pool: [
Smi [25],
]
handlers: [
[62, 679, 685],
[65, 634, 636],
[71, 309, 315],
[74, 269, 271],
[376, 461, 463],
[62, 670, 676],
[65, 625, 627],
[71, 306, 312],
[74, 266, 268],
[373, 455, 457],
]
---
......@@ -723,9 +717,9 @@ snippet: "
}
f();
"
frame size: 27
frame size: 26
parameter count: 1
bytecode array length: 730
bytecode array length: 721
bytecodes: [
B(Mov), R(new_target), R(11),
B(Ldar), R(new_target),
......@@ -780,39 +774,38 @@ bytecodes: [
B(Star), R(22),
B(CallRuntime), U16(Runtime::kAbort), R(22), U8(1),
/* 40 S> */ B(LdaUndefined),
B(Star), R(23),
/* 40 E> */ B(LdaNamedProperty), R(4), U8(7), U8(14),
B(Star), R(25),
B(CallProperty0), R(25), R(4), U8(12),
B(Star), R(25),
B(Mov), R(2), R(24),
B(Mov), R(7), R(26),
B(CallJSRuntime), U8(%async_function_await_uncaught), R(23), U8(4),
B(Star), R(22),
B(LdaNamedProperty), R(4), U8(7), U8(14),
B(Star), R(24),
B(CallProperty0), R(24), R(4), U8(12),
B(Star), R(24),
B(Mov), R(2), R(23),
B(Mov), R(7), R(25),
B(CallJSRuntime), U8(%async_function_await_uncaught), R(22), U8(4),
B(LdaZero),
B(Mov), R(2), R(22),
B(Mov), R(7), R(23),
B(SuspendGenerator), R(22), R(0), U8(23), U8(2),
B(Ldar), R(23),
B(Mov), R(7), R(22),
B(SuspendGenerator), R(11), R(0), U8(22), U8(2),
B(Ldar), R(22),
/* 114 S> */ B(Return),
B(RestoreGeneratorRegisters), R(11), R(0), U8(23),
B(RestoreGeneratorRegisters), R(11), R(0), U8(22),
B(LdaSmi), I8(-2),
B(Star), R(12),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(22), U8(1),
B(Star), R(23),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(22), U8(1),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(11), U8(1),
B(Star), R(22),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(11), U8(1),
B(SwitchOnSmiNoFeedback), U8(8), U8(2), I8(0),
B(Ldar), R(23),
B(Ldar), R(22),
/* 40 E> */ B(ReThrow),
B(LdaTrue),
B(Star), R(25),
B(Mov), R(23), R(24),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(24), U8(2),
B(Star), R(24),
B(Mov), R(22), R(23),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(23), U8(2),
B(Star), R(19),
B(LdaZero),
B(Star), R(18),
B(Jump), U8(116),
B(Mov), R(23), R(5),
/* 40 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(5), U8(1),
B(Mov), R(22), R(5),
/* 40 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(22), U8(1),
B(ToBooleanLogicalNot),
B(JumpIfFalse), U8(7),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(5), U8(1),
......@@ -835,7 +828,7 @@ bytecodes: [
/* 103 S> */ B(Jump), U8(8),
B(LdaZero),
B(Star), R(6),
B(JumpLoop), U8(162), I8(0),
B(JumpLoop), U8(159), I8(0),
B(Jump), U8(40),
B(Star), R(22),
B(Ldar), R(closure),
......@@ -865,15 +858,15 @@ bytecodes: [
B(Star), R(20),
B(LdaZero),
B(TestEqualStrict), R(6), U8(23),
B(JumpIfTrue), U8(253),
B(JumpIfTrue), U8(247),
B(LdaNamedProperty), R(4), U8(14), U8(24),
B(Star), R(9),
B(TestUndetectable),
B(JumpIfFalse), U8(4),
B(Jump), U8(242),
B(Jump), U8(236),
B(LdaSmi), I8(1),
B(TestEqualStrict), R(6), U8(27),
B(JumpIfFalse), U8(136),
B(JumpIfFalse), U8(133),
B(Ldar), R(9),
B(TestTypeOf), U8(5),
B(JumpIfFalse), U8(4),
......@@ -886,38 +879,37 @@ bytecodes: [
B(Throw),
B(Mov), R(context), R(21),
B(LdaUndefined),
B(Star), R(23),
B(Mov), R(9), R(25),
B(Mov), R(4), R(26),
B(InvokeIntrinsic), U8(Runtime::k_Call), R(25), U8(2),
B(Star), R(25),
B(Mov), R(2), R(24),
B(Mov), R(7), R(26),
B(CallJSRuntime), U8(%async_function_await_caught), R(23), U8(4),
B(Star), R(22),
B(Mov), R(9), R(24),
B(Mov), R(4), R(25),
B(InvokeIntrinsic), U8(Runtime::k_Call), R(24), U8(2),
B(Star), R(24),
B(Mov), R(2), R(23),
B(Mov), R(7), R(25),
B(CallJSRuntime), U8(%async_function_await_caught), R(22), U8(4),
B(LdaSmi), I8(1),
B(Mov), R(2), R(22),
B(Mov), R(7), R(23),
B(SuspendGenerator), R(22), R(0), U8(23), U8(2),
B(Ldar), R(23),
B(Mov), R(7), R(22),
B(SuspendGenerator), R(11), R(0), U8(22), U8(2),
B(Ldar), R(22),
/* 114 S> */ B(Return),
B(RestoreGeneratorRegisters), R(11), R(0), U8(23),
B(RestoreGeneratorRegisters), R(11), R(0), U8(22),
B(LdaSmi), I8(-2),
B(Star), R(12),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(22), U8(1),
B(Star), R(23),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(22), U8(1),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(11), U8(1),
B(Star), R(22),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(11), U8(1),
B(SwitchOnSmiNoFeedback), U8(16), U8(2), I8(0),
B(Ldar), R(23),
B(Ldar), R(22),
B(ReThrow),
B(LdaTrue),
B(Star), R(25),
B(Mov), R(23), R(24),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(24), U8(2),
B(Star), R(24),
B(Mov), R(22), R(23),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(23), U8(2),
B(Star), R(15),
B(LdaZero),
B(Star), R(14),
B(Jump), U8(225),
B(Ldar), R(23),
B(Jump), U8(222),
B(Ldar), R(22),
B(Jump), U8(20),
B(Star), R(22),
B(Ldar), R(closure),
......@@ -928,41 +920,40 @@ bytecodes: [
B(Ldar), R(21),
B(PushContext), R(22),
B(PopContext), R(22),
B(Jump), U8(101),
B(Jump), U8(98),
B(LdaUndefined),
B(Star), R(22),
B(Mov), R(9), R(24),
B(Mov), R(4), R(25),
B(InvokeIntrinsic), U8(Runtime::k_Call), R(24), U8(2),
B(Star), R(24),
B(Mov), R(2), R(23),
B(Mov), R(7), R(25),
B(CallJSRuntime), U8(%async_function_await_uncaught), R(22), U8(4),
B(Star), R(21),
B(Mov), R(9), R(23),
B(Mov), R(4), R(24),
B(InvokeIntrinsic), U8(Runtime::k_Call), R(23), U8(2),
B(Star), R(23),
B(Mov), R(2), R(22),
B(Mov), R(7), R(24),
B(CallJSRuntime), U8(%async_function_await_uncaught), R(21), U8(4),
B(LdaSmi), I8(2),
B(Mov), R(2), R(21),
B(Mov), R(7), R(22),
B(SuspendGenerator), R(21), R(0), U8(22), U8(2),
B(Ldar), R(22),
B(Mov), R(7), R(21),
B(SuspendGenerator), R(11), R(0), U8(21), U8(2),
B(Ldar), R(21),
/* 114 S> */ B(Return),
B(RestoreGeneratorRegisters), R(11), R(0), U8(22),
B(RestoreGeneratorRegisters), R(11), R(0), U8(21),
B(LdaSmi), I8(-2),
B(Star), R(12),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(21), U8(1),
B(Star), R(22),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(21), U8(1),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(11), U8(1),
B(Star), R(21),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(11), U8(1),
B(SwitchOnSmiNoFeedback), U8(19), U8(2), I8(0),
B(Ldar), R(22),
B(Ldar), R(21),
B(ReThrow),
B(LdaTrue),
B(Star), R(24),
B(Mov), R(22), R(23),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(23), U8(2),
B(Star), R(23),
B(Mov), R(21), R(22),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(22), U8(2),
B(Star), R(15),
B(LdaZero),
B(Star), R(14),
B(Jump), U8(118),
B(Mov), R(22), R(10),
B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(10), U8(1),
B(Mov), R(21), R(10),
B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(21), U8(1),
B(JumpIfToBooleanFalse), U8(4),
B(Jump), U8(7),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(10), U8(1),
......@@ -1036,12 +1027,12 @@ bytecodes: [
]
constant pool: [
Smi [102],
Smi [415],
Smi [522],
Smi [409],
Smi [513],
TUPLE2_TYPE,
SYMBOL_TYPE,
SYMBOL_TYPE,
Smi [59],
Smi [56],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
Smi [24],
Smi [7],
......@@ -1063,11 +1054,11 @@ constant pool: [
Smi [9],
]
handlers: [
[62, 685, 691],
[65, 640, 642],
[71, 324, 330],
[74, 284, 286],
[391, 476, 478],
[62, 676, 682],
[65, 631, 633],
[71, 321, 327],
[74, 281, 283],
[388, 470, 472],
]
---
......
......@@ -643,7 +643,7 @@ snippet: "
"
frame size: 24
parameter count: 2
bytecode array length: 437
bytecode array length: 434
bytecodes: [
B(Mov), R(new_target), R(11),
B(Ldar), R(new_target),
......@@ -670,24 +670,23 @@ bytecodes: [
B(Star), R(11),
B(Mov), R(context), R(17),
B(LdaZero),
B(Mov), R(3), R(19),
B(Mov), R(3), R(18),
/* 11 E> */ B(SuspendGenerator), R(18), R(0), U8(19), U8(0),
B(Ldar), R(19),
/* 11 E> */ B(SuspendGenerator), R(11), R(0), U8(18), U8(0),
B(Ldar), R(18),
/* 55 S> */ B(Return),
B(RestoreGeneratorRegisters), R(11), R(0), U8(19),
B(RestoreGeneratorRegisters), R(11), R(0), U8(18),
B(LdaSmi), I8(-2),
B(Star), R(12),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(18), U8(1),
B(Star), R(19),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(18), U8(1),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(11), U8(1),
B(Star), R(18),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(11), U8(1),
B(SwitchOnSmiNoFeedback), U8(1), U8(2), I8(0),
B(Ldar), R(19),
B(Ldar), R(18),
/* 11 E> */ B(Throw),
B(LdaTrue),
B(Star), R(21),
B(Mov), R(19), R(20),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(20), U8(2),
B(Star), R(20),
B(Mov), R(18), R(19),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(19), U8(2),
B(Star), R(16),
B(LdaZero),
B(Star), R(15),
......@@ -834,7 +833,7 @@ bytecodes: [
/* 55 S> */ B(Return),
]
constant pool: [
Smi [58],
Smi [55],
Smi [24],
Smi [7],
SYMBOL_TYPE,
......@@ -851,10 +850,10 @@ constant pool: [
Smi [9],
]
handlers: [
[60, 398, 404],
[123, 241, 247],
[126, 205, 207],
[307, 317, 319],
[60, 395, 401],
[120, 238, 244],
[123, 202, 204],
[304, 314, 316],
]
---
......@@ -864,9 +863,9 @@ snippet: "
}
f([1, 2, 3]);
"
frame size: 25
frame size: 24
parameter count: 2
bytecode array length: 534
bytecode array length: 528
bytecodes: [
B(Mov), R(new_target), R(10),
B(Ldar), R(new_target),
......@@ -893,24 +892,23 @@ bytecodes: [
B(Star), R(10),
B(Mov), R(context), R(16),
B(LdaZero),
B(Mov), R(2), R(18),
B(Mov), R(2), R(17),
/* 11 E> */ B(SuspendGenerator), R(17), R(0), U8(18), U8(0),
B(Ldar), R(18),
/* 11 E> */ B(SuspendGenerator), R(10), R(0), U8(17), U8(0),
B(Ldar), R(17),
/* 49 S> */ B(Return),
B(RestoreGeneratorRegisters), R(10), R(0), U8(18),
B(RestoreGeneratorRegisters), R(10), R(0), U8(17),
B(LdaSmi), I8(-2),
B(Star), R(11),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(17), U8(1),
B(Star), R(18),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(17), U8(1),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(10), U8(1),
B(Star), R(17),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(10), U8(1),
B(SwitchOnSmiNoFeedback), U8(2), U8(2), I8(0),
B(Ldar), R(18),
B(Ldar), R(17),
/* 11 E> */ B(Throw),
B(LdaTrue),
B(Star), R(20),
B(Mov), R(18), R(19),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(19), U8(2),
B(Star), R(19),
B(Mov), R(17), R(18),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(18), U8(2),
B(Star), R(15),
B(LdaZero),
B(Star), R(14),
......@@ -944,7 +942,7 @@ bytecodes: [
B(JumpIfFalse), U8(7),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(5), U8(1),
B(LdaNamedProperty), R(5), U8(7), U8(11),
B(JumpIfToBooleanTrue), U8(92),
B(JumpIfToBooleanTrue), U8(89),
B(LdaNamedProperty), R(5), U8(8), U8(13),
B(Star), R(7),
B(LdaSmi), I8(2),
......@@ -953,35 +951,34 @@ bytecodes: [
/* 21 E> */ B(StackCheck),
B(Mov), R(3), R(0),
/* 40 S> */ B(LdaFalse),
B(Star), R(23),
B(Mov), R(3), R(22),
/* 46 E> */ B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(22), U8(2),
B(Star), R(22),
B(Mov), R(0), R(21),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(21), U8(2),
B(Star), R(21),
B(LdaSmi), I8(1),
B(Mov), R(2), R(21),
B(SuspendGenerator), R(21), R(0), U8(22), U8(0),
B(Ldar), R(22),
B(SuspendGenerator), R(10), R(0), U8(21), U8(0),
B(Ldar), R(21),
/* 49 S> */ B(Return),
B(RestoreGeneratorRegisters), R(10), R(0), U8(22),
B(RestoreGeneratorRegisters), R(10), R(0), U8(21),
B(LdaSmi), I8(-2),
B(Star), R(11),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(21), U8(1),
B(Star), R(22),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(21), U8(1),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(10), U8(1),
B(Star), R(21),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(10), U8(1),
B(SwitchOnSmiNoFeedback), U8(9), U8(2), I8(0),
B(Ldar), R(22),
B(Ldar), R(21),
/* 40 E> */ B(Throw),
B(LdaTrue),
B(Star), R(24),
B(Mov), R(22), R(23),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(23), U8(2),
B(Star), R(23),
B(Mov), R(21), R(22),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(22), U8(2),
B(Star), R(18),
B(LdaZero),
B(Star), R(17),
B(Jump), U8(56),
B(LdaZero),
B(Star), R(6),
B(JumpLoop), U8(138), I8(0),
B(JumpLoop), U8(135), I8(0),
B(Jump), U8(36),
B(Star), R(21),
B(Ldar), R(closure),
......@@ -1095,12 +1092,12 @@ bytecodes: [
/* 49 S> */ B(Return),
]
constant pool: [
Smi [58],
Smi [132],
Smi [55],
Smi [129],
Smi [24],
Smi [7],
SYMBOL_TYPE,
Smi [91],
Smi [88],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
......@@ -1113,15 +1110,15 @@ constant pool: [
FIXED_ARRAY_TYPE,
Smi [6],
Smi [14],
Smi [392],
Smi [389],
Smi [6],
Smi [9],
]
handlers: [
[60, 495, 501],
[123, 326, 332],
[126, 290, 292],
[393, 403, 405],
[60, 489, 495],
[120, 320, 326],
[123, 284, 286],
[387, 397, 399],
]
---
......@@ -1343,9 +1340,9 @@ snippet: "
}
f([1, 2, 3]);
"
frame size: 28
frame size: 27
parameter count: 2
bytecode array length: 549
bytecode array length: 546
bytecodes: [
B(Mov), R(new_target), R(11),
B(Ldar), R(new_target),
......@@ -1405,7 +1402,7 @@ bytecodes: [
B(JumpIfFalse), U8(7),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(6), U8(1),
B(LdaNamedProperty), R(6), U8(4), U8(11),
B(JumpIfToBooleanTrue), U8(98),
B(JumpIfToBooleanTrue), U8(95),
B(LdaNamedProperty), R(6), U8(5), U8(13),
B(Star), R(8),
B(LdaSmi), I8(2),
......@@ -1414,37 +1411,36 @@ bytecodes: [
/* 26 E> */ B(StackCheck),
B(Mov), R(4), R(0),
/* 45 S> */ B(LdaUndefined),
B(Star), R(24),
B(Mov), R(2), R(25),
B(Mov), R(4), R(26),
B(Mov), R(3), R(27),
/* 51 E> */ B(CallJSRuntime), U8(%async_function_await_uncaught), R(24), U8(4),
B(Star), R(23),
B(Mov), R(2), R(24),
B(Mov), R(4), R(25),
B(Mov), R(3), R(26),
/* 51 E> */ B(CallJSRuntime), U8(%async_function_await_uncaught), R(23), U8(4),
B(LdaZero),
B(Mov), R(2), R(23),
B(Mov), R(3), R(24),
B(SuspendGenerator), R(23), R(0), U8(24), U8(2),
B(Ldar), R(24),
B(Mov), R(3), R(23),
B(SuspendGenerator), R(11), R(0), U8(23), U8(2),
B(Ldar), R(23),
/* 54 S> */ B(Return),
B(RestoreGeneratorRegisters), R(11), R(0), U8(24),
B(RestoreGeneratorRegisters), R(11), R(0), U8(23),
B(LdaSmi), I8(-2),
B(Star), R(12),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(23), U8(1),
B(Star), R(24),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(23), U8(1),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(11), U8(1),
B(Star), R(23),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(11), U8(1),
B(SwitchOnSmiNoFeedback), U8(6), U8(2), I8(0),
B(Ldar), R(24),
B(Ldar), R(23),
/* 45 E> */ B(ReThrow),
B(LdaTrue),
B(Star), R(26),
B(Mov), R(24), R(25),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(25), U8(2),
B(Star), R(25),
B(Mov), R(23), R(24),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(24), U8(2),
B(Star), R(20),
B(LdaZero),
B(Star), R(19),
B(Jump), U8(60),
B(LdaZero),
B(Star), R(7),
B(JumpLoop), U8(144), I8(0),
B(JumpLoop), U8(141), I8(0),
B(Jump), U8(40),
B(Star), R(23),
B(Ldar), R(closure),
......@@ -1587,7 +1583,7 @@ bytecodes: [
constant pool: [
Smi [88],
SYMBOL_TYPE,
Smi [97],
Smi [94],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
......@@ -1605,10 +1601,10 @@ constant pool: [
Smi [9],
]
handlers: [
[70, 504, 510],
[73, 459, 461],
[79, 292, 298],
[82, 252, 254],
[359, 369, 371],
[70, 501, 507],
[73, 456, 458],
[79, 289, 295],
[82, 249, 251],
[356, 366, 368],
]
......@@ -11,9 +11,9 @@ snippet: "
function* f() { }
f();
"
frame size: 11
frame size: 10
parameter count: 1
bytecode array length: 165
bytecode array length: 162
bytecodes: [
B(Mov), R(new_target), R(1),
B(Ldar), R(new_target),
......@@ -36,24 +36,23 @@ bytecodes: [
B(Star), R(1),
B(Mov), R(context), R(6),
B(LdaZero),
B(Mov), R(0), R(8),
B(Mov), R(0), R(7),
/* 11 E> */ B(SuspendGenerator), R(7), R(0), U8(8), U8(0),
B(Ldar), R(8),
/* 11 E> */ B(SuspendGenerator), R(1), R(0), U8(7), U8(0),
B(Ldar), R(7),
/* 16 S> */ B(Return),
B(RestoreGeneratorRegisters), R(1), R(0), U8(8),
B(RestoreGeneratorRegisters), R(1), R(0), U8(7),
B(LdaSmi), I8(-2),
B(Star), R(2),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(7), U8(1),
B(Star), R(8),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(7), U8(1),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(1), U8(1),
B(Star), R(7),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(1), U8(1),
B(SwitchOnSmiNoFeedback), U8(1), U8(2), I8(0),
B(Ldar), R(8),
B(Ldar), R(7),
/* 11 E> */ B(Throw),
B(LdaTrue),
B(Star), R(10),
B(Mov), R(8), R(9),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(9), U8(2),
B(Star), R(9),
B(Mov), R(7), R(8),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(8), U8(2),
B(Star), R(5),
B(LdaZero),
B(Star), R(4),
......@@ -90,14 +89,14 @@ bytecodes: [
/* 16 S> */ B(Return),
]
constant pool: [
Smi [50],
Smi [47],
Smi [24],
Smi [7],
Smi [6],
Smi [9],
]
handlers: [
[52, 126, 132],
[52, 123, 129],
]
---
......@@ -105,9 +104,9 @@ snippet: "
function* f() { yield 42 }
f();
"
frame size: 11
frame size: 10
parameter count: 1
bytecode array length: 233
bytecode array length: 227
bytecodes: [
B(Mov), R(new_target), R(1),
B(Ldar), R(new_target),
......@@ -130,52 +129,50 @@ bytecodes: [
B(Star), R(1),
B(Mov), R(context), R(6),
B(LdaZero),
B(Mov), R(0), R(8),
B(Mov), R(0), R(7),
/* 11 E> */ B(SuspendGenerator), R(7), R(0), U8(8), U8(0),
B(Ldar), R(8),
/* 11 E> */ B(SuspendGenerator), R(1), R(0), U8(7), U8(0),
B(Ldar), R(7),
/* 25 S> */ B(Return),
B(RestoreGeneratorRegisters), R(1), R(0), U8(8),
B(RestoreGeneratorRegisters), R(1), R(0), U8(7),
B(LdaSmi), I8(-2),
B(Star), R(2),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(7), U8(1),
B(Star), R(8),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(7), U8(1),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(1), U8(1),
B(Star), R(7),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(1), U8(1),
B(SwitchOnSmiNoFeedback), U8(2), U8(2), I8(0),
B(Ldar), R(8),
B(Ldar), R(7),
/* 11 E> */ B(Throw),
B(LdaTrue),
B(Star), R(10),
B(Mov), R(8), R(9),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(9), U8(2),
B(Star), R(9),
B(Mov), R(7), R(8),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(8), U8(2),
B(Star), R(5),
B(LdaZero),
B(Star), R(4),
B(Jump), U8(99),
B(Jump), U8(96),
/* 16 S> */ B(LdaSmi), I8(42),
B(Star), R(8),
B(Star), R(7),
B(LdaFalse),
B(Star), R(9),
/* 16 E> */ B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(8), U8(2),
B(Star), R(8),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(7), U8(2),
B(Star), R(7),
B(LdaSmi), I8(1),
B(Mov), R(0), R(7),
B(SuspendGenerator), R(7), R(0), U8(8), U8(0),
B(Ldar), R(8),
B(SuspendGenerator), R(1), R(0), U8(7), U8(0),
B(Ldar), R(7),
/* 25 S> */ B(Return),
B(RestoreGeneratorRegisters), R(1), R(0), U8(8),
B(RestoreGeneratorRegisters), R(1), R(0), U8(7),
B(LdaSmi), I8(-2),
B(Star), R(2),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(7), U8(1),
B(Star), R(8),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(7), U8(1),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(1), U8(1),
B(Star), R(7),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(1), U8(1),
B(SwitchOnSmiNoFeedback), U8(4), U8(2), I8(0),
B(Ldar), R(8),
B(Ldar), R(7),
/* 16 E> */ B(Throw),
B(LdaTrue),
B(Star), R(10),
B(Mov), R(8), R(9),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(9), U8(2),
B(Star), R(9),
B(Mov), R(7), R(8),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(8), U8(2),
B(Star), R(5),
B(LdaZero),
B(Star), R(4),
......@@ -212,8 +209,8 @@ bytecodes: [
/* 25 S> */ B(Return),
]
constant pool: [
Smi [50],
Smi [118],
Smi [47],
Smi [112],
Smi [24],
Smi [7],
Smi [24],
......@@ -222,7 +219,7 @@ constant pool: [
Smi [9],
]
handlers: [
[52, 194, 200],
[52, 188, 194],
]
---
......@@ -230,9 +227,9 @@ snippet: "
function* f() { for (let x of [42]) yield x }
f();
"
frame size: 24
frame size: 23
parameter count: 1
bytecode array length: 528
bytecode array length: 522
bytecodes: [
B(Mov), R(new_target), R(10),
B(Ldar), R(new_target),
......@@ -255,24 +252,23 @@ bytecodes: [
B(Star), R(10),
B(Mov), R(context), R(15),
B(LdaZero),
B(Mov), R(2), R(17),
B(Mov), R(2), R(16),
/* 11 E> */ B(SuspendGenerator), R(16), R(0), U8(17), U8(0),
B(Ldar), R(17),
/* 11 E> */ B(SuspendGenerator), R(10), R(0), U8(16), U8(0),
B(Ldar), R(16),
/* 44 S> */ B(Return),
B(RestoreGeneratorRegisters), R(10), R(0), U8(17),
B(RestoreGeneratorRegisters), R(10), R(0), U8(16),
B(LdaSmi), I8(-2),
B(Star), R(11),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(16), U8(1),
B(Star), R(17),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(16), U8(1),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(10), U8(1),
B(Star), R(16),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(10), U8(1),
B(SwitchOnSmiNoFeedback), U8(2), U8(2), I8(0),
B(Ldar), R(17),
B(Ldar), R(16),
/* 11 E> */ B(Throw),
B(LdaTrue),
B(Star), R(19),
B(Mov), R(17), R(18),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(18), U8(2),
B(Star), R(18),
B(Mov), R(16), R(17),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(17), U8(2),
B(Star), R(14),
B(LdaZero),
B(Star), R(13),
......@@ -306,7 +302,7 @@ bytecodes: [
B(JumpIfFalse), U8(7),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(5), U8(1),
B(LdaNamedProperty), R(5), U8(8), U8(12),
B(JumpIfToBooleanTrue), U8(92),
B(JumpIfToBooleanTrue), U8(89),
B(LdaNamedProperty), R(5), U8(9), U8(14),
B(Star), R(7),
B(LdaSmi), I8(2),
......@@ -315,35 +311,34 @@ bytecodes: [
/* 16 E> */ B(StackCheck),
B(Mov), R(3), R(0),
/* 36 S> */ B(LdaFalse),
B(Star), R(22),
B(Mov), R(3), R(21),
/* 42 E> */ B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(21), U8(2),
B(Star), R(21),
B(Mov), R(0), R(20),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(20), U8(2),
B(Star), R(20),
B(LdaSmi), I8(1),
B(Mov), R(2), R(20),
B(SuspendGenerator), R(20), R(0), U8(21), U8(0),
B(Ldar), R(21),
B(SuspendGenerator), R(10), R(0), U8(20), U8(0),
B(Ldar), R(20),
/* 44 S> */ B(Return),
B(RestoreGeneratorRegisters), R(10), R(0), U8(21),
B(RestoreGeneratorRegisters), R(10), R(0), U8(20),
B(LdaSmi), I8(-2),
B(Star), R(11),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(20), U8(1),
B(Star), R(21),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(20), U8(1),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(10), U8(1),
B(Star), R(20),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(10), U8(1),
B(SwitchOnSmiNoFeedback), U8(10), U8(2), I8(0),
B(Ldar), R(21),
B(Ldar), R(20),
/* 36 E> */ B(Throw),
B(LdaTrue),
B(Star), R(23),
B(Mov), R(21), R(22),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(22), U8(2),
B(Star), R(22),
B(Mov), R(20), R(21),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(21), U8(2),
B(Star), R(17),
B(LdaZero),
B(Star), R(16),
B(Jump), U8(56),
B(LdaZero),
B(Star), R(6),
B(JumpLoop), U8(138), I8(0),
B(JumpLoop), U8(135), I8(0),
B(Jump), U8(36),
B(Star), R(20),
B(Ldar), R(closure),
......@@ -457,13 +452,13 @@ bytecodes: [
/* 44 S> */ B(Return),
]
constant pool: [
Smi [50],
Smi [126],
Smi [47],
Smi [123],
Smi [24],
Smi [7],
TUPLE2_TYPE,
SYMBOL_TYPE,
Smi [91],
Smi [88],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
......@@ -476,15 +471,15 @@ constant pool: [
FIXED_ARRAY_TYPE,
Smi [6],
Smi [14],
Smi [394],
Smi [391],
Smi [6],
Smi [9],
]
handlers: [
[52, 489, 495],
[115, 320, 326],
[118, 284, 286],
[387, 397, 399],
[52, 483, 489],
[112, 314, 320],
[115, 278, 280],
[381, 391, 393],
]
---
......@@ -495,7 +490,7 @@ snippet: "
"
frame size: 19
parameter count: 1
bytecode array length: 581
bytecode array length: 575
bytecodes: [
B(Mov), R(new_target), R(9),
B(Ldar), R(new_target),
......@@ -518,24 +513,23 @@ bytecodes: [
B(Star), R(9),
B(Mov), R(context), R(14),
B(LdaZero),
B(Mov), R(0), R(16),
B(Mov), R(0), R(15),
/* 38 E> */ B(SuspendGenerator), R(15), R(0), U8(16), U8(0),
B(Ldar), R(16),
/* 38 E> */ B(SuspendGenerator), R(9), R(0), U8(15), U8(0),
B(Ldar), R(15),
/* 54 S> */ B(Return),
B(RestoreGeneratorRegisters), R(9), R(0), U8(16),
B(RestoreGeneratorRegisters), R(9), R(0), U8(15),
B(LdaSmi), I8(-2),
B(Star), R(10),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(15), U8(1),
B(Star), R(16),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(15), U8(1),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(9), U8(1),
B(Star), R(15),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(9), U8(1),
B(SwitchOnSmiNoFeedback), U8(2), U8(2), I8(0),
B(Ldar), R(16),
B(Ldar), R(15),
/* 38 E> */ B(Throw),
B(LdaTrue),
B(Star), R(18),
B(Mov), R(16), R(17),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(17), U8(2),
B(Star), R(17),
B(Mov), R(15), R(16),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(16), U8(2),
B(Star), R(13),
B(LdaZero),
B(Star), R(12),
......@@ -672,22 +666,21 @@ bytecodes: [
B(Jump), U8(2),
B(LdaNamedProperty), R(3), U8(13), U8(29),
B(JumpIfToBooleanFalse), U8(4),
B(Jump), U8(48),
B(Jump), U8(45),
B(LdaSmi), I8(1),
B(Mov), R(0), R(15),
B(Mov), R(3), R(16),
B(SuspendGenerator), R(15), R(0), U8(16), U8(1),
B(Ldar), R(16),
B(Mov), R(3), R(15),
B(SuspendGenerator), R(9), R(0), U8(15), U8(1),
B(Ldar), R(15),
/* 54 S> */ B(Return),
B(RestoreGeneratorRegisters), R(9), R(0), U8(16),
B(RestoreGeneratorRegisters), R(9), R(0), U8(15),
B(LdaSmi), I8(-2),
B(Star), R(10),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(15), U8(1),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(9), U8(1),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(0), U8(1),
B(Star), R(1),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1),
B(Star), R(2),
B(Wide), B(JumpLoop), U16(340), I16(0),
B(Wide), B(JumpLoop), U16(337), I16(0),
B(LdaSmi), I8(1),
B(TestEqualStrict), R(2), U8(31),
B(JumpIfFalse), U8(22),
......@@ -734,13 +727,13 @@ bytecodes: [
/* 54 S> */ B(Return),
]
constant pool: [
Smi [50],
Smi [130],
Smi [47],
Smi [127],
Smi [24],
Smi [7],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["g"],
SYMBOL_TYPE,
Smi [313],
Smi [310],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["return"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["throw"],
......@@ -749,13 +742,13 @@ constant pool: [
FIXED_ARRAY_TYPE,
ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
Smi [447],
Smi [308],
Smi [444],
Smi [305],
Smi [6],
Smi [9],
]
handlers: [
[52, 542, 548],
[335, 345, 347],
[52, 536, 542],
[332, 342, 344],
]
......@@ -11,9 +11,9 @@ top level: yes
snippet: "
import \"bar\";
"
frame size: 8
frame size: 7
parameter count: 2
bytecode array length: 132
bytecode array length: 128
bytecodes: [
B(Mov), R(new_target), R(0),
B(Ldar), R(new_target),
......@@ -41,27 +41,25 @@ bytecodes: [
B(Star), R(0),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(4),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(5),
B(LdaZero),
/* 0 E> */ B(SuspendGenerator), R(4), R(0), U8(5), U8(0),
B(Ldar), R(5),
/* 0 E> */ B(SuspendGenerator), R(0), R(0), U8(4), U8(0),
B(Ldar), R(4),
/* 13 S> */ B(Return),
B(RestoreGeneratorRegisters), R(0), R(0), U8(5),
B(RestoreGeneratorRegisters), R(0), R(0), U8(4),
B(LdaSmi), I8(-2),
B(Star), R(1),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(4), U8(1),
B(Star), R(5),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(4), U8(1),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(0), U8(1),
B(Star), R(4),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1),
B(SwitchOnSmiNoFeedback), U8(2), U8(2), I8(0),
B(Ldar), R(5),
B(Ldar), R(4),
/* 0 E> */ B(Throw),
B(LdaTrue),
B(Star), R(7),
B(Mov), R(5), R(6),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(6), U8(2),
B(Star), R(6),
B(Mov), R(4), R(5),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(5), U8(2),
/* 13 S> */ B(Return),
B(Ldar), R(5),
B(Ldar), R(4),
B(StaCurrentContextSlot), U8(5),
B(LdaCurrentContextSlot), U8(5),
B(Star), R(4),
......@@ -71,7 +69,7 @@ bytecodes: [
/* 13 S> */ B(Return),
]
constant pool: [
Smi [63],
Smi [59],
FIXED_ARRAY_TYPE,
Smi [18],
Smi [7],
......@@ -83,9 +81,9 @@ handlers: [
snippet: "
import {foo} from \"bar\";
"
frame size: 8
frame size: 7
parameter count: 2
bytecode array length: 132
bytecode array length: 128
bytecodes: [
B(Mov), R(new_target), R(0),
B(Ldar), R(new_target),
......@@ -113,27 +111,25 @@ bytecodes: [
B(Star), R(0),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(4),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(5),
B(LdaZero),
/* 0 E> */ B(SuspendGenerator), R(4), R(0), U8(5), U8(0),
B(Ldar), R(5),
/* 0 E> */ B(SuspendGenerator), R(0), R(0), U8(4), U8(0),
B(Ldar), R(4),
/* 24 S> */ B(Return),
B(RestoreGeneratorRegisters), R(0), R(0), U8(5),
B(RestoreGeneratorRegisters), R(0), R(0), U8(4),
B(LdaSmi), I8(-2),
B(Star), R(1),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(4), U8(1),
B(Star), R(5),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(4), U8(1),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(0), U8(1),
B(Star), R(4),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1),
B(SwitchOnSmiNoFeedback), U8(2), U8(2), I8(0),
B(Ldar), R(5),
B(Ldar), R(4),
/* 0 E> */ B(Throw),
B(LdaTrue),
B(Star), R(7),
B(Mov), R(5), R(6),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(6), U8(2),
B(Star), R(6),
B(Mov), R(4), R(5),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(5), U8(2),
/* 24 S> */ B(Return),
B(Ldar), R(5),
B(Ldar), R(4),
B(StaCurrentContextSlot), U8(5),
B(LdaCurrentContextSlot), U8(5),
B(Star), R(4),
......@@ -143,7 +139,7 @@ bytecodes: [
/* 24 S> */ B(Return),
]
constant pool: [
Smi [63],
Smi [59],
FIXED_ARRAY_TYPE,
Smi [18],
Smi [7],
......@@ -157,9 +153,9 @@ snippet: "
goo(42);
{ let x; { goo(42) } };
"
frame size: 8
frame size: 7
parameter count: 2
bytecode array length: 194
bytecode array length: 190
bytecodes: [
B(Mov), R(new_target), R(0),
B(Ldar), R(new_target),
......@@ -187,25 +183,23 @@ bytecodes: [
B(Star), R(0),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(4),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(5),
B(LdaZero),
/* 0 E> */ B(SuspendGenerator), R(4), R(0), U8(5), U8(0),
B(Ldar), R(5),
/* 0 E> */ B(SuspendGenerator), R(0), R(0), U8(4), U8(0),
B(Ldar), R(4),
/* 64 S> */ B(Return),
B(RestoreGeneratorRegisters), R(0), R(0), U8(5),
B(RestoreGeneratorRegisters), R(0), R(0), U8(4),
B(LdaSmi), I8(-2),
B(Star), R(1),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(4), U8(1),
B(Star), R(5),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(4), U8(1),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(0), U8(1),
B(Star), R(4),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1),
B(SwitchOnSmiNoFeedback), U8(2), U8(2), I8(0),
B(Ldar), R(5),
B(Ldar), R(4),
/* 0 E> */ B(Throw),
B(LdaTrue),
B(Star), R(7),
B(Mov), R(5), R(6),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(6), U8(2),
B(Star), R(6),
B(Mov), R(4), R(5),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(5), U8(2),
/* 64 S> */ B(Return),
/* 32 S> */ B(LdaModuleVariable), I8(-1), U8(0),
B(JumpIfNotHole), U8(11),
......@@ -242,7 +236,7 @@ bytecodes: [
/* 64 S> */ B(Return),
]
constant pool: [
Smi [63],
Smi [59],
FIXED_ARRAY_TYPE,
Smi [18],
Smi [7],
......@@ -258,9 +252,9 @@ snippet: "
foo++;
{ let x; { foo++ } };
"
frame size: 8
frame size: 7
parameter count: 2
bytecode array length: 174
bytecode array length: 170
bytecodes: [
B(Mov), R(new_target), R(0),
B(Ldar), R(new_target),
......@@ -288,25 +282,23 @@ bytecodes: [
B(Star), R(0),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(4),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(5),
B(LdaZero),
/* 0 E> */ B(SuspendGenerator), R(4), R(0), U8(5), U8(0),
B(Ldar), R(5),
/* 0 E> */ B(SuspendGenerator), R(0), R(0), U8(4), U8(0),
B(Ldar), R(4),
/* 49 S> */ B(Return),
B(RestoreGeneratorRegisters), R(0), R(0), U8(5),
B(RestoreGeneratorRegisters), R(0), R(0), U8(4),
B(LdaSmi), I8(-2),
B(Star), R(1),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(4), U8(1),
B(Star), R(5),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(4), U8(1),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(0), U8(1),
B(Star), R(4),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1),
B(SwitchOnSmiNoFeedback), U8(2), U8(2), I8(0),
B(Ldar), R(5),
B(Ldar), R(4),
/* 0 E> */ B(Throw),
B(LdaTrue),
B(Star), R(7),
B(Mov), R(5), R(6),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(6), U8(2),
B(Star), R(6),
B(Mov), R(4), R(5),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(5), U8(2),
/* 49 S> */ B(Return),
/* 17 S> */ B(LdaSmi), I8(42),
/* 17 E> */ B(StaModuleVariable), I8(1), U8(0),
......@@ -336,7 +328,7 @@ bytecodes: [
/* 49 S> */ B(Return),
]
constant pool: [
Smi [63],
Smi [59],
FIXED_ARRAY_TYPE,
Smi [18],
Smi [7],
......@@ -351,9 +343,9 @@ snippet: "
foo++;
{ let x; { foo++ } };
"
frame size: 8
frame size: 7
parameter count: 2
bytecode array length: 178
bytecode array length: 174
bytecodes: [
B(Mov), R(new_target), R(0),
B(Ldar), R(new_target),
......@@ -383,25 +375,23 @@ bytecodes: [
/* 0 E> */ B(StackCheck),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(4),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(5),
B(LdaZero),
/* 0 E> */ B(SuspendGenerator), R(4), R(0), U8(5), U8(0),
B(Ldar), R(5),
/* 0 E> */ B(SuspendGenerator), R(0), R(0), U8(4), U8(0),
B(Ldar), R(4),
/* 49 S> */ B(Return),
B(RestoreGeneratorRegisters), R(0), R(0), U8(5),
B(RestoreGeneratorRegisters), R(0), R(0), U8(4),
B(LdaSmi), I8(-2),
B(Star), R(1),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(4), U8(1),
B(Star), R(5),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(4), U8(1),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(0), U8(1),
B(Star), R(4),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1),
B(SwitchOnSmiNoFeedback), U8(2), U8(2), I8(0),
B(Ldar), R(5),
B(Ldar), R(4),
/* 0 E> */ B(Throw),
B(LdaTrue),
B(Star), R(7),
B(Mov), R(5), R(6),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(6), U8(2),
B(Star), R(6),
B(Mov), R(4), R(5),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(5), U8(2),
/* 49 S> */ B(Return),
/* 17 S> */ B(LdaSmi), I8(42),
/* 17 E> */ B(StaModuleVariable), I8(1), U8(0),
......@@ -431,7 +421,7 @@ bytecodes: [
/* 49 S> */ B(Return),
]
constant pool: [
Smi [67],
Smi [63],
FIXED_ARRAY_TYPE,
Smi [18],
Smi [7],
......@@ -446,9 +436,9 @@ snippet: "
foo++;
{ let x; { foo++ } };
"
frame size: 8
frame size: 7
parameter count: 2
bytecode array length: 182
bytecode array length: 178
bytecodes: [
B(Mov), R(new_target), R(0),
B(Ldar), R(new_target),
......@@ -478,25 +468,23 @@ bytecodes: [
/* 0 E> */ B(StackCheck),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(4),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(5),
B(LdaZero),
/* 0 E> */ B(SuspendGenerator), R(4), R(0), U8(5), U8(0),
B(Ldar), R(5),
/* 0 E> */ B(SuspendGenerator), R(0), R(0), U8(4), U8(0),
B(Ldar), R(4),
/* 51 S> */ B(Return),
B(RestoreGeneratorRegisters), R(0), R(0), U8(5),
B(RestoreGeneratorRegisters), R(0), R(0), U8(4),
B(LdaSmi), I8(-2),
B(Star), R(1),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(4), U8(1),
B(Star), R(5),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(4), U8(1),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(0), U8(1),
B(Star), R(4),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1),
B(SwitchOnSmiNoFeedback), U8(2), U8(2), I8(0),
B(Ldar), R(5),
B(Ldar), R(4),
/* 0 E> */ B(Throw),
B(LdaTrue),
B(Star), R(7),
B(Mov), R(5), R(6),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(6), U8(2),
B(Star), R(6),
B(Mov), R(4), R(5),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(5), U8(2),
/* 51 S> */ B(Return),
/* 19 S> */ B(LdaSmi), I8(42),
/* 19 E> */ B(StaModuleVariable), I8(1), U8(0),
......@@ -526,7 +514,7 @@ bytecodes: [
/* 51 S> */ B(Return),
]
constant pool: [
Smi [67],
Smi [63],
FIXED_ARRAY_TYPE,
Smi [18],
Smi [7],
......@@ -539,9 +527,9 @@ handlers: [
snippet: "
export default (function () {});
"
frame size: 8
frame size: 7
parameter count: 2
bytecode array length: 143
bytecode array length: 139
bytecodes: [
B(Mov), R(new_target), R(0),
B(Ldar), R(new_target),
......@@ -571,27 +559,25 @@ bytecodes: [
/* 0 E> */ B(StackCheck),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(4),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(5),
B(LdaZero),
/* 0 E> */ B(SuspendGenerator), R(4), R(0), U8(5), U8(0),
B(Ldar), R(5),
/* 0 E> */ B(SuspendGenerator), R(0), R(0), U8(4), U8(0),
B(Ldar), R(4),
/* 32 S> */ B(Return),
B(RestoreGeneratorRegisters), R(0), R(0), U8(5),
B(RestoreGeneratorRegisters), R(0), R(0), U8(4),
B(LdaSmi), I8(-2),
B(Star), R(1),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(4), U8(1),
B(Star), R(5),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(4), U8(1),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(0), U8(1),
B(Star), R(4),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1),
B(SwitchOnSmiNoFeedback), U8(2), U8(2), I8(0),
B(Ldar), R(5),
B(Ldar), R(4),
/* 0 E> */ B(Throw),
B(LdaTrue),
B(Star), R(7),
B(Mov), R(5), R(6),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(6), U8(2),
B(Star), R(6),
B(Mov), R(4), R(5),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(5), U8(2),
/* 32 S> */ B(Return),
B(Ldar), R(5),
B(Ldar), R(4),
B(StaCurrentContextSlot), U8(5),
B(CreateClosure), U8(4), U8(3), U8(0),
B(StaModuleVariable), I8(1), U8(0),
......@@ -603,7 +589,7 @@ bytecodes: [
/* 32 S> */ B(Return),
]
constant pool: [
Smi [67],
Smi [63],
FIXED_ARRAY_TYPE,
Smi [18],
Smi [7],
......@@ -618,7 +604,7 @@ snippet: "
"
frame size: 9
parameter count: 2
bytecode array length: 176
bytecode array length: 172
bytecodes: [
B(Mov), R(new_target), R(0),
B(Ldar), R(new_target),
......@@ -648,27 +634,25 @@ bytecodes: [
/* 0 E> */ B(StackCheck),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(4),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(5),
B(LdaZero),
/* 0 E> */ B(SuspendGenerator), R(4), R(0), U8(5), U8(0),
B(Ldar), R(5),
/* 0 E> */ B(SuspendGenerator), R(0), R(0), U8(4), U8(0),
B(Ldar), R(4),
/* 26 S> */ B(Return),
B(RestoreGeneratorRegisters), R(0), R(0), U8(5),
B(RestoreGeneratorRegisters), R(0), R(0), U8(4),
B(LdaSmi), I8(-2),
B(Star), R(1),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(4), U8(1),
B(Star), R(5),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(4), U8(1),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(0), U8(1),
B(Star), R(4),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1),
B(SwitchOnSmiNoFeedback), U8(2), U8(2), I8(0),
B(Ldar), R(5),
B(Ldar), R(4),
/* 0 E> */ B(Throw),
B(LdaTrue),
B(Star), R(7),
B(Mov), R(5), R(6),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(6), U8(2),
B(Star), R(6),
B(Mov), R(4), R(5),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(5), U8(2),
/* 26 S> */ B(Return),
B(Ldar), R(5),
B(Ldar), R(4),
B(StaCurrentContextSlot), U8(5),
B(CreateClosure), U8(4), U8(3), U8(0),
B(Star), R(4),
......@@ -692,7 +676,7 @@ bytecodes: [
/* 26 S> */ B(Return),
]
constant pool: [
Smi [67],
Smi [63],
FIXED_ARRAY_TYPE,
Smi [18],
Smi [7],
......@@ -705,9 +689,9 @@ handlers: [
snippet: "
export {foo as goo} from \"bar\"
"
frame size: 8
frame size: 7
parameter count: 2
bytecode array length: 132
bytecode array length: 128
bytecodes: [
B(Mov), R(new_target), R(0),
B(Ldar), R(new_target),
......@@ -735,27 +719,25 @@ bytecodes: [
B(Star), R(0),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(4),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(5),
B(LdaZero),
/* 0 E> */ B(SuspendGenerator), R(4), R(0), U8(5), U8(0),
B(Ldar), R(5),
/* 0 E> */ B(SuspendGenerator), R(0), R(0), U8(4), U8(0),
B(Ldar), R(4),
/* 30 S> */ B(Return),
B(RestoreGeneratorRegisters), R(0), R(0), U8(5),
B(RestoreGeneratorRegisters), R(0), R(0), U8(4),
B(LdaSmi), I8(-2),
B(Star), R(1),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(4), U8(1),
B(Star), R(5),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(4), U8(1),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(0), U8(1),
B(Star), R(4),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1),
B(SwitchOnSmiNoFeedback), U8(2), U8(2), I8(0),
B(Ldar), R(5),
B(Ldar), R(4),
/* 0 E> */ B(Throw),
B(LdaTrue),
B(Star), R(7),
B(Mov), R(5), R(6),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(6), U8(2),
B(Star), R(6),
B(Mov), R(4), R(5),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(5), U8(2),
/* 30 S> */ B(Return),
B(Ldar), R(5),
B(Ldar), R(4),
B(StaCurrentContextSlot), U8(5),
B(LdaCurrentContextSlot), U8(5),
B(Star), R(4),
......@@ -765,7 +747,7 @@ bytecodes: [
/* 30 S> */ B(Return),
]
constant pool: [
Smi [63],
Smi [59],
FIXED_ARRAY_TYPE,
Smi [18],
Smi [7],
......@@ -777,9 +759,9 @@ handlers: [
snippet: "
export * from \"bar\"
"
frame size: 8
frame size: 7
parameter count: 2
bytecode array length: 132
bytecode array length: 128
bytecodes: [
B(Mov), R(new_target), R(0),
B(Ldar), R(new_target),
......@@ -807,27 +789,25 @@ bytecodes: [
B(Star), R(0),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(4),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(5),
B(LdaZero),
/* 0 E> */ B(SuspendGenerator), R(4), R(0), U8(5), U8(0),
B(Ldar), R(5),
/* 0 E> */ B(SuspendGenerator), R(0), R(0), U8(4), U8(0),
B(Ldar), R(4),
/* 19 S> */ B(Return),
B(RestoreGeneratorRegisters), R(0), R(0), U8(5),
B(RestoreGeneratorRegisters), R(0), R(0), U8(4),
B(LdaSmi), I8(-2),
B(Star), R(1),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(4), U8(1),
B(Star), R(5),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(4), U8(1),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(0), U8(1),
B(Star), R(4),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1),
B(SwitchOnSmiNoFeedback), U8(2), U8(2), I8(0),
B(Ldar), R(5),
B(Ldar), R(4),
/* 0 E> */ B(Throw),
B(LdaTrue),
B(Star), R(7),
B(Mov), R(5), R(6),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(6), U8(2),
B(Star), R(6),
B(Mov), R(4), R(5),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(5), U8(2),
/* 19 S> */ B(Return),
B(Ldar), R(5),
B(Ldar), R(4),
B(StaCurrentContextSlot), U8(5),
B(LdaCurrentContextSlot), U8(5),
B(Star), R(4),
......@@ -837,7 +817,7 @@ bytecodes: [
/* 19 S> */ B(Return),
]
constant pool: [
Smi [63],
Smi [59],
FIXED_ARRAY_TYPE,
Smi [18],
Smi [7],
......@@ -852,7 +832,7 @@ snippet: "
"
frame size: 8
parameter count: 2
bytecode array length: 170
bytecode array length: 166
bytecodes: [
B(Mov), R(new_target), R(0),
B(Ldar), R(new_target),
......@@ -884,25 +864,23 @@ bytecodes: [
/* 0 E> */ B(StackCheck),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(4),
B(LdaImmutableCurrentContextSlot), U8(4),
B(Star), R(5),
B(LdaZero),
/* 0 E> */ B(SuspendGenerator), R(4), R(0), U8(5), U8(0),
B(Ldar), R(5),
/* 0 E> */ B(SuspendGenerator), R(0), R(0), U8(4), U8(0),
B(Ldar), R(4),
/* 45 S> */ B(Return),
B(RestoreGeneratorRegisters), R(0), R(0), U8(5),
B(RestoreGeneratorRegisters), R(0), R(0), U8(4),
B(LdaSmi), I8(-2),
B(Star), R(1),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(4), U8(1),
B(Star), R(5),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(4), U8(1),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(0), U8(1),
B(Star), R(4),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1),
B(SwitchOnSmiNoFeedback), U8(2), U8(2), I8(0),
B(Ldar), R(5),
B(Ldar), R(4),
/* 0 E> */ B(Throw),
B(LdaTrue),
B(Star), R(7),
B(Mov), R(5), R(6),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(6), U8(2),
B(Star), R(6),
B(Mov), R(4), R(5),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(5), U8(2),
/* 45 S> */ B(Return),
/* 27 S> */ B(LdaImmutableCurrentContextSlot), U8(5),
B(Star), R(5),
......@@ -924,7 +902,7 @@ bytecodes: [
/* 45 S> */ B(Return),
]
constant pool: [
Smi [73],
Smi [69],
FIXED_ARRAY_TYPE,
Smi [18],
Smi [7],
......
......@@ -271,9 +271,9 @@ snippet: "
}
f();
"
frame size: 17
frame size: 16
parameter count: 1
bytecode array length: 245
bytecode array length: 242
bytecodes: [
B(Mov), R(new_target), R(7),
B(Ldar), R(new_target),
......@@ -296,24 +296,23 @@ bytecodes: [
B(Star), R(7),
B(Mov), R(context), R(12),
B(LdaZero),
B(Mov), R(3), R(14),
B(Mov), R(3), R(13),
/* 11 E> */ B(SuspendGenerator), R(13), R(0), U8(14), U8(0),
B(Ldar), R(14),
/* 11 E> */ B(SuspendGenerator), R(7), R(0), U8(13), U8(0),
B(Ldar), R(13),
/* 62 S> */ B(Return),
B(RestoreGeneratorRegisters), R(7), R(0), U8(14),
B(RestoreGeneratorRegisters), R(7), R(0), U8(13),
B(LdaSmi), I8(-2),
B(Star), R(8),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(13), U8(1),
B(Star), R(14),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(13), U8(1),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(7), U8(1),
B(Star), R(13),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(7), U8(1),
B(SwitchOnSmiNoFeedback), U8(1), U8(2), I8(0),
B(Ldar), R(14),
B(Ldar), R(13),
/* 11 E> */ B(Throw),
B(LdaTrue),
B(Star), R(16),
B(Mov), R(14), R(15),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(15), U8(2),
B(Star), R(15),
B(Mov), R(13), R(14),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(14), U8(2),
B(Star), R(11),
B(LdaZero),
B(Star), R(10),
......@@ -388,14 +387,14 @@ bytecodes: [
/* 62 S> */ B(Return),
]
constant pool: [
Smi [50],
Smi [47],
Smi [24],
Smi [7],
Smi [6],
Smi [9],
]
handlers: [
[52, 206, 212],
[52, 203, 209],
]
---
......@@ -405,9 +404,9 @@ snippet: "
}
f();
"
frame size: 16
frame size: 15
parameter count: 1
bytecode array length: 351
bytecode array length: 345
bytecodes: [
B(Mov), R(new_target), R(6),
B(Ldar), R(new_target),
......@@ -430,28 +429,27 @@ bytecodes: [
B(Star), R(6),
B(Mov), R(context), R(11),
B(LdaZero),
B(Mov), R(2), R(13),
B(Mov), R(2), R(12),
/* 11 E> */ B(SuspendGenerator), R(12), R(0), U8(13), U8(0),
B(Ldar), R(13),
/* 11 E> */ B(SuspendGenerator), R(6), R(0), U8(12), U8(0),
B(Ldar), R(12),
/* 56 S> */ B(Return),
B(RestoreGeneratorRegisters), R(6), R(0), U8(13),
B(RestoreGeneratorRegisters), R(6), R(0), U8(12),
B(LdaSmi), I8(-2),
B(Star), R(7),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(12), U8(1),
B(Star), R(13),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(12), U8(1),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(6), U8(1),
B(Star), R(12),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(6), U8(1),
B(SwitchOnSmiNoFeedback), U8(2), U8(2), I8(0),
B(Ldar), R(13),
B(Ldar), R(12),
/* 11 E> */ B(Throw),
B(LdaTrue),
B(Star), R(15),
B(Mov), R(13), R(14),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(14), U8(2),
B(Star), R(14),
B(Mov), R(12), R(13),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(13), U8(2),
B(Star), R(10),
B(LdaZero),
B(Star), R(9),
B(Jump), U8(217),
B(Jump), U8(214),
/* 31 S> */ B(LdaZero),
B(Star), R(1),
B(Star), R(3),
......@@ -482,7 +480,7 @@ bytecodes: [
/* 36 E> */ B(TestLessThan), R(0), U8(5),
B(JumpIfFalse), U8(4),
B(Jump), U8(4),
B(Jump), U8(121),
B(Jump), U8(118),
B(Ldar), R(7),
B(SwitchOnSmiNoFeedback), U8(5), U8(1), I8(1),
B(LdaSmi), I8(-2),
......@@ -493,31 +491,30 @@ bytecodes: [
B(CallRuntime), U16(Runtime::kAbort), R(12), U8(1),
B(LdaSmi), I8(1),
B(TestEqual), R(5), U8(6),
B(JumpIfFalse), U8(81),
B(JumpIfFalse), U8(78),
/* 18 E> */ B(StackCheck),
/* 47 S> */ B(LdaFalse),
B(Star), R(14),
B(Mov), R(0), R(13),
/* 53 E> */ B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(13), U8(2),
B(Star), R(13),
B(Mov), R(0), R(12),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(12), U8(2),
B(Star), R(12),
B(LdaSmi), I8(1),
B(Mov), R(2), R(12),
B(SuspendGenerator), R(12), R(0), U8(13), U8(0),
B(Ldar), R(13),
B(SuspendGenerator), R(6), R(0), U8(12), U8(0),
B(Ldar), R(12),
/* 56 S> */ B(Return),
B(RestoreGeneratorRegisters), R(6), R(0), U8(13),
B(RestoreGeneratorRegisters), R(6), R(0), U8(12),
B(LdaSmi), I8(-2),
B(Star), R(7),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(12), U8(1),
B(Star), R(13),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(12), U8(1),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(6), U8(1),
B(Star), R(12),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(6), U8(1),
B(SwitchOnSmiNoFeedback), U8(6), U8(2), I8(0),
B(Ldar), R(13),
B(Ldar), R(12),
/* 47 E> */ B(Throw),
B(LdaTrue),
B(Star), R(15),
B(Mov), R(13), R(14),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(14), U8(2),
B(Star), R(14),
B(Mov), R(12), R(13),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(13), U8(2),
B(Star), R(10),
B(LdaZero),
B(Star), R(9),
......@@ -526,12 +523,12 @@ bytecodes: [
B(Star), R(5),
B(Mov), R(0), R(3),
B(Ldar), R(0),
B(JumpLoop), U8(104), I8(1),
B(JumpLoop), U8(101), I8(1),
B(LdaSmi), I8(1),
/* 54 E> */ B(TestEqual), R(5), U8(7),
B(JumpIfFalse), U8(4),
B(Jump), U8(5),
B(JumpLoop), U8(174), I8(0),
B(JumpLoop), U8(171), I8(0),
B(LdaUndefined),
B(Star), R(12),
B(LdaTrue),
......@@ -564,19 +561,19 @@ bytecodes: [
/* 56 S> */ B(Return),
]
constant pool: [
Smi [50],
Smi [101],
Smi [47],
Smi [98],
Smi [24],
Smi [7],
Smi [56],
Smi [52],
Smi [49],
Smi [24],
Smi [7],
Smi [6],
Smi [9],
]
handlers: [
[52, 312, 318],
[52, 306, 312],
]
---
......@@ -712,7 +709,7 @@ snippet: "
"
frame size: 19
parameter count: 1
bytecode array length: 368
bytecode array length: 365
bytecodes: [
B(Mov), R(new_target), R(7),
B(Ldar), R(new_target),
......@@ -769,7 +766,7 @@ bytecodes: [
/* 41 E> */ B(TestLessThan), R(0), U8(5),
B(JumpIfFalse), U8(4),
B(Jump), U8(4),
B(Jump), U8(127),
B(Jump), U8(124),
B(Ldar), R(8),
B(SwitchOnSmiNoFeedback), U8(2), U8(1), I8(0),
B(LdaSmi), I8(-2),
......@@ -780,33 +777,32 @@ bytecodes: [
B(CallRuntime), U16(Runtime::kAbort), R(14), U8(1),
B(LdaSmi), I8(1),
B(TestEqual), R(6), U8(6),
B(JumpIfFalse), U8(87),
B(JumpIfFalse), U8(84),
/* 23 E> */ B(StackCheck),
/* 52 S> */ B(LdaUndefined),
B(Star), R(15),
B(Mov), R(2), R(16),
B(Mov), R(0), R(17),
B(Mov), R(3), R(18),
/* 58 E> */ B(CallJSRuntime), U8(%async_function_await_uncaught), R(15), U8(4),
B(Star), R(14),
B(Mov), R(2), R(15),
B(Mov), R(0), R(16),
B(Mov), R(3), R(17),
/* 58 E> */ B(CallJSRuntime), U8(%async_function_await_uncaught), R(14), U8(4),
B(LdaZero),
B(Mov), R(2), R(14),
B(Mov), R(3), R(15),
B(SuspendGenerator), R(14), R(0), U8(15), U8(2),
B(Ldar), R(15),
B(Mov), R(3), R(14),
B(SuspendGenerator), R(7), R(0), U8(14), U8(2),
B(Ldar), R(14),
/* 61 S> */ B(Return),
B(RestoreGeneratorRegisters), R(7), R(0), U8(15),
B(RestoreGeneratorRegisters), R(7), R(0), U8(14),
B(LdaSmi), I8(-2),
B(Star), R(8),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(14), U8(1),
B(Star), R(15),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(14), U8(1),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(7), U8(1),
B(Star), R(14),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(7), U8(1),
B(SwitchOnSmiNoFeedback), U8(3), U8(2), I8(0),
B(Ldar), R(15),
B(Ldar), R(14),
/* 52 E> */ B(ReThrow),
B(LdaTrue),
B(Star), R(17),
B(Mov), R(15), R(16),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(16), U8(2),
B(Star), R(16),
B(Mov), R(14), R(15),
B(InvokeIntrinsic), U8(Runtime::k_CreateIterResultObject), R(15), U8(2),
B(Star), R(11),
B(LdaZero),
B(Star), R(10),
......@@ -815,12 +811,12 @@ bytecodes: [
B(Star), R(6),
B(Mov), R(0), R(4),
B(Ldar), R(0),
B(JumpLoop), U8(110), I8(1),
B(JumpLoop), U8(107), I8(1),
B(LdaSmi), I8(1),
/* 59 E> */ B(TestEqual), R(6), U8(7),
B(JumpIfFalse), U8(4),
B(Jump), U8(5),
B(JumpLoop), U8(180), I8(0),
B(JumpLoop), U8(177), I8(0),
B(LdaUndefined),
B(Star), R(14),
B(LdaUndefined),
......@@ -881,7 +877,7 @@ bytecodes: [
constant pool: [
Smi [57],
Smi [56],
Smi [58],
Smi [55],
Smi [24],
Smi [7],
ONE_BYTE_INTERNALIZED_STRING_TYPE [".catch"],
......@@ -890,7 +886,7 @@ constant pool: [
Smi [9],
]
handlers: [
[62, 323, 329],
[65, 278, 280],
[62, 320, 326],
[65, 275, 277],
]
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