Commit 0980d759 authored by mvstanton's avatar mvstanton Committed by Commit bot

[Interpreter] Handle various generator intrinsics

We can avoid some runtime calls by implementing intrinsics.

BUG=

Review-Url: https://codereview.chromium.org/2889973002
Cr-Commit-Position: refs/heads/master@{#45418}
parent 2f92e9eb
...@@ -405,6 +405,35 @@ Node* IntrinsicsGenerator::CreateJSGeneratorObject(Node* input, Node* arg_count, ...@@ -405,6 +405,35 @@ Node* IntrinsicsGenerator::CreateJSGeneratorObject(Node* input, Node* arg_count,
Builtins::kCreateGeneratorObject); Builtins::kCreateGeneratorObject);
} }
Node* IntrinsicsGenerator::GeneratorGetContext(Node* args_reg, Node* arg_count,
Node* context) {
Node* generator = __ LoadRegister(args_reg);
Node* const value =
__ LoadObjectField(generator, JSGeneratorObject::kContextOffset);
return value;
}
Node* IntrinsicsGenerator::GeneratorGetInputOrDebugPos(Node* args_reg,
Node* arg_count,
Node* context) {
Node* generator = __ LoadRegister(args_reg);
Node* const value =
__ LoadObjectField(generator, JSGeneratorObject::kInputOrDebugPosOffset);
return value;
}
Node* IntrinsicsGenerator::GeneratorGetResumeMode(Node* args_reg,
Node* arg_count,
Node* context) {
Node* generator = __ LoadRegister(args_reg);
Node* const value =
__ LoadObjectField(generator, JSGeneratorObject::kResumeModeOffset);
return value;
}
Node* IntrinsicsGenerator::AsyncGeneratorReject(Node* input, Node* arg_count, Node* IntrinsicsGenerator::AsyncGeneratorReject(Node* input, Node* arg_count,
Node* context) { Node* context) {
return IntrinsicAsBuiltinCall(input, context, return IntrinsicAsBuiltinCall(input, context,
......
...@@ -19,6 +19,9 @@ namespace interpreter { ...@@ -19,6 +19,9 @@ namespace interpreter {
V(AsyncGeneratorReject, async_generator_reject, 2) \ V(AsyncGeneratorReject, async_generator_reject, 2) \
V(AsyncGeneratorResolve, async_generator_resolve, 3) \ V(AsyncGeneratorResolve, async_generator_resolve, 3) \
V(CreateJSGeneratorObject, create_js_generator_object, 2) \ V(CreateJSGeneratorObject, create_js_generator_object, 2) \
V(GeneratorGetContext, generator_get_context, 1) \
V(GeneratorGetResumeMode, generator_get_resume_mode, 1) \
V(GeneratorGetInputOrDebugPos, generator_get_input_or_debug_pos, 1) \
V(Call, call, -1) \ V(Call, call, -1) \
V(ClassOf, class_of, 1) \ V(ClassOf, class_of, 1) \
V(CreateIterResultObject, create_iter_result_object, 2) \ V(CreateIterResultObject, create_iter_result_object, 2) \
......
...@@ -66,6 +66,10 @@ RUNTIME_FUNCTION(Runtime_GeneratorGetContext) { ...@@ -66,6 +66,10 @@ RUNTIME_FUNCTION(Runtime_GeneratorGetContext) {
DCHECK_EQ(1, args.length()); DCHECK_EQ(1, args.length());
CONVERT_ARG_HANDLE_CHECKED(JSGeneratorObject, generator, 0); CONVERT_ARG_HANDLE_CHECKED(JSGeneratorObject, generator, 0);
// Runtime call is implemented in InterpreterIntrinsics and lowered in
// JSIntrinsicLowering
UNREACHABLE();
return generator->context(); return generator->context();
} }
...@@ -74,6 +78,10 @@ RUNTIME_FUNCTION(Runtime_GeneratorGetInputOrDebugPos) { ...@@ -74,6 +78,10 @@ RUNTIME_FUNCTION(Runtime_GeneratorGetInputOrDebugPos) {
DCHECK_EQ(1, args.length()); DCHECK_EQ(1, args.length());
CONVERT_ARG_HANDLE_CHECKED(JSGeneratorObject, generator, 0); CONVERT_ARG_HANDLE_CHECKED(JSGeneratorObject, generator, 0);
// Runtime call is implemented in InterpreterIntrinsics and lowered in
// JSIntrinsicLowering
UNREACHABLE();
return generator->input_or_debug_pos(); return generator->input_or_debug_pos();
} }
...@@ -81,7 +89,6 @@ RUNTIME_FUNCTION(Runtime_AsyncGeneratorGetAwaitInputOrDebugPos) { ...@@ -81,7 +89,6 @@ RUNTIME_FUNCTION(Runtime_AsyncGeneratorGetAwaitInputOrDebugPos) {
HandleScope scope(isolate); HandleScope scope(isolate);
DCHECK_EQ(1, args.length()); DCHECK_EQ(1, args.length());
CONVERT_ARG_HANDLE_CHECKED(JSAsyncGeneratorObject, generator, 0); CONVERT_ARG_HANDLE_CHECKED(JSAsyncGeneratorObject, generator, 0);
return generator->await_input_or_debug_pos(); return generator->await_input_or_debug_pos();
} }
...@@ -112,6 +119,10 @@ RUNTIME_FUNCTION(Runtime_GeneratorGetResumeMode) { ...@@ -112,6 +119,10 @@ RUNTIME_FUNCTION(Runtime_GeneratorGetResumeMode) {
DCHECK_EQ(1, args.length()); DCHECK_EQ(1, args.length());
CONVERT_ARG_HANDLE_CHECKED(JSGeneratorObject, generator, 0); CONVERT_ARG_HANDLE_CHECKED(JSGeneratorObject, generator, 0);
// Runtime call is implemented in InterpreterIntrinsics and lowered in
// JSIntrinsicLowering
UNREACHABLE();
return Smi::FromInt(generator->resume_mode()); return Smi::FromInt(generator->resume_mode());
} }
......
...@@ -644,11 +644,11 @@ snippet: " ...@@ -644,11 +644,11 @@ snippet: "
" "
frame size: 15 frame size: 15
parameter count: 2 parameter count: 2
bytecode array length: 593 bytecode array length: 590
bytecodes: [ bytecodes: [
B(Ldar), R(new_target), B(Ldar), R(new_target),
B(JumpIfUndefined), U8(26), B(JumpIfUndefined), U8(25),
B(CallRuntime), U16(Runtime::k_GeneratorGetContext), R(new_target), U8(1), B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetContext), R(new_target), U8(1),
B(PushContext), R(5), B(PushContext), R(5),
B(ResumeGenerator), R(new_target), B(ResumeGenerator), R(new_target),
B(Star), R(4), B(Star), R(4),
...@@ -678,9 +678,9 @@ bytecodes: [ ...@@ -678,9 +678,9 @@ bytecodes: [
/* 55 S> */ B(Return), /* 55 S> */ B(Return),
B(LdaSmi), I8(-2), B(LdaSmi), I8(-2),
B(Star), R(4), B(Star), R(4),
B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(9), U8(1), B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(9), U8(1),
B(Star), R(10), B(Star), R(10),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(9), U8(1), B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(9), U8(1),
B(Star), R(11), B(Star), R(11),
B(LdaZero), B(LdaZero),
B(TestEqualStrictNoFeedback), R(11), B(TestEqualStrictNoFeedback), R(11),
...@@ -909,10 +909,10 @@ constant pool: [ ...@@ -909,10 +909,10 @@ constant pool: [
Smi [9], Smi [9],
] ]
handlers: [ handlers: [
[56, 549, 555], [55, 546, 552],
[137, 334, 340], [134, 331, 337],
[140, 290, 292], [137, 287, 289],
[426, 442, 444], [423, 439, 441],
] ]
--- ---
...@@ -924,11 +924,11 @@ snippet: " ...@@ -924,11 +924,11 @@ snippet: "
" "
frame size: 17 frame size: 17
parameter count: 2 parameter count: 2
bytecode array length: 701 bytecode array length: 696
bytecodes: [ bytecodes: [
B(Ldar), R(new_target), B(Ldar), R(new_target),
B(JumpIfUndefined), U8(26), B(JumpIfUndefined), U8(25),
B(CallRuntime), U16(Runtime::k_GeneratorGetContext), R(new_target), U8(1), B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetContext), R(new_target), U8(1),
B(PushContext), R(4), B(PushContext), R(4),
B(ResumeGenerator), R(new_target), B(ResumeGenerator), R(new_target),
B(Star), R(3), B(Star), R(3),
...@@ -958,9 +958,9 @@ bytecodes: [ ...@@ -958,9 +958,9 @@ bytecodes: [
/* 49 S> */ B(Return), /* 49 S> */ B(Return),
B(LdaSmi), I8(-2), B(LdaSmi), I8(-2),
B(Star), R(3), B(Star), R(3),
B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(8), U8(1), B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(8), U8(1),
B(Star), R(9), B(Star), R(9),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(8), U8(1), B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(8), U8(1),
B(Star), R(10), B(Star), R(10),
B(LdaZero), B(LdaZero),
B(TestEqualStrictNoFeedback), R(10), B(TestEqualStrictNoFeedback), R(10),
...@@ -1019,7 +1019,7 @@ bytecodes: [ ...@@ -1019,7 +1019,7 @@ bytecodes: [
B(LdaContextSlot), R(1), U8(8), U8(0), B(LdaContextSlot), R(1), U8(8), U8(0),
B(Star), R(12), B(Star), R(12),
B(LdaNamedProperty), R(12), U8(6), U8(11), B(LdaNamedProperty), R(12), U8(6), U8(11),
B(JumpIfToBooleanTrue), U8(144), B(JumpIfToBooleanTrue), U8(142),
B(LdaContextSlot), R(1), U8(8), U8(0), B(LdaContextSlot), R(1), U8(8), U8(0),
B(Star), R(12), B(Star), R(12),
B(LdaNamedProperty), R(12), U8(7), U8(13), B(LdaNamedProperty), R(12), U8(7), U8(13),
...@@ -1050,9 +1050,9 @@ bytecodes: [ ...@@ -1050,9 +1050,9 @@ bytecodes: [
/* 49 S> */ B(Return), /* 49 S> */ B(Return),
B(LdaSmi), I8(-2), B(LdaSmi), I8(-2),
B(Star), R(3), B(Star), R(3),
B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(12), U8(1), B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(12), U8(1),
B(Star), R(13), B(Star), R(13),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(12), U8(1), B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(12), U8(1),
B(Star), R(14), B(Star), R(14),
B(LdaZero), B(LdaZero),
B(TestEqualStrictNoFeedback), R(14), B(TestEqualStrictNoFeedback), R(14),
...@@ -1079,7 +1079,7 @@ bytecodes: [ ...@@ -1079,7 +1079,7 @@ bytecodes: [
B(PopContext), R(2), B(PopContext), R(2),
B(LdaZero), B(LdaZero),
B(StaContextSlot), R(1), U8(9), U8(0), B(StaContextSlot), R(1), U8(9), U8(0),
B(JumpLoop), U8(212), I8(0), B(JumpLoop), U8(210), I8(0),
B(Jump), U8(44), B(Jump), U8(44),
B(Star), R(12), B(Star), R(12),
B(Ldar), R(closure), B(Ldar), R(closure),
...@@ -1218,7 +1218,7 @@ bytecodes: [ ...@@ -1218,7 +1218,7 @@ bytecodes: [
] ]
constant pool: [ constant pool: [
Smi [56], Smi [56],
Smi [152], Smi [150],
FIXED_ARRAY_TYPE, FIXED_ARRAY_TYPE,
SYMBOL_TYPE, SYMBOL_TYPE,
Smi [142], Smi [142],
...@@ -1233,15 +1233,15 @@ constant pool: [ ...@@ -1233,15 +1233,15 @@ constant pool: [
FIXED_ARRAY_TYPE, FIXED_ARRAY_TYPE,
Smi [6], Smi [6],
Smi [18], Smi [18],
Smi [554], Smi [552],
Smi [6], Smi [6],
Smi [9], Smi [9],
] ]
handlers: [ handlers: [
[56, 657, 663], [55, 652, 658],
[137, 426, 432], [134, 421, 427],
[140, 382, 384], [137, 377, 379],
[519, 535, 537], [514, 530, 532],
] ]
--- ---
...@@ -1523,11 +1523,11 @@ snippet: " ...@@ -1523,11 +1523,11 @@ snippet: "
" "
frame size: 18 frame size: 18
parameter count: 2 parameter count: 2
bytecode array length: 735 bytecode array length: 732
bytecodes: [ bytecodes: [
B(Ldar), R(new_target), B(Ldar), R(new_target),
B(JumpIfUndefined), U8(26), B(JumpIfUndefined), U8(25),
B(CallRuntime), U16(Runtime::k_GeneratorGetContext), R(new_target), U8(1), B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetContext), R(new_target), U8(1),
B(PushContext), R(4), B(PushContext), R(4),
B(ResumeGenerator), R(new_target), B(ResumeGenerator), R(new_target),
B(Star), R(3), B(Star), R(3),
...@@ -1593,7 +1593,7 @@ bytecodes: [ ...@@ -1593,7 +1593,7 @@ bytecodes: [
B(LdaContextSlot), R(1), U8(10), U8(0), B(LdaContextSlot), R(1), U8(10), U8(0),
B(Star), R(13), B(Star), R(13),
B(LdaNamedProperty), R(13), U8(5), U8(11), B(LdaNamedProperty), R(13), U8(5), U8(11),
B(JumpIfToBooleanTrue), U8(167), B(JumpIfToBooleanTrue), U8(165),
B(LdaContextSlot), R(1), U8(10), U8(0), B(LdaContextSlot), R(1), U8(10), U8(0),
B(Star), R(13), B(Star), R(13),
B(LdaNamedProperty), R(13), U8(6), U8(13), B(LdaNamedProperty), R(13), U8(6), U8(13),
...@@ -1631,9 +1631,9 @@ bytecodes: [ ...@@ -1631,9 +1631,9 @@ bytecodes: [
/* 54 S> */ B(Return), /* 54 S> */ B(Return),
B(LdaSmi), I8(-2), B(LdaSmi), I8(-2),
B(Star), R(3), B(Star), R(3),
B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(13), U8(1), B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(13), U8(1),
B(Star), R(14), B(Star), R(14),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(13), U8(1), B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(13), U8(1),
B(Star), R(15), B(Star), R(15),
B(LdaZero), B(LdaZero),
B(TestEqualStrictNoFeedback), R(15), B(TestEqualStrictNoFeedback), R(15),
...@@ -1660,7 +1660,7 @@ bytecodes: [ ...@@ -1660,7 +1660,7 @@ bytecodes: [
B(PopContext), R(2), B(PopContext), R(2),
B(LdaZero), B(LdaZero),
B(StaContextSlot), R(1), U8(11), U8(0), B(StaContextSlot), R(1), U8(11), U8(0),
B(JumpLoop), U8(235), I8(0), B(JumpLoop), U8(233), I8(0),
B(Jump), U8(48), B(Jump), U8(48),
B(Star), R(13), B(Star), R(13),
B(Ldar), R(closure), B(Ldar), R(closure),
...@@ -1851,10 +1851,10 @@ constant pool: [ ...@@ -1851,10 +1851,10 @@ constant pool: [
Smi [9], Smi [9],
] ]
handlers: [ handlers: [
[65, 689, 695], [64, 686, 692],
[68, 636, 638], [67, 633, 635],
[85, 401, 407], [84, 398, 404],
[88, 353, 355], [87, 350, 352],
[494, 510, 512], [491, 507, 509],
] ]
...@@ -13,11 +13,11 @@ snippet: " ...@@ -13,11 +13,11 @@ snippet: "
" "
frame size: 11 frame size: 11
parameter count: 1 parameter count: 1
bytecode array length: 177 bytecode array length: 174
bytecodes: [ bytecodes: [
B(Ldar), R(new_target), B(Ldar), R(new_target),
B(JumpIfUndefined), U8(26), B(JumpIfUndefined), U8(25),
B(CallRuntime), U16(Runtime::k_GeneratorGetContext), R(new_target), U8(1), B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetContext), R(new_target), U8(1),
B(PushContext), R(2), B(PushContext), R(2),
B(ResumeGenerator), R(new_target), B(ResumeGenerator), R(new_target),
B(Star), R(1), B(Star), R(1),
...@@ -45,9 +45,9 @@ bytecodes: [ ...@@ -45,9 +45,9 @@ bytecodes: [
/* 16 S> */ B(Return), /* 16 S> */ B(Return),
B(LdaSmi), I8(-2), B(LdaSmi), I8(-2),
B(Star), R(1), B(Star), R(1),
B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(6), U8(1), B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(6), U8(1),
B(Star), R(7), B(Star), R(7),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(6), U8(1), B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(6), U8(1),
B(Star), R(8), B(Star), R(8),
B(LdaZero), B(LdaZero),
B(TestEqualStrictNoFeedback), R(8), B(TestEqualStrictNoFeedback), R(8),
...@@ -104,7 +104,7 @@ constant pool: [ ...@@ -104,7 +104,7 @@ constant pool: [
Smi [9], Smi [9],
] ]
handlers: [ handlers: [
[52, 133, 139], [51, 130, 136],
] ]
--- ---
...@@ -114,11 +114,11 @@ snippet: " ...@@ -114,11 +114,11 @@ snippet: "
" "
frame size: 11 frame size: 11
parameter count: 1 parameter count: 1
bytecode array length: 251 bytecode array length: 246
bytecodes: [ bytecodes: [
B(Ldar), R(new_target), B(Ldar), R(new_target),
B(JumpIfUndefined), U8(26), B(JumpIfUndefined), U8(25),
B(CallRuntime), U16(Runtime::k_GeneratorGetContext), R(new_target), U8(1), B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetContext), R(new_target), U8(1),
B(PushContext), R(2), B(PushContext), R(2),
B(ResumeGenerator), R(new_target), B(ResumeGenerator), R(new_target),
B(Star), R(1), B(Star), R(1),
...@@ -146,9 +146,9 @@ bytecodes: [ ...@@ -146,9 +146,9 @@ bytecodes: [
/* 25 S> */ B(Return), /* 25 S> */ B(Return),
B(LdaSmi), I8(-2), B(LdaSmi), I8(-2),
B(Star), R(1), B(Star), R(1),
B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(6), U8(1), B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(6), U8(1),
B(Star), R(7), B(Star), R(7),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(6), U8(1), B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(6), U8(1),
B(Star), R(8), B(Star), R(8),
B(LdaZero), B(LdaZero),
B(TestEqualStrictNoFeedback), R(8), B(TestEqualStrictNoFeedback), R(8),
...@@ -163,7 +163,7 @@ bytecodes: [ ...@@ -163,7 +163,7 @@ bytecodes: [
B(Star), R(4), B(Star), R(4),
B(LdaZero), B(LdaZero),
B(Star), R(3), B(Star), R(3),
B(Jump), U8(108), B(Jump), U8(106),
B(Ldar), R(7), B(Ldar), R(7),
/* 11 E> */ B(Throw), /* 11 E> */ B(Throw),
/* 16 S> */ B(LdaImmutableCurrentContextSlot), U8(4), /* 16 S> */ B(LdaImmutableCurrentContextSlot), U8(4),
...@@ -180,9 +180,9 @@ bytecodes: [ ...@@ -180,9 +180,9 @@ bytecodes: [
/* 25 S> */ B(Return), /* 25 S> */ B(Return),
B(LdaSmi), I8(-2), B(LdaSmi), I8(-2),
B(Star), R(1), B(Star), R(1),
B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(6), U8(1), B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(6), U8(1),
B(Star), R(7), B(Star), R(7),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(6), U8(1), B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(6), U8(1),
B(Star), R(8), B(Star), R(8),
B(LdaZero), B(LdaZero),
B(TestEqualStrictNoFeedback), R(8), B(TestEqualStrictNoFeedback), R(8),
...@@ -235,12 +235,12 @@ bytecodes: [ ...@@ -235,12 +235,12 @@ bytecodes: [
] ]
constant pool: [ constant pool: [
Smi [52], Smi [52],
Smi [126], Smi [124],
Smi [6], Smi [6],
Smi [9], Smi [9],
] ]
handlers: [ handlers: [
[52, 207, 213], [51, 202, 208],
] ]
--- ---
...@@ -250,11 +250,11 @@ snippet: " ...@@ -250,11 +250,11 @@ snippet: "
" "
frame size: 17 frame size: 17
parameter count: 1 parameter count: 1
bytecode array length: 697 bytecode array length: 692
bytecodes: [ bytecodes: [
B(Ldar), R(new_target), B(Ldar), R(new_target),
B(JumpIfUndefined), U8(26), B(JumpIfUndefined), U8(25),
B(CallRuntime), U16(Runtime::k_GeneratorGetContext), R(new_target), U8(1), B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetContext), R(new_target), U8(1),
B(PushContext), R(4), B(PushContext), R(4),
B(ResumeGenerator), R(new_target), B(ResumeGenerator), R(new_target),
B(Star), R(3), B(Star), R(3),
...@@ -282,9 +282,9 @@ bytecodes: [ ...@@ -282,9 +282,9 @@ bytecodes: [
/* 44 S> */ B(Return), /* 44 S> */ B(Return),
B(LdaSmi), I8(-2), B(LdaSmi), I8(-2),
B(Star), R(3), B(Star), R(3),
B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(8), U8(1), B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(8), U8(1),
B(Star), R(9), B(Star), R(9),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(8), U8(1), B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(8), U8(1),
B(Star), R(10), B(Star), R(10),
B(LdaZero), B(LdaZero),
B(TestEqualStrictNoFeedback), R(10), B(TestEqualStrictNoFeedback), R(10),
...@@ -343,7 +343,7 @@ bytecodes: [ ...@@ -343,7 +343,7 @@ bytecodes: [
B(LdaContextSlot), R(1), U8(7), U8(0), B(LdaContextSlot), R(1), U8(7), U8(0),
B(Star), R(12), B(Star), R(12),
B(LdaNamedProperty), R(12), U8(7), U8(12), B(LdaNamedProperty), R(12), U8(7), U8(12),
B(JumpIfToBooleanTrue), U8(144), B(JumpIfToBooleanTrue), U8(142),
B(LdaContextSlot), R(1), U8(7), U8(0), B(LdaContextSlot), R(1), U8(7), U8(0),
B(Star), R(12), B(Star), R(12),
B(LdaNamedProperty), R(12), U8(8), U8(14), B(LdaNamedProperty), R(12), U8(8), U8(14),
...@@ -374,9 +374,9 @@ bytecodes: [ ...@@ -374,9 +374,9 @@ bytecodes: [
/* 44 S> */ B(Return), /* 44 S> */ B(Return),
B(LdaSmi), I8(-2), B(LdaSmi), I8(-2),
B(Star), R(3), B(Star), R(3),
B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(12), U8(1), B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(12), U8(1),
B(Star), R(13), B(Star), R(13),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(12), U8(1), B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(12), U8(1),
B(Star), R(14), B(Star), R(14),
B(LdaZero), B(LdaZero),
B(TestEqualStrictNoFeedback), R(14), B(TestEqualStrictNoFeedback), R(14),
...@@ -403,7 +403,7 @@ bytecodes: [ ...@@ -403,7 +403,7 @@ bytecodes: [
B(PopContext), R(2), B(PopContext), R(2),
B(LdaZero), B(LdaZero),
B(StaContextSlot), R(1), U8(8), U8(0), B(StaContextSlot), R(1), U8(8), U8(0),
B(JumpLoop), U8(212), I8(0), B(JumpLoop), U8(210), I8(0),
B(Jump), U8(44), B(Jump), U8(44),
B(Star), R(12), B(Star), R(12),
B(Ldar), R(closure), B(Ldar), R(closure),
...@@ -542,7 +542,7 @@ bytecodes: [ ...@@ -542,7 +542,7 @@ bytecodes: [
] ]
constant pool: [ constant pool: [
Smi [52], Smi [52],
Smi [148], Smi [146],
FIXED_ARRAY_TYPE, FIXED_ARRAY_TYPE,
TUPLE2_TYPE, TUPLE2_TYPE,
SYMBOL_TYPE, SYMBOL_TYPE,
...@@ -558,14 +558,14 @@ constant pool: [ ...@@ -558,14 +558,14 @@ constant pool: [
FIXED_ARRAY_TYPE, FIXED_ARRAY_TYPE,
Smi [6], Smi [6],
Smi [18], Smi [18],
Smi [554], Smi [552],
Smi [6], Smi [6],
Smi [9], Smi [9],
] ]
handlers: [ handlers: [
[52, 653, 659], [51, 648, 654],
[133, 422, 428], [130, 417, 423],
[136, 378, 380], [133, 373, 375],
[515, 531, 533], [510, 526, 528],
] ]
...@@ -273,11 +273,11 @@ snippet: " ...@@ -273,11 +273,11 @@ snippet: "
" "
frame size: 14 frame size: 14
parameter count: 1 parameter count: 1
bytecode array length: 335 bytecode array length: 332
bytecodes: [ bytecodes: [
B(Ldar), R(new_target), B(Ldar), R(new_target),
B(JumpIfUndefined), U8(26), B(JumpIfUndefined), U8(25),
B(CallRuntime), U16(Runtime::k_GeneratorGetContext), R(new_target), U8(1), B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetContext), R(new_target), U8(1),
B(PushContext), R(5), B(PushContext), R(5),
B(ResumeGenerator), R(new_target), B(ResumeGenerator), R(new_target),
B(Star), R(4), B(Star), R(4),
...@@ -305,9 +305,9 @@ bytecodes: [ ...@@ -305,9 +305,9 @@ bytecodes: [
/* 62 S> */ B(Return), /* 62 S> */ B(Return),
B(LdaSmi), I8(-2), B(LdaSmi), I8(-2),
B(Star), R(4), B(Star), R(4),
B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(9), U8(1), B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(9), U8(1),
B(Star), R(10), B(Star), R(10),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(9), U8(1), B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(9), U8(1),
B(Star), R(11), B(Star), R(11),
B(LdaZero), B(LdaZero),
B(TestEqualStrictNoFeedback), R(11), B(TestEqualStrictNoFeedback), R(11),
...@@ -436,7 +436,7 @@ constant pool: [ ...@@ -436,7 +436,7 @@ constant pool: [
Smi [9], Smi [9],
] ]
handlers: [ handlers: [
[52, 291, 297], [51, 288, 294],
] ]
--- ---
...@@ -448,11 +448,11 @@ snippet: " ...@@ -448,11 +448,11 @@ snippet: "
" "
frame size: 13 frame size: 13
parameter count: 1 parameter count: 1
bytecode array length: 444 bytecode array length: 439
bytecodes: [ bytecodes: [
B(Ldar), R(new_target), B(Ldar), R(new_target),
B(JumpIfUndefined), U8(26), B(JumpIfUndefined), U8(25),
B(CallRuntime), U16(Runtime::k_GeneratorGetContext), R(new_target), U8(1), B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetContext), R(new_target), U8(1),
B(PushContext), R(4), B(PushContext), R(4),
B(ResumeGenerator), R(new_target), B(ResumeGenerator), R(new_target),
B(Star), R(3), B(Star), R(3),
...@@ -480,9 +480,9 @@ bytecodes: [ ...@@ -480,9 +480,9 @@ bytecodes: [
/* 56 S> */ B(Return), /* 56 S> */ B(Return),
B(LdaSmi), I8(-2), B(LdaSmi), I8(-2),
B(Star), R(3), B(Star), R(3),
B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(8), U8(1), B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(8), U8(1),
B(Star), R(9), B(Star), R(9),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(8), U8(1), B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(8), U8(1),
B(Star), R(10), B(Star), R(10),
B(LdaZero), B(LdaZero),
B(TestEqualStrictNoFeedback), R(10), B(TestEqualStrictNoFeedback), R(10),
...@@ -547,7 +547,7 @@ bytecodes: [ ...@@ -547,7 +547,7 @@ bytecodes: [
B(JumpIfFalse), U8(4), B(JumpIfFalse), U8(4),
B(Jump), U8(6), B(Jump), U8(6),
B(PopContext), R(2), B(PopContext), R(2),
B(Jump), U8(157), B(Jump), U8(155),
B(Ldar), R(3), B(Ldar), R(3),
B(SwitchOnSmiNoFeedback), U8(5), U8(1), I8(1), B(SwitchOnSmiNoFeedback), U8(5), U8(1), I8(1),
B(LdaSmi), I8(-2), B(LdaSmi), I8(-2),
...@@ -560,7 +560,7 @@ bytecodes: [ ...@@ -560,7 +560,7 @@ bytecodes: [
B(Star), R(8), B(Star), R(8),
B(LdaSmi), I8(1), B(LdaSmi), I8(1),
B(TestEqual), R(8), U8(6), B(TestEqual), R(8), U8(6),
B(JumpIfFalse), U8(101), B(JumpIfFalse), U8(99),
/* 18 E> */ B(StackCheck), /* 18 E> */ B(StackCheck),
/* 47 S> */ B(LdaImmutableContextSlot), R(1), U8(4), U8(0), /* 47 S> */ B(LdaImmutableContextSlot), R(1), U8(4), U8(0),
B(Star), R(8), B(Star), R(8),
...@@ -576,9 +576,9 @@ bytecodes: [ ...@@ -576,9 +576,9 @@ bytecodes: [
/* 56 S> */ B(Return), /* 56 S> */ B(Return),
B(LdaSmi), I8(-2), B(LdaSmi), I8(-2),
B(Star), R(3), B(Star), R(3),
B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(8), U8(1), B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(8), U8(1),
B(Star), R(9), B(Star), R(9),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(8), U8(1), B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(8), U8(1),
B(Star), R(10), B(Star), R(10),
B(LdaZero), B(LdaZero),
B(TestEqualStrictNoFeedback), R(10), B(TestEqualStrictNoFeedback), R(10),
...@@ -604,7 +604,7 @@ bytecodes: [ ...@@ -604,7 +604,7 @@ bytecodes: [
B(StaContextSlot), R(1), U8(7), U8(0), B(StaContextSlot), R(1), U8(7), U8(0),
B(LdaCurrentContextSlot), U8(4), B(LdaCurrentContextSlot), U8(4),
/* 54 E> */ B(StaContextSlot), R(1), U8(5), U8(0), /* 54 E> */ B(StaContextSlot), R(1), U8(5), U8(0),
B(JumpLoop), U8(130), I8(1), B(JumpLoop), U8(128), I8(1),
B(LdaContextSlot), R(1), U8(7), U8(0), B(LdaContextSlot), R(1), U8(7), U8(0),
B(Star), R(8), B(Star), R(8),
B(LdaSmi), I8(1), B(LdaSmi), I8(1),
...@@ -613,7 +613,7 @@ bytecodes: [ ...@@ -613,7 +613,7 @@ bytecodes: [
B(PopContext), R(2), B(PopContext), R(2),
B(Jump), U8(7), B(Jump), U8(7),
B(PopContext), R(2), B(PopContext), R(2),
B(JumpLoop), U8(238), I8(0), B(JumpLoop), U8(236), I8(0),
B(PopContext), R(1), B(PopContext), R(1),
B(LdaUndefined), B(LdaUndefined),
B(Star), R(8), B(Star), R(8),
...@@ -650,17 +650,17 @@ bytecodes: [ ...@@ -650,17 +650,17 @@ bytecodes: [
] ]
constant pool: [ constant pool: [
Smi [52], Smi [52],
Smi [125], Smi [123],
FIXED_ARRAY_TYPE, FIXED_ARRAY_TYPE,
Smi [84], Smi [84],
FIXED_ARRAY_TYPE, FIXED_ARRAY_TYPE,
Smi [60], Smi [60],
Smi [301], Smi [299],
Smi [6], Smi [6],
Smi [9], Smi [9],
] ]
handlers: [ handlers: [
[52, 400, 406], [51, 395, 401],
] ]
--- ---
...@@ -838,11 +838,11 @@ snippet: " ...@@ -838,11 +838,11 @@ snippet: "
" "
frame size: 14 frame size: 14
parameter count: 1 parameter count: 1
bytecode array length: 483 bytecode array length: 480
bytecodes: [ bytecodes: [
B(Ldar), R(new_target), B(Ldar), R(new_target),
B(JumpIfUndefined), U8(26), B(JumpIfUndefined), U8(25),
B(CallRuntime), U16(Runtime::k_GeneratorGetContext), R(new_target), U8(1), B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetContext), R(new_target), U8(1),
B(PushContext), R(4), B(PushContext), R(4),
B(ResumeGenerator), R(new_target), B(ResumeGenerator), R(new_target),
B(Star), R(3), B(Star), R(3),
...@@ -912,7 +912,7 @@ bytecodes: [ ...@@ -912,7 +912,7 @@ bytecodes: [
B(JumpIfFalse), U8(4), B(JumpIfFalse), U8(4),
B(Jump), U8(6), B(Jump), U8(6),
B(PopContext), R(2), B(PopContext), R(2),
B(Jump), U8(187), B(Jump), U8(185),
B(Ldar), R(3), B(Ldar), R(3),
B(SwitchOnSmiNoFeedback), U8(4), U8(1), I8(0), B(SwitchOnSmiNoFeedback), U8(4), U8(1), I8(0),
B(LdaSmi), I8(-2), B(LdaSmi), I8(-2),
...@@ -925,7 +925,7 @@ bytecodes: [ ...@@ -925,7 +925,7 @@ bytecodes: [
B(Star), R(9), B(Star), R(9),
B(LdaSmi), I8(1), B(LdaSmi), I8(1),
B(TestEqual), R(9), U8(6), B(TestEqual), R(9), U8(6),
B(JumpIfFalse), U8(128), B(JumpIfFalse), U8(126),
/* 23 E> */ B(StackCheck), /* 23 E> */ B(StackCheck),
/* 52 S> */ B(LdaImmutableContextSlot), R(1), U8(4), U8(0), /* 52 S> */ B(LdaImmutableContextSlot), R(1), U8(4), U8(0),
B(Star), R(9), B(Star), R(9),
...@@ -948,9 +948,9 @@ bytecodes: [ ...@@ -948,9 +948,9 @@ bytecodes: [
/* 61 S> */ B(Return), /* 61 S> */ B(Return),
B(LdaSmi), I8(-2), B(LdaSmi), I8(-2),
B(Star), R(3), B(Star), R(3),
B(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(9), U8(1), B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetInputOrDebugPos), R(9), U8(1),
B(Star), R(10), B(Star), R(10),
B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(9), U8(1), B(InvokeIntrinsic), U8(Runtime::k_GeneratorGetResumeMode), R(9), U8(1),
B(Star), R(11), B(Star), R(11),
B(LdaZero), B(LdaZero),
B(TestEqualStrictNoFeedback), R(11), B(TestEqualStrictNoFeedback), R(11),
...@@ -978,7 +978,7 @@ bytecodes: [ ...@@ -978,7 +978,7 @@ bytecodes: [
B(StaContextSlot), R(1), U8(9), U8(0), B(StaContextSlot), R(1), U8(9), U8(0),
B(LdaCurrentContextSlot), U8(4), B(LdaCurrentContextSlot), U8(4),
/* 59 E> */ B(StaContextSlot), R(1), U8(7), U8(0), /* 59 E> */ B(StaContextSlot), R(1), U8(7), U8(0),
B(JumpLoop), U8(157), I8(1), B(JumpLoop), U8(155), I8(1),
B(LdaContextSlot), R(1), U8(9), U8(0), B(LdaContextSlot), R(1), U8(9), U8(0),
B(Star), R(9), B(Star), R(9),
B(LdaSmi), I8(1), B(LdaSmi), I8(1),
...@@ -987,7 +987,7 @@ bytecodes: [ ...@@ -987,7 +987,7 @@ bytecodes: [
B(PopContext), R(2), B(PopContext), R(2),
B(Jump), U8(10), B(Jump), U8(10),
B(PopContext), R(2), B(PopContext), R(2),
B(Wide), B(JumpLoop), U16(266), I16(0), B(Wide), B(JumpLoop), U16(264), I16(0),
B(PopContext), R(1), B(PopContext), R(1),
B(LdaUndefined), B(LdaUndefined),
B(Star), R(9), B(Star), R(9),
...@@ -1064,7 +1064,7 @@ constant pool: [ ...@@ -1064,7 +1064,7 @@ constant pool: [
Smi [9], Smi [9],
] ]
handlers: [ handlers: [
[61, 437, 443], [60, 434, 440],
[64, 384, 386], [63, 381, 383],
] ]
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