Commit 18d27219 authored by Adam Klein's avatar Adam Klein Committed by Commit Bot

[ignition] Avoid emitting unnecessary Jump in VisitSuspend()

Bug: v8:6351
Change-Id: I6a5b44486bac87e2b3cb9aa93808b2c7964d6202
Reviewed-on: https://chromium-review.googlesource.com/499508
Commit-Queue: Adam Klein <adamk@chromium.org>
Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#45205}
parent 4f5dcd4b
......@@ -2464,7 +2464,6 @@ void BytecodeGenerator::VisitSuspend(Suspend* expr) {
// Now dispatch on resume mode.
BytecodeLabel resume_with_next;
BytecodeLabel resume_with_return;
BytecodeLabel resume_with_throw;
builder()
......@@ -2473,24 +2472,21 @@ void BytecodeGenerator::VisitSuspend(Suspend* expr) {
.JumpIfTrue(ToBooleanMode::kAlreadyBoolean, &resume_with_next)
.LoadLiteral(Smi::FromInt(JSGeneratorObject::kThrow))
.CompareOperation(Token::EQ_STRICT, resume_mode)
.JumpIfTrue(ToBooleanMode::kAlreadyBoolean, &resume_with_throw)
.Jump(&resume_with_return);
builder()->Bind(&resume_with_return);
{
if (expr->is_async_generator()) {
// Async generator methods will produce the iter result object.
builder()->LoadAccumulatorWithRegister(input);
execution_control()->AsyncReturnAccumulator();
} else {
RegisterList args = register_allocator()->NewRegisterList(2);
builder()
->MoveRegister(input, args[0])
.LoadTrue()
.StoreAccumulatorInRegister(args[1])
.CallRuntime(Runtime::kInlineCreateIterResultObject, args);
execution_control()->ReturnAccumulator();
}
.JumpIfTrue(ToBooleanMode::kAlreadyBoolean, &resume_with_throw);
// Fall through for resuming with return.
if (expr->is_async_generator()) {
// Async generator methods will produce the iter result object.
builder()->LoadAccumulatorWithRegister(input);
execution_control()->AsyncReturnAccumulator();
} else {
RegisterList args = register_allocator()->NewRegisterList(2);
builder()
->MoveRegister(input, args[0])
.LoadTrue()
.StoreAccumulatorInRegister(args[1])
.CallRuntime(Runtime::kInlineCreateIterResultObject, args);
execution_control()->ReturnAccumulator();
}
builder()->Bind(&resume_with_throw);
......
......@@ -648,7 +648,7 @@ snippet: "
"
frame size: 15
parameter count: 2
bytecode array length: 625
bytecode array length: 623
bytecodes: [
B(Ldar), R(new_target),
B(JumpIfUndefined), U8(27),
......@@ -692,11 +692,10 @@ bytecodes: [
B(Star), R(12),
B(LdaZero),
B(TestEqualStrictNoFeedback), R(12),
B(JumpIfTrue), U8(30),
B(JumpIfTrue), U8(28),
B(LdaSmi), I8(2),
B(TestEqualStrictNoFeedback), R(12),
B(JumpIfTrue), U8(21),
B(Jump), U8(2),
B(JumpIfTrue), U8(19),
B(LdaTrue),
B(Star), R(14),
B(Mov), R(11), R(13),
......@@ -930,10 +929,10 @@ constant pool: [
Smi [449],
]
handlers: [
[49, 558, 564],
[143, 340, 346],
[146, 296, 298],
[432, 448, 450],
[49, 556, 562],
[141, 338, 344],
[144, 294, 296],
[430, 446, 448],
]
---
......@@ -945,7 +944,7 @@ snippet: "
"
frame size: 18
parameter count: 2
bytecode array length: 754
bytecode array length: 750
bytecodes: [
B(Ldar), R(new_target),
B(JumpIfUndefined), U8(33),
......@@ -958,7 +957,7 @@ bytecodes: [
B(JumpIfTrue), U8(63),
B(LdaSmi), I8(1),
B(TestEqualStrictNoFeedback), R(3),
B(JumpIfTrue), U8(155),
B(JumpIfTrue), U8(153),
B(LdaSmi), I8(79),
B(Star), R(5),
B(CallRuntime), U16(Runtime::kAbort), R(5), U8(1),
......@@ -992,11 +991,10 @@ bytecodes: [
B(Star), R(11),
B(LdaZero),
B(TestEqualStrictNoFeedback), R(11),
B(JumpIfTrue), U8(30),
B(JumpIfTrue), U8(28),
B(LdaSmi), I8(2),
B(TestEqualStrictNoFeedback), R(11),
B(JumpIfTrue), U8(21),
B(Jump), U8(2),
B(JumpIfTrue), U8(19),
B(LdaTrue),
B(Star), R(13),
B(Mov), R(10), R(12),
......@@ -1049,7 +1047,7 @@ bytecodes: [
B(LdaContextSlot), R(1), U8(9), U8(0),
B(Star), R(12),
B(LdaNamedProperty), R(12), U8(3), U8(10),
B(JumpIfToBooleanTrue), U8(146),
B(JumpIfToBooleanTrue), U8(144),
B(LdaContextSlot), R(1), U8(9), U8(0),
B(Star), R(12),
B(LdaNamedProperty), R(12), U8(4), U8(12),
......@@ -1086,11 +1084,10 @@ bytecodes: [
B(Star), R(15),
B(LdaZero),
B(TestEqualStrictNoFeedback), R(15),
B(JumpIfTrue), U8(42),
B(JumpIfTrue), U8(40),
B(LdaSmi), I8(2),
B(TestEqualStrictNoFeedback), R(15),
B(JumpIfTrue), U8(33),
B(Jump), U8(2),
B(JumpIfTrue), U8(31),
B(LdaTrue),
B(Star), R(17),
B(Mov), R(14), R(16),
......@@ -1110,7 +1107,7 @@ bytecodes: [
B(PopContext), R(2),
B(LdaZero),
B(StaContextSlot), R(1), U8(10), U8(0),
B(JumpLoop), U8(214), I8(0),
B(JumpLoop), U8(212), I8(0),
B(Jump), U8(44),
B(Star), R(12),
B(Ldar), R(closure),
......@@ -1282,13 +1279,13 @@ constant pool: [
ONE_BYTE_INTERNALIZED_STRING_TYPE ["return"],
ONE_BYTE_INTERNALIZED_STRING_TYPE [""],
FIXED_ARRAY_TYPE,
Smi [563],
Smi [561],
]
handlers: [
[55, 678, 684],
[149, 440, 446],
[152, 396, 398],
[533, 549, 551],
[55, 674, 680],
[147, 436, 442],
[150, 392, 394],
[529, 545, 547],
]
---
......@@ -1596,7 +1593,7 @@ snippet: "
"
frame size: 19
parameter count: 2
bytecode array length: 772
bytecode array length: 770
bytecodes: [
B(Ldar), R(new_target),
B(JumpIfUndefined), U8(27),
......@@ -1672,7 +1669,7 @@ bytecodes: [
B(LdaContextSlot), R(1), U8(11), U8(0),
B(Star), R(13),
B(LdaNamedProperty), R(13), U8(3), U8(10),
B(JumpIfToBooleanTrue), U8(169),
B(JumpIfToBooleanTrue), U8(167),
B(LdaContextSlot), R(1), U8(11), U8(0),
B(Star), R(13),
B(LdaNamedProperty), R(13), U8(4), U8(12),
......@@ -1716,11 +1713,10 @@ bytecodes: [
B(Star), R(16),
B(LdaZero),
B(TestEqualStrictNoFeedback), R(16),
B(JumpIfTrue), U8(42),
B(JumpIfTrue), U8(40),
B(LdaSmi), I8(2),
B(TestEqualStrictNoFeedback), R(16),
B(JumpIfTrue), U8(33),
B(Jump), U8(2),
B(JumpIfTrue), U8(31),
B(LdaTrue),
B(Star), R(18),
B(Mov), R(15), R(17),
......@@ -1740,7 +1736,7 @@ bytecodes: [
B(PopContext), R(2),
B(LdaZero),
B(StaContextSlot), R(1), U8(12), U8(0),
B(JumpLoop), U8(236), I8(0),
B(JumpLoop), U8(234), I8(0),
B(Jump), U8(48),
B(Star), R(13),
B(Ldar), R(closure),
......@@ -1943,10 +1939,10 @@ constant pool: [
FIXED_ARRAY_TYPE,
]
handlers: [
[71, 703, 709],
[74, 649, 651],
[91, 408, 414],
[94, 360, 362],
[501, 517, 519],
[71, 701, 707],
[74, 647, 649],
[91, 406, 412],
[94, 358, 360],
[499, 515, 517],
]
......@@ -13,7 +13,7 @@ snippet: "
"
frame size: 12
parameter count: 1
bytecode array length: 198
bytecode array length: 196
bytecodes: [
B(Ldar), R(new_target),
B(JumpIfUndefined), U8(27),
......@@ -55,11 +55,10 @@ bytecodes: [
B(Star), R(9),
B(LdaZero),
B(TestEqualStrictNoFeedback), R(9),
B(JumpIfTrue), U8(30),
B(JumpIfTrue), U8(28),
B(LdaSmi), I8(2),
B(TestEqualStrictNoFeedback), R(9),
B(JumpIfTrue), U8(21),
B(Jump), U8(2),
B(JumpIfTrue), U8(19),
B(LdaTrue),
B(Star), R(11),
B(Mov), R(8), R(10),
......@@ -115,7 +114,7 @@ bytecodes: [
constant pool: [
]
handlers: [
[45, 140, 146],
[45, 138, 144],
]
---
......@@ -125,7 +124,7 @@ snippet: "
"
frame size: 12
parameter count: 1
bytecode array length: 290
bytecode array length: 286
bytecodes: [
B(Ldar), R(new_target),
B(JumpIfUndefined), U8(33),
......@@ -138,7 +137,7 @@ bytecodes: [
B(JumpIfTrue), U8(59),
B(LdaSmi), I8(1),
B(TestEqualStrictNoFeedback), R(1),
B(JumpIfTrue), U8(129),
B(JumpIfTrue), U8(127),
B(LdaSmi), I8(79),
B(Star), R(3),
B(CallRuntime), U16(Runtime::kAbort), R(3), U8(1),
......@@ -170,11 +169,10 @@ bytecodes: [
B(Star), R(9),
B(LdaZero),
B(TestEqualStrictNoFeedback), R(9),
B(JumpIfTrue), U8(30),
B(JumpIfTrue), U8(28),
B(LdaSmi), I8(2),
B(TestEqualStrictNoFeedback), R(9),
B(JumpIfTrue), U8(21),
B(Jump), U8(2),
B(JumpIfTrue), U8(19),
B(LdaTrue),
B(Star), R(11),
B(Mov), R(8), R(10),
......@@ -182,7 +180,7 @@ bytecodes: [
B(Star), R(4),
B(LdaZero),
B(Star), R(3),
B(Jump), U8(112),
B(Jump), U8(110),
B(Ldar), R(8),
/* 11 E> */ B(Throw),
/* 16 S> */ B(LdaSmi), I8(42),
......@@ -205,11 +203,10 @@ bytecodes: [
B(Star), R(9),
B(LdaZero),
B(TestEqualStrictNoFeedback), R(9),
B(JumpIfTrue), U8(31),
B(JumpIfTrue), U8(29),
B(LdaSmi), I8(2),
B(TestEqualStrictNoFeedback), R(9),
B(JumpIfTrue), U8(22),
B(Jump), U8(2),
B(JumpIfTrue), U8(20),
B(LdaTrue),
B(Star), R(11),
B(Mov), R(8), R(10),
......@@ -270,7 +267,7 @@ bytecodes: [
constant pool: [
]
handlers: [
[51, 223, 229],
[51, 219, 225],
]
---
......@@ -280,7 +277,7 @@ snippet: "
"
frame size: 18
parameter count: 1
bytecode array length: 750
bytecode array length: 746
bytecodes: [
B(Ldar), R(new_target),
B(JumpIfUndefined), U8(33),
......@@ -293,7 +290,7 @@ bytecodes: [
B(JumpIfTrue), U8(59),
B(LdaSmi), I8(1),
B(TestEqualStrictNoFeedback), R(3),
B(JumpIfTrue), U8(151),
B(JumpIfTrue), U8(149),
B(LdaSmi), I8(79),
B(Star), R(5),
B(CallRuntime), U16(Runtime::kAbort), R(5), U8(1),
......@@ -325,11 +322,10 @@ bytecodes: [
B(Star), R(11),
B(LdaZero),
B(TestEqualStrictNoFeedback), R(11),
B(JumpIfTrue), U8(30),
B(JumpIfTrue), U8(28),
B(LdaSmi), I8(2),
B(TestEqualStrictNoFeedback), R(11),
B(JumpIfTrue), U8(21),
B(Jump), U8(2),
B(JumpIfTrue), U8(19),
B(LdaTrue),
B(Star), R(13),
B(Mov), R(10), R(12),
......@@ -382,7 +378,7 @@ bytecodes: [
B(LdaContextSlot), R(1), U8(8), U8(0),
B(Star), R(12),
B(LdaNamedProperty), R(12), U8(4), U8(11),
B(JumpIfToBooleanTrue), U8(146),
B(JumpIfToBooleanTrue), U8(144),
B(LdaContextSlot), R(1), U8(8), U8(0),
B(Star), R(12),
B(LdaNamedProperty), R(12), U8(5), U8(13),
......@@ -419,11 +415,10 @@ bytecodes: [
B(Star), R(15),
B(LdaZero),
B(TestEqualStrictNoFeedback), R(15),
B(JumpIfTrue), U8(42),
B(JumpIfTrue), U8(40),
B(LdaSmi), I8(2),
B(TestEqualStrictNoFeedback), R(15),
B(JumpIfTrue), U8(33),
B(Jump), U8(2),
B(JumpIfTrue), U8(31),
B(LdaTrue),
B(Star), R(17),
B(Mov), R(14), R(16),
......@@ -443,7 +438,7 @@ bytecodes: [
B(PopContext), R(2),
B(LdaZero),
B(StaContextSlot), R(1), U8(9), U8(0),
B(JumpLoop), U8(214), I8(0),
B(JumpLoop), U8(212), I8(0),
B(Jump), U8(44),
B(Star), R(12),
B(Ldar), R(closure),
......@@ -616,12 +611,12 @@ constant pool: [
ONE_BYTE_INTERNALIZED_STRING_TYPE ["return"],
ONE_BYTE_INTERNALIZED_STRING_TYPE [""],
FIXED_ARRAY_TYPE,
Smi [563],
Smi [561],
]
handlers: [
[51, 674, 680],
[145, 436, 442],
[148, 392, 394],
[529, 545, 547],
[51, 670, 676],
[143, 432, 438],
[146, 388, 390],
[525, 541, 543],
]
......@@ -13,7 +13,7 @@ snippet: "
"
frame size: 9
parameter count: 2
bytecode array length: 142
bytecode array length: 140
bytecodes: [
B(Ldar), R(new_target),
B(JumpIfUndefined), U8(27),
......@@ -58,11 +58,10 @@ bytecodes: [
B(Star), R(6),
B(LdaZero),
B(TestEqualStrictNoFeedback), R(6),
B(JumpIfTrue), U8(24),
B(JumpIfTrue), U8(22),
B(LdaSmi), I8(2),
B(TestEqualStrictNoFeedback), R(6),
B(JumpIfTrue), U8(15),
B(Jump), U8(2),
B(JumpIfTrue), U8(13),
B(LdaTrue),
B(Star), R(8),
B(Mov), R(5), R(7),
......@@ -91,7 +90,7 @@ snippet: "
"
frame size: 9
parameter count: 2
bytecode array length: 142
bytecode array length: 140
bytecodes: [
B(Ldar), R(new_target),
B(JumpIfUndefined), U8(27),
......@@ -136,11 +135,10 @@ bytecodes: [
B(Star), R(6),
B(LdaZero),
B(TestEqualStrictNoFeedback), R(6),
B(JumpIfTrue), U8(24),
B(JumpIfTrue), U8(22),
B(LdaSmi), I8(2),
B(TestEqualStrictNoFeedback), R(6),
B(JumpIfTrue), U8(15),
B(Jump), U8(2),
B(JumpIfTrue), U8(13),
B(LdaTrue),
B(Star), R(8),
B(Mov), R(5), R(7),
......@@ -171,7 +169,7 @@ snippet: "
"
frame size: 10
parameter count: 2
bytecode array length: 204
bytecode array length: 202
bytecodes: [
B(Ldar), R(new_target),
B(JumpIfUndefined), U8(27),
......@@ -216,11 +214,10 @@ bytecodes: [
B(Star), R(7),
B(LdaZero),
B(TestEqualStrictNoFeedback), R(7),
B(JumpIfTrue), U8(24),
B(JumpIfTrue), U8(22),
B(LdaSmi), I8(2),
B(TestEqualStrictNoFeedback), R(7),
B(JumpIfTrue), U8(15),
B(Jump), U8(2),
B(JumpIfTrue), U8(13),
B(LdaTrue),
B(Star), R(9),
B(Mov), R(6), R(8),
......@@ -278,7 +275,7 @@ snippet: "
"
frame size: 10
parameter count: 2
bytecode array length: 184
bytecode array length: 182
bytecodes: [
B(Ldar), R(new_target),
B(JumpIfUndefined), U8(27),
......@@ -323,11 +320,10 @@ bytecodes: [
B(Star), R(7),
B(LdaZero),
B(TestEqualStrictNoFeedback), R(7),
B(JumpIfTrue), U8(24),
B(JumpIfTrue), U8(22),
B(LdaSmi), I8(2),
B(TestEqualStrictNoFeedback), R(7),
B(JumpIfTrue), U8(15),
B(Jump), U8(2),
B(JumpIfTrue), U8(13),
B(LdaTrue),
B(Star), R(9),
B(Mov), R(6), R(8),
......@@ -377,7 +373,7 @@ snippet: "
"
frame size: 10
parameter count: 2
bytecode array length: 188
bytecode array length: 186
bytecodes: [
B(Ldar), R(new_target),
B(JumpIfUndefined), U8(27),
......@@ -424,11 +420,10 @@ bytecodes: [
B(Star), R(7),
B(LdaZero),
B(TestEqualStrictNoFeedback), R(7),
B(JumpIfTrue), U8(24),
B(JumpIfTrue), U8(22),
B(LdaSmi), I8(2),
B(TestEqualStrictNoFeedback), R(7),
B(JumpIfTrue), U8(15),
B(Jump), U8(2),
B(JumpIfTrue), U8(13),
B(LdaTrue),
B(Star), R(9),
B(Mov), R(6), R(8),
......@@ -478,7 +473,7 @@ snippet: "
"
frame size: 10
parameter count: 2
bytecode array length: 192
bytecode array length: 190
bytecodes: [
B(Ldar), R(new_target),
B(JumpIfUndefined), U8(27),
......@@ -525,11 +520,10 @@ bytecodes: [
B(Star), R(7),
B(LdaZero),
B(TestEqualStrictNoFeedback), R(7),
B(JumpIfTrue), U8(24),
B(JumpIfTrue), U8(22),
B(LdaSmi), I8(2),
B(TestEqualStrictNoFeedback), R(7),
B(JumpIfTrue), U8(15),
B(Jump), U8(2),
B(JumpIfTrue), U8(13),
B(LdaTrue),
B(Star), R(9),
B(Mov), R(6), R(8),
......@@ -577,7 +571,7 @@ snippet: "
"
frame size: 9
parameter count: 2
bytecode array length: 153
bytecode array length: 151
bytecodes: [
B(Ldar), R(new_target),
B(JumpIfUndefined), U8(27),
......@@ -624,11 +618,10 @@ bytecodes: [
B(Star), R(6),
B(LdaZero),
B(TestEqualStrictNoFeedback), R(6),
B(JumpIfTrue), U8(24),
B(JumpIfTrue), U8(22),
B(LdaSmi), I8(2),
B(TestEqualStrictNoFeedback), R(6),
B(JumpIfTrue), U8(15),
B(Jump), U8(2),
B(JumpIfTrue), U8(13),
B(LdaTrue),
B(Star), R(8),
B(Mov), R(5), R(7),
......@@ -660,7 +653,7 @@ snippet: "
"
frame size: 9
parameter count: 2
bytecode array length: 186
bytecode array length: 184
bytecodes: [
B(Ldar), R(new_target),
B(JumpIfUndefined), U8(27),
......@@ -707,11 +700,10 @@ bytecodes: [
B(Star), R(6),
B(LdaZero),
B(TestEqualStrictNoFeedback), R(6),
B(JumpIfTrue), U8(24),
B(JumpIfTrue), U8(22),
B(LdaSmi), I8(2),
B(TestEqualStrictNoFeedback), R(6),
B(JumpIfTrue), U8(15),
B(Jump), U8(2),
B(JumpIfTrue), U8(13),
B(LdaTrue),
B(Star), R(8),
B(Mov), R(5), R(7),
......@@ -755,7 +747,7 @@ snippet: "
"
frame size: 9
parameter count: 2
bytecode array length: 142
bytecode array length: 140
bytecodes: [
B(Ldar), R(new_target),
B(JumpIfUndefined), U8(27),
......@@ -800,11 +792,10 @@ bytecodes: [
B(Star), R(6),
B(LdaZero),
B(TestEqualStrictNoFeedback), R(6),
B(JumpIfTrue), U8(24),
B(JumpIfTrue), U8(22),
B(LdaSmi), I8(2),
B(TestEqualStrictNoFeedback), R(6),
B(JumpIfTrue), U8(15),
B(Jump), U8(2),
B(JumpIfTrue), U8(13),
B(LdaTrue),
B(Star), R(8),
B(Mov), R(5), R(7),
......@@ -833,7 +824,7 @@ snippet: "
"
frame size: 9
parameter count: 2
bytecode array length: 142
bytecode array length: 140
bytecodes: [
B(Ldar), R(new_target),
B(JumpIfUndefined), U8(27),
......@@ -878,11 +869,10 @@ bytecodes: [
B(Star), R(6),
B(LdaZero),
B(TestEqualStrictNoFeedback), R(6),
B(JumpIfTrue), U8(24),
B(JumpIfTrue), U8(22),
B(LdaSmi), I8(2),
B(TestEqualStrictNoFeedback), R(6),
B(JumpIfTrue), U8(15),
B(Jump), U8(2),
B(JumpIfTrue), U8(13),
B(LdaTrue),
B(Star), R(8),
B(Mov), R(5), R(7),
......@@ -912,7 +902,7 @@ snippet: "
"
frame size: 9
parameter count: 2
bytecode array length: 180
bytecode array length: 178
bytecodes: [
B(Ldar), R(new_target),
B(JumpIfUndefined), U8(27),
......@@ -961,11 +951,10 @@ bytecodes: [
B(Star), R(6),
B(LdaZero),
B(TestEqualStrictNoFeedback), R(6),
B(JumpIfTrue), U8(24),
B(JumpIfTrue), U8(22),
B(LdaSmi), I8(2),
B(TestEqualStrictNoFeedback), R(6),
B(JumpIfTrue), U8(15),
B(Jump), U8(2),
B(JumpIfTrue), U8(13),
B(LdaTrue),
B(Star), R(8),
B(Mov), R(5), R(7),
......
......@@ -273,7 +273,7 @@ snippet: "
"
frame size: 15
parameter count: 1
bytecode array length: 356
bytecode array length: 354
bytecodes: [
B(Ldar), R(new_target),
B(JumpIfUndefined), U8(27),
......@@ -315,11 +315,10 @@ bytecodes: [
B(Star), R(12),
B(LdaZero),
B(TestEqualStrictNoFeedback), R(12),
B(JumpIfTrue), U8(30),
B(JumpIfTrue), U8(28),
B(LdaSmi), I8(2),
B(TestEqualStrictNoFeedback), R(12),
B(JumpIfTrue), U8(21),
B(Jump), U8(2),
B(JumpIfTrue), U8(19),
B(LdaTrue),
B(Star), R(14),
B(Mov), R(11), R(13),
......@@ -447,7 +446,7 @@ constant pool: [
FIXED_ARRAY_TYPE,
]
handlers: [
[45, 298, 304],
[45, 296, 302],
]
---
......@@ -459,7 +458,7 @@ snippet: "
"
frame size: 14
parameter count: 1
bytecode array length: 483
bytecode array length: 479
bytecodes: [
B(Ldar), R(new_target),
B(JumpIfUndefined), U8(33),
......@@ -472,7 +471,7 @@ bytecodes: [
B(JumpIfTrue), U8(59),
B(LdaSmi), I8(1),
B(TestEqualStrictNoFeedback), R(3),
B(JumpIfTrue), U8(128),
B(JumpIfTrue), U8(126),
B(LdaSmi), I8(79),
B(Star), R(5),
B(CallRuntime), U16(Runtime::kAbort), R(5), U8(1),
......@@ -504,11 +503,10 @@ bytecodes: [
B(Star), R(11),
B(LdaZero),
B(TestEqualStrictNoFeedback), R(11),
B(JumpIfTrue), U8(30),
B(JumpIfTrue), U8(28),
B(LdaSmi), I8(2),
B(TestEqualStrictNoFeedback), R(11),
B(JumpIfTrue), U8(21),
B(Jump), U8(2),
B(JumpIfTrue), U8(19),
B(LdaTrue),
B(Star), R(13),
B(Mov), R(10), R(12),
......@@ -567,7 +565,7 @@ bytecodes: [
B(JumpIfFalse), U8(4),
B(Jump), U8(6),
B(PopContext), R(2),
B(Jump), U8(160),
B(Jump), U8(158),
B(LdaSmi), I8(-2),
B(TestEqualStrictNoFeedback), R(3),
B(JumpIfTrue), U8(17),
......@@ -581,7 +579,7 @@ bytecodes: [
B(Star), R(8),
B(LdaSmi), I8(1),
B(TestEqual), R(8), U8(5),
B(JumpIfFalse), U8(104),
B(JumpIfFalse), U8(102),
/* 18 E> */ B(StackCheck),
/* 47 S> */ B(LdaCurrentContextSlot), U8(4),
B(Star), R(8),
......@@ -603,11 +601,10 @@ bytecodes: [
B(Star), R(11),
B(LdaZero),
B(TestEqualStrictNoFeedback), R(11),
B(JumpIfTrue), U8(39),
B(JumpIfTrue), U8(37),
B(LdaSmi), I8(2),
B(TestEqualStrictNoFeedback), R(11),
B(JumpIfTrue), U8(30),
B(Jump), U8(2),
B(JumpIfTrue), U8(28),
B(LdaTrue),
B(Star), R(13),
B(Mov), R(10), R(12),
......@@ -626,7 +623,7 @@ bytecodes: [
B(StaContextSlot), R(1), U8(8), U8(0),
B(LdaCurrentContextSlot), U8(4),
/* 54 E> */ B(StaContextSlot), R(1), U8(6), U8(0),
B(JumpLoop), U8(133), I8(1),
B(JumpLoop), U8(131), I8(1),
B(LdaContextSlot), R(1), U8(8), U8(0),
B(Star), R(8),
B(LdaSmi), I8(1),
......@@ -635,7 +632,7 @@ bytecodes: [
B(PopContext), R(2),
B(Jump), U8(7),
B(PopContext), R(2),
B(JumpLoop), U8(241), I8(0),
B(JumpLoop), U8(239), I8(0),
B(PopContext), R(1),
B(LdaUndefined),
B(Star), R(8),
......@@ -687,10 +684,10 @@ bytecodes: [
constant pool: [
FIXED_ARRAY_TYPE,
FIXED_ARRAY_TYPE,
Smi [305],
Smi [303],
]
handlers: [
[51, 416, 422],
[51, 412, 418],
]
---
......@@ -893,7 +890,7 @@ snippet: "
"
frame size: 15
parameter count: 1
bytecode array length: 514
bytecode array length: 512
bytecodes: [
B(Ldar), R(new_target),
B(JumpIfUndefined), U8(27),
......@@ -973,7 +970,7 @@ bytecodes: [
B(JumpIfFalse), U8(4),
B(Jump), U8(6),
B(PopContext), R(2),
B(Jump), U8(188),
B(Jump), U8(186),
B(LdaSmi), I8(-2),
B(TestEqualStrictNoFeedback), R(3),
B(JumpIfTrue), U8(16),
......@@ -987,7 +984,7 @@ bytecodes: [
B(Star), R(9),
B(LdaSmi), I8(1),
B(TestEqual), R(9), U8(5),
B(JumpIfFalse), U8(130),
B(JumpIfFalse), U8(128),
/* 23 E> */ B(StackCheck),
/* 58 S> */ B(LdaCurrentContextSlot), U8(4),
B(StaContextSlot), R(1), U8(6), U8(0),
......@@ -1016,11 +1013,10 @@ bytecodes: [
B(Star), R(12),
B(LdaZero),
B(TestEqualStrictNoFeedback), R(12),
B(JumpIfTrue), U8(42),
B(JumpIfTrue), U8(40),
B(LdaSmi), I8(2),
B(TestEqualStrictNoFeedback), R(12),
B(JumpIfTrue), U8(33),
B(Jump), U8(2),
B(JumpIfTrue), U8(31),
B(LdaTrue),
B(Star), R(14),
B(Mov), R(11), R(13),
......@@ -1041,7 +1037,7 @@ bytecodes: [
B(StaContextSlot), R(1), U8(10), U8(0),
B(LdaCurrentContextSlot), U8(4),
/* 59 E> */ B(StaContextSlot), R(1), U8(8), U8(0),
B(JumpLoop), U8(158), I8(1),
B(JumpLoop), U8(156), I8(1),
B(LdaContextSlot), R(1), U8(10), U8(0),
B(Star), R(9),
B(LdaSmi), I8(1),
......@@ -1050,7 +1046,7 @@ bytecodes: [
B(PopContext), R(2),
B(Jump), U8(10),
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(LdaUndefined),
B(Star), R(9),
......@@ -1136,7 +1132,7 @@ constant pool: [
FIXED_ARRAY_TYPE,
]
handlers: [
[67, 445, 451],
[70, 391, 393],
[67, 443, 449],
[70, 389, 391],
]
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