Commit ed592eb0 authored by Ross McIlroy's avatar Ross McIlroy Committed by Commit Bot

[Cleanup][Interpreter] Move feedback slot allocation to bytecode generator

Moves the feedback vector slot allocation out of ast-numbering and into
bytecode generation directly. This has a couple of benifits, including reduced
AST size, avoid code duplication and reduced feedback vector sizes in many cases
due to only allocating slots when needed. Also removes AstProperties since
this is no longer needed.

AstNumbering is now only used to allocate suspend ids for generators.

BUG=v8:6921

Change-Id: I103e8593c94ef5b2e56c34ef4f77bd6e7d64796f
Reviewed-on: https://chromium-review.googlesource.com/722959
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: 's avatarMichael Stanton <mvstanton@chromium.org>
Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#48757}
parent 3d4a9826
This diff is collapsed.
...@@ -22,13 +22,12 @@ template <typename T> ...@@ -22,13 +22,12 @@ template <typename T>
class ZoneVector; class ZoneVector;
namespace AstNumbering { namespace AstNumbering {
// Assign type feedback IDs, bailout IDs, and generator suspend IDs to an AST // Assign bailout IDs, and generator suspend IDs to an AST node tree; perform
// node tree; perform catch prediction for TryStatements. If |eager_literals| is // catch prediction for TryStatements. If |eager_literals| is non-null, adds any
// non-null, adds any eager inner literal functions into it. // eager inner literal functions into it.
bool Renumber( bool Renumber(
uintptr_t stack_limit, Zone* zone, FunctionLiteral* function, uintptr_t stack_limit, Zone* zone, FunctionLiteral* function,
ThreadedList<ThreadedListZoneEntry<FunctionLiteral*>>* eager_literals, ThreadedList<ThreadedListZoneEntry<FunctionLiteral*>>* eager_literals);
bool collect_type_profile = false);
} }
// Some details on suspend IDs // Some details on suspend IDs
......
This diff is collapsed.
This diff is collapsed.
...@@ -488,16 +488,6 @@ void CallPrinter::PrintLiteral(const AstRawString* value, bool quote) { ...@@ -488,16 +488,6 @@ void CallPrinter::PrintLiteral(const AstRawString* value, bool quote) {
#ifdef DEBUG #ifdef DEBUG
// A helper for ast nodes that use FeedbackSlots.
static int FormatSlotNode(Vector<char>* buf, Expression* node,
const char* node_name, FeedbackSlot slot) {
int pos = SNPrintF(*buf, "%s", node_name);
if (!slot.IsInvalid()) {
pos += SNPrintF(*buf + pos, " Slot(%d)", slot.ToInt());
}
return pos;
}
const char* AstPrinter::Print(AstNode* node) { const char* AstPrinter::Print(AstNode* node) {
Init(); Init();
Visit(node); Visit(node);
...@@ -1018,11 +1008,9 @@ void AstPrinter::VisitLiteral(Literal* node) { ...@@ -1018,11 +1008,9 @@ void AstPrinter::VisitLiteral(Literal* node) {
void AstPrinter::VisitRegExpLiteral(RegExpLiteral* node) { void AstPrinter::VisitRegExpLiteral(RegExpLiteral* node) {
IndentedScope indent(this, "REGEXP LITERAL", node->position()); IndentedScope indent(this, "REGEXP LITERAL", node->position());
EmbeddedVector<char, 128> buf;
SNPrintF(buf, "literal_slot = %d\n", node->literal_slot().ToInt());
PrintIndented(buf.start());
PrintLiteralIndented("PATTERN", node->pattern(), false); PrintLiteralIndented("PATTERN", node->pattern(), false);
int i = 0; int i = 0;
EmbeddedVector<char, 128> buf;
if (node->flags() & RegExp::kGlobal) buf[i++] = 'g'; if (node->flags() & RegExp::kGlobal) buf[i++] = 'g';
if (node->flags() & RegExp::kIgnoreCase) buf[i++] = 'i'; if (node->flags() & RegExp::kIgnoreCase) buf[i++] = 'i';
if (node->flags() & RegExp::kMultiline) buf[i++] = 'm'; if (node->flags() & RegExp::kMultiline) buf[i++] = 'm';
...@@ -1037,9 +1025,6 @@ void AstPrinter::VisitRegExpLiteral(RegExpLiteral* node) { ...@@ -1037,9 +1025,6 @@ void AstPrinter::VisitRegExpLiteral(RegExpLiteral* node) {
void AstPrinter::VisitObjectLiteral(ObjectLiteral* node) { void AstPrinter::VisitObjectLiteral(ObjectLiteral* node) {
IndentedScope indent(this, "OBJ LITERAL", node->position()); IndentedScope indent(this, "OBJ LITERAL", node->position());
EmbeddedVector<char, 128> buf;
SNPrintF(buf, "literal_slot = %d\n", node->literal_slot().ToInt());
PrintIndented(buf.start());
PrintObjectProperties(node->properties()); PrintObjectProperties(node->properties());
} }
...@@ -1082,10 +1067,6 @@ void AstPrinter::PrintObjectProperties( ...@@ -1082,10 +1067,6 @@ void AstPrinter::PrintObjectProperties(
void AstPrinter::VisitArrayLiteral(ArrayLiteral* node) { void AstPrinter::VisitArrayLiteral(ArrayLiteral* node) {
IndentedScope indent(this, "ARRAY LITERAL", node->position()); IndentedScope indent(this, "ARRAY LITERAL", node->position());
EmbeddedVector<char, 128> buf;
SNPrintF(buf, "literal_slot = %d\n", node->literal_slot().ToInt());
PrintIndented(buf.start());
if (node->values()->length() > 0) { if (node->values()->length() > 0) {
IndentedScope indent(this, "VALUES", node->position()); IndentedScope indent(this, "VALUES", node->position());
for (int i = 0; i < node->values()->length(); i++) { for (int i = 0; i < node->values()->length(); i++) {
...@@ -1097,8 +1078,7 @@ void AstPrinter::VisitArrayLiteral(ArrayLiteral* node) { ...@@ -1097,8 +1078,7 @@ void AstPrinter::VisitArrayLiteral(ArrayLiteral* node) {
void AstPrinter::VisitVariableProxy(VariableProxy* node) { void AstPrinter::VisitVariableProxy(VariableProxy* node) {
EmbeddedVector<char, 128> buf; EmbeddedVector<char, 128> buf;
int pos = int pos = SNPrintF(buf, "VAR PROXY");
FormatSlotNode(&buf, node, "VAR PROXY", node->VariableFeedbackSlot());
if (!node->is_resolved()) { if (!node->is_resolved()) {
SNPrintF(buf + pos, " unresolved"); SNPrintF(buf + pos, " unresolved");
...@@ -1169,7 +1149,7 @@ void AstPrinter::VisitThrow(Throw* node) { ...@@ -1169,7 +1149,7 @@ void AstPrinter::VisitThrow(Throw* node) {
void AstPrinter::VisitProperty(Property* node) { void AstPrinter::VisitProperty(Property* node) {
EmbeddedVector<char, 128> buf; EmbeddedVector<char, 128> buf;
FormatSlotNode(&buf, node, "PROPERTY", node->PropertyFeedbackSlot()); SNPrintF(buf, "PROPERTY");
IndentedScope indent(this, buf.start(), node->position()); IndentedScope indent(this, buf.start(), node->position());
Visit(node->obj()); Visit(node->obj());
...@@ -1184,7 +1164,7 @@ void AstPrinter::VisitProperty(Property* node) { ...@@ -1184,7 +1164,7 @@ void AstPrinter::VisitProperty(Property* node) {
void AstPrinter::VisitCall(Call* node) { void AstPrinter::VisitCall(Call* node) {
EmbeddedVector<char, 128> buf; EmbeddedVector<char, 128> buf;
FormatSlotNode(&buf, node, "CALL", node->CallFeedbackICSlot()); SNPrintF(buf, "CALL");
IndentedScope indent(this, buf.start()); IndentedScope indent(this, buf.start());
Visit(node->expression()); Visit(node->expression());
......
...@@ -35,6 +35,7 @@ CompilationInfo::CompilationInfo(Zone* zone, Isolate* isolate, ...@@ -35,6 +35,7 @@ CompilationInfo::CompilationInfo(Zone* zone, Isolate* isolate,
if (parse_info->is_eval()) MarkAsEval(); if (parse_info->is_eval()) MarkAsEval();
if (parse_info->is_native()) MarkAsNative(); if (parse_info->is_native()) MarkAsNative();
if (parse_info->will_serialize()) MarkAsSerializing(); if (parse_info->will_serialize()) MarkAsSerializing();
if (parse_info->collect_type_profile()) MarkAsCollectTypeProfile();
} }
CompilationInfo::CompilationInfo(Zone* zone, Isolate* isolate, CompilationInfo::CompilationInfo(Zone* zone, Isolate* isolate,
...@@ -70,6 +71,7 @@ CompilationInfo::CompilationInfo(Vector<const char> debug_name, ...@@ -70,6 +71,7 @@ CompilationInfo::CompilationInfo(Vector<const char> debug_name,
code_kind_(code_kind), code_kind_(code_kind),
mode_(mode), mode_(mode),
osr_offset_(BailoutId::None()), osr_offset_(BailoutId::None()),
feedback_vector_spec_(zone),
zone_(zone), zone_(zone),
deferred_handles_(nullptr), deferred_handles_(nullptr),
dependencies_(isolate, zone), dependencies_(isolate, zone),
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
#include <memory> #include <memory>
#include "src/compilation-dependencies.h" #include "src/compilation-dependencies.h"
#include "src/feedback-vector.h"
#include "src/frames.h" #include "src/frames.h"
#include "src/globals.h" #include "src/globals.h"
#include "src/handles.h" #include "src/handles.h"
...@@ -39,14 +40,15 @@ class V8_EXPORT_PRIVATE CompilationInfo final { ...@@ -39,14 +40,15 @@ class V8_EXPORT_PRIVATE CompilationInfo final {
kIsEval = 1 << 0, kIsEval = 1 << 0,
kIsNative = 1 << 1, kIsNative = 1 << 1,
kSerializing = 1 << 2, kSerializing = 1 << 2,
kAccessorInliningEnabled = 1 << 3, kCollectTypeProfile = 1 << 3,
kFunctionContextSpecializing = 1 << 4, kAccessorInliningEnabled = 1 << 4,
kInliningEnabled = 1 << 5, kFunctionContextSpecializing = 1 << 5,
kDisableFutureOptimization = 1 << 6, kInliningEnabled = 1 << 6,
kSplittingEnabled = 1 << 7, kDisableFutureOptimization = 1 << 7,
kSourcePositionsEnabled = 1 << 8, kSplittingEnabled = 1 << 8,
kBailoutOnUninitialized = 1 << 9, kSourcePositionsEnabled = 1 << 9,
kLoopPeelingEnabled = 1 << 10, kBailoutOnUninitialized = 1 << 10,
kLoopPeelingEnabled = 1 << 11,
}; };
// Construct a compilation info for unoptimized compilation. // Construct a compilation info for unoptimized compilation.
...@@ -114,6 +116,9 @@ class V8_EXPORT_PRIVATE CompilationInfo final { ...@@ -114,6 +116,9 @@ class V8_EXPORT_PRIVATE CompilationInfo final {
void MarkAsNative() { SetFlag(kIsNative); } void MarkAsNative() { SetFlag(kIsNative); }
bool is_native() const { return GetFlag(kIsNative); } bool is_native() const { return GetFlag(kIsNative); }
void MarkAsCollectTypeProfile() { SetFlag(kCollectTypeProfile); }
bool collect_type_profile() const { return GetFlag(kCollectTypeProfile); }
// Flags used by optimized compilation. // Flags used by optimized compilation.
void MarkAsFunctionContextSpecializing() { void MarkAsFunctionContextSpecializing() {
...@@ -159,6 +164,8 @@ class V8_EXPORT_PRIVATE CompilationInfo final { ...@@ -159,6 +164,8 @@ class V8_EXPORT_PRIVATE CompilationInfo final {
asm_wasm_data_ = asm_wasm_data; asm_wasm_data_ = asm_wasm_data;
} }
FeedbackVectorSpec* feedback_vector_spec() { return &feedback_vector_spec_; }
bool has_context() const; bool has_context() const;
Context* context() const; Context* context() const;
...@@ -304,6 +311,9 @@ class V8_EXPORT_PRIVATE CompilationInfo final { ...@@ -304,6 +311,9 @@ class V8_EXPORT_PRIVATE CompilationInfo final {
// Holds the asm_wasm array generated by the asmjs compiler. // Holds the asm_wasm array generated by the asmjs compiler.
Handle<FixedArray> asm_wasm_data_; Handle<FixedArray> asm_wasm_data_;
// Holds the feedback vector spec generated during compilation
FeedbackVectorSpec feedback_vector_spec_;
// The zone from which the compilation pipeline working on this // The zone from which the compilation pipeline working on this
// CompilationInfo allocates. // CompilationInfo allocates.
Zone* zone_; Zone* zone_;
......
...@@ -245,15 +245,14 @@ void EnsureFeedbackMetadata(CompilationInfo* compilation_info) { ...@@ -245,15 +245,14 @@ void EnsureFeedbackMetadata(CompilationInfo* compilation_info) {
if (compilation_info->shared_info()->feedback_metadata()->length() == 0 || if (compilation_info->shared_info()->feedback_metadata()->length() == 0 ||
!compilation_info->shared_info()->is_compiled()) { !compilation_info->shared_info()->is_compiled()) {
Handle<FeedbackMetadata> feedback_metadata = FeedbackMetadata::New( Handle<FeedbackMetadata> feedback_metadata = FeedbackMetadata::New(
compilation_info->isolate(), compilation_info->isolate(), compilation_info->feedback_vector_spec());
compilation_info->literal()->feedback_vector_spec());
compilation_info->shared_info()->set_feedback_metadata(*feedback_metadata); compilation_info->shared_info()->set_feedback_metadata(*feedback_metadata);
} }
// It's very important that recompiles do not alter the structure of the type // It's very important that recompiles do not alter the structure of the type
// feedback vector. Verify that the structure fits the function literal. // feedback vector. Verify that the structure fits the function literal.
CHECK(!compilation_info->shared_info()->feedback_metadata()->SpecDiffersFrom( CHECK(!compilation_info->shared_info()->feedback_metadata()->SpecDiffersFrom(
compilation_info->literal()->feedback_vector_spec())); compilation_info->feedback_vector_spec()));
} }
bool UseAsmWasm(FunctionLiteral* literal, bool asm_wasm_broken) { bool UseAsmWasm(FunctionLiteral* literal, bool asm_wasm_broken) {
...@@ -362,8 +361,7 @@ bool Renumber(ParseInfo* parse_info, ...@@ -362,8 +361,7 @@ bool Renumber(ParseInfo* parse_info,
RuntimeCallTimerScope runtimeTimer(parse_info->runtime_call_stats(), RuntimeCallTimerScope runtimeTimer(parse_info->runtime_call_stats(),
&RuntimeCallStats::CompileRenumber); &RuntimeCallStats::CompileRenumber);
return AstNumbering::Renumber(parse_info->stack_limit(), parse_info->zone(), return AstNumbering::Renumber(parse_info->stack_limit(), parse_info->zone(),
parse_info->literal(), eager_literals, parse_info->literal(), eager_literals);
parse_info->collect_type_profile());
} }
std::unique_ptr<CompilationJob> PrepareAndExecuteUnoptimizedCompileJob( std::unique_ptr<CompilationJob> PrepareAndExecuteUnoptimizedCompileJob(
......
...@@ -285,7 +285,7 @@ class FeedbackVector : public HeapObject { ...@@ -285,7 +285,7 @@ class FeedbackVector : public HeapObject {
}; };
template <typename Derived> template <typename Derived>
class FeedbackVectorSpecBase { class V8_EXPORT_PRIVATE FeedbackVectorSpecBase {
public: public:
FeedbackSlot AddCallICSlot() { return AddSlot(FeedbackSlotKind::kCall); } FeedbackSlot AddCallICSlot() { return AddSlot(FeedbackSlotKind::kCall); }
...@@ -332,11 +332,11 @@ class FeedbackVectorSpecBase { ...@@ -332,11 +332,11 @@ class FeedbackVectorSpecBase {
: FeedbackSlotKind::kStoreKeyedSloppy); : FeedbackSlotKind::kStoreKeyedSloppy);
} }
FeedbackSlot AddInterpreterBinaryOpICSlot() { FeedbackSlot AddBinaryOpICSlot() {
return AddSlot(FeedbackSlotKind::kBinaryOp); return AddSlot(FeedbackSlotKind::kBinaryOp);
} }
FeedbackSlot AddInterpreterCompareICSlot() { FeedbackSlot AddCompareICSlot() {
return AddSlot(FeedbackSlotKind::kCompareOp); return AddSlot(FeedbackSlotKind::kCompareOp);
} }
...@@ -389,7 +389,8 @@ class StaticFeedbackVectorSpec ...@@ -389,7 +389,8 @@ class StaticFeedbackVectorSpec
FeedbackSlotKind kinds_[kMaxLength]; FeedbackSlotKind kinds_[kMaxLength];
}; };
class FeedbackVectorSpec : public FeedbackVectorSpecBase<FeedbackVectorSpec> { class V8_EXPORT_PRIVATE FeedbackVectorSpec
: public FeedbackVectorSpecBase<FeedbackVectorSpec> {
public: public:
explicit FeedbackVectorSpec(Zone* zone) : slot_kinds_(zone) { explicit FeedbackVectorSpec(Zone* zone) : slot_kinds_(zone) {
slot_kinds_.reserve(16); slot_kinds_.reserve(16);
......
...@@ -39,10 +39,10 @@ class RegisterTransferWriter final ...@@ -39,10 +39,10 @@ class RegisterTransferWriter final
BytecodeArrayBuilder::BytecodeArrayBuilder( BytecodeArrayBuilder::BytecodeArrayBuilder(
Isolate* isolate, Zone* zone, int parameter_count, int locals_count, Isolate* isolate, Zone* zone, int parameter_count, int locals_count,
FunctionLiteral* literal, FeedbackVectorSpec* feedback_vector_spec,
SourcePositionTableBuilder::RecordingMode source_position_mode) SourcePositionTableBuilder::RecordingMode source_position_mode)
: zone_(zone), : zone_(zone),
literal_(literal), feedback_vector_spec_(feedback_vector_spec),
bytecode_generated_(false), bytecode_generated_(false),
constant_array_builder_(zone), constant_array_builder_(zone),
handler_table_builder_(zone), handler_table_builder_(zone),
...@@ -692,14 +692,10 @@ BytecodeArrayBuilder& BytecodeArrayBuilder::LoadGlobal(const AstRawString* name, ...@@ -692,14 +692,10 @@ BytecodeArrayBuilder& BytecodeArrayBuilder::LoadGlobal(const AstRawString* name,
int feedback_slot, int feedback_slot,
TypeofMode typeof_mode) { TypeofMode typeof_mode) {
size_t name_index = GetConstantPoolEntry(name); size_t name_index = GetConstantPoolEntry(name);
// Ensure that typeof mode is in sync with the IC slot kind if the function // Ensure that typeof mode is in sync with the IC slot kind.
// literal is available (not a unit test case). DCHECK_EQ(GetTypeofModeFromSlotKind(feedback_vector_spec()->GetKind(
// TODO(ishell): check only in debug mode. FeedbackVector::ToSlot(feedback_slot))),
if (literal_) { typeof_mode);
FeedbackSlot slot = FeedbackVector::ToSlot(feedback_slot);
CHECK_EQ(GetTypeofModeFromSlotKind(feedback_vector_spec()->GetKind(slot)),
typeof_mode);
}
if (typeof_mode == INSIDE_TYPEOF) { if (typeof_mode == INSIDE_TYPEOF) {
OutputLdaGlobalInsideTypeof(name_index, feedback_slot); OutputLdaGlobalInsideTypeof(name_index, feedback_slot);
} else { } else {
...@@ -841,16 +837,10 @@ BytecodeArrayBuilder& BytecodeArrayBuilder::CollectTypeProfile(int position) { ...@@ -841,16 +837,10 @@ BytecodeArrayBuilder& BytecodeArrayBuilder::CollectTypeProfile(int position) {
BytecodeArrayBuilder& BytecodeArrayBuilder::StoreNamedProperty( BytecodeArrayBuilder& BytecodeArrayBuilder::StoreNamedProperty(
Register object, size_t name_index, int feedback_slot, Register object, size_t name_index, int feedback_slot,
LanguageMode language_mode) { LanguageMode language_mode) {
#if DEBUG // Ensure that language mode is in sync with the IC slot kind.
// Ensure that language mode is in sync with the IC slot kind if the function DCHECK_EQ(GetLanguageModeFromSlotKind(feedback_vector_spec()->GetKind(
// literal is available (not a unit test case). FeedbackVector::ToSlot(feedback_slot))),
if (literal_) { language_mode);
FeedbackSlot slot = FeedbackVector::ToSlot(feedback_slot);
DCHECK_EQ(
GetLanguageModeFromSlotKind(feedback_vector_spec()->GetKind(slot)),
language_mode);
}
#endif
OutputStaNamedProperty(object, name_index, feedback_slot); OutputStaNamedProperty(object, name_index, feedback_slot);
return *this; return *this;
} }
...@@ -865,15 +855,10 @@ BytecodeArrayBuilder& BytecodeArrayBuilder::StoreNamedProperty( ...@@ -865,15 +855,10 @@ BytecodeArrayBuilder& BytecodeArrayBuilder::StoreNamedProperty(
BytecodeArrayBuilder& BytecodeArrayBuilder::StoreNamedOwnProperty( BytecodeArrayBuilder& BytecodeArrayBuilder::StoreNamedOwnProperty(
Register object, const AstRawString* name, int feedback_slot) { Register object, const AstRawString* name, int feedback_slot) {
size_t name_index = GetConstantPoolEntry(name); size_t name_index = GetConstantPoolEntry(name);
#if DEBUG // Ensure that the store operation is in sync with the IC slot kind.
// Ensure that the store operation is in sync with the IC slot kind if DCHECK_EQ(
// the function literal is available (not a unit test case). FeedbackSlotKind::kStoreOwnNamed,
if (literal_) { feedback_vector_spec()->GetKind(FeedbackVector::ToSlot(feedback_slot)));
FeedbackSlot slot = FeedbackVector::ToSlot(feedback_slot);
DCHECK_EQ(FeedbackSlotKind::kStoreOwnNamed,
feedback_vector_spec()->GetKind(slot));
}
#endif
OutputStaNamedOwnProperty(object, name_index, feedback_slot); OutputStaNamedOwnProperty(object, name_index, feedback_slot);
return *this; return *this;
} }
...@@ -881,16 +866,10 @@ BytecodeArrayBuilder& BytecodeArrayBuilder::StoreNamedOwnProperty( ...@@ -881,16 +866,10 @@ BytecodeArrayBuilder& BytecodeArrayBuilder::StoreNamedOwnProperty(
BytecodeArrayBuilder& BytecodeArrayBuilder::StoreKeyedProperty( BytecodeArrayBuilder& BytecodeArrayBuilder::StoreKeyedProperty(
Register object, Register key, int feedback_slot, Register object, Register key, int feedback_slot,
LanguageMode language_mode) { LanguageMode language_mode) {
#if DEBUG // Ensure that language mode is in sync with the IC slot kind.
// Ensure that language mode is in sync with the IC slot kind if the function DCHECK_EQ(GetLanguageModeFromSlotKind(feedback_vector_spec()->GetKind(
// literal is available (not a unit test case). FeedbackVector::ToSlot(feedback_slot))),
if (literal_) { language_mode);
FeedbackSlot slot = FeedbackVector::ToSlot(feedback_slot);
DCHECK_EQ(
GetLanguageModeFromSlotKind(feedback_vector_spec()->GetKind(slot)),
language_mode);
}
#endif
OutputStaKeyedProperty(object, key, feedback_slot); OutputStaKeyedProperty(object, key, feedback_slot);
return *this; return *this;
} }
......
...@@ -36,7 +36,7 @@ class V8_EXPORT_PRIVATE BytecodeArrayBuilder final ...@@ -36,7 +36,7 @@ class V8_EXPORT_PRIVATE BytecodeArrayBuilder final
public: public:
BytecodeArrayBuilder( BytecodeArrayBuilder(
Isolate* isolate, Zone* zone, int parameter_count, int locals_count, Isolate* isolate, Zone* zone, int parameter_count, int locals_count,
FunctionLiteral* literal = nullptr, FeedbackVectorSpec* feedback_vector_spec = nullptr,
SourcePositionTableBuilder::RecordingMode source_position_mode = SourcePositionTableBuilder::RecordingMode source_position_mode =
SourcePositionTableBuilder::RECORD_SOURCE_POSITIONS); SourcePositionTableBuilder::RECORD_SOURCE_POSITIONS);
...@@ -510,7 +510,7 @@ class V8_EXPORT_PRIVATE BytecodeArrayBuilder final ...@@ -510,7 +510,7 @@ class V8_EXPORT_PRIVATE BytecodeArrayBuilder final
friend class BytecodeNodeBuilder; friend class BytecodeNodeBuilder;
const FeedbackVectorSpec* feedback_vector_spec() const { const FeedbackVectorSpec* feedback_vector_spec() const {
return literal_->feedback_vector_spec(); return feedback_vector_spec_;
} }
// Returns the current source position for the given |bytecode|. // Returns the current source position for the given |bytecode|.
...@@ -567,7 +567,7 @@ class V8_EXPORT_PRIVATE BytecodeArrayBuilder final ...@@ -567,7 +567,7 @@ class V8_EXPORT_PRIVATE BytecodeArrayBuilder final
} }
Zone* zone_; Zone* zone_;
FunctionLiteral* literal_; FeedbackVectorSpec* feedback_vector_spec_;
bool bytecode_generated_; bool bytecode_generated_;
ConstantArrayBuilder constant_array_builder_; ConstantArrayBuilder constant_array_builder_;
HandlerTableBuilder handler_table_builder_; HandlerTableBuilder handler_table_builder_;
......
This diff is collapsed.
...@@ -53,6 +53,7 @@ class BytecodeGenerator final : public AstVisitor<BytecodeGenerator> { ...@@ -53,6 +53,7 @@ class BytecodeGenerator final : public AstVisitor<BytecodeGenerator> {
class CurrentScope; class CurrentScope;
class ExpressionResultScope; class ExpressionResultScope;
class EffectResultScope; class EffectResultScope;
class FeedbackSlotCache;
class GlobalDeclarationsBuilder; class GlobalDeclarationsBuilder;
class RegisterAllocationScope; class RegisterAllocationScope;
class TestResultScope; class TestResultScope;
...@@ -108,15 +109,13 @@ class BytecodeGenerator final : public AstVisitor<BytecodeGenerator> { ...@@ -108,15 +109,13 @@ class BytecodeGenerator final : public AstVisitor<BytecodeGenerator> {
void VisitPropertyLoadForRegister(Register obj, Property* expr, void VisitPropertyLoadForRegister(Register obj, Property* expr,
Register destination); Register destination);
void BuildVariableLoad(Variable* variable, FeedbackSlot slot, void BuildVariableLoad(Variable* variable, HoleCheckMode hole_check_mode,
HoleCheckMode hole_check_mode,
TypeofMode typeof_mode = NOT_INSIDE_TYPEOF); TypeofMode typeof_mode = NOT_INSIDE_TYPEOF);
void BuildVariableLoadForAccumulatorValue( void BuildVariableLoadForAccumulatorValue(
Variable* variable, FeedbackSlot slot, HoleCheckMode hole_check_mode, Variable* variable, HoleCheckMode hole_check_mode,
TypeofMode typeof_mode = NOT_INSIDE_TYPEOF); TypeofMode typeof_mode = NOT_INSIDE_TYPEOF);
void BuildVariableAssignment( void BuildVariableAssignment(
Variable* variable, Token::Value op, FeedbackSlot slot, Variable* variable, Token::Value op, HoleCheckMode hole_check_mode,
HoleCheckMode hole_check_mode,
LookupHoistingMode lookup_hoisting_mode = LookupHoistingMode::kNormal); LookupHoistingMode lookup_hoisting_mode = LookupHoistingMode::kNormal);
void BuildLiteralCompareNil(Token::Value compare_op, NilValue nil); void BuildLiteralCompareNil(Token::Value compare_op, NilValue nil);
void BuildReturn(int source_position = kNoSourcePosition); void BuildReturn(int source_position = kNoSourcePosition);
...@@ -142,10 +141,7 @@ class BytecodeGenerator final : public AstVisitor<BytecodeGenerator> { ...@@ -142,10 +141,7 @@ class BytecodeGenerator final : public AstVisitor<BytecodeGenerator> {
void BuildAwait(int suspend_id); void BuildAwait(int suspend_id);
void BuildGetIterator(Expression* iterable, IteratorType hint, void BuildGetIterator(Expression* iterable, IteratorType hint);
FeedbackSlot load_slot, FeedbackSlot call_slot,
FeedbackSlot async_load_slot,
FeedbackSlot async_call_slot);
void AllocateTopLevelRegisters(); void AllocateTopLevelRegisters();
void VisitArgumentsObject(Variable* variable); void VisitArgumentsObject(Variable* variable);
...@@ -161,11 +157,11 @@ class BytecodeGenerator final : public AstVisitor<BytecodeGenerator> { ...@@ -161,11 +157,11 @@ class BytecodeGenerator final : public AstVisitor<BytecodeGenerator> {
void VisitBlockDeclarationsAndStatements(Block* stmt); void VisitBlockDeclarationsAndStatements(Block* stmt);
void VisitFunctionClosureForContext(); void VisitFunctionClosureForContext();
void VisitSetHomeObject(Register value, Register home_object, void VisitSetHomeObject(Register value, Register home_object,
LiteralProperty* property, int slot_number = 0); LiteralProperty* property);
void VisitObjectLiteralAccessor(Register home_object, void VisitObjectLiteralAccessor(Register home_object,
ObjectLiteralProperty* property, ObjectLiteralProperty* property,
Register value_out); Register value_out);
void VisitForInAssignment(Expression* expr, FeedbackSlot slot); void VisitForInAssignment(Expression* expr);
void VisitModuleNamespaceImports(); void VisitModuleNamespaceImports();
// Builds a logical OR/AND within a test context by rewiring the jumps based // Builds a logical OR/AND within a test context by rewiring the jumps based
...@@ -216,6 +212,12 @@ class BytecodeGenerator final : public AstVisitor<BytecodeGenerator> { ...@@ -216,6 +212,12 @@ class BytecodeGenerator final : public AstVisitor<BytecodeGenerator> {
inline Runtime::FunctionId StoreToSuperRuntimeId(); inline Runtime::FunctionId StoreToSuperRuntimeId();
inline Runtime::FunctionId StoreKeyedToSuperRuntimeId(); inline Runtime::FunctionId StoreKeyedToSuperRuntimeId();
// Returns a cached slot, or create and cache a new slot if one doesn't
// already exists.
FeedbackSlot GetCachedLoadGlobalICSlot(TypeofMode typeof_mode,
Variable* variable);
FeedbackSlot GetCachedCreateClosureSlot(FunctionLiteral* literal);
static constexpr ToBooleanMode ToBooleanModeFromTypeHint(TypeHint type_hint) { static constexpr ToBooleanMode ToBooleanModeFromTypeHint(TypeHint type_hint) {
return type_hint == TypeHint::kBoolean ? ToBooleanMode::kAlreadyBoolean return type_hint == TypeHint::kBoolean ? ToBooleanMode::kAlreadyBoolean
: ToBooleanMode::kConvertToBoolean; : ToBooleanMode::kConvertToBoolean;
...@@ -256,7 +258,12 @@ class BytecodeGenerator final : public AstVisitor<BytecodeGenerator> { ...@@ -256,7 +258,12 @@ class BytecodeGenerator final : public AstVisitor<BytecodeGenerator> {
} }
inline LanguageMode language_mode() const; inline LanguageMode language_mode() const;
inline FunctionKind function_kind() const; inline FunctionKind function_kind() const;
int feedback_index(FeedbackSlot slot) const; inline FeedbackVectorSpec* feedback_spec();
inline int feedback_index(FeedbackSlot slot) const;
inline FeedbackSlotCache* feedback_slot_cache() {
return feedback_slot_cache_;
}
inline HandlerTable::CatchPrediction catch_prediction() const { inline HandlerTable::CatchPrediction catch_prediction() const {
return catch_prediction_; return catch_prediction_;
...@@ -272,6 +279,8 @@ class BytecodeGenerator final : public AstVisitor<BytecodeGenerator> { ...@@ -272,6 +279,8 @@ class BytecodeGenerator final : public AstVisitor<BytecodeGenerator> {
DeclarationScope* closure_scope_; DeclarationScope* closure_scope_;
Scope* current_scope_; Scope* current_scope_;
FeedbackSlotCache* feedback_slot_cache_;
GlobalDeclarationsBuilder* globals_builder_; GlobalDeclarationsBuilder* globals_builder_;
BlockCoverageBuilder* block_coverage_builder_; BlockCoverageBuilder* block_coverage_builder_;
ZoneVector<GlobalDeclarationsBuilder*> global_declarations_; ZoneVector<GlobalDeclarationsBuilder*> global_declarations_;
......
...@@ -34,17 +34,17 @@ bytecodes: [ ...@@ -34,17 +34,17 @@ bytecodes: [
/* 30 E> */ B(StackCheck), /* 30 E> */ B(StackCheck),
/* 42 S> */ B(LdaSmi), I8(1), /* 42 S> */ B(LdaSmi), I8(1),
B(Star), R(0), B(Star), R(0),
/* 45 S> */ B(CreateArrayLiteral), U8(0), U8(1), U8(37), /* 45 S> */ B(CreateArrayLiteral), U8(0), U8(0), U8(37),
B(Star), R(2), B(Star), R(2),
B(LdaZero), B(LdaZero),
B(Star), R(1), B(Star), R(1),
B(Ldar), R(0), B(Ldar), R(0),
/* 54 E> */ B(StaKeyedProperty), R(2), R(1), U8(2), /* 54 E> */ B(StaKeyedProperty), R(2), R(1), U8(1),
B(LdaSmi), I8(1), B(LdaSmi), I8(1),
B(Star), R(1), B(Star), R(1),
B(Ldar), R(0), B(Ldar), R(0),
/* 59 E> */ B(AddSmi), I8(1), U8(0), /* 59 E> */ B(AddSmi), I8(1), U8(3),
B(StaKeyedProperty), R(2), R(1), U8(2), B(StaKeyedProperty), R(2), R(1), U8(1),
B(Ldar), R(2), B(Ldar), R(2),
/* 65 S> */ B(Return), /* 65 S> */ B(Return),
] ]
...@@ -63,7 +63,7 @@ parameter count: 1 ...@@ -63,7 +63,7 @@ parameter count: 1
bytecode array length: 6 bytecode array length: 6
bytecodes: [ bytecodes: [
/* 30 E> */ B(StackCheck), /* 30 E> */ B(StackCheck),
/* 34 S> */ B(CreateArrayLiteral), U8(0), U8(2), U8(4), /* 34 S> */ B(CreateArrayLiteral), U8(0), U8(0), U8(4),
/* 61 S> */ B(Return), /* 61 S> */ B(Return),
] ]
constant pool: [ constant pool: [
...@@ -83,29 +83,29 @@ bytecodes: [ ...@@ -83,29 +83,29 @@ bytecodes: [
/* 30 E> */ B(StackCheck), /* 30 E> */ B(StackCheck),
/* 42 S> */ B(LdaSmi), I8(1), /* 42 S> */ B(LdaSmi), I8(1),
B(Star), R(0), B(Star), R(0),
/* 45 S> */ B(CreateArrayLiteral), U8(0), U8(7), U8(4), /* 45 S> */ B(CreateArrayLiteral), U8(0), U8(0), U8(4),
B(Star), R(2), B(Star), R(2),
B(LdaZero), B(LdaZero),
B(Star), R(1), B(Star), R(1),
B(CreateArrayLiteral), U8(1), U8(0), U8(37), B(CreateArrayLiteral), U8(1), U8(3), U8(37),
B(Star), R(4), B(Star), R(4),
B(LdaZero), B(LdaZero),
B(Star), R(3), B(Star), R(3),
B(Ldar), R(0), B(Ldar), R(0),
/* 56 E> */ B(StaKeyedProperty), R(4), R(3), U8(1), /* 56 E> */ B(StaKeyedProperty), R(4), R(3), U8(4),
B(Ldar), R(4), B(Ldar), R(4),
B(StaKeyedProperty), R(2), R(1), U8(8), B(StaKeyedProperty), R(2), R(1), U8(1),
B(LdaSmi), I8(1), B(LdaSmi), I8(1),
B(Star), R(1), B(Star), R(1),
B(CreateArrayLiteral), U8(2), U8(4), U8(37), B(CreateArrayLiteral), U8(2), U8(6), U8(37),
B(Star), R(4), B(Star), R(4),
B(LdaZero), B(LdaZero),
B(Star), R(3), B(Star), R(3),
B(Ldar), R(0), B(Ldar), R(0),
/* 68 E> */ B(AddSmi), I8(2), U8(3), /* 68 E> */ B(AddSmi), I8(2), U8(9),
B(StaKeyedProperty), R(4), R(3), U8(5), B(StaKeyedProperty), R(4), R(3), U8(7),
B(Ldar), R(4), B(Ldar), R(4),
B(StaKeyedProperty), R(2), R(1), U8(8), B(StaKeyedProperty), R(2), R(1), U8(1),
B(Ldar), R(2), B(Ldar), R(2),
/* 76 S> */ B(Return), /* 76 S> */ B(Return),
] ]
......
...@@ -73,11 +73,11 @@ bytecodes: [ ...@@ -73,11 +73,11 @@ bytecodes: [
/* 46 S> */ B(LdaSmi), I8(100), /* 46 S> */ B(LdaSmi), I8(100),
B(Mov), R(0), R(1), B(Mov), R(0), R(1),
B(Star), R(0), B(Star), R(0),
/* 52 E> */ B(Add), R(1), U8(0), /* 52 E> */ B(Add), R(1), U8(1),
B(Star), R(1), B(Star), R(1),
B(LdaSmi), I8(101), B(LdaSmi), I8(101),
B(Star), R(0), B(Star), R(0),
/* 64 E> */ B(Add), R(1), U8(1), /* 64 E> */ B(Add), R(1), U8(0),
B(Star), R(0), B(Star), R(0),
/* 86 S> */ B(Return), /* 86 S> */ B(Return),
] ]
...@@ -102,11 +102,11 @@ bytecodes: [ ...@@ -102,11 +102,11 @@ bytecodes: [
B(Star), R(0), B(Star), R(0),
/* 46 S> */ B(LdaSmi), I8(56), /* 46 S> */ B(LdaSmi), I8(56),
B(Star), R(0), B(Star), R(0),
/* 59 E> */ B(Sub), R(0), U8(0), /* 59 E> */ B(Sub), R(0), U8(1),
B(Star), R(1), B(Star), R(1),
B(LdaSmi), I8(57), B(LdaSmi), I8(57),
B(Star), R(0), B(Star), R(0),
/* 63 E> */ B(Add), R(1), U8(1), /* 63 E> */ B(Add), R(1), U8(0),
B(Star), R(0), B(Star), R(0),
/* 75 S> */ B(Inc), U8(2), /* 75 S> */ B(Inc), U8(2),
B(Star), R(0), B(Star), R(0),
...@@ -133,7 +133,7 @@ bytecodes: [ ...@@ -133,7 +133,7 @@ bytecodes: [
/* 54 S> */ B(LdaSmi), I8(1), /* 54 S> */ B(LdaSmi), I8(1),
B(Mov), R(0), R(2), B(Mov), R(0), R(2),
B(Star), R(0), B(Star), R(0),
/* 56 E> */ B(Add), R(2), U8(0), /* 56 E> */ B(Add), R(2), U8(2),
B(Star), R(2), B(Star), R(2),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(Star), R(0), B(Star), R(0),
...@@ -141,7 +141,7 @@ bytecodes: [ ...@@ -141,7 +141,7 @@ bytecodes: [
B(Star), R(2), B(Star), R(2),
B(LdaSmi), I8(3), B(LdaSmi), I8(3),
B(Star), R(0), B(Star), R(0),
/* 76 E> */ B(Add), R(2), U8(2), /* 76 E> */ B(Add), R(2), U8(0),
B(Star), R(1), B(Star), R(1),
/* 96 S> */ B(Return), /* 96 S> */ B(Return),
] ]
...@@ -166,7 +166,7 @@ bytecodes: [ ...@@ -166,7 +166,7 @@ bytecodes: [
/* 54 S> */ B(LdaSmi), I8(1), /* 54 S> */ B(LdaSmi), I8(1),
B(Mov), R(0), R(1), B(Mov), R(0), R(1),
B(Star), R(0), B(Star), R(0),
/* 56 E> */ B(Add), R(1), U8(0), /* 56 E> */ B(Add), R(1), U8(2),
B(Star), R(1), B(Star), R(1),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(Star), R(0), B(Star), R(0),
...@@ -174,7 +174,7 @@ bytecodes: [ ...@@ -174,7 +174,7 @@ bytecodes: [
B(Star), R(1), B(Star), R(1),
B(LdaSmi), I8(3), B(LdaSmi), I8(3),
B(Star), R(0), B(Star), R(0),
/* 76 E> */ B(Add), R(1), U8(2), /* 76 E> */ B(Add), R(1), U8(0),
B(Star), R(0), B(Star), R(0),
/* 96 S> */ B(Return), /* 96 S> */ B(Return),
] ]
...@@ -200,30 +200,30 @@ bytecodes: [ ...@@ -200,30 +200,30 @@ bytecodes: [
/* 54 S> */ B(LdaSmi), I8(1), /* 54 S> */ B(LdaSmi), I8(1),
B(Mov), R(0), R(2), B(Mov), R(0), R(2),
B(Star), R(0), B(Star), R(0),
/* 63 E> */ B(Add), R(2), U8(0), /* 63 E> */ B(Add), R(2), U8(5),
B(Star), R(2), B(Star), R(2),
B(Ldar), R(0), B(Ldar), R(0),
/* 78 E> */ B(AddSmi), I8(1), U8(1), /* 78 E> */ B(AddSmi), I8(1), U8(7),
B(Star), R(3), B(Star), R(3),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(Star), R(1), B(Star), R(1),
/* 83 E> */ B(Mul), R(3), U8(2), /* 83 E> */ B(Mul), R(3), U8(6),
/* 73 E> */ B(Add), R(2), U8(3), /* 73 E> */ B(Add), R(2), U8(4),
B(Star), R(2), B(Star), R(2),
B(LdaSmi), I8(3), B(LdaSmi), I8(3),
B(Star), R(1), B(Star), R(1),
/* 93 E> */ B(Add), R(2), U8(4), /* 93 E> */ B(Add), R(2), U8(3),
B(Star), R(2), B(Star), R(2),
B(LdaSmi), I8(4), B(LdaSmi), I8(4),
B(Star), R(0), B(Star), R(0),
/* 103 E> */ B(Add), R(2), U8(5), /* 103 E> */ B(Add), R(2), U8(2),
B(Star), R(2), B(Star), R(2),
B(LdaSmi), I8(5), B(LdaSmi), I8(5),
B(Star), R(1), B(Star), R(1),
/* 113 E> */ B(Add), R(2), U8(6), /* 113 E> */ B(Add), R(2), U8(1),
B(Star), R(2), B(Star), R(2),
B(Ldar), R(1), B(Ldar), R(1),
/* 123 E> */ B(Add), R(2), U8(7), /* 123 E> */ B(Add), R(2), U8(0),
/* 127 S> */ B(Return), /* 127 S> */ B(Return),
] ]
constant pool: [ constant pool: [
...@@ -246,20 +246,20 @@ bytecodes: [ ...@@ -246,20 +246,20 @@ bytecodes: [
/* 46 S> */ B(LdaSmi), I8(1), /* 46 S> */ B(LdaSmi), I8(1),
B(Star), R(1), B(Star), R(1),
B(Ldar), R(0), B(Ldar), R(0),
/* 55 E> */ B(Add), R(1), U8(0), /* 55 E> */ B(Add), R(1), U8(2),
B(Star), R(1), B(Star), R(1),
B(Ldar), R(0), B(Ldar), R(0),
B(ToNumeric), U8(1), B(ToNumeric), U8(3),
B(Star), R(2), B(Star), R(2),
B(Inc), U8(1), B(Inc), U8(3),
B(Star), R(0), B(Star), R(0),
B(Ldar), R(2), B(Ldar), R(2),
/* 59 E> */ B(Add), R(1), U8(2), /* 59 E> */ B(Add), R(1), U8(1),
B(Star), R(1), B(Star), R(1),
B(Ldar), R(0), B(Ldar), R(0),
B(Inc), U8(3), B(Inc), U8(4),
B(Star), R(0), B(Star), R(0),
/* 67 E> */ B(Add), R(1), U8(4), /* 67 E> */ B(Add), R(1), U8(0),
/* 75 S> */ B(Return), /* 75 S> */ B(Return),
] ]
constant pool: [ constant pool: [
......
...@@ -345,9 +345,9 @@ bytecodes: [ ...@@ -345,9 +345,9 @@ bytecodes: [
/* 36 E> */ B(TestEqualStrictNoFeedback), R(10), /* 36 E> */ B(TestEqualStrictNoFeedback), R(10),
B(JumpIfTrue), U8(4), B(JumpIfTrue), U8(4),
B(Abort), U8(42), B(Abort), U8(42),
/* 31 S> */ B(LdaNamedProperty), R(4), U8(8), U8(7), /* 31 S> */ B(LdaNamedProperty), R(4), U8(8), U8(5),
B(Star), R(19), B(Star), R(19),
B(CallProperty0), R(19), R(4), U8(5), B(CallProperty0), R(19), R(4), U8(7),
B(Star), R(5), B(Star), R(5),
/* 31 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(5), U8(1), /* 31 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(5), U8(1),
B(ToBooleanLogicalNot), B(ToBooleanLogicalNot),
...@@ -422,7 +422,7 @@ bytecodes: [ ...@@ -422,7 +422,7 @@ bytecodes: [
B(JumpIfFalse), U8(4), B(JumpIfFalse), U8(4),
B(Jump), U8(93), B(Jump), U8(93),
B(LdaSmi), I8(1), B(LdaSmi), I8(1),
B(TestEqualStrict), R(6), U8(18), B(TestEqualStrict), R(6), U8(17),
B(JumpIfFalse), U8(61), B(JumpIfFalse), U8(61),
B(Ldar), R(8), B(Ldar), R(8),
B(TestTypeOf), U8(5), B(TestTypeOf), U8(5),
...@@ -615,20 +615,20 @@ bytecodes: [ ...@@ -615,20 +615,20 @@ bytecodes: [
B(Star), R(2), B(Star), R(2),
B(Mov), R(6), R(3), B(Mov), R(6), R(3),
B(JumpConstant), U8(22), B(JumpConstant), U8(22),
/* 49 S> */ B(LdaGlobal), U8(7), U8(2), /* 49 S> */ B(LdaGlobal), U8(7), U8(0),
B(Star), R(12), B(Star), R(12),
/* 56 E> */ B(CallUndefinedReceiver0), R(12), U8(0), /* 56 E> */ B(CallUndefinedReceiver0), R(12), U8(2),
B(Star), R(10), B(Star), R(10),
B(LdaNamedProperty), R(10), U8(8), U8(26), B(LdaNamedProperty), R(10), U8(8), U8(4),
B(JumpIfUndefined), U8(17), B(JumpIfUndefined), U8(17),
B(JumpIfNull), U8(15), B(JumpIfNull), U8(15),
B(Star), R(11), B(Star), R(11),
B(CallProperty0), R(11), R(10), U8(28), B(CallProperty0), R(11), R(10), U8(6),
B(JumpIfJSReceiver), U8(23), B(JumpIfJSReceiver), U8(23),
B(CallRuntime), U16(Runtime::kThrowSymbolAsyncIteratorInvalid), R(0), U8(0), B(CallRuntime), U16(Runtime::kThrowSymbolAsyncIteratorInvalid), R(0), U8(0),
B(LdaNamedProperty), R(10), U8(9), U8(4), B(LdaNamedProperty), R(10), U8(9), U8(8),
B(Star), R(11), B(Star), R(11),
B(CallProperty0), R(11), R(10), U8(16), B(CallProperty0), R(11), R(10), U8(10),
B(Star), R(11), B(Star), R(11),
B(InvokeIntrinsic), U8(Runtime::k_CreateAsyncFromSyncIterator), R(11), U8(1), B(InvokeIntrinsic), U8(Runtime::k_CreateAsyncFromSyncIterator), R(11), U8(1),
B(Star), R(8), B(Star), R(8),
...@@ -644,11 +644,11 @@ bytecodes: [ ...@@ -644,11 +644,11 @@ bytecodes: [
B(Abort), U8(42), B(Abort), U8(42),
B(Ldar), R(7), B(Ldar), R(7),
B(SwitchOnSmiNoFeedback), U8(13), U8(2), I8(1), B(SwitchOnSmiNoFeedback), U8(13), U8(2), I8(1),
B(LdaNamedProperty), R(8), U8(15), U8(8), B(LdaNamedProperty), R(8), U8(15), U8(12),
B(Star), R(12), B(Star), R(12),
B(CallProperty1), R(12), R(8), R(9), U8(22), B(CallProperty1), R(12), R(8), R(9), U8(14),
B(Jump), U8(118), B(Jump), U8(118),
B(LdaNamedProperty), R(8), U8(16), U8(6), B(LdaNamedProperty), R(8), U8(16), U8(16),
B(JumpIfUndefined), U8(13), B(JumpIfUndefined), U8(13),
B(JumpIfNull), U8(11), B(JumpIfNull), U8(11),
B(Star), R(12), B(Star), R(12),
...@@ -658,17 +658,17 @@ bytecodes: [ ...@@ -658,17 +658,17 @@ bytecodes: [
B(Star), R(2), B(Star), R(2),
B(Mov), R(9), R(3), B(Mov), R(9), R(3),
B(JumpConstant), U8(23), B(JumpConstant), U8(23),
B(LdaNamedProperty), R(8), U8(17), U8(10), B(LdaNamedProperty), R(8), U8(17), U8(20),
B(JumpIfUndefined), U8(13), B(JumpIfUndefined), U8(13),
B(JumpIfNull), U8(11), B(JumpIfNull), U8(11),
B(Star), R(12), B(Star), R(12),
B(CallProperty1), R(12), R(8), R(9), U8(24), B(CallProperty1), R(12), R(8), R(9), U8(22),
B(Jump), U8(76), B(Jump), U8(76),
B(LdaNamedProperty), R(8), U8(16), U8(6), B(LdaNamedProperty), R(8), U8(16), U8(24),
B(Star), R(12), B(Star), R(12),
B(JumpIfUndefined), U8(63), B(JumpIfUndefined), U8(63),
B(JumpIfNull), U8(61), B(JumpIfNull), U8(61),
B(CallProperty0), R(12), R(8), U8(20), B(CallProperty0), R(12), R(8), U8(26),
B(Star), R(14), B(Star), R(14),
B(Mov), R(0), R(13), B(Mov), R(0), R(13),
B(CallJSRuntime), U8(%async_generator_await_uncaught), R(13), U8(2), B(CallJSRuntime), U8(%async_generator_await_uncaught), R(13), U8(2),
...@@ -712,9 +712,9 @@ bytecodes: [ ...@@ -712,9 +712,9 @@ bytecodes: [
B(Mov), R(12), R(6), B(Mov), R(12), R(6),
B(JumpIfJSReceiver), U8(7), B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(6), U8(1), B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(6), U8(1),
B(LdaNamedProperty), R(6), U8(18), U8(12), B(LdaNamedProperty), R(6), U8(18), U8(28),
B(JumpIfToBooleanTrue), U8(47), B(JumpIfToBooleanTrue), U8(47),
B(LdaNamedProperty), R(6), U8(19), U8(14), B(LdaNamedProperty), R(6), U8(19), U8(30),
B(Star), R(15), B(Star), R(15),
B(LdaFalse), B(LdaFalse),
B(Star), R(16), B(Star), R(16),
...@@ -730,7 +730,7 @@ bytecodes: [ ...@@ -730,7 +730,7 @@ bytecodes: [
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1), B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1),
B(Star), R(7), B(Star), R(7),
B(JumpLoop), U8(252), I8(0), B(JumpLoop), U8(252), I8(0),
B(LdaNamedProperty), R(6), U8(19), U8(14), B(LdaNamedProperty), R(6), U8(19), U8(32),
B(Star), R(8), B(Star), R(8),
B(LdaSmi), I8(1), B(LdaSmi), I8(1),
B(TestEqualStrictNoFeedback), R(7), B(TestEqualStrictNoFeedback), R(7),
......
...@@ -489,15 +489,15 @@ bytecodes: [ ...@@ -489,15 +489,15 @@ bytecodes: [
B(Star), R(0), B(Star), R(0),
/* 45 E> */ B(StackCheck), /* 45 E> */ B(StackCheck),
/* 68 S> */ B(LdaSmi), I8(1), /* 68 S> */ B(LdaSmi), I8(1),
/* 74 E> */ B(TestEqual), R(0), U8(1), /* 74 E> */ B(TestEqual), R(0), U8(0),
B(JumpIfFalse), U8(4), B(JumpIfFalse), U8(4),
/* 80 S> */ B(Jump), U8(21), /* 80 S> */ B(Jump), U8(21),
/* 89 S> */ B(LdaSmi), I8(2), /* 89 S> */ B(LdaSmi), I8(2),
/* 95 E> */ B(TestEqual), R(0), U8(2), /* 95 E> */ B(TestEqual), R(0), U8(1),
B(JumpIfFalse), U8(4), B(JumpIfFalse), U8(4),
/* 101 S> */ B(Jump), U8(2), /* 101 S> */ B(Jump), U8(2),
/* 55 S> */ B(Ldar), R(0), /* 55 S> */ B(Ldar), R(0),
/* 59 E> */ B(AddSmi), I8(1), U8(0), /* 59 E> */ B(AddSmi), I8(1), U8(2),
B(Star), R(0), B(Star), R(0),
B(JumpLoop), U8(26), I8(0), B(JumpLoop), U8(26), I8(0),
B(LdaUndefined), B(LdaUndefined),
...@@ -524,15 +524,15 @@ bytecodes: [ ...@@ -524,15 +524,15 @@ bytecodes: [
B(Star), R(0), B(Star), R(0),
/* 34 E> */ B(StackCheck), /* 34 E> */ B(StackCheck),
/* 66 S> */ B(LdaSmi), I8(1), /* 66 S> */ B(LdaSmi), I8(1),
/* 72 E> */ B(TestEqual), R(0), U8(1), /* 72 E> */ B(TestEqual), R(0), U8(0),
B(JumpIfFalse), U8(4), B(JumpIfFalse), U8(4),
/* 78 S> */ B(Jump), U8(21), /* 78 S> */ B(Jump), U8(21),
/* 87 S> */ B(LdaSmi), I8(2), /* 87 S> */ B(LdaSmi), I8(2),
/* 93 E> */ B(TestEqual), R(0), U8(2), /* 93 E> */ B(TestEqual), R(0), U8(1),
B(JumpIfFalse), U8(4), B(JumpIfFalse), U8(4),
/* 99 S> */ B(Jump), U8(2), /* 99 S> */ B(Jump), U8(2),
/* 53 S> */ B(Ldar), R(0), /* 53 S> */ B(Ldar), R(0),
/* 57 E> */ B(AddSmi), I8(1), U8(0), /* 57 E> */ B(AddSmi), I8(1), U8(2),
B(Star), R(0), B(Star), R(0),
B(JumpLoop), U8(26), I8(0), B(JumpLoop), U8(26), I8(0),
B(LdaUndefined), B(LdaUndefined),
...@@ -565,11 +565,11 @@ bytecodes: [ ...@@ -565,11 +565,11 @@ bytecodes: [
B(JumpIfFalse), U8(22), B(JumpIfFalse), U8(22),
/* 45 E> */ B(StackCheck), /* 45 E> */ B(StackCheck),
/* 85 S> */ B(Ldar), R(0), /* 85 S> */ B(Ldar), R(0),
/* 91 E> */ B(AddSmi), I8(1), U8(2), /* 91 E> */ B(AddSmi), I8(1), U8(1),
B(Star), R(0), B(Star), R(0),
/* 98 S> */ B(Jump), U8(2), /* 98 S> */ B(Jump), U8(2),
/* 72 S> */ B(Ldar), R(1), /* 72 S> */ B(Ldar), R(1),
/* 76 E> */ B(AddSmi), I8(1), U8(1), /* 76 E> */ B(AddSmi), I8(1), U8(2),
B(Star), R(1), B(Star), R(1),
B(JumpLoop), U8(24), I8(0), B(JumpLoop), U8(24), I8(0),
B(LdaUndefined), B(LdaUndefined),
...@@ -601,10 +601,10 @@ bytecodes: [ ...@@ -601,10 +601,10 @@ bytecodes: [
B(JumpIfToBooleanFalse), U8(19), B(JumpIfToBooleanFalse), U8(19),
/* 45 E> */ B(StackCheck), /* 45 E> */ B(StackCheck),
/* 74 S> */ B(Ldar), R(0), /* 74 S> */ B(Ldar), R(0),
/* 80 E> */ B(MulSmi), I8(12), U8(1), /* 80 E> */ B(MulSmi), I8(12), U8(0),
B(Star), R(0), B(Star), R(0),
/* 67 S> */ B(Ldar), R(1), /* 67 S> */ B(Ldar), R(1),
B(Dec), U8(0), B(Dec), U8(1),
B(Star), R(1), B(Star), R(1),
B(JumpLoop), U8(18), I8(0), B(JumpLoop), U8(18), I8(0),
/* 88 S> */ B(Ldar), R(0), /* 88 S> */ B(Ldar), R(0),
...@@ -660,14 +660,14 @@ bytecodes: [ ...@@ -660,14 +660,14 @@ bytecodes: [
B(Star), R(1), B(Star), R(1),
/* 45 E> */ B(StackCheck), /* 45 E> */ B(StackCheck),
/* 76 S> */ B(Ldar), R(0), /* 76 S> */ B(Ldar), R(0),
/* 82 E> */ B(AddSmi), I8(1), U8(1), /* 82 E> */ B(AddSmi), I8(1), U8(0),
B(Star), R(0), B(Star), R(0),
/* 89 S> */ B(LdaSmi), I8(20), /* 89 S> */ B(LdaSmi), I8(20),
/* 95 E> */ B(TestEqual), R(0), U8(2), /* 95 E> */ B(TestEqual), R(0), U8(1),
B(JumpIfFalse), U8(4), B(JumpIfFalse), U8(4),
/* 102 S> */ B(Jump), U8(11), /* 102 S> */ B(Jump), U8(11),
/* 69 S> */ B(Ldar), R(1), /* 69 S> */ B(Ldar), R(1),
B(Inc), U8(0), B(Inc), U8(2),
B(Star), R(1), B(Star), R(1),
B(JumpLoop), U8(23), I8(0), B(JumpLoop), U8(23), I8(0),
/* 112 S> */ B(Ldar), R(0), /* 112 S> */ B(Ldar), R(0),
......
...@@ -62,25 +62,25 @@ bytecodes: [ ...@@ -62,25 +62,25 @@ bytecodes: [
/* 106 S> */ B(LdaZero), /* 106 S> */ B(LdaZero),
B(Star), R(2), B(Star), R(2),
/* 111 S> */ B(LdaSmi), I8(3), /* 111 S> */ B(LdaSmi), I8(3),
/* 111 E> */ B(TestLessThan), R(2), U8(2), /* 111 E> */ B(TestLessThan), R(2), U8(1),
B(JumpIfFalse), U8(34), B(JumpIfFalse), U8(34),
/* 93 E> */ B(StackCheck), /* 93 E> */ B(StackCheck),
/* 129 S> */ B(Ldar), R(0), /* 129 S> */ B(Ldar), R(0),
B(Inc), U8(4), B(Inc), U8(2),
B(Star), R(0), B(Star), R(0),
/* 142 S> */ B(Ldar), R(2), /* 142 S> */ B(Ldar), R(2),
/* 148 E> */ B(Add), R(1), U8(5), /* 148 E> */ B(Add), R(1), U8(3),
B(Star), R(3), B(Star), R(3),
B(LdaSmi), I8(12), B(LdaSmi), I8(12),
/* 152 E> */ B(TestEqual), R(3), U8(6), /* 152 E> */ B(TestEqual), R(3), U8(4),
B(JumpIfFalse), U8(4), B(JumpIfFalse), U8(4),
/* 161 S> */ B(Jump), U8(20), /* 161 S> */ B(Jump), U8(20),
/* 118 S> */ B(Ldar), R(2), /* 118 S> */ B(Ldar), R(2),
B(Inc), U8(3), B(Inc), U8(5),
B(Star), R(2), B(Star), R(2),
B(JumpLoop), U8(36), I8(1), B(JumpLoop), U8(36), I8(1),
/* 84 S> */ B(Ldar), R(1), /* 84 S> */ B(Ldar), R(1),
B(Inc), U8(1), B(Inc), U8(6),
B(Star), R(1), B(Star), R(1),
B(JumpLoop), U8(56), I8(0), B(JumpLoop), U8(56), I8(0),
/* 188 S> */ B(Ldar), R(0), /* 188 S> */ B(Ldar), R(0),
......
...@@ -14,13 +14,13 @@ parameter count: 1 ...@@ -14,13 +14,13 @@ parameter count: 1
bytecode array length: 25 bytecode array length: 25
bytecodes: [ bytecodes: [
/* 30 E> */ B(StackCheck), /* 30 E> */ B(StackCheck),
/* 34 S> */ B(LdaGlobal), U8(0), U8(2), /* 34 S> */ B(LdaGlobal), U8(0), U8(0),
B(Star), R(1), B(Star), R(1),
/* 39 E> */ B(LdaNamedProperty), R(1), U8(1), U8(4), /* 39 E> */ B(LdaNamedProperty), R(1), U8(1), U8(2),
B(Star), R(0), B(Star), R(0),
B(CreateArrayLiteral), U8(2), U8(6), U8(37), B(CreateArrayLiteral), U8(2), U8(4), U8(37),
B(Star), R(2), B(Star), R(2),
/* 39 E> */ B(CallWithSpread), R(0), R(1), U8(2), U8(0), /* 39 E> */ B(CallWithSpread), R(0), R(1), U8(2), U8(5),
B(LdaUndefined), B(LdaUndefined),
/* 58 S> */ B(Return), /* 58 S> */ B(Return),
] ]
...@@ -41,15 +41,15 @@ parameter count: 1 ...@@ -41,15 +41,15 @@ parameter count: 1
bytecode array length: 28 bytecode array length: 28
bytecodes: [ bytecodes: [
/* 30 E> */ B(StackCheck), /* 30 E> */ B(StackCheck),
/* 34 S> */ B(LdaGlobal), U8(0), U8(2), /* 34 S> */ B(LdaGlobal), U8(0), U8(0),
B(Star), R(1), B(Star), R(1),
/* 39 E> */ B(LdaNamedProperty), R(1), U8(1), U8(4), /* 39 E> */ B(LdaNamedProperty), R(1), U8(1), U8(2),
B(Star), R(0), B(Star), R(0),
B(LdaZero), B(LdaZero),
B(Star), R(2), B(Star), R(2),
B(CreateArrayLiteral), U8(2), U8(6), U8(37), B(CreateArrayLiteral), U8(2), U8(4), U8(37),
B(Star), R(3), B(Star), R(3),
/* 39 E> */ B(CallWithSpread), R(0), R(1), U8(3), U8(0), /* 39 E> */ B(CallWithSpread), R(0), R(1), U8(3), U8(5),
B(LdaUndefined), B(LdaUndefined),
/* 61 S> */ B(Return), /* 61 S> */ B(Return),
] ]
......
...@@ -17,9 +17,9 @@ parameter count: 1 ...@@ -17,9 +17,9 @@ parameter count: 1
bytecode array length: 10 bytecode array length: 10
bytecodes: [ bytecodes: [
/* 27 E> */ B(StackCheck), /* 27 E> */ B(StackCheck),
/* 32 S> */ B(LdaGlobal), U8(0), U8(2), /* 32 S> */ B(LdaGlobal), U8(0), U8(0),
B(Star), R(0), B(Star), R(0),
/* 39 E> */ B(CallUndefinedReceiver0), R(0), U8(0), /* 39 E> */ B(CallUndefinedReceiver0), R(0), U8(2),
/* 43 S> */ B(Return), /* 43 S> */ B(Return),
] ]
constant pool: [ constant pool: [
...@@ -39,7 +39,7 @@ parameter count: 1 ...@@ -39,7 +39,7 @@ parameter count: 1
bytecode array length: 24 bytecode array length: 24
bytecodes: [ bytecodes: [
/* 34 E> */ B(StackCheck), /* 34 E> */ B(StackCheck),
/* 39 S> */ B(LdaGlobal), U8(0), U8(2), /* 39 S> */ B(LdaGlobal), U8(0), U8(0),
B(Star), R(0), B(Star), R(0),
B(LdaSmi), I8(1), B(LdaSmi), I8(1),
B(Star), R(1), B(Star), R(1),
...@@ -47,7 +47,7 @@ bytecodes: [ ...@@ -47,7 +47,7 @@ bytecodes: [
B(Star), R(2), B(Star), R(2),
B(LdaSmi), I8(3), B(LdaSmi), I8(3),
B(Star), R(3), B(Star), R(3),
/* 46 E> */ B(CallUndefinedReceiver), R(0), R(1), U8(3), U8(0), /* 46 E> */ B(CallUndefinedReceiver), R(0), R(1), U8(3), U8(2),
/* 57 S> */ B(Return), /* 57 S> */ B(Return),
] ]
constant pool: [ constant pool: [
......
...@@ -24,7 +24,7 @@ bytecodes: [ ...@@ -24,7 +24,7 @@ bytecodes: [
/* 30 E> */ B(StackCheck), /* 30 E> */ B(StackCheck),
/* 34 S> */ B(CreateClosure), U8(0), U8(0), U8(2), /* 34 S> */ B(CreateClosure), U8(0), U8(0), U8(2),
/* 36 E> */ B(StaLookupSlot), U8(1), U8(0), /* 36 E> */ B(StaLookupSlot), U8(1), U8(0),
/* 52 S> */ B(LdaLookupGlobalSlot), U8(2), U8(3), U8(1), /* 52 S> */ B(LdaLookupGlobalSlot), U8(2), U8(1), U8(1),
B(Star), R(2), B(Star), R(2),
B(LdaConstant), U8(3), B(LdaConstant), U8(3),
B(Star), R(3), B(Star), R(3),
...@@ -39,10 +39,10 @@ bytecodes: [ ...@@ -39,10 +39,10 @@ bytecodes: [
B(Mov), R(closure), R(6), B(Mov), R(closure), R(6),
B(CallRuntime), U16(Runtime::kResolvePossiblyDirectEval), R(4), U8(6), B(CallRuntime), U16(Runtime::kResolvePossiblyDirectEval), R(4), U8(6),
B(Star), R(2), B(Star), R(2),
/* 52 E> */ B(CallUndefinedReceiver1), R(2), R(3), U8(1), /* 52 E> */ B(CallUndefinedReceiver1), R(2), R(3), U8(3),
/* 62 S> */ B(LdaLookupGlobalSlot), U8(1), U8(7), U8(1), /* 62 S> */ B(LdaLookupGlobalSlot), U8(1), U8(5), U8(1),
B(Star), R(2), B(Star), R(2),
/* 69 E> */ B(CallUndefinedReceiver0), R(2), U8(5), /* 69 E> */ B(CallUndefinedReceiver0), R(2), U8(7),
/* 73 S> */ B(Return), /* 73 S> */ B(Return),
] ]
constant pool: [ constant pool: [
......
...@@ -17,9 +17,9 @@ parameter count: 1 ...@@ -17,9 +17,9 @@ parameter count: 1
bytecode array length: 12 bytecode array length: 12
bytecodes: [ bytecodes: [
/* 45 E> */ B(StackCheck), /* 45 E> */ B(StackCheck),
/* 50 S> */ B(LdaGlobal), U8(0), U8(2), /* 50 S> */ B(LdaGlobal), U8(0), U8(0),
B(Star), R(0), B(Star), R(0),
/* 57 E> */ B(Construct), R(0), R(0), U8(0), U8(0), /* 57 E> */ B(Construct), R(0), R(0), U8(0), U8(2),
/* 67 S> */ B(Return), /* 67 S> */ B(Return),
] ]
constant pool: [ constant pool: [
...@@ -39,12 +39,12 @@ parameter count: 1 ...@@ -39,12 +39,12 @@ parameter count: 1
bytecode array length: 18 bytecode array length: 18
bytecodes: [ bytecodes: [
/* 58 E> */ B(StackCheck), /* 58 E> */ B(StackCheck),
/* 63 S> */ B(LdaGlobal), U8(0), U8(2), /* 63 S> */ B(LdaGlobal), U8(0), U8(0),
B(Star), R(0), B(Star), R(0),
B(LdaSmi), I8(3), B(LdaSmi), I8(3),
B(Star), R(1), B(Star), R(1),
B(Ldar), R(0), B(Ldar), R(0),
/* 70 E> */ B(Construct), R(0), R(1), U8(1), U8(0), /* 70 E> */ B(Construct), R(0), R(1), U8(1), U8(2),
/* 81 S> */ B(Return), /* 81 S> */ B(Return),
] ]
constant pool: [ constant pool: [
...@@ -69,7 +69,7 @@ parameter count: 1 ...@@ -69,7 +69,7 @@ parameter count: 1
bytecode array length: 26 bytecode array length: 26
bytecodes: [ bytecodes: [
/* 100 E> */ B(StackCheck), /* 100 E> */ B(StackCheck),
/* 105 S> */ B(LdaGlobal), U8(0), U8(2), /* 105 S> */ B(LdaGlobal), U8(0), U8(0),
B(Star), R(0), B(Star), R(0),
B(LdaSmi), I8(3), B(LdaSmi), I8(3),
B(Star), R(1), B(Star), R(1),
...@@ -78,7 +78,7 @@ bytecodes: [ ...@@ -78,7 +78,7 @@ bytecodes: [
B(LdaSmi), I8(5), B(LdaSmi), I8(5),
B(Star), R(3), B(Star), R(3),
B(Ldar), R(0), B(Ldar), R(0),
/* 112 E> */ B(Construct), R(0), R(1), U8(3), U8(0), /* 112 E> */ B(Construct), R(0), R(1), U8(3), U8(2),
/* 129 S> */ B(Return), /* 129 S> */ B(Return),
] ]
constant pool: [ constant pool: [
......
...@@ -27,15 +27,15 @@ bytecodes: [ ...@@ -27,15 +27,15 @@ bytecodes: [
B(Mov), R(closure), R(0), B(Mov), R(closure), R(0),
/* 99 E> */ B(StackCheck), /* 99 E> */ B(StackCheck),
/* 104 S> */ B(LdaConstant), U8(0), /* 104 S> */ B(LdaConstant), U8(0),
/* 111 E> */ B(LdaKeyedProperty), R(closure), U8(2), /* 111 E> */ B(LdaKeyedProperty), R(closure), U8(1),
B(Star), R(4), B(Star), R(4),
B(LdaConstant), U8(1), B(LdaConstant), U8(1),
B(Star), R(5), B(Star), R(5),
B(Mov), R(this), R(3), B(Mov), R(this), R(3),
/* 117 E> */ B(CallRuntime), U16(Runtime::kLoadFromSuper), R(3), U8(3), /* 117 E> */ B(CallRuntime), U16(Runtime::kLoadFromSuper), R(3), U8(3),
B(Star), R(1), B(Star), R(1),
/* 117 E> */ B(CallAnyReceiver), R(1), R(this), U8(1), U8(0), /* 117 E> */ B(CallAnyReceiver), R(1), R(this), U8(1), U8(3),
/* 126 E> */ B(AddSmi), I8(1), U8(6), /* 126 E> */ B(AddSmi), I8(1), U8(0),
/* 130 S> */ B(Return), /* 130 S> */ B(Return),
] ]
constant pool: [ constant pool: [
......
...@@ -135,7 +135,7 @@ bytecodes: [ ...@@ -135,7 +135,7 @@ bytecodes: [
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(Star), R(8), B(Star), R(8),
B(Ldar), R(7), B(Ldar), R(7),
B(StaDataPropertyInLiteral), R(4), R(6), U8(3), U8(3), B(StaDataPropertyInLiteral), R(4), R(6), U8(3), U8(2),
B(LdaImmutableCurrentContextSlot), U8(5), B(LdaImmutableCurrentContextSlot), U8(5),
/* 106 E> */ B(ToName), R(6), /* 106 E> */ B(ToName), R(6),
B(LdaConstant), U8(4), B(LdaConstant), U8(4),
...@@ -143,7 +143,7 @@ bytecodes: [ ...@@ -143,7 +143,7 @@ bytecodes: [
B(Mov), R(3), R(5), B(Mov), R(3), R(5),
B(JumpIfFalse), U8(7), B(JumpIfFalse), U8(7),
B(CallRuntime), U16(Runtime::kThrowStaticPrototypeError), R(0), U8(0), B(CallRuntime), U16(Runtime::kThrowStaticPrototypeError), R(0), U8(0),
B(CreateClosure), U8(5), U8(2), U8(2), B(CreateClosure), U8(5), U8(4), U8(2),
B(StaDataPropertyInLiteral), R(5), R(6), U8(3), U8(5), B(StaDataPropertyInLiteral), R(5), R(6), U8(3), U8(5),
B(CallRuntime), U16(Runtime::kInstallClassNameAccessorWithCheck), R(3), U8(1), B(CallRuntime), U16(Runtime::kInstallClassNameAccessorWithCheck), R(3), U8(1),
B(CallRuntime), U16(Runtime::kToFastProperties), R(3), U8(1), B(CallRuntime), U16(Runtime::kToFastProperties), R(3), U8(1),
......
...@@ -276,7 +276,7 @@ bytecodes: [ ...@@ -276,7 +276,7 @@ bytecodes: [
B(JumpIfUndefined), U8(12), B(JumpIfUndefined), U8(12),
/* 64 E> */ B(StackCheck), /* 64 E> */ B(StackCheck),
/* 92 S> */ B(Ldar), R(1), /* 92 S> */ B(Ldar), R(1),
B(Inc), U8(3), B(Inc), U8(0),
B(Star), R(1), B(Star), R(1),
B(JumpLoop), U8(11), I8(0), B(JumpLoop), U8(11), I8(0),
B(LdaUndefined), B(LdaUndefined),
......
...@@ -82,9 +82,9 @@ bytecodes: [ ...@@ -82,9 +82,9 @@ bytecodes: [
B(CreateFunctionContext), U8(1), B(CreateFunctionContext), U8(1),
B(PushContext), R(0), B(PushContext), R(0),
/* 30 E> */ B(StackCheck), /* 30 E> */ B(StackCheck),
/* 41 S> */ B(CreateClosure), U8(0), U8(2), U8(2), /* 41 S> */ B(CreateClosure), U8(0), U8(0), U8(2),
B(Star), R(1), B(Star), R(1),
/* 64 E> */ B(CallUndefinedReceiver0), R(1), U8(0), /* 64 E> */ B(CallUndefinedReceiver0), R(1), U8(1),
/* 68 S> */ B(LdaCurrentContextSlot), U8(4), /* 68 S> */ B(LdaCurrentContextSlot), U8(4),
/* 77 S> */ B(Return), /* 77 S> */ B(Return),
] ]
...@@ -898,9 +898,9 @@ bytecodes: [ ...@@ -898,9 +898,9 @@ bytecodes: [
/* 3421 E> */ B(StaCurrentContextSlot), U8(254), /* 3421 E> */ B(StaCurrentContextSlot), U8(254),
/* 3435 S> */ B(LdaZero), /* 3435 S> */ B(LdaZero),
/* 3435 E> */ B(StaCurrentContextSlot), U8(255), /* 3435 E> */ B(StaCurrentContextSlot), U8(255),
/* 3438 S> */ B(LdaGlobal), U8(0), U8(2), /* 3438 S> */ B(LdaGlobal), U8(0), U8(0),
B(Star), R(2), B(Star), R(2),
/* 3438 E> */ B(CallUndefinedReceiver0), R(2), U8(0), /* 3438 E> */ B(CallUndefinedReceiver0), R(2), U8(2),
/* 3454 S> */ B(LdaSmi), I8(100), /* 3454 S> */ B(LdaSmi), I8(100),
/* 3454 E> */ B(Wide), B(StaCurrentContextSlot), U16(256), /* 3454 E> */ B(Wide), B(StaCurrentContextSlot), U16(256),
/* 3459 S> */ B(Wide), B(LdaCurrentContextSlot), U16(256), /* 3459 S> */ B(Wide), B(LdaCurrentContextSlot), U16(256),
......
...@@ -103,10 +103,10 @@ bytecodes: [ ...@@ -103,10 +103,10 @@ bytecodes: [
/* 42 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(41), R(1), /* 42 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(41), R(1),
B(Mov), R(1), R(0), B(Mov), R(1), R(0),
/* 54 S> */ B(LdaNamedProperty), R(1), U8(1), U8(1), /* 54 S> */ B(LdaNamedProperty), R(1), U8(1), U8(1),
B(ToNumeric), U8(5), B(ToNumeric), U8(3),
B(Star), R(2), B(Star), R(2),
B(Inc), U8(5), B(Inc), U8(3),
/* 66 E> */ B(StaNamedProperty), R(1), U8(1), U8(3), /* 66 E> */ B(StaNamedProperty), R(1), U8(1), U8(4),
B(Ldar), R(2), B(Ldar), R(2),
/* 69 S> */ B(Return), /* 69 S> */ B(Return),
] ]
...@@ -129,8 +129,8 @@ bytecodes: [ ...@@ -129,8 +129,8 @@ bytecodes: [
/* 42 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(41), R(1), /* 42 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(41), R(1),
B(Mov), R(1), R(0), B(Mov), R(1), R(0),
/* 54 S> */ B(LdaNamedProperty), R(1), U8(1), U8(1), /* 54 S> */ B(LdaNamedProperty), R(1), U8(1), U8(1),
B(Dec), U8(5), B(Dec), U8(3),
/* 65 E> */ B(StaNamedProperty), R(1), U8(1), U8(3), /* 65 E> */ B(StaNamedProperty), R(1), U8(1), U8(4),
/* 69 S> */ B(Return), /* 69 S> */ B(Return),
] ]
constant pool: [ constant pool: [
...@@ -155,10 +155,10 @@ bytecodes: [ ...@@ -155,10 +155,10 @@ bytecodes: [
B(Mov), R(2), R(1), B(Mov), R(2), R(1),
/* 72 S> */ B(Ldar), R(0), /* 72 S> */ B(Ldar), R(0),
/* 81 E> */ B(LdaKeyedProperty), R(2), U8(1), /* 81 E> */ B(LdaKeyedProperty), R(2), U8(1),
B(ToNumeric), U8(5), B(ToNumeric), U8(3),
B(Star), R(4), B(Star), R(4),
B(Dec), U8(5), B(Dec), U8(3),
/* 86 E> */ B(StaKeyedProperty), R(2), R(0), U8(3), /* 86 E> */ B(StaKeyedProperty), R(2), R(0), U8(4),
B(Ldar), R(4), B(Ldar), R(4),
/* 89 S> */ B(Return), /* 89 S> */ B(Return),
] ]
...@@ -184,8 +184,8 @@ bytecodes: [ ...@@ -184,8 +184,8 @@ bytecodes: [
B(Mov), R(2), R(1), B(Mov), R(2), R(1),
/* 72 S> */ B(Ldar), R(0), /* 72 S> */ B(Ldar), R(0),
/* 83 E> */ B(LdaKeyedProperty), R(2), U8(1), /* 83 E> */ B(LdaKeyedProperty), R(2), U8(1),
B(Inc), U8(5), B(Inc), U8(3),
/* 87 E> */ B(StaKeyedProperty), R(2), R(0), U8(3), /* 87 E> */ B(StaKeyedProperty), R(2), R(0), U8(4),
/* 89 S> */ B(Return), /* 89 S> */ B(Return),
] ]
constant pool: [ constant pool: [
......
...@@ -88,11 +88,11 @@ bytecodes: [ ...@@ -88,11 +88,11 @@ bytecodes: [
B(Mov), R(arg0), R(1), B(Mov), R(arg0), R(1),
B(Mov), R(0), R(2), B(Mov), R(0), R(2),
/* 29 S> */ B(LdaZero), /* 29 S> */ B(LdaZero),
/* 44 E> */ B(LdaKeyedProperty), R(2), U8(0), /* 44 E> */ B(LdaKeyedProperty), R(2), U8(1),
B(Star), R(4), B(Star), R(4),
B(LdaZero), B(LdaZero),
/* 59 E> */ B(LdaKeyedProperty), R(3), U8(2), /* 59 E> */ B(LdaKeyedProperty), R(3), U8(3),
/* 48 E> */ B(Add), R(4), U8(4), /* 48 E> */ B(Add), R(4), U8(0),
/* 63 S> */ B(Return), /* 63 S> */ B(Return),
] ]
constant pool: [ constant pool: [
......
...@@ -22,7 +22,7 @@ bytecodes: [ ...@@ -22,7 +22,7 @@ bytecodes: [
B(Ldar), R(0), B(Ldar), R(0),
B(StaCurrentContextSlot), U8(5), B(StaCurrentContextSlot), U8(5),
/* 30 E> */ B(StackCheck), /* 30 E> */ B(StackCheck),
/* 34 S> */ B(LdaLookupGlobalSlot), U8(0), U8(2), U8(1), /* 34 S> */ B(LdaLookupGlobalSlot), U8(0), U8(0), U8(1),
B(Star), R(2), B(Star), R(2),
B(LdaConstant), U8(1), B(LdaConstant), U8(1),
B(Star), R(3), B(Star), R(3),
...@@ -37,7 +37,7 @@ bytecodes: [ ...@@ -37,7 +37,7 @@ bytecodes: [
B(Mov), R(closure), R(6), B(Mov), R(closure), R(6),
B(CallRuntime), U16(Runtime::kResolvePossiblyDirectEval), R(4), U8(6), B(CallRuntime), U16(Runtime::kResolvePossiblyDirectEval), R(4), U8(6),
B(Star), R(2), B(Star), R(2),
/* 41 E> */ B(CallUndefinedReceiver1), R(2), R(3), U8(0), /* 41 E> */ B(CallUndefinedReceiver1), R(2), R(3), U8(2),
/* 52 S> */ B(Return), /* 52 S> */ B(Return),
] ]
constant pool: [ constant pool: [
......
...@@ -43,16 +43,16 @@ bytecodes: [ ...@@ -43,16 +43,16 @@ bytecodes: [
B(Mov), R(context), R(19), B(Mov), R(context), R(19),
/* 43 S> */ B(CreateArrayLiteral), U8(3), U8(0), U8(37), /* 43 S> */ B(CreateArrayLiteral), U8(3), U8(0), U8(37),
B(Star), R(20), B(Star), R(20),
B(LdaNamedProperty), R(20), U8(4), U8(5), B(LdaNamedProperty), R(20), U8(4), U8(1),
B(JumpIfUndefined), U8(17), B(JumpIfUndefined), U8(17),
B(JumpIfNull), U8(15), B(JumpIfNull), U8(15),
B(Star), R(21), B(Star), R(21),
B(CallProperty0), R(21), R(20), U8(7), B(CallProperty0), R(21), R(20), U8(3),
B(JumpIfJSReceiver), U8(23), B(JumpIfJSReceiver), U8(23),
B(CallRuntime), U16(Runtime::kThrowSymbolAsyncIteratorInvalid), R(0), U8(0), B(CallRuntime), U16(Runtime::kThrowSymbolAsyncIteratorInvalid), R(0), U8(0),
B(LdaNamedProperty), R(20), U8(5), U8(1), B(LdaNamedProperty), R(20), U8(5), U8(5),
B(Star), R(21), B(Star), R(21),
B(CallProperty0), R(21), R(20), U8(3), B(CallProperty0), R(21), R(20), U8(7),
B(Star), R(21), B(Star), R(21),
B(InvokeIntrinsic), U8(Runtime::k_CreateAsyncFromSyncIterator), R(21), U8(1), B(InvokeIntrinsic), U8(Runtime::k_CreateAsyncFromSyncIterator), R(21), U8(1),
B(Star), R(4), B(Star), R(4),
...@@ -62,9 +62,9 @@ bytecodes: [ ...@@ -62,9 +62,9 @@ bytecodes: [
/* 43 E> */ B(TestEqualStrictNoFeedback), R(11), /* 43 E> */ B(TestEqualStrictNoFeedback), R(11),
B(JumpIfTrue), U8(4), B(JumpIfTrue), U8(4),
B(Abort), U8(42), B(Abort), U8(42),
/* 40 S> */ B(LdaNamedProperty), R(4), U8(7), U8(11), /* 40 S> */ B(LdaNamedProperty), R(4), U8(7), U8(9),
B(Star), R(20), B(Star), R(20),
B(CallProperty0), R(20), R(4), U8(9), B(CallProperty0), R(20), R(4), U8(11),
B(Star), R(21), B(Star), R(21),
B(Mov), R(2), R(20), B(Mov), R(2), R(20),
B(Mov), R(10), R(22), B(Mov), R(10), R(22),
...@@ -137,7 +137,7 @@ bytecodes: [ ...@@ -137,7 +137,7 @@ bytecodes: [
B(JumpIfFalse), U8(4), B(JumpIfFalse), U8(4),
B(Jump), U8(188), B(Jump), U8(188),
B(LdaSmi), I8(1), B(LdaSmi), I8(1),
B(TestEqualStrict), R(6), U8(22), B(TestEqualStrict), R(6), U8(21),
B(JumpIfFalse), U8(109), B(JumpIfFalse), U8(109),
B(Ldar), R(8), B(Ldar), R(8),
B(TestTypeOf), U8(5), B(TestTypeOf), U8(5),
...@@ -331,16 +331,16 @@ bytecodes: [ ...@@ -331,16 +331,16 @@ bytecodes: [
B(Mov), R(context), R(19), B(Mov), R(context), R(19),
/* 43 S> */ B(CreateArrayLiteral), U8(3), U8(0), U8(37), /* 43 S> */ B(CreateArrayLiteral), U8(3), U8(0), U8(37),
B(Star), R(20), B(Star), R(20),
B(LdaNamedProperty), R(20), U8(4), U8(5), B(LdaNamedProperty), R(20), U8(4), U8(1),
B(JumpIfUndefined), U8(17), B(JumpIfUndefined), U8(17),
B(JumpIfNull), U8(15), B(JumpIfNull), U8(15),
B(Star), R(21), B(Star), R(21),
B(CallProperty0), R(21), R(20), U8(7), B(CallProperty0), R(21), R(20), U8(3),
B(JumpIfJSReceiver), U8(23), B(JumpIfJSReceiver), U8(23),
B(CallRuntime), U16(Runtime::kThrowSymbolAsyncIteratorInvalid), R(0), U8(0), B(CallRuntime), U16(Runtime::kThrowSymbolAsyncIteratorInvalid), R(0), U8(0),
B(LdaNamedProperty), R(20), U8(5), U8(1), B(LdaNamedProperty), R(20), U8(5), U8(5),
B(Star), R(21), B(Star), R(21),
B(CallProperty0), R(21), R(20), U8(3), B(CallProperty0), R(21), R(20), U8(7),
B(Star), R(21), B(Star), R(21),
B(InvokeIntrinsic), U8(Runtime::k_CreateAsyncFromSyncIterator), R(21), U8(1), B(InvokeIntrinsic), U8(Runtime::k_CreateAsyncFromSyncIterator), R(21), U8(1),
B(Star), R(4), B(Star), R(4),
...@@ -350,9 +350,9 @@ bytecodes: [ ...@@ -350,9 +350,9 @@ bytecodes: [
/* 43 E> */ B(TestEqualStrictNoFeedback), R(11), /* 43 E> */ B(TestEqualStrictNoFeedback), R(11),
B(JumpIfTrue), U8(4), B(JumpIfTrue), U8(4),
B(Abort), U8(42), B(Abort), U8(42),
/* 40 S> */ B(LdaNamedProperty), R(4), U8(7), U8(11), /* 40 S> */ B(LdaNamedProperty), R(4), U8(7), U8(9),
B(Star), R(20), B(Star), R(20),
B(CallProperty0), R(20), R(4), U8(9), B(CallProperty0), R(20), R(4), U8(11),
B(Star), R(21), B(Star), R(21),
B(Mov), R(2), R(20), B(Mov), R(2), R(20),
B(Mov), R(10), R(22), B(Mov), R(10), R(22),
...@@ -426,7 +426,7 @@ bytecodes: [ ...@@ -426,7 +426,7 @@ bytecodes: [
B(JumpIfFalse), U8(4), B(JumpIfFalse), U8(4),
B(Jump), U8(188), B(Jump), U8(188),
B(LdaSmi), I8(1), B(LdaSmi), I8(1),
B(TestEqualStrict), R(6), U8(22), B(TestEqualStrict), R(6), U8(21),
B(JumpIfFalse), U8(109), B(JumpIfFalse), U8(109),
B(Ldar), R(8), B(Ldar), R(8),
B(TestTypeOf), U8(5), B(TestTypeOf), U8(5),
...@@ -635,16 +635,16 @@ bytecodes: [ ...@@ -635,16 +635,16 @@ bytecodes: [
B(Mov), R(context), R(19), B(Mov), R(context), R(19),
/* 43 S> */ B(CreateArrayLiteral), U8(3), U8(0), U8(37), /* 43 S> */ B(CreateArrayLiteral), U8(3), U8(0), U8(37),
B(Star), R(20), B(Star), R(20),
B(LdaNamedProperty), R(20), U8(4), U8(5), B(LdaNamedProperty), R(20), U8(4), U8(1),
B(JumpIfUndefined), U8(17), B(JumpIfUndefined), U8(17),
B(JumpIfNull), U8(15), B(JumpIfNull), U8(15),
B(Star), R(21), B(Star), R(21),
B(CallProperty0), R(21), R(20), U8(7), B(CallProperty0), R(21), R(20), U8(3),
B(JumpIfJSReceiver), U8(23), B(JumpIfJSReceiver), U8(23),
B(CallRuntime), U16(Runtime::kThrowSymbolAsyncIteratorInvalid), R(0), U8(0), B(CallRuntime), U16(Runtime::kThrowSymbolAsyncIteratorInvalid), R(0), U8(0),
B(LdaNamedProperty), R(20), U8(5), U8(1), B(LdaNamedProperty), R(20), U8(5), U8(5),
B(Star), R(21), B(Star), R(21),
B(CallProperty0), R(21), R(20), U8(3), B(CallProperty0), R(21), R(20), U8(7),
B(Star), R(21), B(Star), R(21),
B(InvokeIntrinsic), U8(Runtime::k_CreateAsyncFromSyncIterator), R(21), U8(1), B(InvokeIntrinsic), U8(Runtime::k_CreateAsyncFromSyncIterator), R(21), U8(1),
B(Star), R(4), B(Star), R(4),
...@@ -654,9 +654,9 @@ bytecodes: [ ...@@ -654,9 +654,9 @@ bytecodes: [
/* 43 E> */ B(TestEqualStrictNoFeedback), R(11), /* 43 E> */ B(TestEqualStrictNoFeedback), R(11),
B(JumpIfTrue), U8(4), B(JumpIfTrue), U8(4),
B(Abort), U8(42), B(Abort), U8(42),
/* 40 S> */ B(LdaNamedProperty), R(4), U8(7), U8(11), /* 40 S> */ B(LdaNamedProperty), R(4), U8(7), U8(9),
B(Star), R(20), B(Star), R(20),
B(CallProperty0), R(20), R(4), U8(9), B(CallProperty0), R(20), R(4), U8(11),
B(Star), R(21), B(Star), R(21),
B(Mov), R(2), R(20), B(Mov), R(2), R(20),
B(Mov), R(10), R(22), B(Mov), R(10), R(22),
...@@ -737,7 +737,7 @@ bytecodes: [ ...@@ -737,7 +737,7 @@ bytecodes: [
B(JumpIfFalse), U8(4), B(JumpIfFalse), U8(4),
B(Jump), U8(188), B(Jump), U8(188),
B(LdaSmi), I8(1), B(LdaSmi), I8(1),
B(TestEqualStrict), R(6), U8(24), B(TestEqualStrict), R(6), U8(23),
B(JumpIfFalse), U8(109), B(JumpIfFalse), U8(109),
B(Ldar), R(8), B(Ldar), R(8),
B(TestTypeOf), U8(5), B(TestTypeOf), U8(5),
...@@ -926,9 +926,9 @@ bytecodes: [ ...@@ -926,9 +926,9 @@ bytecodes: [
B(JumpIfJSReceiver), U8(7), B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0), B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
B(Star), R(2), B(Star), R(2),
/* 59 S> */ B(LdaNamedProperty), R(2), U8(3), U8(8), /* 59 S> */ B(LdaNamedProperty), R(2), U8(3), U8(6),
B(Star), R(17), B(Star), R(17),
B(CallProperty0), R(17), R(2), U8(6), B(CallProperty0), R(17), R(2), U8(8),
B(Star), R(3), B(Star), R(3),
/* 59 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(3), U8(1), /* 59 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(3), U8(1),
B(ToBooleanLogicalNot), B(ToBooleanLogicalNot),
...@@ -985,7 +985,7 @@ bytecodes: [ ...@@ -985,7 +985,7 @@ bytecodes: [
B(JumpIfFalse), U8(4), B(JumpIfFalse), U8(4),
B(Jump), U8(93), B(Jump), U8(93),
B(LdaSmi), I8(1), B(LdaSmi), I8(1),
B(TestEqualStrict), R(4), U8(23), B(TestEqualStrict), R(4), U8(22),
B(JumpIfFalse), U8(61), B(JumpIfFalse), U8(61),
B(Ldar), R(6), B(Ldar), R(6),
B(TestTypeOf), U8(5), B(TestTypeOf), U8(5),
......
...@@ -107,23 +107,23 @@ bytecodes: [ ...@@ -107,23 +107,23 @@ bytecodes: [
/* 30 E> */ B(StackCheck), /* 30 E> */ B(StackCheck),
/* 42 S> */ B(LdaZero), /* 42 S> */ B(LdaZero),
B(Star), R(0), B(Star), R(0),
/* 59 S> */ B(CreateArrayLiteral), U8(0), U8(0), U8(37), /* 59 S> */ B(CreateArrayLiteral), U8(0), U8(1), U8(37),
B(JumpIfUndefined), U8(48), B(JumpIfUndefined), U8(48),
B(JumpIfNull), U8(46), B(JumpIfNull), U8(46),
B(ToObject), R(3), B(ToObject), R(3),
B(ForInEnumerate), R(3), B(ForInEnumerate), R(3),
B(ForInPrepare), R(4), U8(2), B(ForInPrepare), R(4), U8(0),
B(LdaZero), B(LdaZero),
B(Star), R(7), B(Star), R(7),
/* 54 S> */ B(ForInContinue), R(7), R(6), /* 54 S> */ B(ForInContinue), R(7), R(6),
B(JumpIfFalse), U8(31), B(JumpIfFalse), U8(31),
B(ForInNext), R(3), R(7), R(4), U8(2), B(ForInNext), R(3), R(7), R(4), U8(0),
B(JumpIfUndefined), U8(17), B(JumpIfUndefined), U8(17),
B(Star), R(1), B(Star), R(1),
/* 45 E> */ B(StackCheck), /* 45 E> */ B(StackCheck),
B(Star), R(2), B(Star), R(2),
/* 70 S> */ B(Ldar), R(1), /* 70 S> */ B(Ldar), R(1),
/* 75 E> */ B(Add), R(0), U8(1), /* 75 E> */ B(Add), R(0), U8(2),
B(Mov), R(0), R(8), B(Mov), R(0), R(8),
B(Star), R(0), B(Star), R(0),
/* 72 E> */ B(ForInStep), R(7), /* 72 E> */ B(ForInStep), R(7),
...@@ -153,32 +153,32 @@ bytecodes: [ ...@@ -153,32 +153,32 @@ bytecodes: [
/* 30 E> */ B(StackCheck), /* 30 E> */ B(StackCheck),
/* 42 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(41), R(1), /* 42 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(41), R(1),
B(Mov), R(1), R(0), B(Mov), R(1), R(0),
/* 77 S> */ B(CreateArrayLiteral), U8(1), U8(1), U8(37), /* 77 S> */ B(CreateArrayLiteral), U8(1), U8(2), U8(37),
B(JumpIfUndefined), U8(72), B(JumpIfUndefined), U8(72),
B(JumpIfNull), U8(70), B(JumpIfNull), U8(70),
B(ToObject), R(1), B(ToObject), R(1),
B(ForInEnumerate), R(1), B(ForInEnumerate), R(1),
B(ForInPrepare), R(2), U8(12), B(ForInPrepare), R(2), U8(1),
B(LdaZero), B(LdaZero),
B(Star), R(5), B(Star), R(5),
/* 68 S> */ B(ForInContinue), R(5), R(4), /* 68 S> */ B(ForInContinue), R(5), R(4),
B(JumpIfFalse), U8(55), B(JumpIfFalse), U8(55),
B(ForInNext), R(1), R(5), R(2), U8(12), B(ForInNext), R(1), R(5), R(2), U8(1),
B(JumpIfUndefined), U8(41), B(JumpIfUndefined), U8(41),
B(Star), R(6), B(Star), R(6),
B(Ldar), R(6), B(Ldar), R(6),
/* 67 E> */ B(StaNamedProperty), R(0), U8(2), U8(10), /* 67 E> */ B(StaNamedProperty), R(0), U8(2), U8(3),
/* 62 E> */ B(StackCheck), /* 62 E> */ B(StackCheck),
/* 100 S> */ B(LdaNamedProperty), R(0), U8(2), U8(4), /* 100 S> */ B(LdaNamedProperty), R(0), U8(2), U8(5),
B(Star), R(6), B(Star), R(6),
B(LdaSmi), I8(10), B(LdaSmi), I8(10),
/* 106 E> */ B(TestEqual), R(6), U8(6), /* 106 E> */ B(TestEqual), R(6), U8(7),
B(JumpIfFalse), U8(4), B(JumpIfFalse), U8(4),
/* 113 S> */ B(Jump), U8(17), /* 113 S> */ B(Jump), U8(17),
/* 130 S> */ B(LdaNamedProperty), R(0), U8(2), U8(7), /* 130 S> */ B(LdaNamedProperty), R(0), U8(2), U8(8),
B(Star), R(6), B(Star), R(6),
B(LdaSmi), I8(20), B(LdaSmi), I8(20),
/* 136 E> */ B(TestEqual), R(6), U8(9), /* 136 E> */ B(TestEqual), R(6), U8(10),
B(JumpIfFalse), U8(4), B(JumpIfFalse), U8(4),
/* 143 S> */ B(Jump), U8(9), /* 143 S> */ B(Jump), U8(9),
B(ForInStep), R(5), B(ForInStep), R(5),
...@@ -207,26 +207,26 @@ bytecodes: [ ...@@ -207,26 +207,26 @@ bytecodes: [
/* 30 E> */ B(StackCheck), /* 30 E> */ B(StackCheck),
/* 42 S> */ B(CreateArrayLiteral), U8(0), U8(0), U8(37), /* 42 S> */ B(CreateArrayLiteral), U8(0), U8(0), U8(37),
B(Star), R(0), B(Star), R(0),
/* 72 S> */ B(CreateArrayLiteral), U8(1), U8(1), U8(37), /* 72 S> */ B(CreateArrayLiteral), U8(1), U8(2), U8(37),
B(JumpIfUndefined), U8(51), B(JumpIfUndefined), U8(51),
B(JumpIfNull), U8(49), B(JumpIfNull), U8(49),
B(ToObject), R(1), B(ToObject), R(1),
B(ForInEnumerate), R(1), B(ForInEnumerate), R(1),
B(ForInPrepare), R(2), U8(8), B(ForInPrepare), R(2), U8(1),
B(LdaZero), B(LdaZero),
B(Star), R(5), B(Star), R(5),
/* 65 S> */ B(ForInContinue), R(5), R(4), /* 65 S> */ B(ForInContinue), R(5), R(4),
B(JumpIfFalse), U8(34), B(JumpIfFalse), U8(34),
B(ForInNext), R(1), R(5), R(2), U8(8), B(ForInNext), R(1), R(5), R(2), U8(1),
B(JumpIfUndefined), U8(20), B(JumpIfUndefined), U8(20),
B(Star), R(6), B(Star), R(6),
B(LdaZero), B(LdaZero),
B(Star), R(8), B(Star), R(8),
B(Ldar), R(6), B(Ldar), R(6),
/* 64 E> */ B(StaKeyedProperty), R(0), R(8), U8(6), /* 64 E> */ B(StaKeyedProperty), R(0), R(8), U8(3),
/* 59 E> */ B(StackCheck), /* 59 E> */ B(StackCheck),
/* 83 S> */ B(LdaSmi), I8(3), /* 83 S> */ B(LdaSmi), I8(3),
/* 91 E> */ B(LdaKeyedProperty), R(0), U8(4), /* 91 E> */ B(LdaKeyedProperty), R(0), U8(5),
/* 95 S> */ B(Return), /* 95 S> */ B(Return),
B(ForInStep), R(5), B(ForInStep), R(5),
B(Star), R(5), B(Star), R(5),
......
...@@ -26,9 +26,9 @@ bytecodes: [ ...@@ -26,9 +26,9 @@ bytecodes: [
B(JumpIfJSReceiver), U8(7), B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0), B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
B(Star), R(2), B(Star), R(2),
/* 43 S> */ B(LdaNamedProperty), R(2), U8(2), U8(7), /* 43 S> */ B(LdaNamedProperty), R(2), U8(2), U8(5),
B(Star), R(12), B(Star), R(12),
B(CallProperty0), R(12), R(2), U8(5), B(CallProperty0), R(12), R(2), U8(7),
B(Star), R(3), B(Star), R(3),
/* 43 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(3), U8(1), /* 43 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(3), U8(1),
B(ToBooleanLogicalNot), B(ToBooleanLogicalNot),
...@@ -80,7 +80,7 @@ bytecodes: [ ...@@ -80,7 +80,7 @@ bytecodes: [
B(JumpIfFalse), U8(4), B(JumpIfFalse), U8(4),
B(Jump), U8(93), B(Jump), U8(93),
B(LdaSmi), I8(1), B(LdaSmi), I8(1),
B(TestEqualStrict), R(4), U8(18), B(TestEqualStrict), R(4), U8(17),
B(JumpIfFalse), U8(61), B(JumpIfFalse), U8(61),
B(Ldar), R(6), B(Ldar), R(6),
B(TestTypeOf), U8(5), B(TestTypeOf), U8(5),
...@@ -166,9 +166,9 @@ bytecodes: [ ...@@ -166,9 +166,9 @@ bytecodes: [
B(JumpIfJSReceiver), U8(7), B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0), B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
B(Star), R(3), B(Star), R(3),
/* 63 S> */ B(LdaNamedProperty), R(3), U8(2), U8(6), /* 63 S> */ B(LdaNamedProperty), R(3), U8(2), U8(4),
B(Star), R(13), B(Star), R(13),
B(CallProperty0), R(13), R(3), U8(4), B(CallProperty0), R(13), R(3), U8(6),
B(Star), R(4), B(Star), R(4),
/* 63 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(4), U8(1), /* 63 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(4), U8(1),
B(ToBooleanLogicalNot), B(ToBooleanLogicalNot),
...@@ -221,7 +221,7 @@ bytecodes: [ ...@@ -221,7 +221,7 @@ bytecodes: [
B(JumpIfFalse), U8(4), B(JumpIfFalse), U8(4),
B(Jump), U8(93), B(Jump), U8(93),
B(LdaSmi), I8(1), B(LdaSmi), I8(1),
B(TestEqualStrict), R(5), U8(17), B(TestEqualStrict), R(5), U8(16),
B(JumpIfFalse), U8(61), B(JumpIfFalse), U8(61),
B(Ldar), R(7), B(Ldar), R(7),
B(TestTypeOf), U8(5), B(TestTypeOf), U8(5),
...@@ -312,9 +312,9 @@ bytecodes: [ ...@@ -312,9 +312,9 @@ bytecodes: [
B(JumpIfJSReceiver), U8(7), B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0), B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
B(Star), R(2), B(Star), R(2),
/* 43 S> */ B(LdaNamedProperty), R(2), U8(2), U8(7), /* 43 S> */ B(LdaNamedProperty), R(2), U8(2), U8(5),
B(Star), R(12), B(Star), R(12),
B(CallProperty0), R(12), R(2), U8(5), B(CallProperty0), R(12), R(2), U8(7),
B(Star), R(3), B(Star), R(3),
/* 43 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(3), U8(1), /* 43 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(3), U8(1),
B(ToBooleanLogicalNot), B(ToBooleanLogicalNot),
...@@ -374,7 +374,7 @@ bytecodes: [ ...@@ -374,7 +374,7 @@ bytecodes: [
B(JumpIfFalse), U8(4), B(JumpIfFalse), U8(4),
B(Jump), U8(93), B(Jump), U8(93),
B(LdaSmi), I8(1), B(LdaSmi), I8(1),
B(TestEqualStrict), R(4), U8(20), B(TestEqualStrict), R(4), U8(19),
B(JumpIfFalse), U8(61), B(JumpIfFalse), U8(61),
B(Ldar), R(6), B(Ldar), R(6),
B(TestTypeOf), U8(5), B(TestTypeOf), U8(5),
...@@ -461,9 +461,9 @@ bytecodes: [ ...@@ -461,9 +461,9 @@ bytecodes: [
B(JumpIfJSReceiver), U8(7), B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0), B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
B(Star), R(1), B(Star), R(1),
/* 68 S> */ B(LdaNamedProperty), R(1), U8(3), U8(8), /* 68 S> */ B(LdaNamedProperty), R(1), U8(3), U8(6),
B(Star), R(11), B(Star), R(11),
B(CallProperty0), R(11), R(1), U8(6), B(CallProperty0), R(11), R(1), U8(8),
B(Star), R(2), B(Star), R(2),
/* 68 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(2), U8(1), /* 68 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(2), U8(1),
B(ToBooleanLogicalNot), B(ToBooleanLogicalNot),
...@@ -517,7 +517,7 @@ bytecodes: [ ...@@ -517,7 +517,7 @@ bytecodes: [
B(JumpIfFalse), U8(4), B(JumpIfFalse), U8(4),
B(Jump), U8(93), B(Jump), U8(93),
B(LdaSmi), I8(1), B(LdaSmi), I8(1),
B(TestEqualStrict), R(3), U8(23), B(TestEqualStrict), R(3), U8(22),
B(JumpIfFalse), U8(61), B(JumpIfFalse), U8(61),
B(Ldar), R(5), B(Ldar), R(5),
B(TestTypeOf), U8(5), B(TestTypeOf), U8(5),
......
...@@ -32,9 +32,9 @@ parameter count: 1 ...@@ -32,9 +32,9 @@ parameter count: 1
bytecode array length: 11 bytecode array length: 11
bytecodes: [ bytecodes: [
/* 30 E> */ B(StackCheck), /* 30 E> */ B(StackCheck),
/* 34 S> */ B(CreateClosure), U8(0), U8(2), U8(2), /* 34 S> */ B(CreateClosure), U8(0), U8(0), U8(2),
B(Star), R(0), B(Star), R(0),
/* 56 E> */ B(CallUndefinedReceiver0), R(0), U8(0), /* 56 E> */ B(CallUndefinedReceiver0), R(0), U8(1),
/* 58 S> */ B(Return), /* 58 S> */ B(Return),
] ]
constant pool: [ constant pool: [
...@@ -52,11 +52,11 @@ parameter count: 1 ...@@ -52,11 +52,11 @@ parameter count: 1
bytecode array length: 16 bytecode array length: 16
bytecodes: [ bytecodes: [
/* 30 E> */ B(StackCheck), /* 30 E> */ B(StackCheck),
/* 34 S> */ B(CreateClosure), U8(0), U8(2), U8(2), /* 34 S> */ B(CreateClosure), U8(0), U8(0), U8(2),
B(Star), R(0), B(Star), R(0),
B(LdaSmi), I8(1), B(LdaSmi), I8(1),
B(Star), R(1), B(Star), R(1),
/* 67 E> */ B(CallUndefinedReceiver1), R(0), R(1), U8(0), /* 67 E> */ B(CallUndefinedReceiver1), R(0), R(1), U8(1),
/* 70 S> */ B(Return), /* 70 S> */ B(Return),
] ]
constant pool: [ constant pool: [
......
...@@ -178,9 +178,9 @@ bytecodes: [ ...@@ -178,9 +178,9 @@ bytecodes: [
/* 30 E> */ B(TestEqualStrictNoFeedback), R(10), /* 30 E> */ B(TestEqualStrictNoFeedback), R(10),
B(JumpIfTrue), U8(4), B(JumpIfTrue), U8(4),
B(Abort), U8(42), B(Abort), U8(42),
/* 25 S> */ B(LdaNamedProperty), R(4), U8(7), U8(7), /* 25 S> */ B(LdaNamedProperty), R(4), U8(7), U8(5),
B(Star), R(15), B(Star), R(15),
B(CallProperty0), R(15), R(4), U8(5), B(CallProperty0), R(15), R(4), U8(7),
B(Star), R(5), B(Star), R(5),
/* 25 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(5), U8(1), /* 25 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(5), U8(1),
B(ToBooleanLogicalNot), B(ToBooleanLogicalNot),
...@@ -251,7 +251,7 @@ bytecodes: [ ...@@ -251,7 +251,7 @@ bytecodes: [
B(JumpIfFalse), U8(4), B(JumpIfFalse), U8(4),
B(Jump), U8(93), B(Jump), U8(93),
B(LdaSmi), I8(1), B(LdaSmi), I8(1),
B(TestEqualStrict), R(6), U8(18), B(TestEqualStrict), R(6), U8(17),
B(JumpIfFalse), U8(61), B(JumpIfFalse), U8(61),
B(Ldar), R(8), B(Ldar), R(8),
B(TestTypeOf), U8(5), B(TestTypeOf), U8(5),
...@@ -363,13 +363,13 @@ bytecodes: [ ...@@ -363,13 +363,13 @@ bytecodes: [
/* 38 E> */ B(Throw), /* 38 E> */ B(Throw),
B(Ldar), R(2), B(Ldar), R(2),
/* 54 S> */ B(Return), /* 54 S> */ B(Return),
/* 43 S> */ B(LdaGlobal), U8(4), U8(2), /* 43 S> */ B(LdaGlobal), U8(4), U8(0),
B(Star), R(8), B(Star), R(8),
/* 50 E> */ B(CallUndefinedReceiver0), R(8), U8(0), /* 50 E> */ B(CallUndefinedReceiver0), R(8), U8(2),
B(Star), R(6), B(Star), R(6),
B(LdaNamedProperty), R(6), U8(5), U8(4), B(LdaNamedProperty), R(6), U8(5), U8(4),
B(Star), R(7), B(Star), R(7),
B(CallProperty0), R(7), R(6), U8(16), B(CallProperty0), R(7), R(6), U8(6),
B(JumpIfJSReceiver), U8(7), B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0), B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
B(Star), R(4), B(Star), R(4),
...@@ -387,34 +387,34 @@ bytecodes: [ ...@@ -387,34 +387,34 @@ bytecodes: [
B(SwitchOnSmiNoFeedback), U8(7), U8(2), I8(1), B(SwitchOnSmiNoFeedback), U8(7), U8(2), I8(1),
B(LdaNamedProperty), R(4), U8(9), U8(8), B(LdaNamedProperty), R(4), U8(9), U8(8),
B(Star), R(8), B(Star), R(8),
B(CallProperty1), R(8), R(4), R(5), U8(22), B(CallProperty1), R(8), R(4), R(5), U8(10),
B(Jump), U8(65), B(Jump), U8(65),
B(LdaNamedProperty), R(4), U8(10), U8(6), B(LdaNamedProperty), R(4), U8(10), U8(12),
B(JumpIfUndefined), U8(13), B(JumpIfUndefined), U8(13),
B(JumpIfNull), U8(11), B(JumpIfNull), U8(11),
B(Star), R(8), B(Star), R(8),
B(CallProperty1), R(8), R(4), R(5), U8(18), B(CallProperty1), R(8), R(4), R(5), U8(14),
B(Jump), U8(48), B(Jump), U8(48),
B(Ldar), R(5), B(Ldar), R(5),
/* 54 S> */ B(Return), /* 54 S> */ B(Return),
B(LdaNamedProperty), R(4), U8(11), U8(10), B(LdaNamedProperty), R(4), U8(11), U8(16),
B(JumpIfUndefined), U8(13), B(JumpIfUndefined), U8(13),
B(JumpIfNull), U8(11), B(JumpIfNull), U8(11),
B(Star), R(8), B(Star), R(8),
B(CallProperty1), R(8), R(4), R(5), U8(24), B(CallProperty1), R(8), R(4), R(5), U8(18),
B(Jump), U8(28), B(Jump), U8(28),
B(LdaNamedProperty), R(4), U8(10), U8(6), B(LdaNamedProperty), R(4), U8(10), U8(20),
B(Star), R(8), B(Star), R(8),
B(JumpIfUndefined), U8(15), B(JumpIfUndefined), U8(15),
B(JumpIfNull), U8(13), B(JumpIfNull), U8(13),
B(CallProperty0), R(8), R(4), U8(20), B(CallProperty0), R(8), R(4), U8(22),
B(JumpIfJSReceiver), U8(7), B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(2), U8(1), B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(2), U8(1),
B(CallRuntime), U16(Runtime::kThrowThrowMethodMissing), R(0), U8(0), B(CallRuntime), U16(Runtime::kThrowThrowMethodMissing), R(0), U8(0),
B(Star), R(2), B(Star), R(2),
B(JumpIfJSReceiver), U8(7), B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(2), U8(1), B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(2), U8(1),
B(LdaNamedProperty), R(2), U8(12), U8(12), B(LdaNamedProperty), R(2), U8(12), U8(24),
B(JumpIfToBooleanTrue), U8(33), B(JumpIfToBooleanTrue), U8(33),
B(Ldar), R(2), B(Ldar), R(2),
B(SuspendGenerator), R(0), R(0), U8(8), U8(1), B(SuspendGenerator), R(0), R(0), U8(8), U8(1),
...@@ -427,7 +427,7 @@ bytecodes: [ ...@@ -427,7 +427,7 @@ bytecodes: [
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1), B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1),
B(Star), R(3), B(Star), R(3),
B(JumpLoop), U8(139), I8(0), B(JumpLoop), U8(139), I8(0),
B(LdaNamedProperty), R(2), U8(13), U8(14), B(LdaNamedProperty), R(2), U8(13), U8(26),
B(Star), R(4), B(Star), R(4),
B(LdaSmi), I8(1), B(LdaSmi), I8(1),
B(TestEqualStrictNoFeedback), R(3), B(TestEqualStrictNoFeedback), R(3),
......
...@@ -18,8 +18,8 @@ bytecode array length: 10 ...@@ -18,8 +18,8 @@ bytecode array length: 10
bytecodes: [ bytecodes: [
/* 26 E> */ B(StackCheck), /* 26 E> */ B(StackCheck),
/* 31 S> */ B(LdaGlobal), U8(0), U8(0), /* 31 S> */ B(LdaGlobal), U8(0), U8(0),
B(Inc), U8(4), B(Inc), U8(2),
/* 40 E> */ B(StaGlobalSloppy), U8(0), U8(2), /* 40 E> */ B(StaGlobalSloppy), U8(0), U8(3),
/* 47 S> */ B(Return), /* 47 S> */ B(Return),
] ]
constant pool: [ constant pool: [
...@@ -40,10 +40,10 @@ bytecode array length: 16 ...@@ -40,10 +40,10 @@ bytecode array length: 16
bytecodes: [ bytecodes: [
/* 26 E> */ B(StackCheck), /* 26 E> */ B(StackCheck),
/* 31 S> */ B(LdaGlobal), U8(0), U8(0), /* 31 S> */ B(LdaGlobal), U8(0), U8(0),
B(ToNumeric), U8(4), B(ToNumeric), U8(2),
B(Star), R(0), B(Star), R(0),
B(Dec), U8(4), B(Dec), U8(2),
/* 44 E> */ B(StaGlobalSloppy), U8(0), U8(2), /* 44 E> */ B(StaGlobalSloppy), U8(0), U8(3),
B(Ldar), R(0), B(Ldar), R(0),
/* 47 S> */ B(Return), /* 47 S> */ B(Return),
] ]
...@@ -65,8 +65,8 @@ bytecode array length: 10 ...@@ -65,8 +65,8 @@ bytecode array length: 10
bytecodes: [ bytecodes: [
/* 27 E> */ B(StackCheck), /* 27 E> */ B(StackCheck),
/* 46 S> */ B(LdaGlobal), U8(0), U8(0), /* 46 S> */ B(LdaGlobal), U8(0), U8(0),
B(Dec), U8(4), B(Dec), U8(2),
/* 55 E> */ B(StaGlobalStrict), U8(0), U8(2), /* 55 E> */ B(StaGlobalStrict), U8(0), U8(3),
/* 67 S> */ B(Return), /* 67 S> */ B(Return),
] ]
constant pool: [ constant pool: [
...@@ -87,10 +87,10 @@ bytecode array length: 16 ...@@ -87,10 +87,10 @@ bytecode array length: 16
bytecodes: [ bytecodes: [
/* 27 E> */ B(StackCheck), /* 27 E> */ B(StackCheck),
/* 32 S> */ B(LdaGlobal), U8(0), U8(0), /* 32 S> */ B(LdaGlobal), U8(0), U8(0),
B(ToNumeric), U8(4), B(ToNumeric), U8(2),
B(Star), R(0), B(Star), R(0),
B(Inc), U8(4), B(Inc), U8(2),
/* 50 E> */ B(StaGlobalSloppy), U8(0), U8(2), /* 50 E> */ B(StaGlobalSloppy), U8(0), U8(3),
B(Ldar), R(0), B(Ldar), R(0),
/* 53 S> */ B(Return), /* 53 S> */ B(Return),
] ]
......
...@@ -961,15 +961,15 @@ bytecodes: [ ...@@ -961,15 +961,15 @@ bytecodes: [
B(Wide), B(JumpIfFalse), U16(39), B(Wide), B(JumpIfFalse), U16(39),
/* 4090 E> */ B(StackCheck), /* 4090 E> */ B(StackCheck),
/* 4122 S> */ B(LdaSmi), I8(1), /* 4122 S> */ B(LdaSmi), I8(1),
/* 4128 E> */ B(TestEqual), R(1), U8(2), /* 4128 E> */ B(TestEqual), R(1), U8(1),
B(Wide), B(JumpIfFalse), U16(7), B(Wide), B(JumpIfFalse), U16(7),
/* 4134 S> */ B(Wide), B(Jump), U16(16), /* 4134 S> */ B(Wide), B(Jump), U16(16),
/* 4146 S> */ B(LdaSmi), I8(2), /* 4146 S> */ B(LdaSmi), I8(2),
/* 4152 E> */ B(TestEqual), R(1), U8(3), /* 4152 E> */ B(TestEqual), R(1), U8(2),
B(Wide), B(JumpIfFalse), U16(7), B(Wide), B(JumpIfFalse), U16(7),
/* 4158 S> */ B(Wide), B(Jump), U16(12), /* 4158 S> */ B(Wide), B(Jump), U16(12),
/* 4114 S> */ B(Ldar), R(1), /* 4114 S> */ B(Ldar), R(1),
B(Inc), U8(1), B(Inc), U8(3),
B(Star), R(1), B(Star), R(1),
B(JumpLoop), U8(42), I8(0), B(JumpLoop), U8(42), I8(0),
/* 4167 S> */ B(LdaSmi), I8(3), /* 4167 S> */ B(LdaSmi), I8(3),
......
...@@ -23,7 +23,7 @@ bytecodes: [ ...@@ -23,7 +23,7 @@ bytecodes: [
B(Ldar), R(0), B(Ldar), R(0),
B(StaCurrentContextSlot), U8(5), B(StaCurrentContextSlot), U8(5),
/* 10 E> */ B(StackCheck), /* 10 E> */ B(StackCheck),
/* 14 S> */ B(LdaLookupGlobalSlot), U8(0), U8(2), U8(1), /* 14 S> */ B(LdaLookupGlobalSlot), U8(0), U8(0), U8(1),
B(Star), R(2), B(Star), R(2),
B(LdaConstant), U8(1), B(LdaConstant), U8(1),
B(Star), R(3), B(Star), R(3),
...@@ -38,7 +38,7 @@ bytecodes: [ ...@@ -38,7 +38,7 @@ bytecodes: [
B(Mov), R(closure), R(6), B(Mov), R(closure), R(6),
B(CallRuntime), U16(Runtime::kResolvePossiblyDirectEval), R(4), U8(6), B(CallRuntime), U16(Runtime::kResolvePossiblyDirectEval), R(4), U8(6),
B(Star), R(2), B(Star), R(2),
/* 14 E> */ B(CallUndefinedReceiver1), R(2), R(3), U8(0), /* 14 E> */ B(CallUndefinedReceiver1), R(2), R(3), U8(2),
/* 35 S> */ B(LdaLookupGlobalSlot), U8(2), U8(4), U8(1), /* 35 S> */ B(LdaLookupGlobalSlot), U8(2), U8(4), U8(1),
/* 44 S> */ B(Return), /* 44 S> */ B(Return),
] ]
...@@ -67,7 +67,7 @@ bytecodes: [ ...@@ -67,7 +67,7 @@ bytecodes: [
B(Ldar), R(0), B(Ldar), R(0),
B(StaCurrentContextSlot), U8(5), B(StaCurrentContextSlot), U8(5),
/* 10 E> */ B(StackCheck), /* 10 E> */ B(StackCheck),
/* 14 S> */ B(LdaLookupGlobalSlot), U8(0), U8(2), U8(1), /* 14 S> */ B(LdaLookupGlobalSlot), U8(0), U8(0), U8(1),
B(Star), R(2), B(Star), R(2),
B(LdaConstant), U8(1), B(LdaConstant), U8(1),
B(Star), R(3), B(Star), R(3),
...@@ -82,7 +82,7 @@ bytecodes: [ ...@@ -82,7 +82,7 @@ bytecodes: [
B(Mov), R(closure), R(6), B(Mov), R(closure), R(6),
B(CallRuntime), U16(Runtime::kResolvePossiblyDirectEval), R(4), U8(6), B(CallRuntime), U16(Runtime::kResolvePossiblyDirectEval), R(4), U8(6),
B(Star), R(2), B(Star), R(2),
/* 14 E> */ B(CallUndefinedReceiver1), R(2), R(3), U8(0), /* 14 E> */ B(CallUndefinedReceiver1), R(2), R(3), U8(2),
/* 35 S> */ B(LdaLookupGlobalSlotInsideTypeof), U8(2), U8(4), U8(1), /* 35 S> */ B(LdaLookupGlobalSlotInsideTypeof), U8(2), U8(4), U8(1),
B(TypeOf), B(TypeOf),
/* 51 S> */ B(Return), /* 51 S> */ B(Return),
...@@ -114,7 +114,7 @@ bytecodes: [ ...@@ -114,7 +114,7 @@ bytecodes: [
/* 10 E> */ B(StackCheck), /* 10 E> */ B(StackCheck),
/* 14 S> */ B(LdaSmi), I8(20), /* 14 S> */ B(LdaSmi), I8(20),
/* 16 E> */ B(StaLookupSlot), U8(0), U8(0), /* 16 E> */ B(StaLookupSlot), U8(0), U8(0),
/* 22 S> */ B(LdaLookupGlobalSlot), U8(1), U8(2), U8(1), /* 22 S> */ B(LdaLookupGlobalSlot), U8(1), U8(0), U8(1),
B(Star), R(2), B(Star), R(2),
B(LdaConstant), U8(2), B(LdaConstant), U8(2),
B(Star), R(3), B(Star), R(3),
...@@ -129,7 +129,7 @@ bytecodes: [ ...@@ -129,7 +129,7 @@ bytecodes: [
B(Mov), R(closure), R(6), B(Mov), R(closure), R(6),
B(CallRuntime), U16(Runtime::kResolvePossiblyDirectEval), R(4), U8(6), B(CallRuntime), U16(Runtime::kResolvePossiblyDirectEval), R(4), U8(6),
B(Star), R(2), B(Star), R(2),
/* 29 E> */ B(CallUndefinedReceiver1), R(2), R(3), U8(0), /* 29 E> */ B(CallUndefinedReceiver1), R(2), R(3), U8(2),
/* 38 S> */ B(Return), /* 38 S> */ B(Return),
] ]
constant pool: [ constant pool: [
...@@ -162,7 +162,7 @@ bytecodes: [ ...@@ -162,7 +162,7 @@ bytecodes: [
B(Ldar), R(0), B(Ldar), R(0),
B(StaCurrentContextSlot), U8(5), B(StaCurrentContextSlot), U8(5),
/* 38 E> */ B(StackCheck), /* 38 E> */ B(StackCheck),
/* 44 S> */ B(LdaLookupGlobalSlot), U8(0), U8(2), U8(1), /* 44 S> */ B(LdaLookupGlobalSlot), U8(0), U8(0), U8(1),
B(Star), R(2), B(Star), R(2),
B(LdaConstant), U8(1), B(LdaConstant), U8(1),
B(Star), R(3), B(Star), R(3),
...@@ -177,7 +177,7 @@ bytecodes: [ ...@@ -177,7 +177,7 @@ bytecodes: [
B(Mov), R(closure), R(6), B(Mov), R(closure), R(6),
B(CallRuntime), U16(Runtime::kResolvePossiblyDirectEval), R(4), U8(6), B(CallRuntime), U16(Runtime::kResolvePossiblyDirectEval), R(4), U8(6),
B(Star), R(2), B(Star), R(2),
/* 44 E> */ B(CallUndefinedReceiver1), R(2), R(3), U8(0), /* 44 E> */ B(CallUndefinedReceiver1), R(2), R(3), U8(2),
/* 66 S> */ B(LdaLookupContextSlot), U8(2), U8(6), U8(1), /* 66 S> */ B(LdaLookupContextSlot), U8(2), U8(6), U8(1),
/* 75 S> */ B(Return), /* 75 S> */ B(Return),
] ]
...@@ -211,7 +211,7 @@ bytecodes: [ ...@@ -211,7 +211,7 @@ bytecodes: [
B(Ldar), R(0), B(Ldar), R(0),
B(StaCurrentContextSlot), U8(5), B(StaCurrentContextSlot), U8(5),
/* 34 E> */ B(StackCheck), /* 34 E> */ B(StackCheck),
/* 40 S> */ B(LdaLookupGlobalSlot), U8(0), U8(2), U8(1), /* 40 S> */ B(LdaLookupGlobalSlot), U8(0), U8(0), U8(1),
B(Star), R(2), B(Star), R(2),
B(LdaConstant), U8(1), B(LdaConstant), U8(1),
B(Star), R(3), B(Star), R(3),
...@@ -226,7 +226,7 @@ bytecodes: [ ...@@ -226,7 +226,7 @@ bytecodes: [
B(Mov), R(closure), R(6), B(Mov), R(closure), R(6),
B(CallRuntime), U16(Runtime::kResolvePossiblyDirectEval), R(4), U8(6), B(CallRuntime), U16(Runtime::kResolvePossiblyDirectEval), R(4), U8(6),
B(Star), R(2), B(Star), R(2),
/* 40 E> */ B(CallUndefinedReceiver1), R(2), R(3), U8(0), /* 40 E> */ B(CallUndefinedReceiver1), R(2), R(3), U8(2),
/* 62 S> */ B(LdaLookupGlobalSlot), U8(2), U8(4), U8(1), /* 62 S> */ B(LdaLookupGlobalSlot), U8(2), U8(4), U8(1),
/* 71 S> */ B(Return), /* 71 S> */ B(Return),
] ]
......
...@@ -739,15 +739,15 @@ bytecodes: [ ...@@ -739,15 +739,15 @@ bytecodes: [
/* 45 S> */ B(Return), /* 45 S> */ B(Return),
/* 27 S> */ B(LdaImmutableCurrentContextSlot), U8(5), /* 27 S> */ B(LdaImmutableCurrentContextSlot), U8(5),
B(Star), R(4), B(Star), R(4),
/* 31 E> */ B(LdaNamedProperty), R(4), U8(4), U8(2), /* 31 E> */ B(LdaNamedProperty), R(4), U8(4), U8(0),
B(Star), R(3), B(Star), R(3),
B(LdaImmutableCurrentContextSlot), U8(5), B(LdaImmutableCurrentContextSlot), U8(5),
B(Star), R(5), B(Star), R(5),
B(LdaImmutableCurrentContextSlot), U8(5), B(LdaImmutableCurrentContextSlot), U8(5),
B(Star), R(6), B(Star), R(6),
/* 42 E> */ B(LdaNamedProperty), R(6), U8(5), U8(4), /* 42 E> */ B(LdaNamedProperty), R(6), U8(5), U8(2),
B(Star), R(6), B(Star), R(6),
/* 31 E> */ B(CallProperty2), R(3), R(4), R(5), R(6), U8(0), /* 31 E> */ B(CallProperty2), R(3), R(4), R(5), R(6), U8(4),
B(StaCurrentContextSlot), U8(6), B(StaCurrentContextSlot), U8(6),
B(LdaCurrentContextSlot), U8(6), B(LdaCurrentContextSlot), U8(6),
/* 45 S> */ B(Return), /* 45 S> */ B(Return),
......
...@@ -30,10 +30,10 @@ bytecodes: [ ...@@ -30,10 +30,10 @@ bytecodes: [
B(CallRuntime), U16(Runtime::kToFastProperties), R(2), U8(1), B(CallRuntime), U16(Runtime::kToFastProperties), R(2), U8(1),
B(Star), R(0), B(Star), R(0),
B(Star), R(1), B(Star), R(1),
/* 89 S> */ B(CreateArrayLiteral), U8(1), U8(3), U8(37), /* 89 S> */ B(CreateArrayLiteral), U8(1), U8(1), U8(37),
B(Star), R(3), B(Star), R(3),
B(Ldar), R(1), B(Ldar), R(1),
/* 89 E> */ B(ConstructWithSpread), R(1), R(3), U8(1), U8(1), /* 89 E> */ B(ConstructWithSpread), R(1), R(3), U8(1), U8(2),
B(LdaUndefined), B(LdaUndefined),
/* 110 S> */ B(Return), /* 110 S> */ B(Return),
] ]
...@@ -71,10 +71,10 @@ bytecodes: [ ...@@ -71,10 +71,10 @@ bytecodes: [
B(Star), R(1), B(Star), R(1),
/* 89 S> */ B(LdaZero), /* 89 S> */ B(LdaZero),
B(Star), R(3), B(Star), R(3),
B(CreateArrayLiteral), U8(1), U8(3), U8(37), B(CreateArrayLiteral), U8(1), U8(1), U8(37),
B(Star), R(4), B(Star), R(4),
B(Ldar), R(1), B(Ldar), R(1),
/* 89 E> */ B(ConstructWithSpread), R(1), R(3), U8(2), U8(1), /* 89 E> */ B(ConstructWithSpread), R(1), R(3), U8(2), U8(2),
B(LdaUndefined), B(LdaUndefined),
/* 113 S> */ B(Return), /* 113 S> */ B(Return),
] ]
......
...@@ -75,8 +75,8 @@ bytecodes: [ ...@@ -75,8 +75,8 @@ bytecodes: [
/* 30 E> */ B(StackCheck), /* 30 E> */ B(StackCheck),
/* 42 S> */ B(LdaSmi), I8(1), /* 42 S> */ B(LdaSmi), I8(1),
B(Star), R(0), B(Star), R(0),
/* 45 S> */ B(CreateObjectLiteral), U8(0), U8(1), U8(41), R(1), /* 45 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(41), R(1),
/* 69 E> */ B(AddSmi), I8(1), U8(0), /* 69 E> */ B(AddSmi), I8(1), U8(1),
B(StaNamedOwnProperty), R(1), U8(1), U8(2), B(StaNamedOwnProperty), R(1), U8(1), U8(2),
B(Ldar), R(1), B(Ldar), R(1),
/* 75 S> */ B(Return), /* 75 S> */ B(Return),
...@@ -97,8 +97,8 @@ parameter count: 1 ...@@ -97,8 +97,8 @@ parameter count: 1
bytecode array length: 17 bytecode array length: 17
bytecodes: [ bytecodes: [
/* 30 E> */ B(StackCheck), /* 30 E> */ B(StackCheck),
/* 34 S> */ B(CreateObjectLiteral), U8(0), U8(1), U8(41), R(0), /* 34 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(41), R(0),
B(CreateClosure), U8(1), U8(0), U8(2), B(CreateClosure), U8(1), U8(1), U8(2),
B(StaNamedOwnProperty), R(0), U8(2), U8(2), B(StaNamedOwnProperty), R(0), U8(2), U8(2),
B(Ldar), R(0), B(Ldar), R(0),
/* 66 S> */ B(Return), /* 66 S> */ B(Return),
...@@ -120,8 +120,8 @@ parameter count: 1 ...@@ -120,8 +120,8 @@ parameter count: 1
bytecode array length: 17 bytecode array length: 17
bytecodes: [ bytecodes: [
/* 30 E> */ B(StackCheck), /* 30 E> */ B(StackCheck),
/* 34 S> */ B(CreateObjectLiteral), U8(0), U8(1), U8(41), R(0), /* 34 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(41), R(0),
B(CreateClosure), U8(1), U8(0), U8(2), B(CreateClosure), U8(1), U8(1), U8(2),
B(StaNamedOwnProperty), R(0), U8(2), U8(2), B(StaNamedOwnProperty), R(0), U8(2), U8(2),
B(Ldar), R(0), B(Ldar), R(0),
/* 67 S> */ B(Return), /* 67 S> */ B(Return),
...@@ -143,10 +143,10 @@ parameter count: 1 ...@@ -143,10 +143,10 @@ parameter count: 1
bytecode array length: 33 bytecode array length: 33
bytecodes: [ bytecodes: [
/* 30 E> */ B(StackCheck), /* 30 E> */ B(StackCheck),
/* 34 S> */ B(CreateObjectLiteral), U8(0), U8(1), U8(41), R(0), /* 34 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(41), R(0),
B(LdaConstant), U8(1), B(LdaConstant), U8(1),
B(Star), R(2), B(Star), R(2),
B(CreateClosure), U8(2), U8(0), U8(2), B(CreateClosure), U8(2), U8(1), U8(2),
B(Star), R(3), B(Star), R(3),
B(LdaNull), B(LdaNull),
B(Star), R(4), B(Star), R(4),
...@@ -174,12 +174,12 @@ parameter count: 1 ...@@ -174,12 +174,12 @@ parameter count: 1
bytecode array length: 36 bytecode array length: 36
bytecodes: [ bytecodes: [
/* 30 E> */ B(StackCheck), /* 30 E> */ B(StackCheck),
/* 34 S> */ B(CreateObjectLiteral), U8(0), U8(2), U8(41), R(0), /* 34 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(41), R(0),
B(LdaConstant), U8(1), B(LdaConstant), U8(1),
B(Star), R(2), B(Star), R(2),
B(CreateClosure), U8(2), U8(0), U8(2), B(CreateClosure), U8(2), U8(1), U8(2),
B(Star), R(3), B(Star), R(3),
B(CreateClosure), U8(3), U8(1), U8(2), B(CreateClosure), U8(3), U8(2), U8(2),
B(Star), R(4), B(Star), R(4),
B(LdaZero), B(LdaZero),
B(Star), R(5), B(Star), R(5),
...@@ -206,12 +206,12 @@ parameter count: 1 ...@@ -206,12 +206,12 @@ parameter count: 1
bytecode array length: 33 bytecode array length: 33
bytecodes: [ bytecodes: [
/* 30 E> */ B(StackCheck), /* 30 E> */ B(StackCheck),
/* 34 S> */ B(CreateObjectLiteral), U8(0), U8(1), U8(41), R(0), /* 34 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(41), R(0),
B(LdaConstant), U8(1), B(LdaConstant), U8(1),
B(Star), R(2), B(Star), R(2),
B(LdaNull), B(LdaNull),
B(Star), R(3), B(Star), R(3),
B(CreateClosure), U8(2), U8(0), U8(2), B(CreateClosure), U8(2), U8(1), U8(2),
B(Star), R(4), B(Star), R(4),
B(LdaZero), B(LdaZero),
B(Star), R(5), B(Star), R(5),
...@@ -367,13 +367,13 @@ bytecodes: [ ...@@ -367,13 +367,13 @@ bytecodes: [
/* 30 E> */ B(StackCheck), /* 30 E> */ B(StackCheck),
/* 42 S> */ B(LdaConstant), U8(0), /* 42 S> */ B(LdaConstant), U8(0),
B(Star), R(0), B(Star), R(0),
/* 50 S> */ B(CreateObjectLiteral), U8(1), U8(2), U8(41), R(1), /* 50 S> */ B(CreateObjectLiteral), U8(1), U8(0), U8(41), R(1),
/* 60 E> */ B(ToName), R(2), /* 60 E> */ B(ToName), R(2),
B(LdaConstant), U8(2), B(LdaConstant), U8(2),
B(StaDataPropertyInLiteral), R(1), R(2), U8(0), U8(3), B(StaDataPropertyInLiteral), R(1), R(2), U8(0), U8(1),
B(LdaConstant), U8(3), B(LdaConstant), U8(3),
B(Star), R(3), B(Star), R(3),
B(CreateClosure), U8(4), U8(0), U8(2), B(CreateClosure), U8(4), U8(3), U8(2),
B(Star), R(4), B(Star), R(4),
B(LdaZero), B(LdaZero),
B(Star), R(5), B(Star), R(5),
...@@ -381,7 +381,7 @@ bytecodes: [ ...@@ -381,7 +381,7 @@ bytecodes: [
B(CallRuntime), U16(Runtime::kDefineGetterPropertyUnchecked), R(2), U8(4), B(CallRuntime), U16(Runtime::kDefineGetterPropertyUnchecked), R(2), U8(4),
B(LdaConstant), U8(3), B(LdaConstant), U8(3),
B(Star), R(3), B(Star), R(3),
B(CreateClosure), U8(5), U8(1), U8(2), B(CreateClosure), U8(5), U8(4), U8(2),
B(Star), R(4), B(Star), R(4),
B(LdaZero), B(LdaZero),
B(Star), R(5), B(Star), R(5),
......
...@@ -16,9 +16,9 @@ parameter count: 2 ...@@ -16,9 +16,9 @@ parameter count: 2
bytecode array length: 12 bytecode array length: 12
bytecodes: [ bytecodes: [
/* 10 E> */ B(StackCheck), /* 10 E> */ B(StackCheck),
/* 25 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(2), /* 25 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(0),
B(Star), R(0), B(Star), R(0),
/* 25 E> */ B(CallProperty0), R(0), R(arg0), U8(0), /* 25 E> */ B(CallProperty0), R(0), R(arg0), U8(2),
/* 32 S> */ B(Return), /* 32 S> */ B(Return),
] ]
constant pool: [ constant pool: [
...@@ -37,9 +37,9 @@ parameter count: 4 ...@@ -37,9 +37,9 @@ parameter count: 4
bytecode array length: 14 bytecode array length: 14
bytecodes: [ bytecodes: [
/* 10 E> */ B(StackCheck), /* 10 E> */ B(StackCheck),
/* 31 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(2), /* 31 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(0),
B(Star), R(0), B(Star), R(0),
/* 31 E> */ B(CallProperty2), R(0), R(arg0), R(arg1), R(arg2), U8(0), /* 31 E> */ B(CallProperty2), R(0), R(arg0), R(arg1), R(arg2), U8(2),
/* 42 S> */ B(Return), /* 42 S> */ B(Return),
] ]
constant pool: [ constant pool: [
...@@ -58,12 +58,12 @@ parameter count: 3 ...@@ -58,12 +58,12 @@ parameter count: 3
bytecode array length: 21 bytecode array length: 21
bytecodes: [ bytecodes: [
/* 10 E> */ B(StackCheck), /* 10 E> */ B(StackCheck),
/* 28 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(2), /* 28 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(0),
B(Star), R(0), B(Star), R(0),
B(Ldar), R(arg1), B(Ldar), R(arg1),
/* 35 E> */ B(Add), R(arg1), U8(4), /* 35 E> */ B(Add), R(arg1), U8(2),
B(Star), R(2), B(Star), R(2),
/* 28 E> */ B(CallProperty2), R(0), R(arg0), R(2), R(arg1), U8(0), /* 28 E> */ B(CallProperty2), R(0), R(arg0), R(2), R(arg1), U8(3),
/* 43 S> */ B(Return), /* 43 S> */ B(Return),
] ]
constant pool: [ constant pool: [
...@@ -339,9 +339,9 @@ bytecodes: [ ...@@ -339,9 +339,9 @@ bytecodes: [
/* 1144 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(250), /* 1144 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(250),
/* 1153 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(252), /* 1153 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(252),
/* 1162 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(254), /* 1162 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(254),
/* 1178 S> */ B(Wide), B(LdaNamedProperty), R16(arg0), U16(0), U16(258), /* 1178 S> */ B(Wide), B(LdaNamedProperty), R16(arg0), U16(0), U16(256),
B(Star), R(0), B(Star), R(0),
/* 1178 E> */ B(Wide), B(CallProperty0), R16(0), R16(arg0), U16(256), /* 1178 E> */ B(Wide), B(CallProperty0), R16(0), R16(arg0), U16(258),
/* 1185 S> */ B(Return), /* 1185 S> */ B(Return),
] ]
constant pool: [ constant pool: [
...@@ -360,23 +360,23 @@ parameter count: 2 ...@@ -360,23 +360,23 @@ parameter count: 2
bytecode array length: 51 bytecode array length: 51
bytecodes: [ bytecodes: [
/* 10 E> */ B(StackCheck), /* 10 E> */ B(StackCheck),
/* 25 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(6), /* 25 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(0),
B(Star), R(2), B(Star), R(2),
B(LdaSmi), I8(1), B(LdaSmi), I8(1),
B(Star), R(4), B(Star), R(4),
/* 25 E> */ B(CallProperty1), R(2), R(arg0), R(4), U8(4), /* 25 E> */ B(CallProperty1), R(2), R(arg0), R(4), U8(2),
B(Star), R(2), B(Star), R(2),
/* 32 E> */ B(LdaNamedProperty), R(2), U8(0), U8(8), /* 32 E> */ B(LdaNamedProperty), R(2), U8(0), U8(4),
B(Star), R(1), B(Star), R(1),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(Star), R(3), B(Star), R(3),
/* 33 E> */ B(CallProperty1), R(1), R(2), R(3), U8(2), /* 33 E> */ B(CallProperty1), R(1), R(2), R(3), U8(6),
B(Star), R(1), B(Star), R(1),
/* 40 E> */ B(LdaNamedProperty), R(1), U8(0), U8(10), /* 40 E> */ B(LdaNamedProperty), R(1), U8(0), U8(8),
B(Star), R(0), B(Star), R(0),
B(LdaSmi), I8(3), B(LdaSmi), I8(3),
B(Star), R(2), B(Star), R(2),
/* 41 E> */ B(CallProperty1), R(0), R(1), R(2), U8(0), /* 41 E> */ B(CallProperty1), R(0), R(1), R(2), U8(10),
/* 49 S> */ B(Return), /* 49 S> */ B(Return),
] ]
constant pool: [ constant pool: [
......
...@@ -50,13 +50,13 @@ parameter count: 1 ...@@ -50,13 +50,13 @@ parameter count: 1
bytecode array length: 23 bytecode array length: 23
bytecodes: [ bytecodes: [
/* 30 E> */ B(StackCheck), /* 30 E> */ B(StackCheck),
/* 34 S> */ B(CreateRegExpLiteral), U8(0), U8(2), U8(0), /* 34 S> */ B(CreateRegExpLiteral), U8(0), U8(0), U8(0),
B(Star), R(1), B(Star), R(1),
/* 48 E> */ B(LdaNamedProperty), R(1), U8(1), U8(3), /* 48 E> */ B(LdaNamedProperty), R(1), U8(1), U8(1),
B(Star), R(0), B(Star), R(0),
B(LdaConstant), U8(2), B(LdaConstant), U8(2),
B(Star), R(2), B(Star), R(2),
/* 48 E> */ B(CallProperty1), R(0), R(1), R(2), U8(0), /* 48 E> */ B(CallProperty1), R(0), R(1), R(2), U8(3),
/* 61 S> */ B(Return), /* 61 S> */ B(Return),
] ]
constant pool: [ constant pool: [
......
...@@ -99,7 +99,7 @@ bytecodes: [ ...@@ -99,7 +99,7 @@ bytecodes: [
B(TestEqual), R(2), U8(3), B(TestEqual), R(2), U8(3),
B(JumpIfFalse), U8(54), B(JumpIfFalse), U8(54),
/* 17 E> */ B(StackCheck), /* 17 E> */ B(StackCheck),
/* 48 S> */ B(LdaLookupGlobalSlot), U8(2), U8(6), U8(1), /* 48 S> */ B(LdaLookupGlobalSlot), U8(2), U8(4), U8(1),
B(Star), R(7), B(Star), R(7),
B(LdaConstant), U8(3), B(LdaConstant), U8(3),
B(Star), R(8), B(Star), R(8),
...@@ -114,7 +114,7 @@ bytecodes: [ ...@@ -114,7 +114,7 @@ bytecodes: [
B(Mov), R(closure), R(11), B(Mov), R(closure), R(11),
B(CallRuntime), U16(Runtime::kResolvePossiblyDirectEval), R(9), U8(6), B(CallRuntime), U16(Runtime::kResolvePossiblyDirectEval), R(9), U8(6),
B(Star), R(7), B(Star), R(7),
/* 48 E> */ B(CallUndefinedReceiver1), R(7), R(8), U8(4), /* 48 E> */ B(CallUndefinedReceiver1), R(7), R(8), U8(6),
B(LdaZero), B(LdaZero),
B(Star), R(2), B(Star), R(2),
B(LdaCurrentContextSlot), U8(4), B(LdaCurrentContextSlot), U8(4),
...@@ -188,9 +188,9 @@ bytecodes: [ ...@@ -188,9 +188,9 @@ bytecodes: [
B(TestEqual), R(3), U8(3), B(TestEqual), R(3), U8(3),
B(JumpIfFalse), U8(22), B(JumpIfFalse), U8(22),
/* 17 E> */ B(StackCheck), /* 17 E> */ B(StackCheck),
/* 48 S> */ B(CreateClosure), U8(1), U8(6), U8(2), /* 48 S> */ B(CreateClosure), U8(1), U8(4), U8(2),
B(Star), R(5), B(Star), R(5),
/* 74 E> */ B(CallUndefinedReceiver0), R(5), U8(4), /* 74 E> */ B(CallUndefinedReceiver0), R(5), U8(5),
B(LdaZero), B(LdaZero),
B(Star), R(3), B(Star), R(3),
B(LdaCurrentContextSlot), U8(4), B(LdaCurrentContextSlot), U8(4),
...@@ -237,19 +237,19 @@ bytecodes: [ ...@@ -237,19 +237,19 @@ bytecodes: [
B(Star), R(5), B(Star), R(5),
B(CallRuntime), U16(Runtime::kNewTypeError), R(4), U8(2), B(CallRuntime), U16(Runtime::kNewTypeError), R(4), U8(2),
/* 28 E> */ B(Throw), /* 28 E> */ B(Throw),
/* 37 S> */ B(LdaNamedProperty), R(3), U8(1), U8(3), /* 37 S> */ B(LdaNamedProperty), R(3), U8(1), U8(1),
B(Star), R(1), B(Star), R(1),
/* 37 S> */ B(LdaNamedProperty), R(3), U8(2), U8(5), /* 37 S> */ B(LdaNamedProperty), R(3), U8(2), U8(3),
B(Star), R(2), B(Star), R(2),
/* 55 S> */ B(LdaZero), /* 55 S> */ B(LdaZero),
/* 55 E> */ B(TestGreaterThan), R(2), U8(7), /* 55 E> */ B(TestGreaterThan), R(2), U8(5),
B(JumpIfFalse), U8(19), B(JumpIfFalse), U8(19),
/* 17 E> */ B(StackCheck), /* 17 E> */ B(StackCheck),
/* 75 S> */ B(Ldar), R(2), /* 75 S> */ B(Ldar), R(2),
/* 77 E> */ B(Add), R(1), U8(9), /* 77 E> */ B(Add), R(1), U8(6),
B(Star), R(0), B(Star), R(0),
/* 62 S> */ B(Ldar), R(2), /* 62 S> */ B(Ldar), R(2),
B(Dec), U8(8), B(Dec), U8(7),
B(Star), R(2), B(Star), R(2),
B(JumpLoop), U8(20), I8(0), B(JumpLoop), U8(20), I8(0),
B(LdaUndefined), B(LdaUndefined),
......
...@@ -21,10 +21,10 @@ bytecodes: [ ...@@ -21,10 +21,10 @@ bytecodes: [
/* 53 S> */ B(LdaSmi), I8(2), /* 53 S> */ B(LdaSmi), I8(2),
B(Star), R(1), B(Star), R(1),
/* 56 S> */ B(Ldar), R(1), /* 56 S> */ B(Ldar), R(1),
/* 65 E> */ B(Add), R(0), U8(0), /* 65 E> */ B(Add), R(0), U8(1),
B(Star), R(2), B(Star), R(2),
B(LdaConstant), U8(0), B(LdaConstant), U8(0),
/* 69 E> */ B(Add), R(2), U8(1), /* 69 E> */ B(Add), R(2), U8(0),
/* 80 S> */ B(Return), /* 80 S> */ B(Return),
] ]
constant pool: [ constant pool: [
...@@ -51,10 +51,10 @@ bytecodes: [ ...@@ -51,10 +51,10 @@ bytecodes: [
/* 56 S> */ B(LdaConstant), U8(0), /* 56 S> */ B(LdaConstant), U8(0),
B(Star), R(2), B(Star), R(2),
B(Ldar), R(0), B(Ldar), R(0),
/* 72 E> */ B(Add), R(2), U8(0), /* 72 E> */ B(Add), R(2), U8(1),
B(Star), R(2), B(Star), R(2),
B(Ldar), R(1), B(Ldar), R(1),
/* 76 E> */ B(Add), R(2), U8(1), /* 76 E> */ B(Add), R(2), U8(0),
/* 80 S> */ B(Return), /* 80 S> */ B(Return),
] ]
constant pool: [ constant pool: [
...@@ -79,10 +79,10 @@ bytecodes: [ ...@@ -79,10 +79,10 @@ bytecodes: [
/* 53 S> */ B(LdaSmi), I8(2), /* 53 S> */ B(LdaSmi), I8(2),
B(Star), R(1), B(Star), R(1),
/* 56 S> */ B(LdaConstant), U8(0), /* 56 S> */ B(LdaConstant), U8(0),
/* 65 E> */ B(Add), R(0), U8(0), /* 65 E> */ B(Add), R(0), U8(1),
B(Star), R(2), B(Star), R(2),
B(Ldar), R(1), B(Ldar), R(1),
/* 76 E> */ B(Add), R(2), U8(1), /* 76 E> */ B(Add), R(2), U8(0),
/* 80 S> */ B(Return), /* 80 S> */ B(Return),
] ]
constant pool: [ constant pool: [
...@@ -109,17 +109,17 @@ bytecodes: [ ...@@ -109,17 +109,17 @@ bytecodes: [
/* 56 S> */ B(LdaConstant), U8(0), /* 56 S> */ B(LdaConstant), U8(0),
B(Star), R(2), B(Star), R(2),
B(Ldar), R(0), B(Ldar), R(0),
/* 69 E> */ B(Add), R(2), U8(0), /* 69 E> */ B(Add), R(2), U8(4),
B(Star), R(2), B(Star), R(2),
B(LdaConstant), U8(1), B(LdaConstant), U8(1),
/* 73 E> */ B(Add), R(2), U8(1), /* 73 E> */ B(Add), R(2), U8(3),
B(Star), R(2), B(Star), R(2),
B(Ldar), R(1), B(Ldar), R(1),
/* 81 E> */ B(Add), R(2), U8(2), /* 81 E> */ B(Add), R(2), U8(2),
B(Star), R(2), B(Star), R(2),
B(LdaConstant), U8(2), B(LdaConstant), U8(2),
/* 85 E> */ B(Add), R(2), U8(3), /* 85 E> */ B(Add), R(2), U8(1),
/* 93 E> */ B(AddSmi), I8(1), U8(4), /* 93 E> */ B(AddSmi), I8(1), U8(0),
/* 97 S> */ B(Return), /* 97 S> */ B(Return),
] ]
constant pool: [ constant pool: [
...@@ -146,13 +146,13 @@ bytecodes: [ ...@@ -146,13 +146,13 @@ bytecodes: [
/* 53 S> */ B(LdaSmi), I8(2), /* 53 S> */ B(LdaSmi), I8(2),
B(Star), R(1), B(Star), R(1),
/* 56 S> */ B(LdaConstant), U8(0), /* 56 S> */ B(LdaConstant), U8(0),
/* 66 E> */ B(Add), R(0), U8(0), /* 66 E> */ B(Add), R(0), U8(1),
B(Star), R(2), B(Star), R(2),
B(LdaConstant), U8(0), B(LdaConstant), U8(0),
B(Star), R(3), B(Star), R(3),
B(Ldar), R(1), B(Ldar), R(1),
/* 90 E> */ B(Add), R(3), U8(1), /* 90 E> */ B(Add), R(3), U8(2),
/* 78 E> */ B(Add), R(2), U8(2), /* 78 E> */ B(Add), R(2), U8(0),
/* 95 S> */ B(Return), /* 95 S> */ B(Return),
] ]
constant pool: [ constant pool: [
...@@ -181,14 +181,14 @@ bytecodes: [ ...@@ -181,14 +181,14 @@ bytecodes: [
B(Star), R(1), B(Star), R(1),
/* 80 S> */ B(LdaConstant), U8(1), /* 80 S> */ B(LdaConstant), U8(1),
B(Star), R(3), B(Star), R(3),
/* 98 E> */ B(CallUndefinedReceiver2), R(2), R(0), R(1), U8(1), /* 98 E> */ B(CallUndefinedReceiver2), R(2), R(0), R(1), U8(4),
/* 96 E> */ B(Add), R(3), U8(3), /* 96 E> */ B(Add), R(3), U8(3),
B(Star), R(3), B(Star), R(3),
B(Ldar), R(0), B(Ldar), R(0),
/* 108 E> */ B(Add), R(3), U8(4), /* 108 E> */ B(Add), R(3), U8(2),
B(Star), R(3), B(Star), R(3),
B(Ldar), R(1), B(Ldar), R(1),
/* 112 E> */ B(Add), R(3), U8(5), /* 112 E> */ B(Add), R(3), U8(1),
/* 116 S> */ B(Return), /* 116 S> */ B(Return),
] ]
constant pool: [ constant pool: [
......
...@@ -478,18 +478,18 @@ bytecodes: [ ...@@ -478,18 +478,18 @@ bytecodes: [
/* 42 S> */ B(LdaSmi), I8(1), /* 42 S> */ B(LdaSmi), I8(1),
B(Star), R(0), B(Star), R(0),
/* 45 S> */ B(LdaSmi), I8(1), /* 45 S> */ B(LdaSmi), I8(1),
B(TestEqualStrict), R(0), U8(3), B(TestEqualStrict), R(0), U8(0),
B(Mov), R(0), R(1), B(Mov), R(0), R(1),
B(JumpIfTrue), U8(11), B(JumpIfTrue), U8(11),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(TestEqualStrict), R(1), U8(4), B(TestEqualStrict), R(1), U8(1),
B(JumpIfTrue), U8(32), B(JumpIfTrue), U8(32),
B(Jump), U8(34), B(Jump), U8(34),
/* 70 S> */ B(Ldar), R(0), /* 70 S> */ B(Ldar), R(0),
/* 79 E> */ B(AddSmi), I8(1), U8(0), /* 79 E> */ B(AddSmi), I8(1), U8(2),
B(Star), R(2), B(Star), R(2),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(TestEqualStrict), R(2), U8(1), B(TestEqualStrict), R(2), U8(3),
B(JumpIfTrue), U8(4), B(JumpIfTrue), U8(4),
B(Jump), U8(8), B(Jump), U8(8),
/* 101 S> */ B(LdaSmi), I8(1), /* 101 S> */ B(LdaSmi), I8(1),
......
...@@ -21,8 +21,8 @@ bytecodes: [ ...@@ -21,8 +21,8 @@ bytecodes: [
B(Mov), R(closure), R(3), B(Mov), R(closure), R(3),
B(CallRuntime), U16(Runtime::kDeclareGlobalsForInterpreter), R(1), U8(3), B(CallRuntime), U16(Runtime::kDeclareGlobalsForInterpreter), R(1), U8(3),
/* 0 E> */ B(StackCheck), /* 0 E> */ B(StackCheck),
/* 8 S> */ B(CreateObjectLiteral), U8(1), U8(3), U8(41), R(1), /* 8 S> */ B(CreateObjectLiteral), U8(1), U8(2), U8(41), R(1),
B(CreateClosure), U8(2), U8(2), U8(0), B(CreateClosure), U8(2), U8(3), U8(0),
B(StaNamedOwnProperty), R(1), U8(3), U8(4), B(StaNamedOwnProperty), R(1), U8(3), U8(4),
B(Ldar), R(1), B(Ldar), R(1),
/* 8 E> */ B(StaGlobalSloppy), U8(4), U8(6), /* 8 E> */ B(StaGlobalSloppy), U8(4), U8(6),
......
...@@ -101,8 +101,8 @@ bytecodes: [ ...@@ -101,8 +101,8 @@ bytecodes: [
/* 30 E> */ B(StackCheck), /* 30 E> */ B(StackCheck),
/* 42 S> */ B(Wide), B(LdaSmi), I16(1234), /* 42 S> */ B(Wide), B(LdaSmi), I16(1234),
B(Star), R(0), B(Star), R(0),
/* 64 S> */ B(Mul), R(0), U8(0), /* 64 S> */ B(Mul), R(0), U8(1),
/* 68 E> */ B(SubSmi), I8(1), U8(1), /* 68 E> */ B(SubSmi), I8(1), U8(0),
B(LdaUndefined), B(LdaUndefined),
B(Star), R(1), B(Star), R(1),
/* 83 S> */ B(Return), /* 83 S> */ B(Return),
......
...@@ -905,11 +905,11 @@ bytecodes: [ ...@@ -905,11 +905,11 @@ bytecodes: [
B(JumpIfFalse), U8(31), B(JumpIfFalse), U8(31),
/* 1518 E> */ B(StackCheck), /* 1518 E> */ B(StackCheck),
/* 1555 S> */ B(Wide), B(Ldar), R16(128), /* 1555 S> */ B(Wide), B(Ldar), R16(128),
/* 1561 E> */ B(Add), R(1), U8(2), /* 1561 E> */ B(Add), R(1), U8(1),
B(Wide), B(Mov), R16(1), R16(157), B(Wide), B(Mov), R16(1), R16(157),
B(Star), R(1), B(Star), R(1),
/* 1548 S> */ B(Wide), B(Ldar), R16(128), /* 1548 S> */ B(Wide), B(Ldar), R16(128),
B(Inc), U8(1), B(Inc), U8(2),
B(Wide), B(Star), R16(128), B(Wide), B(Star), R16(128),
B(JumpLoop), U8(36), I8(0), B(JumpLoop), U8(36), I8(0),
/* 1567 S> */ B(Wide), B(Ldar), R16(128), /* 1567 S> */ B(Wide), B(Ldar), R16(128),
...@@ -1097,17 +1097,17 @@ bytecodes: [ ...@@ -1097,17 +1097,17 @@ bytecodes: [
B(JumpIfNull), U8(72), B(JumpIfNull), U8(72),
B(Wide), B(ToObject), R16(157), B(Wide), B(ToObject), R16(157),
B(Wide), B(ForInEnumerate), R16(157), B(Wide), B(ForInEnumerate), R16(157),
B(Wide), B(ForInPrepare), R16(158), U16(1), B(Wide), B(ForInPrepare), R16(158), U16(0),
B(LdaZero), B(LdaZero),
B(Wide), B(Star), R16(161), B(Wide), B(Star), R16(161),
/* 1526 S> */ B(Wide), B(ForInContinue), R16(161), R16(160), /* 1526 S> */ B(Wide), B(ForInContinue), R16(161), R16(160),
B(JumpIfFalse), U8(45), B(JumpIfFalse), U8(45),
B(Wide), B(ForInNext), R16(157), R16(161), R16(158), U16(1), B(Wide), B(ForInNext), R16(157), R16(161), R16(158), U16(0),
B(JumpIfUndefined), U8(22), B(JumpIfUndefined), U8(22),
B(Wide), B(Star), R16(128), B(Wide), B(Star), R16(128),
/* 1521 E> */ B(StackCheck), /* 1521 E> */ B(StackCheck),
/* 1541 S> */ B(Wide), B(Ldar), R16(128), /* 1541 S> */ B(Wide), B(Ldar), R16(128),
/* 1547 E> */ B(Add), R(1), U8(0), /* 1547 E> */ B(Add), R(1), U8(1),
B(Wide), B(Mov), R16(1), R16(162), B(Wide), B(Mov), R16(1), R16(162),
B(Star), R(1), B(Star), R(1),
/* 1544 E> */ B(Wide), B(ForInStep), R16(161), /* 1544 E> */ B(Wide), B(ForInStep), R16(161),
......
This diff is collapsed.
...@@ -574,9 +574,9 @@ TEST(ReferenceContextAllocatesNoSlots) { ...@@ -574,9 +574,9 @@ TEST(ReferenceContextAllocatesNoSlots) {
CHECK_SLOT_KIND(helper, 1, FeedbackSlotKind::kStoreNamedStrict); CHECK_SLOT_KIND(helper, 1, FeedbackSlotKind::kStoreNamedStrict);
CHECK_SLOT_KIND(helper, 2, FeedbackSlotKind::kStoreNamedStrict); CHECK_SLOT_KIND(helper, 2, FeedbackSlotKind::kStoreNamedStrict);
CHECK_SLOT_KIND(helper, 3, FeedbackSlotKind::kStoreNamedStrict); CHECK_SLOT_KIND(helper, 3, FeedbackSlotKind::kStoreNamedStrict);
CHECK_SLOT_KIND(helper, 4, FeedbackSlotKind::kLoadProperty); CHECK_SLOT_KIND(helper, 4, FeedbackSlotKind::kBinaryOp);
CHECK_SLOT_KIND(helper, 5, FeedbackSlotKind::kLoadProperty); CHECK_SLOT_KIND(helper, 5, FeedbackSlotKind::kLoadProperty);
CHECK_SLOT_KIND(helper, 6, FeedbackSlotKind::kBinaryOp); CHECK_SLOT_KIND(helper, 6, FeedbackSlotKind::kLoadProperty);
} }
} }
......
...@@ -26,7 +26,8 @@ class BytecodeArrayBuilderTest : public TestWithIsolateAndZone { ...@@ -26,7 +26,8 @@ class BytecodeArrayBuilderTest : public TestWithIsolateAndZone {
using ToBooleanMode = BytecodeArrayBuilder::ToBooleanMode; using ToBooleanMode = BytecodeArrayBuilder::ToBooleanMode;
TEST_F(BytecodeArrayBuilderTest, AllBytecodesGenerated) { TEST_F(BytecodeArrayBuilderTest, AllBytecodesGenerated) {
BytecodeArrayBuilder builder(isolate(), zone(), 1, 131); FeedbackVectorSpec feedback_spec(zone());
BytecodeArrayBuilder builder(isolate(), zone(), 1, 131, &feedback_spec);
Factory* factory = isolate()->factory(); Factory* factory = isolate()->factory();
AstValueFactory ast_factory(zone(), isolate()->ast_string_constants(), AstValueFactory ast_factory(zone(), isolate()->ast_string_constants(),
isolate()->heap()->HashSeed()); isolate()->heap()->HashSeed());
...@@ -81,12 +82,36 @@ TEST_F(BytecodeArrayBuilderTest, AllBytecodesGenerated) { ...@@ -81,12 +82,36 @@ TEST_F(BytecodeArrayBuilderTest, AllBytecodesGenerated) {
builder.MoveRegister(reg, other); builder.MoveRegister(reg, other);
builder.MoveRegister(reg, wide); builder.MoveRegister(reg, wide);
FeedbackSlot load_global_slot =
feedback_spec.AddLoadGlobalICSlot(NOT_INSIDE_TYPEOF);
FeedbackSlot load_global_typeof_slot =
feedback_spec.AddLoadGlobalICSlot(INSIDE_TYPEOF);
FeedbackSlot sloppy_store_global_slot =
feedback_spec.AddStoreGlobalICSlot(LanguageMode::kSloppy);
FeedbackSlot strict_store_global_slot =
feedback_spec.AddStoreGlobalICSlot(LanguageMode::kStrict);
FeedbackSlot load_slot = feedback_spec.AddLoadICSlot();
FeedbackSlot keyed_load_slot = feedback_spec.AddKeyedLoadICSlot();
FeedbackSlot sloppy_store_slot =
feedback_spec.AddStoreICSlot(LanguageMode::kSloppy);
FeedbackSlot strict_store_slot =
feedback_spec.AddStoreICSlot(LanguageMode::kStrict);
FeedbackSlot sloppy_keyed_store_slot =
feedback_spec.AddKeyedStoreICSlot(LanguageMode::kSloppy);
FeedbackSlot strict_keyed_store_slot =
feedback_spec.AddKeyedStoreICSlot(LanguageMode::kStrict);
FeedbackSlot store_own_slot = feedback_spec.AddStoreOwnICSlot();
// Emit global load / store operations. // Emit global load / store operations.
const AstRawString* name = ast_factory.GetOneByteString("var_name"); const AstRawString* name = ast_factory.GetOneByteString("var_name");
builder.LoadGlobal(name, 1, TypeofMode::NOT_INSIDE_TYPEOF) builder
.LoadGlobal(name, 1, TypeofMode::INSIDE_TYPEOF) .LoadGlobal(name, load_global_slot.ToInt(), TypeofMode::NOT_INSIDE_TYPEOF)
.StoreGlobal(name, 1, LanguageMode::kSloppy) .LoadGlobal(name, load_global_typeof_slot.ToInt(),
.StoreGlobal(name, 1, LanguageMode::kStrict); TypeofMode::INSIDE_TYPEOF)
.StoreGlobal(name, sloppy_store_global_slot.ToInt(),
LanguageMode::kSloppy)
.StoreGlobal(name, strict_store_global_slot.ToInt(),
LanguageMode::kStrict);
// Emit context operations. // Emit context operations.
builder.PushContext(reg) builder.PushContext(reg)
...@@ -106,13 +131,17 @@ TEST_F(BytecodeArrayBuilderTest, AllBytecodesGenerated) { ...@@ -106,13 +131,17 @@ TEST_F(BytecodeArrayBuilderTest, AllBytecodesGenerated) {
.StoreContextSlot(Register::current_context(), 3, 0); .StoreContextSlot(Register::current_context(), 3, 0);
// Emit load / store property operations. // Emit load / store property operations.
builder.LoadNamedProperty(reg, name, 0) builder.LoadNamedProperty(reg, name, load_slot.ToInt())
.LoadKeyedProperty(reg, 0) .LoadKeyedProperty(reg, keyed_load_slot.ToInt())
.StoreNamedProperty(reg, name, 0, LanguageMode::kSloppy) .StoreNamedProperty(reg, name, sloppy_store_slot.ToInt(),
.StoreKeyedProperty(reg, reg, 0, LanguageMode::kSloppy) LanguageMode::kSloppy)
.StoreNamedProperty(reg, name, 0, LanguageMode::kStrict) .StoreKeyedProperty(reg, reg, sloppy_keyed_store_slot.ToInt(),
.StoreKeyedProperty(reg, reg, 0, LanguageMode::kStrict) LanguageMode::kSloppy)
.StoreNamedOwnProperty(reg, name, 0); .StoreNamedProperty(reg, name, strict_store_slot.ToInt(),
LanguageMode::kStrict)
.StoreKeyedProperty(reg, reg, strict_keyed_store_slot.ToInt(),
LanguageMode::kStrict)
.StoreNamedOwnProperty(reg, name, store_own_slot.ToInt());
// Emit load / store lookup slots. // Emit load / store lookup slots.
builder.LoadLookupSlot(name, TypeofMode::NOT_INSIDE_TYPEOF) builder.LoadLookupSlot(name, TypeofMode::NOT_INSIDE_TYPEOF)
...@@ -316,25 +345,6 @@ TEST_F(BytecodeArrayBuilderTest, AllBytecodesGenerated) { ...@@ -316,25 +345,6 @@ TEST_F(BytecodeArrayBuilderTest, AllBytecodesGenerated) {
builder.LoadLiteral(Smi::FromInt(20000000)); builder.LoadLiteral(Smi::FromInt(20000000));
const AstRawString* wide_name = ast_factory.GetOneByteString("var_wide_name"); const AstRawString* wide_name = ast_factory.GetOneByteString("var_wide_name");
// Emit wide global load / store operations.
builder.LoadGlobal(name, 1024, TypeofMode::NOT_INSIDE_TYPEOF)
.LoadGlobal(name, 1024, TypeofMode::INSIDE_TYPEOF)
.LoadGlobal(name, 1024, TypeofMode::INSIDE_TYPEOF)
.StoreGlobal(name, 1024, LanguageMode::kSloppy)
.StoreGlobal(wide_name, 1, LanguageMode::kStrict);
// Emit extra wide global load.
builder.LoadGlobal(name, 1024 * 1024, TypeofMode::NOT_INSIDE_TYPEOF);
// Emit wide load / store property operations.
builder.LoadNamedProperty(reg, wide_name, 0)
.LoadKeyedProperty(reg, 2056)
.StoreNamedProperty(reg, wide_name, 0, LanguageMode::kSloppy)
.StoreKeyedProperty(reg, reg, 2056, LanguageMode::kSloppy)
.StoreNamedProperty(reg, wide_name, 0, LanguageMode::kStrict)
.StoreKeyedProperty(reg, reg, 2056, LanguageMode::kStrict)
.StoreNamedOwnProperty(reg, wide_name, 0);
builder.StoreDataPropertyInLiteral(reg, reg, builder.StoreDataPropertyInLiteral(reg, reg,
DataPropertyInLiteralFlag::kNoFlags, 0); DataPropertyInLiteralFlag::kNoFlags, 0);
......
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