[ignition] Optimize JSGenerator creation
As a first step towards improving generator creation, create a builtin that can do it without a call to the runtime. Thread that builtin into the interpreter via an intrinsic. BUG=v8:6352 R=bmeurer@chromium.org Review-Url: https://codereview.chromium.org/2861983002 Cr-Commit-Position: refs/heads/master@{#45145}
This commit is contained in:
parent
1b064d9cd0
commit
c3f0e2a5b0
@ -282,76 +282,8 @@ Node* ConstructorBuiltinsAssembler::EmitFastNewObject(Node* context,
|
||||
|
||||
Node* object = AllocateJSObjectFromMap(initial_map, properties.value());
|
||||
|
||||
Node* instance_size_words = ChangeUint32ToWord(LoadObjectField(
|
||||
initial_map, Map::kInstanceSizeOffset, MachineType::Uint8()));
|
||||
Node* instance_size =
|
||||
WordShl(instance_size_words, IntPtrConstant(kPointerSizeLog2));
|
||||
|
||||
// Perform in-object slack tracking if requested.
|
||||
Node* bit_field3 = LoadMapBitField3(initial_map);
|
||||
Label slack_tracking(this), finalize(this, Label::kDeferred), done(this);
|
||||
GotoIf(IsSetWord32<Map::ConstructionCounter>(bit_field3), &slack_tracking);
|
||||
|
||||
// Initialize remaining fields.
|
||||
{
|
||||
Comment("no slack tracking");
|
||||
InitializeFieldsWithRoot(object, IntPtrConstant(JSObject::kHeaderSize),
|
||||
instance_size, Heap::kUndefinedValueRootIndex);
|
||||
Goto(&end);
|
||||
}
|
||||
|
||||
{
|
||||
BIND(&slack_tracking);
|
||||
|
||||
// Decrease generous allocation count.
|
||||
STATIC_ASSERT(Map::ConstructionCounter::kNext == 32);
|
||||
Comment("update allocation count");
|
||||
Node* new_bit_field3 = Int32Sub(
|
||||
bit_field3, Int32Constant(1 << Map::ConstructionCounter::kShift));
|
||||
StoreObjectFieldNoWriteBarrier(initial_map, Map::kBitField3Offset,
|
||||
new_bit_field3,
|
||||
MachineRepresentation::kWord32);
|
||||
GotoIf(IsClearWord32<Map::ConstructionCounter>(new_bit_field3), &finalize);
|
||||
|
||||
Node* unused_fields = LoadObjectField(
|
||||
initial_map, Map::kUnusedPropertyFieldsOffset, MachineType::Uint8());
|
||||
Node* used_size =
|
||||
IntPtrSub(instance_size, WordShl(ChangeUint32ToWord(unused_fields),
|
||||
IntPtrConstant(kPointerSizeLog2)));
|
||||
|
||||
Comment("initialize filler fields (no finalize)");
|
||||
InitializeFieldsWithRoot(object, used_size, instance_size,
|
||||
Heap::kOnePointerFillerMapRootIndex);
|
||||
|
||||
Comment("initialize undefined fields (no finalize)");
|
||||
InitializeFieldsWithRoot(object, IntPtrConstant(JSObject::kHeaderSize),
|
||||
used_size, Heap::kUndefinedValueRootIndex);
|
||||
Goto(&end);
|
||||
}
|
||||
|
||||
{
|
||||
// Finalize the instance size.
|
||||
BIND(&finalize);
|
||||
|
||||
Node* unused_fields = LoadObjectField(
|
||||
initial_map, Map::kUnusedPropertyFieldsOffset, MachineType::Uint8());
|
||||
Node* used_size =
|
||||
IntPtrSub(instance_size, WordShl(ChangeUint32ToWord(unused_fields),
|
||||
IntPtrConstant(kPointerSizeLog2)));
|
||||
|
||||
Comment("initialize filler fields (finalize)");
|
||||
InitializeFieldsWithRoot(object, used_size, instance_size,
|
||||
Heap::kOnePointerFillerMapRootIndex);
|
||||
|
||||
Comment("initialize undefined fields (finalize)");
|
||||
InitializeFieldsWithRoot(object, IntPtrConstant(JSObject::kHeaderSize),
|
||||
used_size, Heap::kUndefinedValueRootIndex);
|
||||
|
||||
CallRuntime(Runtime::kFinalizeInstanceSize, context, initial_map);
|
||||
Goto(&end);
|
||||
}
|
||||
|
||||
BIND(&end);
|
||||
HandleSlackTracking(context, object, initial_map, JSObject::kHeaderSize);
|
||||
return object;
|
||||
}
|
||||
|
||||
|
@ -494,6 +494,7 @@ namespace internal {
|
||||
TFS(CreateIterResultObject, kValue, kDone) \
|
||||
\
|
||||
/* Generator and Async */ \
|
||||
TFS(CreateGeneratorObject, kClosure, kReceiver) \
|
||||
CPP(GeneratorFunctionConstructor) \
|
||||
/* ES6 #sec-generator.prototype.next */ \
|
||||
TFJ(GeneratorPrototypeNext, 1, kValue) \
|
||||
|
@ -412,5 +412,51 @@ TF_BUILTIN(GetSuperConstructor, ObjectBuiltinsAssembler) {
|
||||
Return(GetSuperConstructor(object, context));
|
||||
}
|
||||
|
||||
TF_BUILTIN(CreateGeneratorObject, ObjectBuiltinsAssembler) {
|
||||
Node* closure = Parameter(Descriptor::kClosure);
|
||||
Node* receiver = Parameter(Descriptor::kReceiver);
|
||||
Node* context = Parameter(Descriptor::kContext);
|
||||
|
||||
// Get the initial map from the function, jumping to the runtime if we don't
|
||||
// have one.
|
||||
Node* maybe_map =
|
||||
LoadObjectField(closure, JSFunction::kPrototypeOrInitialMapOffset);
|
||||
Label runtime(this);
|
||||
GotoIf(DoesntHaveInstanceType(maybe_map, MAP_TYPE), &runtime);
|
||||
|
||||
Node* shared =
|
||||
LoadObjectField(closure, JSFunction::kSharedFunctionInfoOffset);
|
||||
Node* bytecode_array =
|
||||
LoadObjectField(shared, SharedFunctionInfo::kFunctionDataOffset);
|
||||
Node* frame_size = ChangeInt32ToIntPtr(LoadObjectField(
|
||||
bytecode_array, BytecodeArray::kFrameSizeOffset, MachineType::Int32()));
|
||||
Node* size = WordSar(frame_size, IntPtrConstant(kPointerSizeLog2));
|
||||
Node* register_file = AllocateFixedArray(FAST_HOLEY_ELEMENTS, size);
|
||||
FillFixedArrayWithValue(FAST_HOLEY_ELEMENTS, register_file, IntPtrConstant(0),
|
||||
size, Heap::kUndefinedValueRootIndex);
|
||||
|
||||
Node* const result = AllocateJSObjectFromMap(maybe_map);
|
||||
|
||||
StoreObjectFieldNoWriteBarrier(result, JSGeneratorObject::kFunctionOffset,
|
||||
closure);
|
||||
StoreObjectFieldNoWriteBarrier(result, JSGeneratorObject::kContextOffset,
|
||||
context);
|
||||
StoreObjectFieldNoWriteBarrier(result, JSGeneratorObject::kReceiverOffset,
|
||||
receiver);
|
||||
StoreObjectFieldNoWriteBarrier(result, JSGeneratorObject::kRegisterFileOffset,
|
||||
register_file);
|
||||
Node* executing = SmiConstant(JSGeneratorObject::kGeneratorExecuting);
|
||||
StoreObjectFieldNoWriteBarrier(result, JSGeneratorObject::kContinuationOffset,
|
||||
executing);
|
||||
HandleSlackTracking(context, result, maybe_map, JSGeneratorObject::kSize);
|
||||
Return(result);
|
||||
|
||||
BIND(&runtime);
|
||||
{
|
||||
Return(CallRuntime(Runtime::kCreateJSGeneratorObject, context, closure,
|
||||
receiver));
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace internal
|
||||
} // namespace v8
|
||||
|
@ -6639,6 +6639,81 @@ Node* CodeStubAssembler::CreateWeakCellInFeedbackVector(Node* feedback_vector,
|
||||
return cell;
|
||||
}
|
||||
|
||||
void CodeStubAssembler::HandleSlackTracking(Node* context, Node* object,
|
||||
Node* initial_map,
|
||||
int start_offset) {
|
||||
Node* instance_size_words = ChangeUint32ToWord(LoadObjectField(
|
||||
initial_map, Map::kInstanceSizeOffset, MachineType::Uint8()));
|
||||
Node* instance_size =
|
||||
WordShl(instance_size_words, IntPtrConstant(kPointerSizeLog2));
|
||||
|
||||
// Perform in-object slack tracking if requested.
|
||||
Node* bit_field3 = LoadMapBitField3(initial_map);
|
||||
Label end(this), slack_tracking(this), finalize(this, Label::kDeferred);
|
||||
GotoIf(IsSetWord32<Map::ConstructionCounter>(bit_field3), &slack_tracking);
|
||||
|
||||
// Initialize remaining fields.
|
||||
{
|
||||
Comment("no slack tracking");
|
||||
InitializeFieldsWithRoot(object, IntPtrConstant(start_offset),
|
||||
instance_size, Heap::kUndefinedValueRootIndex);
|
||||
Goto(&end);
|
||||
}
|
||||
|
||||
{
|
||||
BIND(&slack_tracking);
|
||||
|
||||
// Decrease generous allocation count.
|
||||
STATIC_ASSERT(Map::ConstructionCounter::kNext == 32);
|
||||
Comment("update allocation count");
|
||||
Node* new_bit_field3 = Int32Sub(
|
||||
bit_field3, Int32Constant(1 << Map::ConstructionCounter::kShift));
|
||||
StoreObjectFieldNoWriteBarrier(initial_map, Map::kBitField3Offset,
|
||||
new_bit_field3,
|
||||
MachineRepresentation::kWord32);
|
||||
GotoIf(IsClearWord32<Map::ConstructionCounter>(new_bit_field3), &finalize);
|
||||
|
||||
Node* unused_fields = LoadObjectField(
|
||||
initial_map, Map::kUnusedPropertyFieldsOffset, MachineType::Uint8());
|
||||
Node* used_size =
|
||||
IntPtrSub(instance_size, WordShl(ChangeUint32ToWord(unused_fields),
|
||||
IntPtrConstant(kPointerSizeLog2)));
|
||||
|
||||
Comment("initialize filler fields (no finalize)");
|
||||
InitializeFieldsWithRoot(object, used_size, instance_size,
|
||||
Heap::kOnePointerFillerMapRootIndex);
|
||||
|
||||
Comment("initialize undefined fields (no finalize)");
|
||||
InitializeFieldsWithRoot(object, IntPtrConstant(start_offset), used_size,
|
||||
Heap::kUndefinedValueRootIndex);
|
||||
Goto(&end);
|
||||
}
|
||||
|
||||
{
|
||||
// Finalize the instance size.
|
||||
BIND(&finalize);
|
||||
|
||||
Node* unused_fields = LoadObjectField(
|
||||
initial_map, Map::kUnusedPropertyFieldsOffset, MachineType::Uint8());
|
||||
Node* used_size =
|
||||
IntPtrSub(instance_size, WordShl(ChangeUint32ToWord(unused_fields),
|
||||
IntPtrConstant(kPointerSizeLog2)));
|
||||
|
||||
Comment("initialize filler fields (finalize)");
|
||||
InitializeFieldsWithRoot(object, used_size, instance_size,
|
||||
Heap::kOnePointerFillerMapRootIndex);
|
||||
|
||||
Comment("initialize undefined fields (finalize)");
|
||||
InitializeFieldsWithRoot(object, IntPtrConstant(start_offset), used_size,
|
||||
Heap::kUndefinedValueRootIndex);
|
||||
|
||||
CallRuntime(Runtime::kFinalizeInstanceSize, context, initial_map);
|
||||
Goto(&end);
|
||||
}
|
||||
|
||||
BIND(&end);
|
||||
}
|
||||
|
||||
Node* CodeStubAssembler::BuildFastLoop(
|
||||
const CodeStubAssembler::VariableList& vars, Node* start_index,
|
||||
Node* end_index, const FastLoopBody& body, int increment,
|
||||
|
@ -1271,6 +1271,11 @@ class V8_EXPORT_PRIVATE CodeStubAssembler : public compiler::CodeAssembler {
|
||||
// Create a new AllocationSite and install it into a feedback vector.
|
||||
Node* CreateAllocationSiteInFeedbackVector(Node* feedback_vector, Node* slot);
|
||||
|
||||
// Given a recently allocated object {object}, with map {initial_map},
|
||||
// initialize remaining fields appropriately to comply with slack tracking.
|
||||
void HandleSlackTracking(Node* context, Node* object, Node* initial_map,
|
||||
int start_offset);
|
||||
|
||||
enum class IndexAdvanceMode { kPre, kPost };
|
||||
|
||||
typedef std::function<void(Node* index)> FastLoopBody;
|
||||
|
@ -640,7 +640,6 @@ class V8_EXPORT_PRIVATE Bytecodes final {
|
||||
bytecode == Bytecode::kConstruct ||
|
||||
bytecode == Bytecode::kCallWithSpread ||
|
||||
bytecode == Bytecode::kConstructWithSpread ||
|
||||
bytecode == Bytecode::kInvokeIntrinsic ||
|
||||
bytecode == Bytecode::kCallJSRuntime;
|
||||
}
|
||||
|
||||
@ -752,7 +751,8 @@ class V8_EXPORT_PRIVATE Bytecodes final {
|
||||
|
||||
// Returns the receiver mode of the given call bytecode.
|
||||
static ConvertReceiverMode GetReceiverMode(Bytecode bytecode) {
|
||||
DCHECK(IsCallOrConstruct(bytecode));
|
||||
DCHECK(IsCallOrConstruct(bytecode) ||
|
||||
bytecode == Bytecode::kInvokeIntrinsic);
|
||||
switch (bytecode) {
|
||||
case Bytecode::kCallProperty:
|
||||
case Bytecode::kCallProperty0:
|
||||
|
@ -748,7 +748,8 @@ Node* InterpreterAssembler::CallJS(Node* function, Node* context,
|
||||
ConvertReceiverMode receiver_mode,
|
||||
TailCallMode tail_call_mode) {
|
||||
DCHECK(Bytecodes::MakesCallAlongCriticalPath(bytecode_));
|
||||
DCHECK(Bytecodes::IsCallOrConstruct(bytecode_));
|
||||
DCHECK(Bytecodes::IsCallOrConstruct(bytecode_) ||
|
||||
bytecode_ == Bytecode::kInvokeIntrinsic);
|
||||
DCHECK_EQ(Bytecodes::GetReceiverMode(bytecode_), receiver_mode);
|
||||
Callable callable = CodeFactory::InterpreterPushArgsThenCall(
|
||||
isolate(), receiver_mode, tail_call_mode,
|
||||
|
@ -369,6 +369,12 @@ Node* IntrinsicsGenerator::AsyncGeneratorGetAwaitInputOrDebugPos(
|
||||
return value;
|
||||
}
|
||||
|
||||
Node* IntrinsicsGenerator::CreateJSGeneratorObject(Node* input, Node* arg_count,
|
||||
Node* context) {
|
||||
return IntrinsicAsBuiltinCall(input, context,
|
||||
Builtins::kCreateGeneratorObject);
|
||||
}
|
||||
|
||||
Node* IntrinsicsGenerator::AsyncGeneratorReject(Node* input, Node* arg_count,
|
||||
Node* context) {
|
||||
return IntrinsicAsBuiltinCall(input, context,
|
||||
|
@ -18,6 +18,7 @@ namespace interpreter {
|
||||
async_generator_get_await_input_or_debug_pos, 1) \
|
||||
V(AsyncGeneratorReject, async_generator_reject, 2) \
|
||||
V(AsyncGeneratorResolve, async_generator_resolve, 3) \
|
||||
V(CreateJSGeneratorObject, create_js_generator_object, 2) \
|
||||
V(Call, call, -1) \
|
||||
V(ClassOf, class_of, 1) \
|
||||
V(CreateIterResultObject, create_iter_result_object, 2) \
|
||||
|
@ -3145,15 +3145,15 @@ Block* Parser::BuildRejectPromiseOnException(Block* inner_block) {
|
||||
}
|
||||
|
||||
Assignment* Parser::BuildCreateJSGeneratorObject(int pos, FunctionKind kind) {
|
||||
// .generator = %CreateJSGeneratorObject(...);
|
||||
// .generator = %_CreateJSGeneratorObject(...);
|
||||
DCHECK_NOT_NULL(function_state_->generator_object_variable());
|
||||
ZoneList<Expression*>* args = new (zone()) ZoneList<Expression*>(2, zone());
|
||||
args->Add(factory()->NewThisFunction(pos), zone());
|
||||
args->Add(IsArrowFunction(kind) ? GetLiteralUndefined(pos)
|
||||
: ThisExpression(kNoSourcePosition),
|
||||
zone());
|
||||
Expression* allocation =
|
||||
factory()->NewCallRuntime(Runtime::kCreateJSGeneratorObject, args, pos);
|
||||
Expression* allocation = factory()->NewCallRuntime(
|
||||
Runtime::kInlineCreateJSGeneratorObject, args, pos);
|
||||
VariableProxy* proxy =
|
||||
factory()->NewVariableProxy(function_state_->generator_object_variable());
|
||||
return factory()->NewAssignment(Token::INIT, proxy, allocation,
|
||||
|
@ -16,7 +16,7 @@ snippet: "
|
||||
"
|
||||
frame size: 19
|
||||
parameter count: 1
|
||||
bytecode array length: 1027
|
||||
bytecode array length: 1026
|
||||
bytecodes: [
|
||||
B(Ldar), R(new_target),
|
||||
B(JumpIfUndefined), U8(39),
|
||||
@ -26,7 +26,7 @@ bytecodes: [
|
||||
B(Star), R(3),
|
||||
B(LdaZero),
|
||||
B(TestEqualStrictNoFeedback), R(3),
|
||||
B(JumpIfTrue), U8(132),
|
||||
B(JumpIfTrue), U8(131),
|
||||
B(LdaSmi), I8(1),
|
||||
B(TestEqualStrictNoFeedback), R(3),
|
||||
B(JumpIfTrueConstant), U8(12),
|
||||
@ -46,7 +46,7 @@ bytecodes: [
|
||||
B(LdaImmutableCurrentContextSlot), U8(4),
|
||||
B(Star), R(6),
|
||||
B(Mov), R(closure), R(5),
|
||||
B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(5), U8(2),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(5), U8(2),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
B(LdaUndefined),
|
||||
B(Star), R(5),
|
||||
@ -467,20 +467,20 @@ constant pool: [
|
||||
FIXED_ARRAY_TYPE,
|
||||
ONE_BYTE_INTERNALIZED_STRING_TYPE ["return"],
|
||||
ONE_BYTE_INTERNALIZED_STRING_TYPE [""],
|
||||
Smi [557],
|
||||
Smi [556],
|
||||
FIXED_ARRAY_TYPE,
|
||||
Smi [699],
|
||||
Smi [698],
|
||||
Smi [348],
|
||||
Smi [371],
|
||||
FIXED_ARRAY_TYPE,
|
||||
Smi [317],
|
||||
]
|
||||
handlers: [
|
||||
[80, 940, 946],
|
||||
[83, 886, 888],
|
||||
[100, 423, 429],
|
||||
[103, 375, 377],
|
||||
[516, 642, 644],
|
||||
[79, 939, 945],
|
||||
[82, 885, 887],
|
||||
[99, 422, 428],
|
||||
[102, 374, 376],
|
||||
[515, 641, 643],
|
||||
]
|
||||
|
||||
---
|
||||
@ -492,7 +492,7 @@ snippet: "
|
||||
"
|
||||
frame size: 19
|
||||
parameter count: 1
|
||||
bytecode array length: 1085
|
||||
bytecode array length: 1084
|
||||
bytecodes: [
|
||||
B(Ldar), R(new_target),
|
||||
B(JumpIfUndefined), U8(39),
|
||||
@ -502,7 +502,7 @@ bytecodes: [
|
||||
B(Star), R(3),
|
||||
B(LdaZero),
|
||||
B(TestEqualStrictNoFeedback), R(3),
|
||||
B(JumpIfTrue), U8(132),
|
||||
B(JumpIfTrue), U8(131),
|
||||
B(LdaSmi), I8(1),
|
||||
B(TestEqualStrictNoFeedback), R(3),
|
||||
B(JumpIfTrueConstant), U8(12),
|
||||
@ -522,7 +522,7 @@ bytecodes: [
|
||||
B(LdaImmutableCurrentContextSlot), U8(4),
|
||||
B(Star), R(6),
|
||||
B(Mov), R(closure), R(5),
|
||||
B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(5), U8(2),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(5), U8(2),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
B(LdaUndefined),
|
||||
B(Star), R(5),
|
||||
@ -972,20 +972,20 @@ constant pool: [
|
||||
FIXED_ARRAY_TYPE,
|
||||
ONE_BYTE_INTERNALIZED_STRING_TYPE ["return"],
|
||||
ONE_BYTE_INTERNALIZED_STRING_TYPE [""],
|
||||
Smi [569],
|
||||
Smi [568],
|
||||
FIXED_ARRAY_TYPE,
|
||||
Smi [711],
|
||||
Smi [710],
|
||||
Smi [348],
|
||||
Smi [371],
|
||||
FIXED_ARRAY_TYPE,
|
||||
Smi [340],
|
||||
]
|
||||
handlers: [
|
||||
[80, 975, 981],
|
||||
[83, 921, 923],
|
||||
[100, 435, 441],
|
||||
[103, 387, 389],
|
||||
[528, 654, 656],
|
||||
[79, 974, 980],
|
||||
[82, 920, 922],
|
||||
[99, 434, 440],
|
||||
[102, 386, 388],
|
||||
[527, 653, 655],
|
||||
]
|
||||
|
||||
---
|
||||
@ -1000,7 +1000,7 @@ snippet: "
|
||||
"
|
||||
frame size: 19
|
||||
parameter count: 1
|
||||
bytecode array length: 1064
|
||||
bytecode array length: 1063
|
||||
bytecodes: [
|
||||
B(Ldar), R(new_target),
|
||||
B(JumpIfUndefined), U8(39),
|
||||
@ -1010,7 +1010,7 @@ bytecodes: [
|
||||
B(Star), R(3),
|
||||
B(LdaZero),
|
||||
B(TestEqualStrictNoFeedback), R(3),
|
||||
B(JumpIfTrue), U8(132),
|
||||
B(JumpIfTrue), U8(131),
|
||||
B(LdaSmi), I8(1),
|
||||
B(TestEqualStrictNoFeedback), R(3),
|
||||
B(JumpIfTrueConstant), U8(12),
|
||||
@ -1030,7 +1030,7 @@ bytecodes: [
|
||||
B(LdaImmutableCurrentContextSlot), U8(4),
|
||||
B(Star), R(6),
|
||||
B(Mov), R(closure), R(5),
|
||||
B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(5), U8(2),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(5), U8(2),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
B(LdaUndefined),
|
||||
B(Star), R(5),
|
||||
@ -1467,20 +1467,20 @@ constant pool: [
|
||||
FIXED_ARRAY_TYPE,
|
||||
ONE_BYTE_INTERNALIZED_STRING_TYPE ["return"],
|
||||
ONE_BYTE_INTERNALIZED_STRING_TYPE [""],
|
||||
Smi [594],
|
||||
Smi [593],
|
||||
FIXED_ARRAY_TYPE,
|
||||
Smi [736],
|
||||
Smi [735],
|
||||
Smi [348],
|
||||
Smi [371],
|
||||
FIXED_ARRAY_TYPE,
|
||||
Smi [317],
|
||||
]
|
||||
handlers: [
|
||||
[80, 977, 983],
|
||||
[83, 923, 925],
|
||||
[100, 460, 466],
|
||||
[103, 412, 414],
|
||||
[553, 679, 681],
|
||||
[79, 976, 982],
|
||||
[82, 922, 924],
|
||||
[99, 459, 465],
|
||||
[102, 411, 413],
|
||||
[552, 678, 680],
|
||||
]
|
||||
|
||||
---
|
||||
@ -1493,7 +1493,7 @@ snippet: "
|
||||
"
|
||||
frame size: 14
|
||||
parameter count: 1
|
||||
bytecode array length: 579
|
||||
bytecode array length: 578
|
||||
bytecodes: [
|
||||
B(Ldar), R(new_target),
|
||||
B(JumpIfUndefined), U8(22),
|
||||
@ -1514,7 +1514,7 @@ bytecodes: [
|
||||
B(LdaImmutableCurrentContextSlot), U8(4),
|
||||
B(Star), R(5),
|
||||
B(Mov), R(closure), R(4),
|
||||
B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(4), U8(2),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(4), U8(2),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
B(LdaUndefined),
|
||||
B(Star), R(4),
|
||||
@ -1774,10 +1774,10 @@ constant pool: [
|
||||
FIXED_ARRAY_TYPE,
|
||||
]
|
||||
handlers: [
|
||||
[63, 496, 502],
|
||||
[66, 442, 444],
|
||||
[81, 241, 247],
|
||||
[84, 193, 195],
|
||||
[322, 334, 336],
|
||||
[62, 495, 501],
|
||||
[65, 441, 443],
|
||||
[80, 240, 246],
|
||||
[83, 192, 194],
|
||||
[321, 333, 335],
|
||||
]
|
||||
|
||||
|
@ -666,7 +666,7 @@ snippet: "
|
||||
"
|
||||
frame size: 15
|
||||
parameter count: 2
|
||||
bytecode array length: 626
|
||||
bytecode array length: 625
|
||||
bytecodes: [
|
||||
B(Ldar), R(new_target),
|
||||
B(JumpIfUndefined), U8(27),
|
||||
@ -676,7 +676,7 @@ bytecodes: [
|
||||
B(Star), R(4),
|
||||
B(LdaZero),
|
||||
B(TestEqualStrictNoFeedback), R(4),
|
||||
B(JumpIfTrue), U8(58),
|
||||
B(JumpIfTrue), U8(57),
|
||||
B(LdaSmi), I8(79),
|
||||
B(Star), R(6),
|
||||
B(CallRuntime), U16(Runtime::kAbort), R(6), U8(1),
|
||||
@ -693,7 +693,7 @@ bytecodes: [
|
||||
B(LdaImmutableCurrentContextSlot), U8(5),
|
||||
B(Star), R(10),
|
||||
B(Mov), R(closure), R(9),
|
||||
/* 11 E> */ B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(9), U8(2),
|
||||
/* 11 E> */ B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(9), U8(2),
|
||||
B(StaCurrentContextSlot), U8(6),
|
||||
B(Star), R(9),
|
||||
B(LdaImmutableCurrentContextSlot), U8(6),
|
||||
@ -948,10 +948,10 @@ constant pool: [
|
||||
Smi [449],
|
||||
]
|
||||
handlers: [
|
||||
[49, 559, 565],
|
||||
[144, 341, 347],
|
||||
[147, 297, 299],
|
||||
[433, 449, 451],
|
||||
[49, 558, 564],
|
||||
[143, 340, 346],
|
||||
[146, 296, 298],
|
||||
[432, 448, 450],
|
||||
]
|
||||
|
||||
---
|
||||
@ -963,7 +963,7 @@ snippet: "
|
||||
"
|
||||
frame size: 18
|
||||
parameter count: 2
|
||||
bytecode array length: 755
|
||||
bytecode array length: 754
|
||||
bytecodes: [
|
||||
B(Ldar), R(new_target),
|
||||
B(JumpIfUndefined), U8(33),
|
||||
@ -973,10 +973,10 @@ bytecodes: [
|
||||
B(Star), R(3),
|
||||
B(LdaZero),
|
||||
B(TestEqualStrictNoFeedback), R(3),
|
||||
B(JumpIfTrue), U8(64),
|
||||
B(JumpIfTrue), U8(63),
|
||||
B(LdaSmi), I8(1),
|
||||
B(TestEqualStrictNoFeedback), R(3),
|
||||
B(JumpIfTrue), U8(156),
|
||||
B(JumpIfTrue), U8(155),
|
||||
B(LdaSmi), I8(79),
|
||||
B(Star), R(5),
|
||||
B(CallRuntime), U16(Runtime::kAbort), R(5), U8(1),
|
||||
@ -993,7 +993,7 @@ bytecodes: [
|
||||
B(LdaImmutableCurrentContextSlot), U8(5),
|
||||
B(Star), R(9),
|
||||
B(Mov), R(closure), R(8),
|
||||
/* 11 E> */ B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(8), U8(2),
|
||||
/* 11 E> */ B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(8), U8(2),
|
||||
B(StaCurrentContextSlot), U8(6),
|
||||
B(Star), R(8),
|
||||
B(LdaImmutableCurrentContextSlot), U8(6),
|
||||
@ -1303,10 +1303,10 @@ constant pool: [
|
||||
Smi [563],
|
||||
]
|
||||
handlers: [
|
||||
[55, 679, 685],
|
||||
[150, 441, 447],
|
||||
[153, 397, 399],
|
||||
[534, 550, 552],
|
||||
[55, 678, 684],
|
||||
[149, 440, 446],
|
||||
[152, 396, 398],
|
||||
[533, 549, 551],
|
||||
]
|
||||
|
||||
---
|
||||
@ -1318,7 +1318,7 @@ snippet: "
|
||||
"
|
||||
frame size: 16
|
||||
parameter count: 2
|
||||
bytecode array length: 619
|
||||
bytecode array length: 618
|
||||
bytecodes: [
|
||||
B(Ldar), R(new_target),
|
||||
B(JumpIfUndefined), U8(22),
|
||||
@ -1341,7 +1341,7 @@ bytecodes: [
|
||||
B(LdaImmutableCurrentContextSlot), U8(5),
|
||||
B(Star), R(7),
|
||||
B(Mov), R(closure), R(6),
|
||||
B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(6), U8(2),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(6), U8(2),
|
||||
B(StaCurrentContextSlot), U8(6),
|
||||
B(LdaUndefined),
|
||||
B(Star), R(6),
|
||||
@ -1598,11 +1598,11 @@ constant pool: [
|
||||
FIXED_ARRAY_TYPE,
|
||||
]
|
||||
handlers: [
|
||||
[67, 559, 565],
|
||||
[70, 505, 507],
|
||||
[87, 288, 294],
|
||||
[90, 240, 242],
|
||||
[380, 396, 398],
|
||||
[66, 558, 564],
|
||||
[69, 504, 506],
|
||||
[86, 287, 293],
|
||||
[89, 239, 241],
|
||||
[379, 395, 397],
|
||||
]
|
||||
|
||||
---
|
||||
@ -1614,7 +1614,7 @@ snippet: "
|
||||
"
|
||||
frame size: 19
|
||||
parameter count: 2
|
||||
bytecode array length: 773
|
||||
bytecode array length: 772
|
||||
bytecodes: [
|
||||
B(Ldar), R(new_target),
|
||||
B(JumpIfUndefined), U8(27),
|
||||
@ -1624,7 +1624,7 @@ bytecodes: [
|
||||
B(Star), R(3),
|
||||
B(LdaZero),
|
||||
B(TestEqualStrictNoFeedback), R(3),
|
||||
B(JumpIfTrue), U8(104),
|
||||
B(JumpIfTrue), U8(103),
|
||||
B(LdaSmi), I8(79),
|
||||
B(Star), R(5),
|
||||
B(CallRuntime), U16(Runtime::kAbort), R(5), U8(1),
|
||||
@ -1640,7 +1640,7 @@ bytecodes: [
|
||||
B(LdaImmutableCurrentContextSlot), U8(5),
|
||||
B(Star), R(6),
|
||||
B(Mov), R(closure), R(5),
|
||||
B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(5), U8(2),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(5), U8(2),
|
||||
B(StaCurrentContextSlot), U8(6),
|
||||
B(LdaUndefined),
|
||||
B(Star), R(5),
|
||||
@ -1961,10 +1961,10 @@ constant pool: [
|
||||
FIXED_ARRAY_TYPE,
|
||||
]
|
||||
handlers: [
|
||||
[72, 704, 710],
|
||||
[75, 650, 652],
|
||||
[92, 409, 415],
|
||||
[95, 361, 363],
|
||||
[502, 518, 520],
|
||||
[71, 703, 709],
|
||||
[74, 649, 651],
|
||||
[91, 408, 414],
|
||||
[94, 360, 362],
|
||||
[501, 517, 519],
|
||||
]
|
||||
|
||||
|
@ -13,7 +13,7 @@ snippet: "
|
||||
"
|
||||
frame size: 12
|
||||
parameter count: 1
|
||||
bytecode array length: 199
|
||||
bytecode array length: 198
|
||||
bytecodes: [
|
||||
B(Ldar), R(new_target),
|
||||
B(JumpIfUndefined), U8(27),
|
||||
@ -23,7 +23,7 @@ bytecodes: [
|
||||
B(Star), R(1),
|
||||
B(LdaZero),
|
||||
B(TestEqualStrictNoFeedback), R(1),
|
||||
B(JumpIfTrue), U8(54),
|
||||
B(JumpIfTrue), U8(53),
|
||||
B(LdaSmi), I8(79),
|
||||
B(Star), R(3),
|
||||
B(CallRuntime), U16(Runtime::kAbort), R(3), U8(1),
|
||||
@ -38,7 +38,7 @@ bytecodes: [
|
||||
B(LdaImmutableCurrentContextSlot), U8(4),
|
||||
B(Star), R(7),
|
||||
B(Mov), R(closure), R(6),
|
||||
/* 11 E> */ B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(6), U8(2),
|
||||
/* 11 E> */ B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(6), U8(2),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
B(Star), R(6),
|
||||
B(LdaImmutableCurrentContextSlot), U8(5),
|
||||
@ -115,7 +115,7 @@ bytecodes: [
|
||||
constant pool: [
|
||||
]
|
||||
handlers: [
|
||||
[45, 141, 147],
|
||||
[45, 140, 146],
|
||||
]
|
||||
|
||||
---
|
||||
@ -125,7 +125,7 @@ snippet: "
|
||||
"
|
||||
frame size: 12
|
||||
parameter count: 1
|
||||
bytecode array length: 291
|
||||
bytecode array length: 290
|
||||
bytecodes: [
|
||||
B(Ldar), R(new_target),
|
||||
B(JumpIfUndefined), U8(33),
|
||||
@ -135,10 +135,10 @@ bytecodes: [
|
||||
B(Star), R(1),
|
||||
B(LdaZero),
|
||||
B(TestEqualStrictNoFeedback), R(1),
|
||||
B(JumpIfTrue), U8(60),
|
||||
B(JumpIfTrue), U8(59),
|
||||
B(LdaSmi), I8(1),
|
||||
B(TestEqualStrictNoFeedback), R(1),
|
||||
B(JumpIfTrue), U8(130),
|
||||
B(JumpIfTrue), U8(129),
|
||||
B(LdaSmi), I8(79),
|
||||
B(Star), R(3),
|
||||
B(CallRuntime), U16(Runtime::kAbort), R(3), U8(1),
|
||||
@ -153,7 +153,7 @@ bytecodes: [
|
||||
B(LdaImmutableCurrentContextSlot), U8(4),
|
||||
B(Star), R(7),
|
||||
B(Mov), R(closure), R(6),
|
||||
/* 11 E> */ B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(6), U8(2),
|
||||
/* 11 E> */ B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(6), U8(2),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
B(Star), R(6),
|
||||
B(LdaImmutableCurrentContextSlot), U8(5),
|
||||
@ -270,7 +270,7 @@ bytecodes: [
|
||||
constant pool: [
|
||||
]
|
||||
handlers: [
|
||||
[51, 224, 230],
|
||||
[51, 223, 229],
|
||||
]
|
||||
|
||||
---
|
||||
@ -280,7 +280,7 @@ snippet: "
|
||||
"
|
||||
frame size: 18
|
||||
parameter count: 1
|
||||
bytecode array length: 751
|
||||
bytecode array length: 750
|
||||
bytecodes: [
|
||||
B(Ldar), R(new_target),
|
||||
B(JumpIfUndefined), U8(33),
|
||||
@ -290,10 +290,10 @@ bytecodes: [
|
||||
B(Star), R(3),
|
||||
B(LdaZero),
|
||||
B(TestEqualStrictNoFeedback), R(3),
|
||||
B(JumpIfTrue), U8(60),
|
||||
B(JumpIfTrue), U8(59),
|
||||
B(LdaSmi), I8(1),
|
||||
B(TestEqualStrictNoFeedback), R(3),
|
||||
B(JumpIfTrue), U8(152),
|
||||
B(JumpIfTrue), U8(151),
|
||||
B(LdaSmi), I8(79),
|
||||
B(Star), R(5),
|
||||
B(CallRuntime), U16(Runtime::kAbort), R(5), U8(1),
|
||||
@ -308,7 +308,7 @@ bytecodes: [
|
||||
B(LdaImmutableCurrentContextSlot), U8(4),
|
||||
B(Star), R(9),
|
||||
B(Mov), R(closure), R(8),
|
||||
/* 11 E> */ B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(8), U8(2),
|
||||
/* 11 E> */ B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(8), U8(2),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
B(Star), R(8),
|
||||
B(LdaImmutableCurrentContextSlot), U8(5),
|
||||
@ -619,9 +619,9 @@ constant pool: [
|
||||
Smi [563],
|
||||
]
|
||||
handlers: [
|
||||
[51, 675, 681],
|
||||
[146, 437, 443],
|
||||
[149, 393, 395],
|
||||
[530, 546, 548],
|
||||
[51, 674, 680],
|
||||
[145, 436, 442],
|
||||
[148, 392, 394],
|
||||
[529, 545, 547],
|
||||
]
|
||||
|
||||
|
@ -13,7 +13,7 @@ snippet: "
|
||||
"
|
||||
frame size: 9
|
||||
parameter count: 2
|
||||
bytecode array length: 143
|
||||
bytecode array length: 142
|
||||
bytecodes: [
|
||||
B(Ldar), R(new_target),
|
||||
B(JumpIfUndefined), U8(27),
|
||||
@ -23,7 +23,7 @@ bytecodes: [
|
||||
B(Star), R(1),
|
||||
B(LdaZero),
|
||||
B(TestEqualStrictNoFeedback), R(1),
|
||||
B(JumpIfTrue), U8(64),
|
||||
B(JumpIfTrue), U8(63),
|
||||
B(LdaSmi), I8(79),
|
||||
B(Star), R(3),
|
||||
B(CallRuntime), U16(Runtime::kAbort), R(3), U8(1),
|
||||
@ -41,7 +41,7 @@ bytecodes: [
|
||||
B(LdaImmutableCurrentContextSlot), U8(4),
|
||||
B(Star), R(4),
|
||||
B(Mov), R(closure), R(3),
|
||||
/* 0 E> */ B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(3), U8(2),
|
||||
/* 0 E> */ B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(3), U8(2),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
B(Star), R(3),
|
||||
B(LdaImmutableCurrentContextSlot), U8(5),
|
||||
@ -91,7 +91,7 @@ snippet: "
|
||||
"
|
||||
frame size: 9
|
||||
parameter count: 2
|
||||
bytecode array length: 143
|
||||
bytecode array length: 142
|
||||
bytecodes: [
|
||||
B(Ldar), R(new_target),
|
||||
B(JumpIfUndefined), U8(27),
|
||||
@ -101,7 +101,7 @@ bytecodes: [
|
||||
B(Star), R(1),
|
||||
B(LdaZero),
|
||||
B(TestEqualStrictNoFeedback), R(1),
|
||||
B(JumpIfTrue), U8(64),
|
||||
B(JumpIfTrue), U8(63),
|
||||
B(LdaSmi), I8(79),
|
||||
B(Star), R(3),
|
||||
B(CallRuntime), U16(Runtime::kAbort), R(3), U8(1),
|
||||
@ -119,7 +119,7 @@ bytecodes: [
|
||||
B(LdaImmutableCurrentContextSlot), U8(4),
|
||||
B(Star), R(4),
|
||||
B(Mov), R(closure), R(3),
|
||||
/* 0 E> */ B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(3), U8(2),
|
||||
/* 0 E> */ B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(3), U8(2),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
B(Star), R(3),
|
||||
B(LdaImmutableCurrentContextSlot), U8(5),
|
||||
@ -171,7 +171,7 @@ snippet: "
|
||||
"
|
||||
frame size: 10
|
||||
parameter count: 2
|
||||
bytecode array length: 205
|
||||
bytecode array length: 204
|
||||
bytecodes: [
|
||||
B(Ldar), R(new_target),
|
||||
B(JumpIfUndefined), U8(27),
|
||||
@ -181,7 +181,7 @@ bytecodes: [
|
||||
B(Star), R(2),
|
||||
B(LdaZero),
|
||||
B(TestEqualStrictNoFeedback), R(2),
|
||||
B(JumpIfTrue), U8(64),
|
||||
B(JumpIfTrue), U8(63),
|
||||
B(LdaSmi), I8(79),
|
||||
B(Star), R(4),
|
||||
B(CallRuntime), U16(Runtime::kAbort), R(4), U8(1),
|
||||
@ -199,7 +199,7 @@ bytecodes: [
|
||||
B(LdaImmutableCurrentContextSlot), U8(4),
|
||||
B(Star), R(5),
|
||||
B(Mov), R(closure), R(4),
|
||||
/* 0 E> */ B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(4), U8(2),
|
||||
/* 0 E> */ B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(4), U8(2),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
B(Star), R(4),
|
||||
B(LdaImmutableCurrentContextSlot), U8(5),
|
||||
@ -278,7 +278,7 @@ snippet: "
|
||||
"
|
||||
frame size: 10
|
||||
parameter count: 2
|
||||
bytecode array length: 185
|
||||
bytecode array length: 184
|
||||
bytecodes: [
|
||||
B(Ldar), R(new_target),
|
||||
B(JumpIfUndefined), U8(27),
|
||||
@ -288,7 +288,7 @@ bytecodes: [
|
||||
B(Star), R(2),
|
||||
B(LdaZero),
|
||||
B(TestEqualStrictNoFeedback), R(2),
|
||||
B(JumpIfTrue), U8(64),
|
||||
B(JumpIfTrue), U8(63),
|
||||
B(LdaSmi), I8(79),
|
||||
B(Star), R(4),
|
||||
B(CallRuntime), U16(Runtime::kAbort), R(4), U8(1),
|
||||
@ -306,7 +306,7 @@ bytecodes: [
|
||||
B(LdaImmutableCurrentContextSlot), U8(4),
|
||||
B(Star), R(5),
|
||||
B(Mov), R(closure), R(4),
|
||||
/* 0 E> */ B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(4), U8(2),
|
||||
/* 0 E> */ B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(4), U8(2),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
B(Star), R(4),
|
||||
B(LdaImmutableCurrentContextSlot), U8(5),
|
||||
@ -377,7 +377,7 @@ snippet: "
|
||||
"
|
||||
frame size: 10
|
||||
parameter count: 2
|
||||
bytecode array length: 189
|
||||
bytecode array length: 188
|
||||
bytecodes: [
|
||||
B(Ldar), R(new_target),
|
||||
B(JumpIfUndefined), U8(27),
|
||||
@ -387,7 +387,7 @@ bytecodes: [
|
||||
B(Star), R(2),
|
||||
B(LdaZero),
|
||||
B(TestEqualStrictNoFeedback), R(2),
|
||||
B(JumpIfTrue), U8(68),
|
||||
B(JumpIfTrue), U8(67),
|
||||
B(LdaSmi), I8(79),
|
||||
B(Star), R(4),
|
||||
B(CallRuntime), U16(Runtime::kAbort), R(4), U8(1),
|
||||
@ -407,7 +407,7 @@ bytecodes: [
|
||||
B(LdaImmutableCurrentContextSlot), U8(4),
|
||||
B(Star), R(5),
|
||||
B(Mov), R(closure), R(4),
|
||||
/* 0 E> */ B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(4), U8(2),
|
||||
/* 0 E> */ B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(4), U8(2),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
B(Star), R(4),
|
||||
B(LdaImmutableCurrentContextSlot), U8(5),
|
||||
@ -478,7 +478,7 @@ snippet: "
|
||||
"
|
||||
frame size: 10
|
||||
parameter count: 2
|
||||
bytecode array length: 193
|
||||
bytecode array length: 192
|
||||
bytecodes: [
|
||||
B(Ldar), R(new_target),
|
||||
B(JumpIfUndefined), U8(27),
|
||||
@ -488,7 +488,7 @@ bytecodes: [
|
||||
B(Star), R(2),
|
||||
B(LdaZero),
|
||||
B(TestEqualStrictNoFeedback), R(2),
|
||||
B(JumpIfTrue), U8(68),
|
||||
B(JumpIfTrue), U8(67),
|
||||
B(LdaSmi), I8(79),
|
||||
B(Star), R(4),
|
||||
B(CallRuntime), U16(Runtime::kAbort), R(4), U8(1),
|
||||
@ -508,7 +508,7 @@ bytecodes: [
|
||||
B(LdaImmutableCurrentContextSlot), U8(4),
|
||||
B(Star), R(5),
|
||||
B(Mov), R(closure), R(4),
|
||||
/* 0 E> */ B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(4), U8(2),
|
||||
/* 0 E> */ B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(4), U8(2),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
B(Star), R(4),
|
||||
B(LdaImmutableCurrentContextSlot), U8(5),
|
||||
@ -577,7 +577,7 @@ snippet: "
|
||||
"
|
||||
frame size: 9
|
||||
parameter count: 2
|
||||
bytecode array length: 154
|
||||
bytecode array length: 153
|
||||
bytecodes: [
|
||||
B(Ldar), R(new_target),
|
||||
B(JumpIfUndefined), U8(27),
|
||||
@ -587,7 +587,7 @@ bytecodes: [
|
||||
B(Star), R(1),
|
||||
B(LdaZero),
|
||||
B(TestEqualStrictNoFeedback), R(1),
|
||||
B(JumpIfTrue), U8(68),
|
||||
B(JumpIfTrue), U8(67),
|
||||
B(LdaSmi), I8(79),
|
||||
B(Star), R(3),
|
||||
B(CallRuntime), U16(Runtime::kAbort), R(3), U8(1),
|
||||
@ -607,7 +607,7 @@ bytecodes: [
|
||||
B(LdaImmutableCurrentContextSlot), U8(4),
|
||||
B(Star), R(4),
|
||||
B(Mov), R(closure), R(3),
|
||||
/* 0 E> */ B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(3), U8(2),
|
||||
/* 0 E> */ B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(3), U8(2),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
B(Star), R(3),
|
||||
B(LdaImmutableCurrentContextSlot), U8(5),
|
||||
@ -660,7 +660,7 @@ snippet: "
|
||||
"
|
||||
frame size: 9
|
||||
parameter count: 2
|
||||
bytecode array length: 187
|
||||
bytecode array length: 186
|
||||
bytecodes: [
|
||||
B(Ldar), R(new_target),
|
||||
B(JumpIfUndefined), U8(27),
|
||||
@ -670,7 +670,7 @@ bytecodes: [
|
||||
B(Star), R(1),
|
||||
B(LdaZero),
|
||||
B(TestEqualStrictNoFeedback), R(1),
|
||||
B(JumpIfTrue), U8(68),
|
||||
B(JumpIfTrue), U8(67),
|
||||
B(LdaSmi), I8(79),
|
||||
B(Star), R(3),
|
||||
B(CallRuntime), U16(Runtime::kAbort), R(3), U8(1),
|
||||
@ -690,7 +690,7 @@ bytecodes: [
|
||||
B(LdaImmutableCurrentContextSlot), U8(4),
|
||||
B(Star), R(4),
|
||||
B(Mov), R(closure), R(3),
|
||||
/* 0 E> */ B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(3), U8(2),
|
||||
/* 0 E> */ B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(3), U8(2),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
B(Star), R(3),
|
||||
B(LdaImmutableCurrentContextSlot), U8(5),
|
||||
@ -755,7 +755,7 @@ snippet: "
|
||||
"
|
||||
frame size: 9
|
||||
parameter count: 2
|
||||
bytecode array length: 143
|
||||
bytecode array length: 142
|
||||
bytecodes: [
|
||||
B(Ldar), R(new_target),
|
||||
B(JumpIfUndefined), U8(27),
|
||||
@ -765,7 +765,7 @@ bytecodes: [
|
||||
B(Star), R(1),
|
||||
B(LdaZero),
|
||||
B(TestEqualStrictNoFeedback), R(1),
|
||||
B(JumpIfTrue), U8(64),
|
||||
B(JumpIfTrue), U8(63),
|
||||
B(LdaSmi), I8(79),
|
||||
B(Star), R(3),
|
||||
B(CallRuntime), U16(Runtime::kAbort), R(3), U8(1),
|
||||
@ -783,7 +783,7 @@ bytecodes: [
|
||||
B(LdaImmutableCurrentContextSlot), U8(4),
|
||||
B(Star), R(4),
|
||||
B(Mov), R(closure), R(3),
|
||||
/* 0 E> */ B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(3), U8(2),
|
||||
/* 0 E> */ B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(3), U8(2),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
B(Star), R(3),
|
||||
B(LdaImmutableCurrentContextSlot), U8(5),
|
||||
@ -833,7 +833,7 @@ snippet: "
|
||||
"
|
||||
frame size: 9
|
||||
parameter count: 2
|
||||
bytecode array length: 143
|
||||
bytecode array length: 142
|
||||
bytecodes: [
|
||||
B(Ldar), R(new_target),
|
||||
B(JumpIfUndefined), U8(27),
|
||||
@ -843,7 +843,7 @@ bytecodes: [
|
||||
B(Star), R(1),
|
||||
B(LdaZero),
|
||||
B(TestEqualStrictNoFeedback), R(1),
|
||||
B(JumpIfTrue), U8(64),
|
||||
B(JumpIfTrue), U8(63),
|
||||
B(LdaSmi), I8(79),
|
||||
B(Star), R(3),
|
||||
B(CallRuntime), U16(Runtime::kAbort), R(3), U8(1),
|
||||
@ -861,7 +861,7 @@ bytecodes: [
|
||||
B(LdaImmutableCurrentContextSlot), U8(4),
|
||||
B(Star), R(4),
|
||||
B(Mov), R(closure), R(3),
|
||||
/* 0 E> */ B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(3), U8(2),
|
||||
/* 0 E> */ B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(3), U8(2),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
B(Star), R(3),
|
||||
B(LdaImmutableCurrentContextSlot), U8(5),
|
||||
@ -912,7 +912,7 @@ snippet: "
|
||||
"
|
||||
frame size: 9
|
||||
parameter count: 2
|
||||
bytecode array length: 181
|
||||
bytecode array length: 180
|
||||
bytecodes: [
|
||||
B(Ldar), R(new_target),
|
||||
B(JumpIfUndefined), U8(27),
|
||||
@ -922,7 +922,7 @@ bytecodes: [
|
||||
B(Star), R(1),
|
||||
B(LdaZero),
|
||||
B(TestEqualStrictNoFeedback), R(1),
|
||||
B(JumpIfTrue), U8(74),
|
||||
B(JumpIfTrue), U8(73),
|
||||
B(LdaSmi), I8(79),
|
||||
B(Star), R(3),
|
||||
B(CallRuntime), U16(Runtime::kAbort), R(3), U8(1),
|
||||
@ -944,7 +944,7 @@ bytecodes: [
|
||||
B(LdaImmutableCurrentContextSlot), U8(4),
|
||||
B(Star), R(4),
|
||||
B(Mov), R(closure), R(3),
|
||||
/* 0 E> */ B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(3), U8(2),
|
||||
/* 0 E> */ B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(3), U8(2),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
B(Star), R(3),
|
||||
B(LdaImmutableCurrentContextSlot), U8(5),
|
||||
|
@ -285,7 +285,7 @@ snippet: "
|
||||
"
|
||||
frame size: 15
|
||||
parameter count: 1
|
||||
bytecode array length: 357
|
||||
bytecode array length: 356
|
||||
bytecodes: [
|
||||
B(Ldar), R(new_target),
|
||||
B(JumpIfUndefined), U8(27),
|
||||
@ -295,7 +295,7 @@ bytecodes: [
|
||||
B(Star), R(4),
|
||||
B(LdaZero),
|
||||
B(TestEqualStrictNoFeedback), R(4),
|
||||
B(JumpIfTrue), U8(54),
|
||||
B(JumpIfTrue), U8(53),
|
||||
B(LdaSmi), I8(79),
|
||||
B(Star), R(6),
|
||||
B(CallRuntime), U16(Runtime::kAbort), R(6), U8(1),
|
||||
@ -310,7 +310,7 @@ bytecodes: [
|
||||
B(LdaImmutableCurrentContextSlot), U8(4),
|
||||
B(Star), R(10),
|
||||
B(Mov), R(closure), R(9),
|
||||
/* 11 E> */ B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(9), U8(2),
|
||||
/* 11 E> */ B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(9), U8(2),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
B(Star), R(9),
|
||||
B(LdaImmutableCurrentContextSlot), U8(5),
|
||||
@ -459,7 +459,7 @@ constant pool: [
|
||||
FIXED_ARRAY_TYPE,
|
||||
]
|
||||
handlers: [
|
||||
[45, 299, 305],
|
||||
[45, 298, 304],
|
||||
]
|
||||
|
||||
---
|
||||
@ -471,7 +471,7 @@ snippet: "
|
||||
"
|
||||
frame size: 14
|
||||
parameter count: 1
|
||||
bytecode array length: 484
|
||||
bytecode array length: 483
|
||||
bytecodes: [
|
||||
B(Ldar), R(new_target),
|
||||
B(JumpIfUndefined), U8(33),
|
||||
@ -481,10 +481,10 @@ bytecodes: [
|
||||
B(Star), R(3),
|
||||
B(LdaZero),
|
||||
B(TestEqualStrictNoFeedback), R(3),
|
||||
B(JumpIfTrue), U8(60),
|
||||
B(JumpIfTrue), U8(59),
|
||||
B(LdaSmi), I8(1),
|
||||
B(TestEqualStrictNoFeedback), R(3),
|
||||
B(JumpIfTrue), U8(129),
|
||||
B(JumpIfTrue), U8(128),
|
||||
B(LdaSmi), I8(79),
|
||||
B(Star), R(5),
|
||||
B(CallRuntime), U16(Runtime::kAbort), R(5), U8(1),
|
||||
@ -499,7 +499,7 @@ bytecodes: [
|
||||
B(LdaImmutableCurrentContextSlot), U8(4),
|
||||
B(Star), R(9),
|
||||
B(Mov), R(closure), R(8),
|
||||
/* 11 E> */ B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(8), U8(2),
|
||||
/* 11 E> */ B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(8), U8(2),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
B(Star), R(8),
|
||||
B(LdaImmutableCurrentContextSlot), U8(5),
|
||||
@ -702,7 +702,7 @@ constant pool: [
|
||||
Smi [305],
|
||||
]
|
||||
handlers: [
|
||||
[51, 417, 423],
|
||||
[51, 416, 422],
|
||||
]
|
||||
|
||||
---
|
||||
@ -714,7 +714,7 @@ snippet: "
|
||||
"
|
||||
frame size: 14
|
||||
parameter count: 1
|
||||
bytecode array length: 361
|
||||
bytecode array length: 360
|
||||
bytecodes: [
|
||||
B(Ldar), R(new_target),
|
||||
B(JumpIfUndefined), U8(22),
|
||||
@ -735,7 +735,7 @@ bytecodes: [
|
||||
B(LdaImmutableCurrentContextSlot), U8(4),
|
||||
B(Star), R(7),
|
||||
B(Mov), R(closure), R(6),
|
||||
B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(6), U8(2),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(6), U8(2),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
B(LdaUndefined),
|
||||
B(Star), R(6),
|
||||
@ -892,8 +892,8 @@ constant pool: [
|
||||
FIXED_ARRAY_TYPE,
|
||||
]
|
||||
handlers: [
|
||||
[63, 301, 307],
|
||||
[66, 247, 249],
|
||||
[62, 300, 306],
|
||||
[65, 246, 248],
|
||||
]
|
||||
|
||||
---
|
||||
@ -905,7 +905,7 @@ snippet: "
|
||||
"
|
||||
frame size: 15
|
||||
parameter count: 1
|
||||
bytecode array length: 515
|
||||
bytecode array length: 514
|
||||
bytecodes: [
|
||||
B(Ldar), R(new_target),
|
||||
B(JumpIfUndefined), U8(27),
|
||||
@ -915,7 +915,7 @@ bytecodes: [
|
||||
B(Star), R(3),
|
||||
B(LdaZero),
|
||||
B(TestEqualStrictNoFeedback), R(3),
|
||||
B(JumpIfTrue), U8(77),
|
||||
B(JumpIfTrue), U8(76),
|
||||
B(LdaSmi), I8(79),
|
||||
B(Star), R(5),
|
||||
B(CallRuntime), U16(Runtime::kAbort), R(5), U8(1),
|
||||
@ -929,7 +929,7 @@ bytecodes: [
|
||||
B(LdaImmutableCurrentContextSlot), U8(4),
|
||||
B(Star), R(6),
|
||||
B(Mov), R(closure), R(5),
|
||||
B(CallRuntime), U16(Runtime::kCreateJSGeneratorObject), R(5), U8(2),
|
||||
B(InvokeIntrinsic), U8(Runtime::k_CreateJSGeneratorObject), R(5), U8(2),
|
||||
B(StaCurrentContextSlot), U8(5),
|
||||
B(LdaUndefined),
|
||||
B(Star), R(5),
|
||||
@ -1148,7 +1148,7 @@ constant pool: [
|
||||
FIXED_ARRAY_TYPE,
|
||||
]
|
||||
handlers: [
|
||||
[68, 446, 452],
|
||||
[71, 392, 394],
|
||||
[67, 445, 451],
|
||||
[70, 391, 393],
|
||||
]
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user