Commit ac8acab2 authored by Swapnil Gaikwad's avatar Swapnil Gaikwad Committed by Commit Bot

Add GetIterator bytecode to load object[Symbol.iterator] in accumulator

This is the first in a series of changes to reduce the number of
bytecodes generated for the iteration protocol based operations.
The GetIterator bytecode introduced in this change currently loads the
@@iterator symbol from an object that was previously done using the
LdaNamedProperty bytecode. This change uses builtin-based mechanism
that would be extended to perform additional operations in the future
on absorbing the bytecodes associated with the GetIterator operation
from the iteration protocol.

Bug: v8:9489
Change-Id: I83b8b55c27bae8260bf227f355eeca1ba80cd8f0
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1701852
Commit-Queue: Swapnil Gaikwad <swapnilgaikwad@google.com>
Reviewed-by: 's avatarMichael Stanton <mvstanton@chromium.org>
Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#63139}
parent a2b98b60
......@@ -1181,6 +1181,7 @@ extern macro Int32FalseConstant(): bool;
extern macro EmptyStringConstant(): EmptyString;
extern macro LengthStringConstant(): String;
extern macro NanConstant(): NaN;
extern macro IteratorSymbolConstant(): Symbol;
const TheHole: TheHole = TheHoleConstant();
const Null: Null = NullConstant();
......@@ -1487,6 +1488,7 @@ extern transitioning builtin HasProperty(implicit context: Context)(
Object, Object): Boolean;
extern transitioning macro HasProperty_Inline(implicit context: Context)(
JSReceiver, Object): Boolean;
extern builtin LoadIC(Context, Object, Object, Smi, FeedbackVector): Object;
extern macro ThrowRangeError(implicit context: Context)(
constexpr MessageTemplate): never;
......@@ -1855,6 +1857,12 @@ Cast<Number>(o: Object): Number
return TaggedToNumber(o) otherwise CastError;
}
Cast<Undefined>(o: Object): Undefined
labels CastError {
if (o != Undefined) goto CastError;
return %RawDownCast<Undefined>(o);
}
macro Cast<A: type>(o: HeapObject): A
labels CastError;
......@@ -1869,6 +1877,12 @@ Cast<Null>(o: HeapObject): Null
return %RawDownCast<Null>(o);
}
Cast<Undefined>(o: HeapObject): Undefined
labels CastError {
const o: Object = o;
return Cast<Undefined>(o) otherwise CastError;
}
Cast<FixedArray>(o: HeapObject): FixedArray
labels CastError {
return HeapObjectToFixedArray(o) otherwise CastError;
......
......@@ -41,4 +41,19 @@ namespace iterator {
Context)(Object, Object);
extern builtin IterableToListWithSymbolLookup(implicit context:
Context)(Object);
transitioning builtin GetIteratorWithFeedback(
context: Context, receiver: Object, feedbackSlot: Smi,
feedback: Undefined | FeedbackVector): Object {
typeswitch (feedback) {
case (Undefined): {
return GetProperty(receiver, IteratorSymbolConstant());
}
case (feedback: FeedbackVector): {
return LoadIC(
context, receiver, IteratorSymbolConstant(), feedbackSlot,
feedback);
}
}
}
}
......@@ -660,11 +660,13 @@ class StoreGlobalWithVectorDescriptor : public StoreGlobalDescriptor {
class LoadWithVectorDescriptor : public LoadDescriptor {
public:
// TODO(v8:9497): Revert the Machine type for kSlot to the
// TaggedSigned once Torque can emit better call descriptors
DEFINE_PARAMETERS(kReceiver, kName, kSlot, kVector)
DEFINE_PARAMETER_TYPES(MachineType::AnyTagged(), // kReceiver
MachineType::AnyTagged(), // kName
MachineType::TaggedSigned(), // kSlot
MachineType::AnyTagged()) // kVector
DEFINE_PARAMETER_TYPES(MachineType::AnyTagged(), // kReceiver
MachineType::AnyTagged(), // kName
MachineType::AnyTagged(), // kSlot
MachineType::AnyTagged()) // kVector
DECLARE_DESCRIPTOR(LoadWithVectorDescriptor, LoadDescriptor)
static const Register VectorRegister();
......
......@@ -3287,6 +3287,17 @@ void BytecodeGraphBuilder::VisitForInStep() {
environment()->BindAccumulator(index, Environment::kAttachFrameState);
}
void BytecodeGraphBuilder::VisitGetIterator() {
PrepareEagerCheckpoint();
Node* object =
environment()->LookupRegister(bytecode_iterator().GetRegisterOperand(0));
VectorSlotPair feedback =
CreateVectorSlotPair(bytecode_iterator().GetIndexOperand(1));
const Operator* op = javascript()->GetIterator(feedback);
Node* node = NewNode(op, object);
environment()->BindAccumulator(node, Environment::kAttachFrameState);
}
void BytecodeGraphBuilder::VisitSuspendGenerator() {
Node* generator = environment()->LookupRegister(
bytecode_iterator().GetRegisterOperand(0));
......
......@@ -216,6 +216,17 @@ void JSGenericLowering::LowerJSLoadGlobal(Node* node) {
}
}
void JSGenericLowering::LowerJSGetIterator(Node* node) {
CallDescriptor::Flags flags = FrameStateFlagForCall(node);
const PropertyAccess& p = PropertyAccessOf(node->op());
node->InsertInput(zone(), 1, jsgraph()->SmiConstant(p.feedback().index()));
Node* vector = jsgraph()->HeapConstant(p.feedback().vector());
node->InsertInput(zone(), 2, vector);
Callable callable =
Builtins::CallableFor(isolate(), Builtins::kGetIteratorWithFeedback);
ReplaceWithStubCall(node, callable, flags);
}
void JSGenericLowering::LowerJSStoreProperty(Node* node) {
CallDescriptor::Flags flags = FrameStateFlagForCall(node);
PropertyAccess const& p = PropertyAccessOf(node->op());
......
......@@ -128,6 +128,8 @@ Reduction JSNativeContextSpecialization::Reduce(Node* node) {
return ReduceJSToObject(node);
case IrOpcode::kJSToString:
return ReduceJSToString(node);
case IrOpcode::kJSGetIterator:
return ReduceJSGetIterator(node);
default:
break;
}
......@@ -1073,7 +1075,8 @@ Reduction JSNativeContextSpecialization::ReduceNamedAccess(
node->opcode() == IrOpcode::kJSLoadProperty ||
node->opcode() == IrOpcode::kJSStoreProperty ||
node->opcode() == IrOpcode::kJSStoreNamedOwn ||
node->opcode() == IrOpcode::kJSHasProperty);
node->opcode() == IrOpcode::kJSHasProperty ||
node->opcode() == IrOpcode::kJSGetIterator);
Node* receiver = NodeProperties::GetValueInput(node, 0);
Node* context = NodeProperties::GetContextInput(node);
Node* frame_state = NodeProperties::GetFrameStateInput(node);
......@@ -1381,6 +1384,16 @@ Reduction JSNativeContextSpecialization::ReduceJSLoadNamed(Node* node) {
AccessMode::kLoad);
}
Reduction JSNativeContextSpecialization::ReduceJSGetIterator(Node* node) {
DisallowHeapAccessIf no_heap_access(FLAG_concurrent_inlining);
DCHECK_EQ(IrOpcode::kJSGetIterator, node->opcode());
PropertyAccess const& p = PropertyAccessOf(node->op());
NameRef name(broker(), factory()->iterator_symbol());
return ReducePropertyAccess(node, nullptr, name, jsgraph()->Dead(),
FeedbackSource(p.feedback()), AccessMode::kLoad);
}
Reduction JSNativeContextSpecialization::ReduceJSStoreNamed(Node* node) {
DisallowHeapAccessIf no_heap_access(FLAG_concurrent_inlining);
DCHECK_EQ(IrOpcode::kJSStoreNamed, node->opcode());
......@@ -1756,7 +1769,8 @@ Reduction JSNativeContextSpecialization::ReducePropertyAccess(
node->opcode() == IrOpcode::kJSHasProperty ||
node->opcode() == IrOpcode::kJSLoadNamed ||
node->opcode() == IrOpcode::kJSStoreNamed ||
node->opcode() == IrOpcode::kJSStoreNamedOwn);
node->opcode() == IrOpcode::kJSStoreNamedOwn ||
node->opcode() == IrOpcode::kJSGetIterator);
Node* receiver = NodeProperties::GetValueInput(node, 0);
Node* effect = NodeProperties::GetEffectInput(node);
......
......@@ -84,6 +84,7 @@ class V8_EXPORT_PRIVATE JSNativeContextSpecialization final
Reduction ReduceJSLoadGlobal(Node* node);
Reduction ReduceJSStoreGlobal(Node* node);
Reduction ReduceJSLoadNamed(Node* node);
Reduction ReduceJSGetIterator(Node* node);
Reduction ReduceJSStoreNamed(Node* node);
Reduction ReduceJSHasProperty(Node* node);
Reduction ReduceJSLoadProperty(Node* node);
......
......@@ -283,7 +283,8 @@ bool operator!=(PropertyAccess const& lhs, PropertyAccess const& rhs) {
PropertyAccess const& PropertyAccessOf(const Operator* op) {
DCHECK(op->opcode() == IrOpcode::kJSHasProperty ||
op->opcode() == IrOpcode::kJSLoadProperty ||
op->opcode() == IrOpcode::kJSStoreProperty);
op->opcode() == IrOpcode::kJSStoreProperty ||
op->opcode() == IrOpcode::kJSGetIterator);
return OpParameter<PropertyAccess>(op);
}
......@@ -953,6 +954,15 @@ const Operator* JSOperatorBuilder::LoadProperty(
access); // parameter
}
const Operator* JSOperatorBuilder::GetIterator(VectorSlotPair const& feedback) {
PropertyAccess access(LanguageMode::kSloppy, feedback);
return new (zone()) Operator1<PropertyAccess>( // --
IrOpcode::kJSGetIterator, Operator::kNoProperties, // opcode
"JSGetIterator", // name
1, 1, 1, 1, 1, 2, // counts
access); // parameter
}
const Operator* JSOperatorBuilder::HasProperty(VectorSlotPair const& feedback) {
PropertyAccess access(LanguageMode::kSloppy, feedback);
return new (zone()) Operator1<PropertyAccess>( // --
......
......@@ -854,6 +854,8 @@ class V8_EXPORT_PRIVATE JSOperatorBuilder final
const Operator* ParseInt();
const Operator* RegExpTest();
const Operator* GetIterator(VectorSlotPair const& feedback);
private:
Zone* zone() const { return zone_; }
......
......@@ -203,6 +203,7 @@
V(JSForInEnumerate) \
V(JSForInNext) \
V(JSForInPrepare) \
V(JSGetIterator) \
V(JSLoadMessage) \
V(JSStoreMessage) \
V(JSLoadModule) \
......
......@@ -54,6 +54,7 @@ bool OperatorProperties::NeedsExactContext(const Operator* op) {
case IrOpcode::kJSStackCheck:
case IrOpcode::kJSStoreGlobal:
case IrOpcode::kJSStoreMessage:
case IrOpcode::kJSGetIterator:
return false;
case IrOpcode::kJSCallRuntime:
......@@ -237,6 +238,9 @@ bool OperatorProperties::HasFrameStateInput(const Operator* op) {
case IrOpcode::kJSPerformPromiseThen:
case IrOpcode::kJSObjectIsArray:
case IrOpcode::kJSRegExpTest:
// Iterator protocol operations
case IrOpcode::kJSGetIterator:
return true;
default:
......
......@@ -166,6 +166,7 @@ namespace compiler {
V(CreateEvalContext) \
V(CreateFunctionContext) \
V(CreateWithContext) \
V(GetIterator) \
V(GetSuperConstructor) \
V(GetTemplateObject) \
V(InvokeIntrinsic) \
......@@ -991,6 +992,16 @@ void SerializerForBackgroundCompilation::TraverseBytecode() {
}
}
void SerializerForBackgroundCompilation::VisitGetIterator(
BytecodeArrayIterator* iterator) {
AccessMode mode = AccessMode::kLoad;
Hints const& receiver =
environment()->register_hints(iterator->GetRegisterOperand(0));
Handle<Name> name = broker()->isolate()->factory()->iterator_symbol();
FeedbackSlot slot = iterator->GetSlotOperand(1);
ProcessNamedPropertyAccess(receiver, NameRef(broker(), name), slot, mode);
}
void SerializerForBackgroundCompilation::VisitGetSuperConstructor(
BytecodeArrayIterator* iterator) {
interpreter::Register dst = iterator->GetRegisterOperand(0);
......
......@@ -2361,6 +2361,8 @@ Type Typer::Visitor::TypeConstant(Handle<Object> value) {
return Type::NewConstant(typer_->broker(), value, zone());
}
Type Typer::Visitor::TypeJSGetIterator(Node* node) { return Type::Any(); }
} // namespace compiler
} // namespace internal
} // namespace v8
......@@ -765,6 +765,11 @@ void Verifier::Visitor::Check(Node* node, const AllNodes& all) {
CheckNotTyped(node);
CHECK(StoreNamedOwnParametersOf(node->op()).feedback().IsValid());
break;
case IrOpcode::kJSGetIterator:
// Type can be anything
CheckValueInputIs(node, 0, Type::Any());
CheckTypeIs(node, Type::Any());
break;
case IrOpcode::kJSStoreDataPropertyInLiteral:
case IrOpcode::kJSStoreInArrayLiteral:
// Type is empty.
......
......@@ -383,6 +383,7 @@ bool BytecodeHasNoSideEffect(interpreter::Bytecode bytecode) {
case Bytecode::kLdaKeyedProperty:
case Bytecode::kLdaGlobalInsideTypeof:
case Bytecode::kLdaLookupSlotInsideTypeof:
case Bytecode::kGetIterator:
// Arithmetics.
case Bytecode::kAdd:
case Bytecode::kAddSmi:
......
......@@ -810,10 +810,9 @@ BytecodeArrayBuilder& BytecodeArrayBuilder::LoadKeyedProperty(
return *this;
}
BytecodeArrayBuilder& BytecodeArrayBuilder::LoadIteratorProperty(
Register object, int feedback_slot) {
size_t name_index = IteratorSymbolConstantPoolEntry();
OutputLdaNamedProperty(object, name_index, feedback_slot);
BytecodeArrayBuilder& BytecodeArrayBuilder::GetIterator(Register object,
int feedback_slot) {
OutputGetIterator(object, feedback_slot);
return *this;
}
......
......@@ -127,9 +127,10 @@ class V8_EXPORT_PRIVATE BytecodeArrayBuilder final {
// Keyed load property. The key should be in the accumulator.
BytecodeArrayBuilder& LoadKeyedProperty(Register object, int feedback_slot);
// Named load property of the @@iterator symbol.
BytecodeArrayBuilder& LoadIteratorProperty(Register object,
int feedback_slot);
BytecodeArrayBuilder& GetIterator(Register object, int feedback_slot);
// Named load property of the @@asyncIterator symbol.
BytecodeArrayBuilder& LoadAsyncIteratorProperty(Register object,
int feedback_slot);
......
......@@ -5266,8 +5266,7 @@ void BytecodeGenerator::BuildGetIterator(IteratorType hint) {
// If method is undefined,
// Let syncMethod be GetMethod(obj, @@iterator)
builder()
->LoadIteratorProperty(obj,
feedback_index(feedback_spec()->AddLoadICSlot()))
->GetIterator(obj, feedback_index(feedback_spec()->AddLoadICSlot()))
.StoreAccumulatorInRegister(method);
// Let syncIterator be Call(syncMethod, obj)
......@@ -5285,8 +5284,7 @@ void BytecodeGenerator::BuildGetIterator(IteratorType hint) {
// Let method be GetMethod(obj, @@iterator).
builder()
->StoreAccumulatorInRegister(obj)
.LoadIteratorProperty(obj,
feedback_index(feedback_spec()->AddLoadICSlot()))
.GetIterator(obj, feedback_index(feedback_spec()->AddLoadICSlot()))
.StoreAccumulatorInRegister(method);
// Let iterator be Call(method, obj).
......
......@@ -355,6 +355,9 @@ namespace interpreter {
V(ResumeGenerator, AccumulatorUse::kWrite, OperandType::kReg, \
OperandType::kRegOutList, OperandType::kRegCount) \
\
/* Iterator protocol operations */ \
V(GetIterator, AccumulatorUse::kWrite, OperandType::kReg, OperandType::kIdx) \
\
/* Debugger */ \
V(Debugger, AccumulatorUse::kNone) \
\
......
......@@ -3172,6 +3172,25 @@ IGNITION_HANDLER(ForInStep, InterpreterAssembler) {
Dispatch();
}
// GetIterator <object>
//
// Retrieves the object[Symbol.iterator] method and stores the result
// in the accumulator
// TODO(swapnilgaikwad): Extend the functionality of the bytecode to call
// iterator method for an object
IGNITION_HANDLER(GetIterator, InterpreterAssembler) {
Node* receiver = LoadRegisterAtOperandIndex(0);
Node* context = GetContext();
Node* feedback_vector = LoadFeedbackVector();
Node* feedback_slot = BytecodeOperandIdx(1);
Node* smi_slot = SmiTag(feedback_slot);
Node* result = CallBuiltin(Builtins::kGetIteratorWithFeedback, context,
receiver, smi_slot, feedback_vector);
SetAccumulator(result);
Dispatch();
}
// Wide
//
// Prefix bytecode indicating next bytecode has wide (16-bit) operands.
......
......@@ -143,7 +143,7 @@ snippet: "
"
frame size: 8
parameter count: 1
bytecode array length: 84
bytecode array length: 83
bytecodes: [
/* 30 E> */ B(StackCheck),
/* 42 S> */ B(CreateArrayLiteral), U8(0), U8(0), U8(37),
......@@ -152,22 +152,22 @@ bytecodes: [
B(Star), R(2),
B(LdaConstant), U8(2),
/* 67 S> */ B(Star), R(1),
B(LdaNamedProperty), R(0), U8(3), U8(2),
B(GetIterator), R(0), U8(2),
B(Star), R(6),
B(CallProperty0), R(6), R(0), U8(4),
B(Mov), R(0), R(5),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
B(Star), R(4),
B(LdaNamedProperty), R(4), U8(4), U8(6),
B(LdaNamedProperty), R(4), U8(3), U8(6),
B(Star), R(3),
B(CallProperty0), R(3), R(4), U8(15),
B(Star), R(7),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(7), U8(1),
B(LdaNamedProperty), R(7), U8(5), U8(17),
B(LdaNamedProperty), R(7), U8(4), U8(17),
B(JumpIfToBooleanTrue), U8(19),
B(LdaNamedProperty), R(7), U8(6), U8(8),
B(LdaNamedProperty), R(7), U8(5), U8(8),
B(StaInArrayLiteral), R(2), R(1), U8(13),
B(Ldar), R(1),
B(Inc), U8(12),
......@@ -180,7 +180,6 @@ constant pool: [
ARRAY_BOILERPLATE_DESCRIPTION_TYPE,
ARRAY_BOILERPLATE_DESCRIPTION_TYPE,
Smi [1],
SYMBOL_TYPE,
ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
......
......@@ -214,7 +214,7 @@ snippet: "
"
frame size: 21
parameter count: 1
bytecode array length: 370
bytecode array length: 369
bytecodes: [
B(SwitchOnGeneratorState), R(0), U8(0), U8(2),
B(Mov), R(closure), R(4),
......@@ -235,16 +235,16 @@ bytecodes: [
B(LdaSmi), I8(1),
B(Star), R(4),
B(Mov), R(8), R(5),
B(JumpConstant), U8(16),
B(JumpConstant), U8(15),
/* 36 S> */ B(CreateArrayLiteral), U8(4), U8(0), U8(37),
B(Star), R(10),
B(LdaNamedProperty), R(10), U8(5), U8(1),
B(GetIterator), R(10), U8(1),
B(Star), R(11),
B(CallProperty0), R(11), R(10), U8(3),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
B(Star), R(9),
B(LdaNamedProperty), R(9), U8(6), U8(5),
B(LdaNamedProperty), R(9), U8(5), U8(5),
B(Star), R(8),
B(LdaFalse),
B(Star), R(12),
......@@ -255,9 +255,9 @@ bytecodes: [
B(Star), R(16),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(16), U8(1),
B(LdaNamedProperty), R(16), U8(7), U8(9),
B(LdaNamedProperty), R(16), U8(6), U8(9),
B(JumpIfToBooleanTrue), U8(67),
B(LdaNamedProperty), R(16), U8(8), U8(11),
B(LdaNamedProperty), R(16), U8(7), U8(11),
B(Star), R(16),
B(LdaFalse),
B(Star), R(12),
......@@ -273,7 +273,7 @@ bytecodes: [
B(ResumeGenerator), R(0), R(0), U8(17),
B(Star), R(17),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1),
B(SwitchOnSmiNoFeedback), U8(9), U8(2), I8(0),
B(SwitchOnSmiNoFeedback), U8(8), U8(2), I8(0),
B(Ldar), R(17),
/* 42 E> */ B(Throw),
B(LdaSmi), I8(1),
......@@ -294,7 +294,7 @@ bytecodes: [
B(Star), R(15),
B(Ldar), R(12),
B(JumpIfToBooleanTrue), U8(58),
B(LdaNamedProperty), R(9), U8(11), U8(13),
B(LdaNamedProperty), R(9), U8(10), U8(13),
B(Star), R(17),
B(JumpIfUndefinedOrNull), U8(50),
B(Mov), R(context), R(18),
......@@ -302,7 +302,7 @@ bytecodes: [
B(JumpIfTrue), U8(18),
B(Wide), B(LdaSmi), I16(159),
B(Star), R(19),
B(LdaConstant), U8(12),
B(LdaConstant), U8(11),
B(Star), R(20),
B(CallRuntime), U16(Runtime::kNewTypeError), R(19), U8(2),
B(Throw),
......@@ -320,7 +320,7 @@ bytecodes: [
B(Ldar), R(15),
B(SetPendingMessage),
B(Ldar), R(13),
B(SwitchOnSmiNoFeedback), U8(13), U8(2), I8(0),
B(SwitchOnSmiNoFeedback), U8(12), U8(2), I8(0),
B(Jump), U8(14),
B(Ldar), R(14),
B(ReThrow),
......@@ -330,7 +330,7 @@ bytecodes: [
B(Jump), U8(51),
B(Jump), U8(36),
B(Star), R(8),
B(CreateCatchContext), R(8), U8(15),
B(CreateCatchContext), R(8), U8(14),
B(Star), R(7),
B(LdaTheHole),
B(SetPendingMessage),
......@@ -359,7 +359,7 @@ bytecodes: [
B(Ldar), R(6),
B(SetPendingMessage),
B(Ldar), R(4),
B(SwitchOnSmiNoFeedback), U8(17), U8(3), I8(0),
B(SwitchOnSmiNoFeedback), U8(16), U8(3), I8(0),
B(Jump), U8(22),
B(Ldar), R(5),
B(ReThrow),
......@@ -376,11 +376,10 @@ bytecodes: [
]
constant pool: [
Smi [30],
Smi [149],
Smi [148],
Smi [16],
Smi [7],
ARRAY_BOILERPLATE_DESCRIPTION_TYPE,
SYMBOL_TYPE,
ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
......@@ -391,16 +390,16 @@ constant pool: [
Smi [6],
Smi [9],
SCOPE_INFO_TYPE,
Smi [275],
Smi [274],
Smi [6],
Smi [9],
Smi [23],
]
handlers: [
[20, 316, 324],
[23, 280, 282],
[93, 180, 188],
[212, 245, 247],
[20, 315, 323],
[23, 279, 281],
[92, 179, 187],
[211, 244, 246],
]
---
......@@ -411,7 +410,7 @@ snippet: "
"
frame size: 19
parameter count: 1
bytecode array length: 467
bytecode array length: 466
bytecodes: [
B(SwitchOnGeneratorState), R(0), U8(0), U8(5),
B(Mov), R(closure), R(1),
......@@ -432,7 +431,7 @@ bytecodes: [
B(LdaSmi), I8(1),
B(Star), R(1),
B(Mov), R(5), R(2),
B(JumpConstant), U8(18),
B(JumpConstant), U8(17),
/* 49 S> */ B(LdaGlobal), U8(7), U8(0),
B(Star), R(9),
/* 56 E> */ B(CallUndefinedReceiver0), R(9), U8(2),
......@@ -441,25 +440,25 @@ bytecodes: [
B(JumpIfUndefinedOrNull), U8(15),
B(Star), R(11),
B(CallProperty0), R(11), R(10), U8(6),
B(JumpIfJSReceiver), U8(23),
B(JumpIfJSReceiver), U8(22),
B(CallRuntime), U16(Runtime::kThrowSymbolAsyncIteratorInvalid), R(0), U8(0),
B(LdaNamedProperty), R(10), U8(9), U8(8),
B(GetIterator), R(10), U8(8),
B(Star), R(11),
B(CallProperty0), R(11), R(10), U8(10),
B(Star), R(11),
B(InvokeIntrinsic), U8(Runtime::k_CreateAsyncFromSyncIterator), R(11), U8(1),
B(Star), R(7),
B(LdaNamedProperty), R(7), U8(10), U8(12),
B(LdaNamedProperty), R(7), U8(9), U8(12),
B(Star), R(9),
B(LdaUndefined),
B(Star), R(8),
B(LdaZero),
B(Star), R(6),
B(Ldar), R(6),
B(SwitchOnSmiNoFeedback), U8(11), U8(2), I8(1),
B(SwitchOnSmiNoFeedback), U8(10), U8(2), I8(1),
B(CallProperty1), R(9), R(7), R(8), U8(14),
B(Jump), U8(140),
B(LdaNamedProperty), R(7), U8(13), U8(16),
B(LdaNamedProperty), R(7), U8(12), U8(16),
B(JumpIfUndefinedOrNull), U8(11),
B(Star), R(12),
B(CallProperty1), R(12), R(7), R(8), U8(18),
......@@ -481,12 +480,12 @@ bytecodes: [
B(Star), R(1),
B(Mov), R(12), R(2),
B(Jump), U8(241),
B(LdaNamedProperty), R(7), U8(14), U8(20),
B(LdaNamedProperty), R(7), U8(13), U8(20),
B(JumpIfUndefinedOrNull), U8(11),
B(Star), R(14),
B(CallProperty1), R(14), R(7), R(8), U8(22),
B(Jump), U8(66),
B(LdaNamedProperty), R(7), U8(13), U8(24),
B(LdaNamedProperty), R(7), U8(12), U8(24),
B(JumpIfUndefinedOrNull), U8(55),
B(Star), R(14),
B(CallProperty0), R(14), R(7), U8(26),
......@@ -526,9 +525,9 @@ bytecodes: [
B(Mov), R(14), R(5),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(5), U8(1),
B(LdaNamedProperty), R(5), U8(15), U8(28),
B(LdaNamedProperty), R(5), U8(14), U8(28),
B(JumpIfToBooleanTrue), U8(38),
B(LdaNamedProperty), R(5), U8(16), U8(30),
B(LdaNamedProperty), R(5), U8(15), U8(30),
B(Star), R(17),
B(LdaFalse),
B(Star), R(18),
......@@ -540,7 +539,7 @@ bytecodes: [
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1),
B(Star), R(6),
B(JumpLoop), U8(236), I8(0),
B(LdaNamedProperty), R(5), U8(16), U8(32),
B(LdaNamedProperty), R(5), U8(15), U8(32),
B(Star), R(7),
B(LdaSmi), I8(1),
B(TestReferenceEqual), R(6),
......@@ -552,7 +551,7 @@ bytecodes: [
B(Ldar), R(7),
B(Jump), U8(36),
B(Star), R(5),
B(CreateCatchContext), R(5), U8(17),
B(CreateCatchContext), R(5), U8(16),
B(Star), R(4),
B(LdaTheHole),
B(SetPendingMessage),
......@@ -581,7 +580,7 @@ bytecodes: [
B(Ldar), R(3),
B(SetPendingMessage),
B(Ldar), R(1),
B(SwitchOnSmiNoFeedback), U8(19), U8(3), I8(0),
B(SwitchOnSmiNoFeedback), U8(18), U8(3), I8(0),
B(Jump), U8(22),
B(Ldar), R(2),
B(ReThrow),
......@@ -598,15 +597,14 @@ bytecodes: [
]
constant pool: [
Smi [30],
Smi [158],
Smi [230],
Smi [280],
Smi [339],
Smi [157],
Smi [229],
Smi [279],
Smi [338],
Smi [16],
Smi [7],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["g"],
SYMBOL_TYPE,
SYMBOL_TYPE,
ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
Smi [11],
Smi [70],
......@@ -615,13 +613,13 @@ constant pool: [
ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
SCOPE_INFO_TYPE,
Smi [372],
Smi [371],
Smi [6],
Smi [9],
Smi [23],
]
handlers: [
[20, 413, 421],
[23, 375, 379],
[20, 412, 420],
[23, 374, 378],
]
......@@ -67,7 +67,7 @@ snippet: "
"
frame size: 10
parameter count: 1
bytecode array length: 107
bytecode array length: 106
bytecodes: [
/* 30 E> */ B(StackCheck),
/* 34 S> */ B(LdaGlobal), U8(0), U8(0),
......@@ -80,22 +80,22 @@ bytecodes: [
B(Star), R(3),
/* 49 S> */ B(CreateArrayLiteral), U8(4), U8(5), U8(37),
B(Star), R(7),
B(LdaNamedProperty), R(7), U8(5), U8(6),
B(GetIterator), R(7), U8(6),
B(Star), R(8),
B(CallProperty0), R(8), R(7), U8(8),
B(Mov), R(0), R(2),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
B(Star), R(6),
B(LdaNamedProperty), R(6), U8(6), U8(10),
B(LdaNamedProperty), R(6), U8(5), U8(10),
B(Star), R(5),
B(CallProperty0), R(5), R(6), U8(19),
B(Star), R(9),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(9), U8(1),
B(LdaNamedProperty), R(9), U8(7), U8(21),
B(LdaNamedProperty), R(9), U8(6), U8(21),
B(JumpIfToBooleanTrue), U8(19),
B(LdaNamedProperty), R(9), U8(8), U8(12),
B(LdaNamedProperty), R(9), U8(7), U8(12),
B(StaInArrayLiteral), R(4), R(3), U8(17),
B(Ldar), R(3),
B(Inc), U8(16),
......@@ -114,7 +114,6 @@ constant pool: [
ARRAY_BOILERPLATE_DESCRIPTION_TYPE,
Smi [1],
ARRAY_BOILERPLATE_DESCRIPTION_TYPE,
SYMBOL_TYPE,
ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
......
......@@ -12,12 +12,12 @@ snippet: "
"
frame size: 16
parameter count: 1
bytecode array length: 176
bytecode array length: 175
bytecodes: [
/* 30 E> */ B(StackCheck),
/* 45 S> */ B(CreateArrayLiteral), U8(0), U8(0), U8(37),
B(Star), R(1),
/* 60 S> */ B(LdaNamedProperty), R(1), U8(1), U8(1),
/* 60 S> */ B(GetIterator), R(1), U8(1),
B(Star), R(6),
B(CallProperty0), R(6), R(1), U8(3),
B(Mov), R(1), R(5),
......@@ -25,7 +25,7 @@ bytecodes: [
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
B(Star), R(4),
B(LdaNamedProperty), R(4), U8(2), U8(5),
B(LdaNamedProperty), R(4), U8(1), U8(5),
B(Star), R(3),
B(LdaFalse),
B(Star), R(7),
......@@ -38,9 +38,9 @@ bytecodes: [
B(Star), R(11),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(11), U8(1),
B(LdaNamedProperty), R(11), U8(3), U8(9),
B(LdaNamedProperty), R(11), U8(2), U8(9),
B(JumpIfToBooleanTrue), U8(15),
B(LdaNamedProperty), R(11), U8(4), U8(7),
B(LdaNamedProperty), R(11), U8(3), U8(7),
B(Star), R(11),
B(LdaFalse),
B(Star), R(7),
......@@ -60,7 +60,7 @@ bytecodes: [
B(Star), R(10),
B(Ldar), R(7),
B(JumpIfToBooleanTrue), U8(58),
B(LdaNamedProperty), R(4), U8(5), U8(13),
B(LdaNamedProperty), R(4), U8(4), U8(13),
B(Star), R(12),
B(JumpIfUndefinedOrNull), U8(50),
B(Mov), R(context), R(13),
......@@ -68,7 +68,7 @@ bytecodes: [
B(JumpIfTrue), U8(18),
B(Wide), B(LdaSmi), I16(159),
B(Star), R(14),
B(LdaConstant), U8(6),
B(LdaConstant), U8(5),
B(Star), R(15),
B(CallRuntime), U16(Runtime::kNewTypeError), R(14), U8(2),
B(Throw),
......@@ -95,7 +95,6 @@ bytecodes: [
]
constant pool: [
ARRAY_BOILERPLATE_DESCRIPTION_TYPE,
SYMBOL_TYPE,
ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
......@@ -103,8 +102,8 @@ constant pool: [
ONE_BYTE_INTERNALIZED_STRING_TYPE [""],
]
handlers: [
[44, 86, 94],
[118, 151, 153],
[43, 85, 93],
[117, 150, 152],
]
---
......@@ -114,12 +113,12 @@ snippet: "
"
frame size: 17
parameter count: 1
bytecode array length: 262
bytecode array length: 261
bytecodes: [
/* 30 E> */ B(StackCheck),
/* 48 S> */ B(CreateArrayLiteral), U8(0), U8(0), U8(37),
B(Star), R(2),
/* 69 S> */ B(LdaNamedProperty), R(2), U8(1), U8(1),
/* 69 S> */ B(GetIterator), R(2), U8(1),
B(Star), R(7),
B(CallProperty0), R(7), R(2), U8(3),
B(Mov), R(2), R(6),
......@@ -127,7 +126,7 @@ bytecodes: [
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
B(Star), R(5),
B(LdaNamedProperty), R(5), U8(2), U8(5),
B(LdaNamedProperty), R(5), U8(1), U8(5),
B(Star), R(4),
B(LdaFalse),
B(Star), R(8),
......@@ -140,9 +139,9 @@ bytecodes: [
B(Star), R(12),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(12), U8(1),
B(LdaNamedProperty), R(12), U8(3), U8(9),
B(LdaNamedProperty), R(12), U8(2), U8(9),
B(JumpIfToBooleanTrue), U8(13),
B(LdaNamedProperty), R(12), U8(4), U8(7),
B(LdaNamedProperty), R(12), U8(3), U8(7),
B(Star), R(12),
B(LdaFalse),
B(Star), R(8),
......@@ -155,9 +154,9 @@ bytecodes: [
B(Star), R(12),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(12), U8(1),
B(LdaNamedProperty), R(12), U8(3), U8(9),
B(LdaNamedProperty), R(12), U8(2), U8(9),
B(JumpIfToBooleanTrue), U8(15),
B(LdaNamedProperty), R(12), U8(4), U8(7),
B(LdaNamedProperty), R(12), U8(3), U8(7),
B(Star), R(12),
B(LdaFalse),
B(Star), R(8),
......@@ -175,9 +174,9 @@ bytecodes: [
B(Star), R(12),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(12), U8(1),
B(LdaNamedProperty), R(12), U8(3), U8(21),
B(LdaNamedProperty), R(12), U8(2), U8(21),
B(JumpIfToBooleanTrue), U8(19),
B(LdaNamedProperty), R(12), U8(4), U8(7),
B(LdaNamedProperty), R(12), U8(3), U8(7),
B(StaInArrayLiteral), R(13), R(14), U8(16),
B(Ldar), R(14),
B(Inc), U8(18),
......@@ -196,7 +195,7 @@ bytecodes: [
B(Star), R(11),
B(Ldar), R(8),
B(JumpIfToBooleanTrue), U8(58),
B(LdaNamedProperty), R(5), U8(5), U8(23),
B(LdaNamedProperty), R(5), U8(4), U8(23),
B(Star), R(13),
B(JumpIfUndefinedOrNull), U8(50),
B(Mov), R(context), R(14),
......@@ -204,7 +203,7 @@ bytecodes: [
B(JumpIfTrue), U8(18),
B(Wide), B(LdaSmi), I16(159),
B(Star), R(15),
B(LdaConstant), U8(6),
B(LdaConstant), U8(5),
B(Star), R(16),
B(CallRuntime), U16(Runtime::kNewTypeError), R(15), U8(2),
B(Throw),
......@@ -231,7 +230,6 @@ bytecodes: [
]
constant pool: [
ARRAY_BOILERPLATE_DESCRIPTION_TYPE,
SYMBOL_TYPE,
ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
......@@ -239,8 +237,8 @@ constant pool: [
ONE_BYTE_INTERNALIZED_STRING_TYPE [""],
]
handlers: [
[44, 172, 180],
[204, 237, 239],
[43, 171, 179],
[203, 236, 238],
]
---
......@@ -250,14 +248,14 @@ snippet: "
"
frame size: 18
parameter count: 1
bytecode array length: 227
bytecode array length: 226
bytecodes: [
/* 30 E> */ B(StackCheck),
/* 40 S> */ B(CreateEmptyObjectLiteral),
B(Star), R(0),
/* 51 S> */ B(CreateArrayLiteral), U8(0), U8(0), U8(37),
B(Star), R(2),
/* 68 S> */ B(LdaNamedProperty), R(2), U8(1), U8(1),
/* 68 S> */ B(GetIterator), R(2), U8(1),
B(Star), R(7),
B(CallProperty0), R(7), R(2), U8(3),
B(Mov), R(2), R(6),
......@@ -265,7 +263,7 @@ bytecodes: [
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
B(Star), R(5),
B(LdaNamedProperty), R(5), U8(2), U8(5),
B(LdaNamedProperty), R(5), U8(1), U8(5),
B(Star), R(4),
B(LdaFalse),
B(Star), R(8),
......@@ -279,16 +277,16 @@ bytecodes: [
B(Star), R(12),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(12), U8(1),
B(LdaNamedProperty), R(12), U8(3), U8(9),
B(LdaNamedProperty), R(12), U8(2), U8(9),
B(JumpIfToBooleanTrue), U8(15),
B(LdaNamedProperty), R(12), U8(4), U8(7),
B(LdaNamedProperty), R(12), U8(3), U8(7),
B(Star), R(12),
B(LdaFalse),
B(Star), R(8),
B(Ldar), R(12),
B(Jump), U8(3),
B(LdaUndefined),
B(StaNamedProperty), R(13), U8(5), U8(13),
B(StaNamedProperty), R(13), U8(4), U8(13),
/* 63 S> */ B(Ldar), R(8),
B(JumpIfToBooleanTrue), U8(37),
B(LdaTrue),
......@@ -297,9 +295,9 @@ bytecodes: [
B(Star), R(12),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(12), U8(1),
B(LdaNamedProperty), R(12), U8(3), U8(9),
B(LdaNamedProperty), R(12), U8(2), U8(9),
B(JumpIfToBooleanTrue), U8(15),
B(LdaNamedProperty), R(12), U8(4), U8(7),
B(LdaNamedProperty), R(12), U8(3), U8(7),
B(Star), R(12),
B(LdaFalse),
B(Star), R(8),
......@@ -319,7 +317,7 @@ bytecodes: [
B(Star), R(11),
B(Ldar), R(8),
B(JumpIfToBooleanTrue), U8(58),
B(LdaNamedProperty), R(5), U8(6), U8(17),
B(LdaNamedProperty), R(5), U8(5), U8(17),
B(Star), R(14),
B(JumpIfUndefinedOrNull), U8(50),
B(Mov), R(context), R(15),
......@@ -327,7 +325,7 @@ bytecodes: [
B(JumpIfTrue), U8(18),
B(Wide), B(LdaSmi), I16(159),
B(Star), R(16),
B(LdaConstant), U8(7),
B(LdaConstant), U8(6),
B(Star), R(17),
B(CallRuntime), U16(Runtime::kNewTypeError), R(16), U8(2),
B(Throw),
......@@ -354,7 +352,6 @@ bytecodes: [
]
constant pool: [
ARRAY_BOILERPLATE_DESCRIPTION_TYPE,
SYMBOL_TYPE,
ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
......@@ -363,8 +360,8 @@ constant pool: [
ONE_BYTE_INTERNALIZED_STRING_TYPE [""],
]
handlers: [
[47, 137, 145],
[169, 202, 204],
[46, 136, 144],
[168, 201, 203],
]
---
......
......@@ -16,7 +16,7 @@ snippet: "
"
frame size: 21
parameter count: 1
bytecode array length: 321
bytecode array length: 320
bytecodes: [
B(SwitchOnGeneratorState), R(0), U8(0), U8(2),
B(Mov), R(closure), R(4),
......@@ -31,15 +31,15 @@ bytecodes: [
B(JumpIfUndefinedOrNull), U8(15),
B(Star), R(8),
B(CallProperty0), R(8), R(7), U8(3),
B(JumpIfJSReceiver), U8(23),
B(JumpIfJSReceiver), U8(22),
B(CallRuntime), U16(Runtime::kThrowSymbolAsyncIteratorInvalid), R(0), U8(0),
B(LdaNamedProperty), R(7), U8(4), U8(5),
B(GetIterator), R(7), U8(5),
B(Star), R(8),
B(CallProperty0), R(8), R(7), U8(7),
B(Star), R(8),
B(InvokeIntrinsic), U8(Runtime::k_CreateAsyncFromSyncIterator), R(8), U8(1),
B(Star), R(6),
B(LdaNamedProperty), R(6), U8(5), U8(9),
B(LdaNamedProperty), R(6), U8(4), U8(9),
B(Star), R(5),
B(LdaFalse),
B(Star), R(9),
......@@ -64,9 +64,9 @@ bytecodes: [
B(Mov), R(14), R(13),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(13), U8(1),
B(LdaNamedProperty), R(13), U8(6), U8(13),
B(LdaNamedProperty), R(13), U8(5), U8(13),
B(JumpIfToBooleanTrue), U8(23),
B(LdaNamedProperty), R(13), U8(7), U8(15),
B(LdaNamedProperty), R(13), U8(6), U8(15),
B(Star), R(13),
B(LdaFalse),
B(Star), R(9),
......@@ -87,7 +87,7 @@ bytecodes: [
B(Star), R(12),
B(Ldar), R(9),
B(JumpIfToBooleanTrue), U8(94),
B(LdaNamedProperty), R(6), U8(8), U8(17),
B(LdaNamedProperty), R(6), U8(7), U8(17),
B(Star), R(16),
B(JumpIfUndefinedOrNull), U8(86),
B(Mov), R(context), R(17),
......@@ -95,7 +95,7 @@ bytecodes: [
B(JumpIfTrue), U8(18),
B(Wide), B(LdaSmi), I16(159),
B(Star), R(18),
B(LdaConstant), U8(9),
B(LdaConstant), U8(8),
B(Star), R(19),
B(CallRuntime), U16(Runtime::kNewTypeError), R(18), U8(2),
B(Throw),
......@@ -139,7 +139,7 @@ bytecodes: [
B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionResolve), R(5), U8(3),
/* 57 S> */ B(Return),
B(Star), R(5),
B(CreateCatchContext), R(5), U8(10),
B(CreateCatchContext), R(5), U8(9),
B(Star), R(4),
B(LdaTheHole),
B(SetPendingMessage),
......@@ -154,11 +154,10 @@ bytecodes: [
/* 57 S> */ B(Return),
]
constant pool: [
Smi [96],
Smi [225],
Smi [95],
Smi [224],
ARRAY_BOILERPLATE_DESCRIPTION_TYPE,
SYMBOL_TYPE,
SYMBOL_TYPE,
ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
......@@ -167,9 +166,9 @@ constant pool: [
SCOPE_INFO_TYPE,
]
handlers: [
[20, 293, 293],
[75, 155, 163],
[187, 256, 258],
[20, 292, 292],
[74, 154, 162],
[186, 255, 257],
]
---
......@@ -181,7 +180,7 @@ snippet: "
"
frame size: 21
parameter count: 1
bytecode array length: 342
bytecode array length: 341
bytecodes: [
B(SwitchOnGeneratorState), R(0), U8(0), U8(2),
B(Mov), R(closure), R(4),
......@@ -196,15 +195,15 @@ bytecodes: [
B(JumpIfUndefinedOrNull), U8(15),
B(Star), R(8),
B(CallProperty0), R(8), R(7), U8(3),
B(JumpIfJSReceiver), U8(23),
B(JumpIfJSReceiver), U8(22),
B(CallRuntime), U16(Runtime::kThrowSymbolAsyncIteratorInvalid), R(0), U8(0),
B(LdaNamedProperty), R(7), U8(4), U8(5),
B(GetIterator), R(7), U8(5),
B(Star), R(8),
B(CallProperty0), R(8), R(7), U8(7),
B(Star), R(8),
B(InvokeIntrinsic), U8(Runtime::k_CreateAsyncFromSyncIterator), R(8), U8(1),
B(Star), R(6),
B(LdaNamedProperty), R(6), U8(5), U8(9),
B(LdaNamedProperty), R(6), U8(4), U8(9),
B(Star), R(5),
B(LdaFalse),
B(Star), R(9),
......@@ -229,9 +228,9 @@ bytecodes: [
B(Mov), R(14), R(13),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(13), U8(1),
B(LdaNamedProperty), R(13), U8(6), U8(13),
B(LdaNamedProperty), R(13), U8(5), U8(13),
B(JumpIfToBooleanTrue), U8(27),
B(LdaNamedProperty), R(13), U8(7), U8(15),
B(LdaNamedProperty), R(13), U8(6), U8(15),
B(Star), R(13),
B(LdaFalse),
B(Star), R(9),
......@@ -254,7 +253,7 @@ bytecodes: [
B(Star), R(12),
B(Ldar), R(9),
B(JumpIfToBooleanTrue), U8(94),
B(LdaNamedProperty), R(6), U8(8), U8(17),
B(LdaNamedProperty), R(6), U8(7), U8(17),
B(Star), R(16),
B(JumpIfUndefinedOrNull), U8(86),
B(Mov), R(context), R(17),
......@@ -262,7 +261,7 @@ bytecodes: [
B(JumpIfTrue), U8(18),
B(Wide), B(LdaSmi), I16(159),
B(Star), R(18),
B(LdaConstant), U8(9),
B(LdaConstant), U8(8),
B(Star), R(19),
B(CallRuntime), U16(Runtime::kNewTypeError), R(18), U8(2),
B(Throw),
......@@ -294,7 +293,7 @@ bytecodes: [
B(Ldar), R(12),
B(SetPendingMessage),
B(Ldar), R(10),
B(SwitchOnSmiNoFeedback), U8(10), U8(2), I8(0),
B(SwitchOnSmiNoFeedback), U8(9), U8(2), I8(0),
B(Jump), U8(19),
B(Ldar), R(11),
B(ReThrow),
......@@ -312,7 +311,7 @@ bytecodes: [
B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionResolve), R(5), U8(3),
/* 68 S> */ B(Return),
B(Star), R(5),
B(CreateCatchContext), R(5), U8(12),
B(CreateCatchContext), R(5), U8(11),
B(Star), R(4),
B(LdaTheHole),
B(SetPendingMessage),
......@@ -327,11 +326,10 @@ bytecodes: [
/* 68 S> */ B(Return),
]
constant pool: [
Smi [96],
Smi [229],
Smi [95],
Smi [228],
ARRAY_BOILERPLATE_DESCRIPTION_TYPE,
SYMBOL_TYPE,
SYMBOL_TYPE,
ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
......@@ -342,9 +340,9 @@ constant pool: [
SCOPE_INFO_TYPE,
]
handlers: [
[20, 314, 314],
[75, 159, 167],
[191, 260, 262],
[20, 313, 313],
[74, 158, 166],
[190, 259, 261],
]
---
......@@ -359,7 +357,7 @@ snippet: "
"
frame size: 21
parameter count: 1
bytecode array length: 337
bytecode array length: 336
bytecodes: [
B(SwitchOnGeneratorState), R(0), U8(0), U8(2),
B(Mov), R(closure), R(4),
......@@ -374,15 +372,15 @@ bytecodes: [
B(JumpIfUndefinedOrNull), U8(15),
B(Star), R(8),
B(CallProperty0), R(8), R(7), U8(3),
B(JumpIfJSReceiver), U8(23),
B(JumpIfJSReceiver), U8(22),
B(CallRuntime), U16(Runtime::kThrowSymbolAsyncIteratorInvalid), R(0), U8(0),
B(LdaNamedProperty), R(7), U8(4), U8(5),
B(GetIterator), R(7), U8(5),
B(Star), R(8),
B(CallProperty0), R(8), R(7), U8(7),
B(Star), R(8),
B(InvokeIntrinsic), U8(Runtime::k_CreateAsyncFromSyncIterator), R(8), U8(1),
B(Star), R(6),
B(LdaNamedProperty), R(6), U8(5), U8(9),
B(LdaNamedProperty), R(6), U8(4), U8(9),
B(Star), R(5),
B(LdaFalse),
B(Star), R(9),
......@@ -407,9 +405,9 @@ bytecodes: [
B(Mov), R(14), R(13),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(13), U8(1),
B(LdaNamedProperty), R(13), U8(6), U8(13),
B(LdaNamedProperty), R(13), U8(5), U8(13),
B(JumpIfToBooleanTrue), U8(39),
B(LdaNamedProperty), R(13), U8(7), U8(15),
B(LdaNamedProperty), R(13), U8(6), U8(15),
B(Star), R(13),
B(LdaFalse),
B(Star), R(9),
......@@ -437,7 +435,7 @@ bytecodes: [
B(Star), R(12),
B(Ldar), R(9),
B(JumpIfToBooleanTrue), U8(94),
B(LdaNamedProperty), R(6), U8(8), U8(19),
B(LdaNamedProperty), R(6), U8(7), U8(19),
B(Star), R(16),
B(JumpIfUndefinedOrNull), U8(86),
B(Mov), R(context), R(17),
......@@ -445,7 +443,7 @@ bytecodes: [
B(JumpIfTrue), U8(18),
B(Wide), B(LdaSmi), I16(159),
B(Star), R(18),
B(LdaConstant), U8(9),
B(LdaConstant), U8(8),
B(Star), R(19),
B(CallRuntime), U16(Runtime::kNewTypeError), R(18), U8(2),
B(Throw),
......@@ -489,7 +487,7 @@ bytecodes: [
B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionResolve), R(5), U8(3),
/* 114 S> */ B(Return),
B(Star), R(5),
B(CreateCatchContext), R(5), U8(10),
B(CreateCatchContext), R(5), U8(9),
B(Star), R(4),
B(LdaTheHole),
B(SetPendingMessage),
......@@ -504,11 +502,10 @@ bytecodes: [
/* 114 S> */ B(Return),
]
constant pool: [
Smi [96],
Smi [241],
Smi [95],
Smi [240],
ARRAY_BOILERPLATE_DESCRIPTION_TYPE,
SYMBOL_TYPE,
SYMBOL_TYPE,
ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
......@@ -517,9 +514,9 @@ constant pool: [
SCOPE_INFO_TYPE,
]
handlers: [
[20, 309, 309],
[75, 171, 179],
[203, 272, 274],
[20, 308, 308],
[74, 170, 178],
[202, 271, 273],
]
---
......@@ -532,7 +529,7 @@ snippet: "
"
frame size: 17
parameter count: 1
bytecode array length: 259
bytecode array length: 258
bytecodes: [
B(Mov), R(closure), R(2),
B(Mov), R(this), R(3),
......@@ -544,13 +541,13 @@ bytecodes: [
B(Star), R(1),
/* 68 S> */ B(CreateArrayLiteral), U8(1), U8(1), U8(37),
B(Star), R(5),
B(LdaNamedProperty), R(5), U8(2), U8(2),
B(GetIterator), R(5), U8(2),
B(Star), R(6),
B(CallProperty0), R(6), R(5), U8(4),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
B(Star), R(4),
B(LdaNamedProperty), R(4), U8(3), U8(6),
B(LdaNamedProperty), R(4), U8(2), U8(6),
B(Star), R(3),
B(LdaFalse),
B(Star), R(7),
......@@ -561,16 +558,16 @@ bytecodes: [
B(Star), R(11),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(11), U8(1),
B(LdaNamedProperty), R(11), U8(4), U8(10),
B(LdaNamedProperty), R(11), U8(3), U8(10),
B(JumpIfToBooleanTrue), U8(33),
B(LdaNamedProperty), R(11), U8(5), U8(12),
B(LdaNamedProperty), R(11), U8(4), U8(12),
B(Star), R(11),
B(LdaFalse),
B(Star), R(7),
B(Ldar), R(11),
/* 58 E> */ B(StaNamedProperty), R(1), U8(6), U8(14),
/* 58 E> */ B(StaNamedProperty), R(1), U8(5), U8(14),
/* 53 E> */ B(StackCheck),
/* 87 S> */ B(LdaNamedProperty), R(1), U8(6), U8(16),
/* 87 S> */ B(LdaNamedProperty), R(1), U8(5), U8(16),
B(Star), R(9),
B(LdaSmi), I8(1),
B(Star), R(8),
......@@ -588,7 +585,7 @@ bytecodes: [
B(Star), R(10),
B(Ldar), R(7),
B(JumpIfToBooleanTrue), U8(58),
B(LdaNamedProperty), R(4), U8(7), U8(18),
B(LdaNamedProperty), R(4), U8(6), U8(18),
B(Star), R(13),
B(JumpIfUndefinedOrNull), U8(50),
B(Mov), R(context), R(14),
......@@ -596,7 +593,7 @@ bytecodes: [
B(JumpIfTrue), U8(18),
B(Wide), B(LdaSmi), I16(159),
B(Star), R(15),
B(LdaConstant), U8(8),
B(LdaConstant), U8(7),
B(Star), R(16),
B(CallRuntime), U16(Runtime::kNewTypeError), R(15), U8(2),
B(Throw),
......@@ -614,7 +611,7 @@ bytecodes: [
B(Ldar), R(10),
B(SetPendingMessage),
B(Ldar), R(8),
B(SwitchOnSmiNoFeedback), U8(9), U8(2), I8(0),
B(SwitchOnSmiNoFeedback), U8(8), U8(2), I8(0),
B(Jump), U8(19),
B(Ldar), R(9),
B(ReThrow),
......@@ -632,7 +629,7 @@ bytecodes: [
B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionResolve), R(3), U8(3),
/* 96 S> */ B(Return),
B(Star), R(3),
B(CreateCatchContext), R(3), U8(11),
B(CreateCatchContext), R(3), U8(10),
B(Star), R(2),
B(LdaTheHole),
B(SetPendingMessage),
......@@ -649,7 +646,6 @@ bytecodes: [
constant pool: [
OBJECT_BOILERPLATE_DESCRIPTION_TYPE,
ARRAY_BOILERPLATE_DESCRIPTION_TYPE,
SYMBOL_TYPE,
ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
......@@ -661,8 +657,8 @@ constant pool: [
SCOPE_INFO_TYPE,
]
handlers: [
[16, 231, 231],
[59, 112, 120],
[144, 177, 179],
[16, 230, 230],
[58, 111, 119],
[143, 176, 178],
]
......@@ -11,18 +11,18 @@ snippet: "
"
frame size: 15
parameter count: 1
bytecode array length: 171
bytecode array length: 170
bytecodes: [
/* 30 E> */ B(StackCheck),
/* 48 S> */ B(CreateArrayLiteral), U8(0), U8(0), U8(37),
B(Star), R(4),
B(LdaNamedProperty), R(4), U8(1), U8(1),
B(GetIterator), R(4), U8(1),
B(Star), R(5),
B(CallProperty0), R(5), R(4), U8(3),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
B(Star), R(3),
B(LdaNamedProperty), R(3), U8(2), U8(5),
B(LdaNamedProperty), R(3), U8(1), U8(5),
B(Star), R(2),
B(LdaFalse),
B(Star), R(6),
......@@ -33,9 +33,9 @@ bytecodes: [
B(Star), R(10),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(10), U8(1),
B(LdaNamedProperty), R(10), U8(3), U8(9),
B(LdaNamedProperty), R(10), U8(2), U8(9),
B(JumpIfToBooleanTrue), U8(23),
B(LdaNamedProperty), R(10), U8(4), U8(11),
B(LdaNamedProperty), R(10), U8(3), U8(11),
B(Star), R(10),
B(LdaFalse),
B(Star), R(6),
......@@ -56,7 +56,7 @@ bytecodes: [
B(Star), R(9),
B(Ldar), R(6),
B(JumpIfToBooleanTrue), U8(58),
B(LdaNamedProperty), R(3), U8(5), U8(13),
B(LdaNamedProperty), R(3), U8(4), U8(13),
B(Star), R(11),
B(JumpIfUndefinedOrNull), U8(50),
B(Mov), R(context), R(12),
......@@ -64,7 +64,7 @@ bytecodes: [
B(JumpIfTrue), U8(18),
B(Wide), B(LdaSmi), I16(159),
B(Star), R(13),
B(LdaConstant), U8(6),
B(LdaConstant), U8(5),
B(Star), R(14),
B(CallRuntime), U16(Runtime::kNewTypeError), R(13), U8(2),
B(Throw),
......@@ -91,7 +91,6 @@ bytecodes: [
]
constant pool: [
ARRAY_BOILERPLATE_DESCRIPTION_TYPE,
SYMBOL_TYPE,
ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
......@@ -99,8 +98,8 @@ constant pool: [
ONE_BYTE_INTERNALIZED_STRING_TYPE [""],
]
handlers: [
[38, 81, 89],
[113, 146, 148],
[37, 80, 88],
[112, 145, 147],
]
---
......@@ -110,19 +109,19 @@ snippet: "
"
frame size: 16
parameter count: 1
bytecode array length: 182
bytecode array length: 181
bytecodes: [
/* 30 E> */ B(StackCheck),
/* 42 S> */ B(LdaConstant), U8(0),
B(Star), R(0),
/* 68 S> */ B(LdaNamedProperty), R(0), U8(1), U8(0),
/* 68 S> */ B(GetIterator), R(0), U8(0),
B(Star), R(6),
B(CallProperty0), R(6), R(0), U8(2),
B(Mov), R(0), R(5),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
B(Star), R(4),
B(LdaNamedProperty), R(4), U8(2), U8(4),
B(LdaNamedProperty), R(4), U8(1), U8(4),
B(Star), R(3),
B(LdaFalse),
B(Star), R(7),
......@@ -133,9 +132,9 @@ bytecodes: [
B(Star), R(11),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(11), U8(1),
B(LdaNamedProperty), R(11), U8(3), U8(8),
B(LdaNamedProperty), R(11), U8(2), U8(8),
B(JumpIfToBooleanTrue), U8(27),
B(LdaNamedProperty), R(11), U8(4), U8(10),
B(LdaNamedProperty), R(11), U8(3), U8(10),
B(Star), R(11),
B(LdaFalse),
B(Star), R(7),
......@@ -158,7 +157,7 @@ bytecodes: [
B(Star), R(10),
B(Ldar), R(7),
B(JumpIfToBooleanTrue), U8(58),
B(LdaNamedProperty), R(4), U8(5), U8(12),
B(LdaNamedProperty), R(4), U8(4), U8(12),
B(Star), R(12),
B(JumpIfUndefinedOrNull), U8(50),
B(Mov), R(context), R(13),
......@@ -166,7 +165,7 @@ bytecodes: [
B(JumpIfTrue), U8(18),
B(Wide), B(LdaSmi), I16(159),
B(Star), R(14),
B(LdaConstant), U8(6),
B(LdaConstant), U8(5),
B(Star), R(15),
B(CallRuntime), U16(Runtime::kNewTypeError), R(14), U8(2),
B(Throw),
......@@ -184,7 +183,7 @@ bytecodes: [
B(Ldar), R(10),
B(SetPendingMessage),
B(Ldar), R(8),
B(SwitchOnSmiNoFeedback), U8(7), U8(2), I8(0),
B(SwitchOnSmiNoFeedback), U8(6), U8(2), I8(0),
B(Jump), U8(8),
B(Ldar), R(9),
B(ReThrow),
......@@ -195,7 +194,6 @@ bytecodes: [
]
constant pool: [
ONE_BYTE_INTERNALIZED_STRING_TYPE ["potatoes"],
SYMBOL_TYPE,
ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
......@@ -205,8 +203,8 @@ constant pool: [
Smi [9],
]
handlers: [
[39, 86, 94],
[118, 151, 153],
[38, 85, 93],
[117, 150, 152],
]
---
......@@ -218,18 +216,18 @@ snippet: "
"
frame size: 15
parameter count: 1
bytecode array length: 187
bytecode array length: 186
bytecodes: [
/* 30 E> */ B(StackCheck),
/* 48 S> */ B(CreateArrayLiteral), U8(0), U8(0), U8(37),
B(Star), R(4),
B(LdaNamedProperty), R(4), U8(1), U8(1),
B(GetIterator), R(4), U8(1),
B(Star), R(5),
B(CallProperty0), R(5), R(4), U8(3),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
B(Star), R(3),
B(LdaNamedProperty), R(3), U8(2), U8(5),
B(LdaNamedProperty), R(3), U8(1), U8(5),
B(Star), R(2),
B(LdaFalse),
B(Star), R(6),
......@@ -240,9 +238,9 @@ bytecodes: [
B(Star), R(10),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(10), U8(1),
B(LdaNamedProperty), R(10), U8(3), U8(9),
B(LdaNamedProperty), R(10), U8(2), U8(9),
B(JumpIfToBooleanTrue), U8(39),
B(LdaNamedProperty), R(10), U8(4), U8(11),
B(LdaNamedProperty), R(10), U8(3), U8(11),
B(Star), R(10),
B(LdaFalse),
B(Star), R(6),
......@@ -270,7 +268,7 @@ bytecodes: [
B(Star), R(9),
B(Ldar), R(6),
B(JumpIfToBooleanTrue), U8(58),
B(LdaNamedProperty), R(3), U8(5), U8(15),
B(LdaNamedProperty), R(3), U8(4), U8(15),
B(Star), R(11),
B(JumpIfUndefinedOrNull), U8(50),
B(Mov), R(context), R(12),
......@@ -278,7 +276,7 @@ bytecodes: [
B(JumpIfTrue), U8(18),
B(Wide), B(LdaSmi), I16(159),
B(Star), R(13),
B(LdaConstant), U8(6),
B(LdaConstant), U8(5),
B(Star), R(14),
B(CallRuntime), U16(Runtime::kNewTypeError), R(13), U8(2),
B(Throw),
......@@ -305,7 +303,6 @@ bytecodes: [
]
constant pool: [
ARRAY_BOILERPLATE_DESCRIPTION_TYPE,
SYMBOL_TYPE,
ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
......@@ -313,8 +310,8 @@ constant pool: [
ONE_BYTE_INTERNALIZED_STRING_TYPE [""],
]
handlers: [
[38, 97, 105],
[129, 162, 164],
[37, 96, 104],
[128, 161, 163],
]
---
......@@ -324,20 +321,20 @@ snippet: "
"
frame size: 15
parameter count: 1
bytecode array length: 193
bytecode array length: 192
bytecodes: [
/* 30 E> */ B(StackCheck),
/* 42 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(41),
B(Star), R(0),
/* 77 S> */ B(CreateArrayLiteral), U8(1), U8(1), U8(37),
B(Star), R(3),
B(LdaNamedProperty), R(3), U8(2), U8(2),
B(GetIterator), R(3), U8(2),
B(Star), R(4),
B(CallProperty0), R(4), R(3), U8(4),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
B(Star), R(2),
B(LdaNamedProperty), R(2), U8(3), U8(6),
B(LdaNamedProperty), R(2), U8(2), U8(6),
B(Star), R(1),
B(LdaFalse),
B(Star), R(5),
......@@ -348,16 +345,16 @@ bytecodes: [
B(Star), R(9),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(9), U8(1),
B(LdaNamedProperty), R(9), U8(4), U8(10),
B(LdaNamedProperty), R(9), U8(3), U8(10),
B(JumpIfToBooleanTrue), U8(33),
B(LdaNamedProperty), R(9), U8(5), U8(12),
B(LdaNamedProperty), R(9), U8(4), U8(12),
B(Star), R(9),
B(LdaFalse),
B(Star), R(5),
B(Ldar), R(9),
/* 67 E> */ B(StaNamedProperty), R(0), U8(6), U8(14),
/* 67 E> */ B(StaNamedProperty), R(0), U8(5), U8(14),
/* 62 E> */ B(StackCheck),
/* 96 S> */ B(LdaNamedProperty), R(0), U8(6), U8(16),
/* 96 S> */ B(LdaNamedProperty), R(0), U8(5), U8(16),
B(Star), R(7),
B(LdaSmi), I8(1),
B(Star), R(6),
......@@ -375,7 +372,7 @@ bytecodes: [
B(Star), R(8),
B(Ldar), R(5),
B(JumpIfToBooleanTrue), U8(58),
B(LdaNamedProperty), R(2), U8(7), U8(18),
B(LdaNamedProperty), R(2), U8(6), U8(18),
B(Star), R(11),
B(JumpIfUndefinedOrNull), U8(50),
B(Mov), R(context), R(12),
......@@ -383,7 +380,7 @@ bytecodes: [
B(JumpIfTrue), U8(18),
B(Wide), B(LdaSmi), I16(159),
B(Star), R(13),
B(LdaConstant), U8(8),
B(LdaConstant), U8(7),
B(Star), R(14),
B(CallRuntime), U16(Runtime::kNewTypeError), R(13), U8(2),
B(Throw),
......@@ -401,7 +398,7 @@ bytecodes: [
B(Ldar), R(8),
B(SetPendingMessage),
B(Ldar), R(6),
B(SwitchOnSmiNoFeedback), U8(9), U8(2), I8(0),
B(SwitchOnSmiNoFeedback), U8(8), U8(2), I8(0),
B(Jump), U8(8),
B(Ldar), R(7),
B(ReThrow),
......@@ -413,7 +410,6 @@ bytecodes: [
constant pool: [
OBJECT_BOILERPLATE_DESCRIPTION_TYPE,
ARRAY_BOILERPLATE_DESCRIPTION_TYPE,
SYMBOL_TYPE,
ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
......@@ -424,7 +420,7 @@ constant pool: [
Smi [9],
]
handlers: [
[44, 97, 105],
[129, 162, 164],
[43, 96, 104],
[128, 161, 163],
]
......@@ -15,17 +15,17 @@ snippet: "
"
frame size: 17
parameter count: 2
bytecode array length: 171
bytecode array length: 170
bytecodes: [
/* 10 E> */ B(StackCheck),
/* 34 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(0),
/* 34 S> */ B(GetIterator), R(arg0), U8(0),
B(Star), R(7),
B(CallProperty0), R(7), R(arg0), U8(2),
B(Mov), R(arg0), R(6),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
B(Star), R(5),
B(LdaNamedProperty), R(5), U8(1), U8(4),
B(LdaNamedProperty), R(5), U8(0), U8(4),
B(Star), R(4),
B(LdaFalse),
B(Star), R(8),
......@@ -36,9 +36,9 @@ bytecodes: [
B(Star), R(12),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(12), U8(1),
B(LdaNamedProperty), R(12), U8(2), U8(8),
B(LdaNamedProperty), R(12), U8(1), U8(8),
B(JumpIfToBooleanTrue), U8(26),
B(LdaNamedProperty), R(12), U8(3), U8(10),
B(LdaNamedProperty), R(12), U8(2), U8(10),
B(Star), R(12),
B(LdaFalse),
B(Star), R(8),
......@@ -60,7 +60,7 @@ bytecodes: [
B(Star), R(11),
B(Ldar), R(8),
B(JumpIfToBooleanTrue), U8(58),
B(LdaNamedProperty), R(5), U8(4), U8(12),
B(LdaNamedProperty), R(5), U8(3), U8(12),
B(Star), R(13),
B(JumpIfUndefinedOrNull), U8(50),
B(Mov), R(context), R(14),
......@@ -68,7 +68,7 @@ bytecodes: [
B(JumpIfTrue), U8(18),
B(Wide), B(LdaSmi), I16(159),
B(Star), R(15),
B(LdaConstant), U8(5),
B(LdaConstant), U8(4),
B(Star), R(16),
B(CallRuntime), U16(Runtime::kNewTypeError), R(15), U8(2),
B(Throw),
......@@ -94,7 +94,6 @@ bytecodes: [
/* 54 S> */ B(Return),
]
constant pool: [
SYMBOL_TYPE,
ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
......@@ -102,8 +101,8 @@ constant pool: [
ONE_BYTE_INTERNALIZED_STRING_TYPE [""],
]
handlers: [
[35, 81, 89],
[113, 146, 148],
[34, 80, 88],
[112, 145, 147],
]
---
......@@ -115,7 +114,7 @@ snippet: "
"
frame size: 22
parameter count: 2
bytecode array length: 252
bytecode array length: 251
bytecodes: [
B(CreateFunctionContext), U8(0), U8(4),
B(PushContext), R(2),
......@@ -134,13 +133,13 @@ bytecodes: [
B(StaCurrentContextSlot), U8(4),
/* 34 S> */ B(LdaContextSlot), R(3), U8(4), U8(0),
B(Star), R(6),
B(LdaNamedProperty), R(6), U8(2), U8(0),
B(GetIterator), R(6), U8(0),
B(Star), R(7),
B(CallProperty0), R(7), R(6), U8(2),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
B(Star), R(5),
B(LdaNamedProperty), R(5), U8(3), U8(4),
B(LdaNamedProperty), R(5), U8(2), U8(4),
B(Star), R(4),
B(LdaFalse),
B(Star), R(8),
......@@ -151,23 +150,23 @@ bytecodes: [
B(Star), R(12),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(12), U8(1),
B(LdaNamedProperty), R(12), U8(4), U8(8),
B(LdaNamedProperty), R(12), U8(3), U8(8),
B(JumpIfToBooleanTrue), U8(75),
B(LdaNamedProperty), R(12), U8(5), U8(10),
B(LdaNamedProperty), R(12), U8(4), U8(10),
B(Star), R(12),
B(LdaFalse),
B(Star), R(8),
B(Mov), R(12), R(0),
/* 20 E> */ B(StackCheck),
B(CreateBlockContext), U8(6),
B(CreateBlockContext), U8(5),
B(PushContext), R(13),
B(LdaTheHole),
B(StaCurrentContextSlot), U8(4),
/* 29 S> */ B(Ldar), R(0),
/* 29 E> */ B(StaCurrentContextSlot), U8(4),
/* 41 S> */ B(LdaLookupGlobalSlot), U8(7), U8(12), U8(3),
/* 41 S> */ B(LdaLookupGlobalSlot), U8(6), U8(12), U8(3),
B(Star), R(14),
B(LdaConstant), U8(8),
B(LdaConstant), U8(7),
B(Star), R(15),
B(LdaZero),
B(Star), R(19),
......@@ -196,7 +195,7 @@ bytecodes: [
B(Star), R(11),
B(Ldar), R(8),
B(JumpIfToBooleanTrue), U8(58),
B(LdaNamedProperty), R(5), U8(9), U8(16),
B(LdaNamedProperty), R(5), U8(8), U8(16),
B(Star), R(14),
B(JumpIfUndefinedOrNull), U8(50),
B(Mov), R(context), R(15),
......@@ -204,7 +203,7 @@ bytecodes: [
B(JumpIfTrue), U8(18),
B(Wide), B(LdaSmi), I16(159),
B(Star), R(16),
B(LdaConstant), U8(10),
B(LdaConstant), U8(9),
B(Star), R(17),
B(CallRuntime), U16(Runtime::kNewTypeError), R(16), U8(2),
B(Throw),
......@@ -233,7 +232,6 @@ bytecodes: [
constant pool: [
SCOPE_INFO_TYPE,
SCOPE_INFO_TYPE,
SYMBOL_TYPE,
ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
......@@ -244,8 +242,8 @@ constant pool: [
ONE_BYTE_INTERNALIZED_STRING_TYPE [""],
]
handlers: [
[65, 160, 168],
[192, 225, 227],
[64, 159, 167],
[191, 224, 226],
]
---
......@@ -257,17 +255,17 @@ snippet: "
"
frame size: 16
parameter count: 2
bytecode array length: 188
bytecode array length: 187
bytecodes: [
/* 10 E> */ B(StackCheck),
/* 34 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(0),
/* 34 S> */ B(GetIterator), R(arg0), U8(0),
B(Star), R(5),
B(CallProperty0), R(5), R(arg0), U8(2),
B(Mov), R(arg0), R(4),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
B(Star), R(3),
B(LdaNamedProperty), R(3), U8(1), U8(4),
B(LdaNamedProperty), R(3), U8(0), U8(4),
B(Star), R(2),
B(LdaFalse),
B(Star), R(6),
......@@ -278,21 +276,21 @@ bytecodes: [
B(Star), R(10),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(10), U8(1),
B(LdaNamedProperty), R(10), U8(2), U8(8),
B(LdaNamedProperty), R(10), U8(1), U8(8),
B(JumpIfToBooleanTrue), U8(43),
B(LdaNamedProperty), R(10), U8(3), U8(10),
B(LdaNamedProperty), R(10), U8(2), U8(10),
B(Star), R(10),
B(LdaFalse),
B(Star), R(6),
B(Mov), R(10), R(0),
/* 20 E> */ B(StackCheck),
B(CreateBlockContext), U8(4),
B(CreateBlockContext), U8(3),
B(PushContext), R(11),
B(LdaTheHole),
B(StaCurrentContextSlot), U8(4),
/* 29 S> */ B(Ldar), R(0),
/* 29 E> */ B(StaCurrentContextSlot), U8(4),
/* 41 S> */ B(CreateClosure), U8(5), U8(0), U8(2),
/* 41 S> */ B(CreateClosure), U8(4), U8(0), U8(2),
B(Star), R(12),
/* 67 E> */ B(CallUndefinedReceiver0), R(12), U8(12),
B(PopContext), R(11),
......@@ -310,7 +308,7 @@ bytecodes: [
B(Star), R(9),
B(Ldar), R(6),
B(JumpIfToBooleanTrue), U8(58),
B(LdaNamedProperty), R(3), U8(6), U8(14),
B(LdaNamedProperty), R(3), U8(5), U8(14),
B(Star), R(12),
B(JumpIfUndefinedOrNull), U8(50),
B(Mov), R(context), R(13),
......@@ -318,7 +316,7 @@ bytecodes: [
B(JumpIfTrue), U8(18),
B(Wide), B(LdaSmi), I16(159),
B(Star), R(14),
B(LdaConstant), U8(7),
B(LdaConstant), U8(6),
B(Star), R(15),
B(CallRuntime), U16(Runtime::kNewTypeError), R(14), U8(2),
B(Throw),
......@@ -344,7 +342,6 @@ bytecodes: [
/* 73 S> */ B(Return),
]
constant pool: [
SYMBOL_TYPE,
ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
......@@ -354,8 +351,8 @@ constant pool: [
ONE_BYTE_INTERNALIZED_STRING_TYPE [""],
]
handlers: [
[35, 98, 106],
[130, 163, 165],
[34, 97, 105],
[129, 162, 164],
]
---
......@@ -367,17 +364,17 @@ snippet: "
"
frame size: 19
parameter count: 2
bytecode array length: 195
bytecode array length: 194
bytecodes: [
/* 10 E> */ B(StackCheck),
/* 41 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(0),
/* 41 S> */ B(GetIterator), R(arg0), U8(0),
B(Star), R(9),
B(CallProperty0), R(9), R(arg0), U8(2),
B(Mov), R(arg0), R(8),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
B(Star), R(7),
B(LdaNamedProperty), R(7), U8(1), U8(4),
B(LdaNamedProperty), R(7), U8(0), U8(4),
B(Star), R(6),
B(LdaFalse),
B(Star), R(10),
......@@ -388,9 +385,9 @@ bytecodes: [
B(Star), R(14),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(14), U8(1),
B(LdaNamedProperty), R(14), U8(2), U8(8),
B(LdaNamedProperty), R(14), U8(1), U8(8),
B(JumpIfToBooleanTrue), U8(50),
B(LdaNamedProperty), R(14), U8(3), U8(10),
B(LdaNamedProperty), R(14), U8(2), U8(10),
B(Star), R(14),
B(LdaFalse),
B(Star), R(10),
......@@ -401,9 +398,9 @@ bytecodes: [
B(JumpIfNotUndefined), U8(7),
/* 29 E> */ B(CallRuntime), U16(Runtime::kThrowPatternAssignmentNonCoercible), R(0), U8(0),
B(Star), R(15),
/* 31 S> */ B(LdaNamedProperty), R(15), U8(4), U8(12),
/* 31 S> */ B(LdaNamedProperty), R(15), U8(3), U8(12),
B(Star), R(3),
/* 34 S> */ B(LdaNamedProperty), R(15), U8(5), U8(14),
/* 34 S> */ B(LdaNamedProperty), R(15), U8(4), U8(14),
B(Star), R(4),
/* 56 S> */ B(Ldar), R(4),
/* 58 E> */ B(Add), R(3), U8(16),
......@@ -421,7 +418,7 @@ bytecodes: [
B(Star), R(13),
B(Ldar), R(10),
B(JumpIfToBooleanTrue), U8(58),
B(LdaNamedProperty), R(7), U8(6), U8(17),
B(LdaNamedProperty), R(7), U8(5), U8(17),
B(Star), R(15),
B(JumpIfUndefinedOrNull), U8(50),
B(Mov), R(context), R(16),
......@@ -429,7 +426,7 @@ bytecodes: [
B(JumpIfTrue), U8(18),
B(Wide), B(LdaSmi), I16(159),
B(Star), R(17),
B(LdaConstant), U8(7),
B(LdaConstant), U8(6),
B(Star), R(18),
B(CallRuntime), U16(Runtime::kNewTypeError), R(17), U8(2),
B(Throw),
......@@ -455,7 +452,6 @@ bytecodes: [
/* 65 S> */ B(Return),
]
constant pool: [
SYMBOL_TYPE,
ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
......@@ -465,8 +461,8 @@ constant pool: [
ONE_BYTE_INTERNALIZED_STRING_TYPE [""],
]
handlers: [
[35, 105, 113],
[137, 170, 172],
[34, 104, 112],
[136, 169, 171],
]
---
......@@ -478,7 +474,7 @@ snippet: "
"
frame size: 18
parameter count: 2
bytecode array length: 212
bytecode array length: 211
bytecodes: [
B(SwitchOnGeneratorState), R(0), U8(0), U8(1),
B(Mov), R(closure), R(5),
......@@ -495,14 +491,14 @@ bytecodes: [
/* 11 E> */ B(Throw),
B(Ldar), R(5),
/* 55 S> */ B(Return),
/* 35 S> */ B(LdaNamedProperty), R(arg0), U8(3), U8(0),
/* 35 S> */ B(GetIterator), R(arg0), U8(0),
B(Star), R(8),
B(CallProperty0), R(8), R(arg0), U8(2),
B(Mov), R(arg0), R(7),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
B(Star), R(6),
B(LdaNamedProperty), R(6), U8(4), U8(4),
B(LdaNamedProperty), R(6), U8(3), U8(4),
B(Star), R(5),
B(LdaFalse),
B(Star), R(9),
......@@ -513,9 +509,9 @@ bytecodes: [
B(Star), R(13),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(13), U8(1),
B(LdaNamedProperty), R(13), U8(5), U8(8),
B(LdaNamedProperty), R(13), U8(4), U8(8),
B(JumpIfToBooleanTrue), U8(26),
B(LdaNamedProperty), R(13), U8(6), U8(10),
B(LdaNamedProperty), R(13), U8(5), U8(10),
B(Star), R(13),
B(LdaFalse),
B(Star), R(9),
......@@ -537,7 +533,7 @@ bytecodes: [
B(Star), R(12),
B(Ldar), R(9),
B(JumpIfToBooleanTrue), U8(58),
B(LdaNamedProperty), R(6), U8(7), U8(12),
B(LdaNamedProperty), R(6), U8(6), U8(12),
B(Star), R(14),
B(JumpIfUndefinedOrNull), U8(50),
B(Mov), R(context), R(15),
......@@ -545,7 +541,7 @@ bytecodes: [
B(JumpIfTrue), U8(18),
B(Wide), B(LdaSmi), I16(159),
B(Star), R(16),
B(LdaConstant), U8(8),
B(LdaConstant), U8(7),
B(Star), R(17),
B(CallRuntime), U16(Runtime::kNewTypeError), R(16), U8(2),
B(Throw),
......@@ -574,7 +570,6 @@ constant pool: [
Smi [22],
Smi [10],
Smi [7],
SYMBOL_TYPE,
ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
......@@ -582,8 +577,8 @@ constant pool: [
ONE_BYTE_INTERNALIZED_STRING_TYPE [""],
]
handlers: [
[76, 122, 130],
[154, 187, 189],
[75, 121, 129],
[153, 186, 188],
]
---
......@@ -595,7 +590,7 @@ snippet: "
"
frame size: 17
parameter count: 2
bytecode array length: 256
bytecode array length: 255
bytecodes: [
B(SwitchOnGeneratorState), R(0), U8(0), U8(2),
B(Mov), R(closure), R(4),
......@@ -612,14 +607,14 @@ bytecodes: [
/* 11 E> */ B(Throw),
B(Ldar), R(4),
/* 49 S> */ B(Return),
/* 35 S> */ B(LdaNamedProperty), R(arg0), U8(4), U8(0),
/* 35 S> */ B(GetIterator), R(arg0), U8(0),
B(Star), R(7),
B(CallProperty0), R(7), R(arg0), U8(2),
B(Mov), R(arg0), R(6),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
B(Star), R(5),
B(LdaNamedProperty), R(5), U8(5), U8(4),
B(LdaNamedProperty), R(5), U8(4), U8(4),
B(Star), R(4),
B(LdaFalse),
B(Star), R(8),
......@@ -630,9 +625,9 @@ bytecodes: [
B(Star), R(12),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(12), U8(1),
B(LdaNamedProperty), R(12), U8(6), U8(8),
B(LdaNamedProperty), R(12), U8(5), U8(8),
B(JumpIfToBooleanTrue), U8(64),
B(LdaNamedProperty), R(12), U8(7), U8(10),
B(LdaNamedProperty), R(12), U8(6), U8(10),
B(Star), R(12),
B(LdaFalse),
B(Star), R(8),
......@@ -647,7 +642,7 @@ bytecodes: [
B(ResumeGenerator), R(0), R(0), U8(13),
B(Star), R(13),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1),
B(SwitchOnSmiNoFeedback), U8(8), U8(2), I8(0),
B(SwitchOnSmiNoFeedback), U8(7), U8(2), I8(0),
B(Ldar), R(13),
/* 40 E> */ B(Throw),
B(LdaSmi), I8(1),
......@@ -668,7 +663,7 @@ bytecodes: [
B(Star), R(11),
B(Ldar), R(8),
B(JumpIfToBooleanTrue), U8(58),
B(LdaNamedProperty), R(5), U8(10), U8(12),
B(LdaNamedProperty), R(5), U8(9), U8(12),
B(Star), R(13),
B(JumpIfUndefinedOrNull), U8(50),
B(Mov), R(context), R(14),
......@@ -676,7 +671,7 @@ bytecodes: [
B(JumpIfTrue), U8(18),
B(Wide), B(LdaSmi), I16(159),
B(Star), R(15),
B(LdaConstant), U8(11),
B(LdaConstant), U8(10),
B(Star), R(16),
B(CallRuntime), U16(Runtime::kNewTypeError), R(15), U8(2),
B(Throw),
......@@ -694,7 +689,7 @@ bytecodes: [
B(Ldar), R(11),
B(SetPendingMessage),
B(Ldar), R(9),
B(SwitchOnSmiNoFeedback), U8(12), U8(2), I8(0),
B(SwitchOnSmiNoFeedback), U8(11), U8(2), I8(0),
B(Jump), U8(8),
B(Ldar), R(10),
B(ReThrow),
......@@ -705,10 +700,9 @@ bytecodes: [
]
constant pool: [
Smi [22],
Smi [129],
Smi [128],
Smi [10],
Smi [7],
SYMBOL_TYPE,
ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
......@@ -720,8 +714,8 @@ constant pool: [
Smi [9],
]
handlers: [
[76, 160, 168],
[192, 225, 227],
[75, 159, 167],
[191, 224, 226],
]
---
......@@ -733,7 +727,7 @@ snippet: "
"
frame size: 19
parameter count: 2
bytecode array length: 226
bytecode array length: 225
bytecodes: [
B(Mov), R(closure), R(5),
B(Mov), R(this), R(6),
......@@ -741,14 +735,14 @@ bytecodes: [
B(Star), R(0),
/* 16 E> */ B(StackCheck),
B(Mov), R(context), R(5),
/* 40 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(0),
/* 40 S> */ B(GetIterator), R(arg0), U8(0),
B(Star), R(9),
B(CallProperty0), R(9), R(arg0), U8(2),
B(Mov), R(arg0), R(8),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
B(Star), R(7),
B(LdaNamedProperty), R(7), U8(1), U8(4),
B(LdaNamedProperty), R(7), U8(0), U8(4),
B(Star), R(6),
B(LdaFalse),
B(Star), R(10),
......@@ -759,9 +753,9 @@ bytecodes: [
B(Star), R(14),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(14), U8(1),
B(LdaNamedProperty), R(14), U8(2), U8(8),
B(LdaNamedProperty), R(14), U8(1), U8(8),
B(JumpIfToBooleanTrue), U8(26),
B(LdaNamedProperty), R(14), U8(3), U8(10),
B(LdaNamedProperty), R(14), U8(2), U8(10),
B(Star), R(14),
B(LdaFalse),
B(Star), R(10),
......@@ -783,7 +777,7 @@ bytecodes: [
B(Star), R(13),
B(Ldar), R(10),
B(JumpIfToBooleanTrue), U8(58),
B(LdaNamedProperty), R(7), U8(4), U8(12),
B(LdaNamedProperty), R(7), U8(3), U8(12),
B(Star), R(15),
B(JumpIfUndefinedOrNull), U8(50),
B(Mov), R(context), R(16),
......@@ -791,7 +785,7 @@ bytecodes: [
B(JumpIfTrue), U8(18),
B(Wide), B(LdaSmi), I16(159),
B(Star), R(17),
B(LdaConstant), U8(5),
B(LdaConstant), U8(4),
B(Star), R(18),
B(CallRuntime), U16(Runtime::kNewTypeError), R(17), U8(2),
B(Throw),
......@@ -821,7 +815,7 @@ bytecodes: [
B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionResolve), R(6), U8(3),
/* 60 S> */ B(Return),
B(Star), R(6),
B(CreateCatchContext), R(6), U8(6),
B(CreateCatchContext), R(6), U8(5),
B(Star), R(5),
B(LdaTheHole),
B(SetPendingMessage),
......@@ -836,7 +830,6 @@ bytecodes: [
/* 60 S> */ B(Return),
]
constant pool: [
SYMBOL_TYPE,
ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
......@@ -845,9 +838,9 @@ constant pool: [
SCOPE_INFO_TYPE,
]
handlers: [
[16, 198, 198],
[50, 96, 104],
[128, 161, 163],
[16, 197, 197],
[49, 95, 103],
[127, 160, 162],
]
---
......@@ -859,7 +852,7 @@ snippet: "
"
frame size: 18
parameter count: 2
bytecode array length: 262
bytecode array length: 261
bytecodes: [
B(SwitchOnGeneratorState), R(0), U8(0), U8(1),
B(Mov), R(closure), R(4),
......@@ -868,14 +861,14 @@ bytecodes: [
B(Star), R(0),
/* 16 E> */ B(StackCheck),
B(Mov), R(context), R(4),
/* 40 S> */ B(LdaNamedProperty), R(arg0), U8(1), U8(0),
/* 40 S> */ B(GetIterator), R(arg0), U8(0),
B(Star), R(8),
B(CallProperty0), R(8), R(arg0), U8(2),
B(Mov), R(arg0), R(7),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
B(Star), R(6),
B(LdaNamedProperty), R(6), U8(2), U8(4),
B(LdaNamedProperty), R(6), U8(1), U8(4),
B(Star), R(5),
B(LdaFalse),
B(Star), R(9),
......@@ -886,9 +879,9 @@ bytecodes: [
B(Star), R(13),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(13), U8(1),
B(LdaNamedProperty), R(13), U8(3), U8(8),
B(LdaNamedProperty), R(13), U8(2), U8(8),
B(JumpIfToBooleanTrue), U8(58),
B(LdaNamedProperty), R(13), U8(4), U8(10),
B(LdaNamedProperty), R(13), U8(3), U8(10),
B(Star), R(13),
B(LdaFalse),
B(Star), R(9),
......@@ -922,7 +915,7 @@ bytecodes: [
B(Star), R(12),
B(Ldar), R(9),
B(JumpIfToBooleanTrue), U8(58),
B(LdaNamedProperty), R(6), U8(5), U8(12),
B(LdaNamedProperty), R(6), U8(4), U8(12),
B(Star), R(14),
B(JumpIfUndefinedOrNull), U8(50),
B(Mov), R(context), R(15),
......@@ -930,7 +923,7 @@ bytecodes: [
B(JumpIfTrue), U8(18),
B(Wide), B(LdaSmi), I16(159),
B(Star), R(16),
B(LdaConstant), U8(6),
B(LdaConstant), U8(5),
B(Star), R(17),
B(CallRuntime), U16(Runtime::kNewTypeError), R(16), U8(2),
B(Throw),
......@@ -960,7 +953,7 @@ bytecodes: [
B(InvokeIntrinsic), U8(Runtime::k_AsyncFunctionResolve), R(5), U8(3),
/* 54 S> */ B(Return),
B(Star), R(5),
B(CreateCatchContext), R(5), U8(7),
B(CreateCatchContext), R(5), U8(6),
B(Star), R(4),
B(LdaTheHole),
B(SetPendingMessage),
......@@ -975,8 +968,7 @@ bytecodes: [
/* 54 S> */ B(Return),
]
constant pool: [
Smi [107],
SYMBOL_TYPE,
Smi [106],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
......@@ -985,8 +977,8 @@ constant pool: [
SCOPE_INFO_TYPE,
]
handlers: [
[20, 234, 234],
[54, 132, 140],
[164, 197, 199],
[20, 233, 233],
[53, 131, 139],
[163, 196, 198],
]
......@@ -100,7 +100,7 @@ snippet: "
"
frame size: 17
parameter count: 1
bytecode array length: 259
bytecode array length: 258
bytecodes: [
B(SwitchOnGeneratorState), R(0), U8(0), U8(2),
B(Mov), R(closure), R(4),
......@@ -119,13 +119,13 @@ bytecodes: [
/* 44 S> */ B(Return),
/* 30 S> */ B(CreateArrayLiteral), U8(4), U8(0), U8(37),
B(Star), R(6),
B(LdaNamedProperty), R(6), U8(5), U8(1),
B(GetIterator), R(6), U8(1),
B(Star), R(7),
B(CallProperty0), R(7), R(6), U8(3),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
B(Star), R(5),
B(LdaNamedProperty), R(5), U8(6), U8(5),
B(LdaNamedProperty), R(5), U8(5), U8(5),
B(Star), R(4),
B(LdaFalse),
B(Star), R(8),
......@@ -136,9 +136,9 @@ bytecodes: [
B(Star), R(12),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(12), U8(1),
B(LdaNamedProperty), R(12), U8(7), U8(9),
B(LdaNamedProperty), R(12), U8(6), U8(9),
B(JumpIfToBooleanTrue), U8(64),
B(LdaNamedProperty), R(12), U8(8), U8(11),
B(LdaNamedProperty), R(12), U8(7), U8(11),
B(Star), R(12),
B(LdaFalse),
B(Star), R(8),
......@@ -153,7 +153,7 @@ bytecodes: [
B(ResumeGenerator), R(0), R(0), U8(13),
B(Star), R(13),
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1),
B(SwitchOnSmiNoFeedback), U8(9), U8(2), I8(0),
B(SwitchOnSmiNoFeedback), U8(8), U8(2), I8(0),
B(Ldar), R(13),
/* 36 E> */ B(Throw),
B(LdaSmi), I8(1),
......@@ -174,7 +174,7 @@ bytecodes: [
B(Star), R(11),
B(Ldar), R(8),
B(JumpIfToBooleanTrue), U8(58),
B(LdaNamedProperty), R(5), U8(11), U8(13),
B(LdaNamedProperty), R(5), U8(10), U8(13),
B(Star), R(13),
B(JumpIfUndefinedOrNull), U8(50),
B(Mov), R(context), R(14),
......@@ -182,7 +182,7 @@ bytecodes: [
B(JumpIfTrue), U8(18),
B(Wide), B(LdaSmi), I16(159),
B(Star), R(15),
B(LdaConstant), U8(12),
B(LdaConstant), U8(11),
B(Star), R(16),
B(CallRuntime), U16(Runtime::kNewTypeError), R(15), U8(2),
B(Throw),
......@@ -200,7 +200,7 @@ bytecodes: [
B(Ldar), R(11),
B(SetPendingMessage),
B(Ldar), R(9),
B(SwitchOnSmiNoFeedback), U8(13), U8(2), I8(0),
B(SwitchOnSmiNoFeedback), U8(12), U8(2), I8(0),
B(Jump), U8(8),
B(Ldar), R(10),
B(ReThrow),
......@@ -211,11 +211,10 @@ bytecodes: [
]
constant pool: [
Smi [22],
Smi [132],
Smi [131],
Smi [10],
Smi [7],
ARRAY_BOILERPLATE_DESCRIPTION_TYPE,
SYMBOL_TYPE,
ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
......@@ -227,8 +226,8 @@ constant pool: [
Smi [9],
]
handlers: [
[79, 163, 171],
[195, 228, 230],
[78, 162, 170],
[194, 227, 229],
]
---
......@@ -239,7 +238,7 @@ snippet: "
"
frame size: 9
parameter count: 1
bytecode array length: 211
bytecode array length: 210
bytecodes: [
B(SwitchOnGeneratorState), R(0), U8(0), U8(2),
B(Mov), R(closure), R(1),
......@@ -260,35 +259,35 @@ bytecodes: [
B(Star), R(5),
/* 50 E> */ B(CallUndefinedReceiver0), R(5), U8(2),
B(Star), R(6),
B(LdaNamedProperty), R(6), U8(5), U8(4),
B(GetIterator), R(6), U8(4),
B(Star), R(7),
B(CallProperty0), R(7), R(6), U8(6),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
B(Star), R(3),
B(LdaNamedProperty), R(3), U8(6), U8(8),
B(LdaNamedProperty), R(3), U8(5), U8(8),
B(Star), R(5),
B(LdaUndefined),
B(Star), R(4),
B(LdaZero),
B(Star), R(2),
B(Ldar), R(2),
B(SwitchOnSmiNoFeedback), U8(7), U8(2), I8(1),
B(SwitchOnSmiNoFeedback), U8(6), U8(2), I8(1),
B(CallProperty1), R(5), R(3), R(4), U8(10),
B(Jump), U8(63),
B(LdaNamedProperty), R(3), U8(9), U8(12),
B(LdaNamedProperty), R(3), U8(8), U8(12),
B(JumpIfUndefinedOrNull), U8(11),
B(Star), R(8),
B(CallProperty1), R(8), R(3), R(4), U8(14),
B(Jump), U8(48),
B(Ldar), R(4),
/* 54 S> */ B(Return),
B(LdaNamedProperty), R(3), U8(10), U8(16),
B(LdaNamedProperty), R(3), U8(9), U8(16),
B(JumpIfUndefinedOrNull), U8(11),
B(Star), R(8),
B(CallProperty1), R(8), R(3), R(4), U8(18),
B(Jump), U8(30),
B(LdaNamedProperty), R(3), U8(9), U8(20),
B(LdaNamedProperty), R(3), U8(8), U8(20),
B(JumpIfUndefinedOrNull), U8(19),
B(Star), R(8),
B(CallProperty0), R(8), R(3), U8(22),
......@@ -300,7 +299,7 @@ bytecodes: [
B(Star), R(1),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(1), U8(1),
B(LdaNamedProperty), R(1), U8(11), U8(24),
B(LdaNamedProperty), R(1), U8(10), U8(24),
B(JumpIfToBooleanTrue), U8(24),
B(Ldar), R(1),
/* 43 E> */ B(SuspendGenerator), R(0), R(0), U8(8), U8(1),
......@@ -309,7 +308,7 @@ bytecodes: [
B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(0), U8(1),
B(Star), R(2),
B(JumpLoop), U8(108), I8(0),
B(LdaNamedProperty), R(1), U8(12), U8(26),
B(LdaNamedProperty), R(1), U8(11), U8(26),
B(Star), R(3),
B(LdaSmi), I8(1),
B(TestReferenceEqual), R(2),
......@@ -321,11 +320,10 @@ bytecodes: [
]
constant pool: [
Smi [22],
Smi [179],
Smi [178],
Smi [10],
Smi [7],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["g"],
SYMBOL_TYPE,
ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
Smi [11],
Smi [29],
......
......@@ -94,7 +94,7 @@ snippet: "
"
frame size: 10
parameter count: 1
bytecode array length: 131
bytecode array length: 130
bytecodes: [
/* 30 E> */ B(StackCheck),
B(CreateBlockContext), U8(0),
......@@ -117,22 +117,22 @@ bytecodes: [
B(Star), R(3),
/* 101 S> */ B(CreateArrayLiteral), U8(5), U8(1), U8(37),
B(Star), R(7),
B(LdaNamedProperty), R(7), U8(6), U8(2),
B(GetIterator), R(7), U8(2),
B(Star), R(8),
B(CallProperty0), R(8), R(7), U8(4),
B(Mov), R(5), R(2),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
B(Star), R(6),
B(LdaNamedProperty), R(6), U8(7), U8(6),
B(LdaNamedProperty), R(6), U8(6), U8(6),
B(Star), R(5),
B(CallProperty0), R(5), R(6), U8(15),
B(Star), R(9),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(9), U8(1),
B(LdaNamedProperty), R(9), U8(8), U8(17),
B(LdaNamedProperty), R(9), U8(7), U8(17),
B(JumpIfToBooleanTrue), U8(19),
B(LdaNamedProperty), R(9), U8(9), U8(8),
B(LdaNamedProperty), R(9), U8(8), U8(8),
B(StaInArrayLiteral), R(4), R(3), U8(13),
B(Ldar), R(3),
B(Inc), U8(12),
......@@ -152,7 +152,6 @@ constant pool: [
ARRAY_BOILERPLATE_DESCRIPTION_TYPE,
Smi [1],
ARRAY_BOILERPLATE_DESCRIPTION_TYPE,
SYMBOL_TYPE,
ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
......
......@@ -93,7 +93,7 @@ snippet: "
"
frame size: 13
parameter count: 1
bytecode array length: 128
bytecode array length: 127
bytecodes: [
B(CreateRestParameter),
B(Star), R(3),
......@@ -111,7 +111,7 @@ bytecodes: [
B(Ldar), R(6),
B(Inc), U8(3),
/* 152 S> */ B(Star), R(6),
B(LdaNamedProperty), R(3), U8(0), U8(4),
B(GetIterator), R(3), U8(4),
B(Star), R(11),
B(CallProperty0), R(11), R(3), U8(6),
B(Mov), R(3), R(10),
......@@ -119,15 +119,15 @@ bytecodes: [
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
B(Star), R(9),
B(LdaNamedProperty), R(9), U8(1), U8(8),
B(LdaNamedProperty), R(9), U8(0), U8(8),
B(Star), R(8),
B(CallProperty0), R(8), R(9), U8(14),
B(Star), R(12),
B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(12), U8(1),
B(LdaNamedProperty), R(12), U8(2), U8(16),
B(LdaNamedProperty), R(12), U8(1), U8(16),
B(JumpIfToBooleanTrue), U8(19),
B(LdaNamedProperty), R(12), U8(3), U8(10),
B(LdaNamedProperty), R(12), U8(2), U8(10),
B(StaInArrayLiteral), R(7), R(6), U8(1),
B(Ldar), R(6),
B(Inc), U8(3),
......@@ -147,7 +147,6 @@ bytecodes: [
/* 162 S> */ B(Return),
]
constant pool: [
SYMBOL_TYPE,
ONE_BYTE_INTERNALIZED_STRING_TYPE ["next"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["done"],
ONE_BYTE_INTERNALIZED_STRING_TYPE ["value"],
......
......@@ -151,6 +151,9 @@ TEST_F(BytecodeArrayBuilderTest, AllBytecodesGenerated) {
.StoreNamedOwnProperty(reg, name, store_own_slot.ToInt())
.StoreInArrayLiteral(reg, reg, store_array_element_slot.ToInt());
// Emit Iterator-protocol operations
builder.GetIterator(reg, load_slot.ToInt());
// Emit load / store lookup slots.
builder.LoadLookupSlot(name, TypeofMode::NOT_INSIDE_TYPEOF)
.LoadLookupSlot(name, TypeofMode::INSIDE_TYPEOF)
......
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