Commit cf8cd1c4 authored by Georg Neis's avatar Georg Neis Committed by Commit Bot

[interpreter] Only create spread-related feedback slots when necessary.

Only create spread-related feedback slots when the array literal
actually contains a spread.

Bug: v8:5940
Change-Id: I0afad81d4bf1a86ebc1bf81f1213f680eb22bc49
Reviewed-on: https://chromium-review.googlesource.com/947955
Commit-Queue: Georg Neis <neis@chromium.org>
Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51721}
parent d1df5630
...@@ -2329,35 +2329,36 @@ void BytecodeGenerator::VisitArrayLiteral(ArrayLiteral* expr) { ...@@ -2329,35 +2329,36 @@ void BytecodeGenerator::VisitArrayLiteral(ArrayLiteral* expr) {
} }
if (iter != expr->EndValue()) { if (iter != expr->EndValue()) {
builder()->LoadLiteral(array_index).StoreAccumulatorInRegister(index); builder()->LoadLiteral(array_index).StoreAccumulatorInRegister(index);
}
// Handle the first spread element and everything that follows. // Handle the first spread element and everything that follows.
FeedbackSlot element_slot = feedback_spec()->AddStoreInArrayLiteralICSlot(); FeedbackSlot element_slot = feedback_spec()->AddStoreInArrayLiteralICSlot();
FeedbackSlot index_slot = feedback_spec()->AddBinaryOpICSlot(); FeedbackSlot index_slot = feedback_spec()->AddBinaryOpICSlot();
FeedbackSlot length_slot = // TODO(neis): Only create length_slot when there are holes.
feedback_spec()->AddStoreICSlot(LanguageMode::kStrict); FeedbackSlot length_slot =
for (; iter != expr->EndValue(); ++iter) { feedback_spec()->AddStoreICSlot(LanguageMode::kStrict);
Expression* subexpr = *iter; for (; iter != expr->EndValue(); ++iter) {
if (subexpr->IsSpread()) { Expression* subexpr = *iter;
BuildArrayLiteralSpread(subexpr->AsSpread(), literal, index, index_slot, if (subexpr->IsSpread()) {
element_slot); BuildArrayLiteralSpread(subexpr->AsSpread(), literal, index, index_slot,
} else if (!subexpr->IsTheHoleLiteral()) { element_slot);
// literal[index++] = subexpr } else if (!subexpr->IsTheHoleLiteral()) {
VisitForAccumulatorValue(subexpr); // literal[index++] = subexpr
builder() VisitForAccumulatorValue(subexpr);
->StoreInArrayLiteral(literal, index, feedback_index(element_slot)) builder()
.LoadAccumulatorWithRegister(index) ->StoreInArrayLiteral(literal, index, feedback_index(element_slot))
.UnaryOperation(Token::INC, feedback_index(index_slot)) .LoadAccumulatorWithRegister(index)
.StoreAccumulatorInRegister(index); .UnaryOperation(Token::INC, feedback_index(index_slot))
} else { .StoreAccumulatorInRegister(index);
// literal.length = ++index } else {
auto length = ast_string_constants()->length_string(); // literal.length = ++index
builder() auto length = ast_string_constants()->length_string();
->LoadAccumulatorWithRegister(index) builder()
.UnaryOperation(Token::INC, feedback_index(index_slot)) ->LoadAccumulatorWithRegister(index)
.StoreAccumulatorInRegister(index) .UnaryOperation(Token::INC, feedback_index(index_slot))
.StoreNamedProperty(literal, length, feedback_index(length_slot), .StoreAccumulatorInRegister(index)
LanguageMode::kStrict); .StoreNamedProperty(literal, length, feedback_index(length_slot),
LanguageMode::kStrict);
}
} }
} }
......
...@@ -97,13 +97,13 @@ bytecodes: [ ...@@ -97,13 +97,13 @@ bytecodes: [
B(StaKeyedProperty), R(1), R(2), U8(1), B(StaKeyedProperty), R(1), R(2), U8(1),
B(LdaSmi), I8(1), B(LdaSmi), I8(1),
B(Star), R(2), B(Star), R(2),
B(CreateArrayLiteral), U8(2), U8(11), U8(37), B(CreateArrayLiteral), U8(2), U8(6), U8(37),
B(Star), R(3), B(Star), R(3),
B(LdaZero), B(LdaZero),
B(Star), R(4), B(Star), R(4),
B(Ldar), R(0), B(Ldar), R(0),
/* 68 E> */ B(AddSmi), I8(2), U8(14), /* 68 E> */ B(AddSmi), I8(2), U8(9),
B(StaKeyedProperty), R(3), R(4), U8(12), B(StaKeyedProperty), R(3), R(4), U8(7),
B(Ldar), R(3), B(Ldar), R(3),
B(StaKeyedProperty), R(1), R(2), U8(1), B(StaKeyedProperty), R(1), R(2), U8(1),
B(Ldar), R(1), B(Ldar), R(1),
......
...@@ -282,23 +282,23 @@ bytecodes: [ ...@@ -282,23 +282,23 @@ bytecodes: [
B(Mov), R(context), R(18), B(Mov), R(context), R(18),
/* 36 S> */ B(CreateArrayLiteral), U8(5), U8(0), U8(37), /* 36 S> */ B(CreateArrayLiteral), U8(5), U8(0), U8(37),
B(Star), R(19), B(Star), R(19),
B(LdaNamedProperty), R(19), U8(6), U8(6), B(LdaNamedProperty), R(19), U8(6), U8(1),
B(Star), R(20), B(Star), R(20),
B(CallProperty0), R(20), R(19), U8(8), B(CallProperty0), R(20), R(19), U8(3),
B(JumpIfJSReceiver), U8(7), B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0), B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
B(Star), R(4), B(Star), R(4),
/* 36 E> */ B(LdaNamedProperty), R(4), U8(7), U8(10), /* 36 E> */ B(LdaNamedProperty), R(4), U8(7), U8(5),
B(Star), R(5), B(Star), R(5),
/* 31 S> */ B(CallProperty0), R(5), R(4), U8(12), /* 31 S> */ B(CallProperty0), R(5), R(4), U8(7),
B(Star), R(6), B(Star), R(6),
/* 31 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(6), U8(1), /* 31 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(6), U8(1),
B(ToBooleanLogicalNot), B(ToBooleanLogicalNot),
B(JumpIfFalse), U8(7), B(JumpIfFalse), U8(7),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(6), U8(1), B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(6), U8(1),
B(LdaNamedProperty), R(6), U8(8), U8(14), B(LdaNamedProperty), R(6), U8(8), U8(9),
B(JumpIfToBooleanTrue), U8(68), B(JumpIfToBooleanTrue), U8(68),
B(LdaNamedProperty), R(6), U8(9), U8(16), B(LdaNamedProperty), R(6), U8(9), U8(11),
B(Star), R(8), B(Star), R(8),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(Star), R(7), B(Star), R(7),
...@@ -334,7 +334,7 @@ bytecodes: [ ...@@ -334,7 +334,7 @@ bytecodes: [
B(Ldar), R(18), B(Ldar), R(18),
B(PushContext), R(19), B(PushContext), R(19),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(TestEqualStrict), R(7), U8(18), B(TestEqualStrict), R(7), U8(13),
B(JumpIfFalse), U8(6), B(JumpIfFalse), U8(6),
B(LdaSmi), I8(1), B(LdaSmi), I8(1),
B(Star), R(7), B(Star), R(7),
...@@ -353,15 +353,15 @@ bytecodes: [ ...@@ -353,15 +353,15 @@ bytecodes: [
B(SetPendingMessage), B(SetPendingMessage),
B(Star), R(17), B(Star), R(17),
B(LdaZero), B(LdaZero),
B(TestEqualStrict), R(7), U8(19), B(TestEqualStrict), R(7), U8(14),
B(JumpIfTrue), U8(90), B(JumpIfTrue), U8(90),
B(LdaNamedProperty), R(4), U8(14), U8(20), B(LdaNamedProperty), R(4), U8(14), U8(15),
B(Star), R(9), B(Star), R(9),
B(TestUndetectable), B(TestUndetectable),
B(JumpIfFalse), U8(4), B(JumpIfFalse), U8(4),
B(Jump), U8(79), B(Jump), U8(79),
B(LdaSmi), I8(1), B(LdaSmi), I8(1),
B(TestEqualStrict), R(7), U8(22), B(TestEqualStrict), R(7), U8(17),
B(JumpIfFalse), U8(47), B(JumpIfFalse), U8(47),
B(Ldar), R(9), B(Ldar), R(9),
B(TestTypeOf), U8(6), B(TestTypeOf), U8(6),
......
...@@ -20,7 +20,7 @@ bytecodes: [ ...@@ -20,7 +20,7 @@ bytecodes: [
B(Star), R(0), B(Star), R(0),
B(CreateArrayLiteral), U8(2), U8(4), U8(37), B(CreateArrayLiteral), U8(2), U8(4), U8(37),
B(Star), R(2), B(Star), R(2),
/* 39 E> */ B(CallWithSpread), R(0), R(1), U8(2), U8(10), /* 39 E> */ B(CallWithSpread), R(0), R(1), U8(2), U8(5),
B(LdaUndefined), B(LdaUndefined),
/* 58 S> */ B(Return), /* 58 S> */ B(Return),
] ]
...@@ -49,7 +49,7 @@ bytecodes: [ ...@@ -49,7 +49,7 @@ bytecodes: [
B(Star), R(2), B(Star), R(2),
B(CreateArrayLiteral), U8(2), U8(4), U8(37), B(CreateArrayLiteral), U8(2), U8(4), U8(37),
B(Star), R(3), B(Star), R(3),
/* 39 E> */ B(CallWithSpread), R(0), R(1), U8(3), U8(10), /* 39 E> */ B(CallWithSpread), R(0), R(1), U8(3), U8(5),
B(LdaUndefined), B(LdaUndefined),
/* 61 S> */ B(Return), /* 61 S> */ B(Return),
] ]
...@@ -80,22 +80,22 @@ bytecodes: [ ...@@ -80,22 +80,22 @@ bytecodes: [
B(Star), R(4), B(Star), R(4),
/* 49 S> */ B(CreateArrayLiteral), U8(4), U8(10), U8(37), /* 49 S> */ B(CreateArrayLiteral), U8(4), U8(10), U8(37),
B(Star), R(8), B(Star), R(8),
B(LdaNamedProperty), R(8), U8(5), U8(16), B(LdaNamedProperty), R(8), U8(5), U8(11),
B(Star), R(9), B(Star), R(9),
B(CallProperty0), R(9), R(8), U8(18), B(CallProperty0), R(9), R(8), U8(13),
B(Mov), R(0), R(2), B(Mov), R(0), R(2),
B(JumpIfJSReceiver), U8(7), B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0), B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
B(Star), R(7), B(Star), R(7),
B(LdaNamedProperty), R(7), U8(6), U8(20), B(LdaNamedProperty), R(7), U8(6), U8(15),
B(Star), R(6), B(Star), R(6),
B(CallProperty0), R(6), R(7), U8(22), B(CallProperty0), R(6), R(7), U8(17),
B(Star), R(5), B(Star), R(5),
B(JumpIfJSReceiver), U8(7), B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(5), U8(1), B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(5), U8(1),
B(LdaNamedProperty), R(5), U8(7), U8(24), B(LdaNamedProperty), R(5), U8(7), U8(19),
B(JumpIfToBooleanTrue), U8(21), B(JumpIfToBooleanTrue), U8(21),
B(LdaNamedProperty), R(5), U8(8), U8(26), B(LdaNamedProperty), R(5), U8(8), U8(21),
B(Star), R(5), B(Star), R(5),
B(StaInArrayLiteral), R(3), R(4), U8(5), B(StaInArrayLiteral), R(3), R(4), U8(5),
B(Ldar), R(4), B(Ldar), R(4),
......
...@@ -270,13 +270,13 @@ bytecodes: [ ...@@ -270,13 +270,13 @@ bytecodes: [
/* 55 S> */ B(CreateArrayLiteral), U8(0), U8(0), U8(37), /* 55 S> */ B(CreateArrayLiteral), U8(0), U8(0), U8(37),
B(Star), R(1), B(Star), R(1),
/* 63 S> */ B(Ldar), R(0), /* 63 S> */ B(Ldar), R(0),
B(ToNumeric), U8(6), B(ToNumeric), U8(1),
B(Star), R(3), B(Star), R(3),
B(Inc), U8(6), B(Inc), U8(1),
B(Star), R(0), B(Star), R(0),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(Star), R(4), B(Star), R(4),
/* 79 E> */ B(StaKeyedProperty), R(1), R(3), U8(7), /* 79 E> */ B(StaKeyedProperty), R(1), R(3), U8(2),
B(Ldar), R(4), B(Ldar), R(4),
/* 83 S> */ B(Return), /* 83 S> */ B(Return),
] ]
......
...@@ -34,22 +34,22 @@ bytecodes: [ ...@@ -34,22 +34,22 @@ bytecodes: [
B(Mov), R(context), R(19), B(Mov), R(context), R(19),
/* 43 S> */ B(CreateArrayLiteral), U8(3), U8(0), U8(37), /* 43 S> */ B(CreateArrayLiteral), U8(3), U8(0), U8(37),
B(Star), R(20), B(Star), R(20),
B(LdaNamedProperty), R(20), U8(4), U8(6), B(LdaNamedProperty), R(20), U8(4), U8(1),
B(JumpIfUndefined), U8(17), B(JumpIfUndefined), U8(17),
B(JumpIfNull), U8(15), B(JumpIfNull), U8(15),
B(Star), R(21), B(Star), R(21),
B(CallProperty0), R(21), R(20), U8(8), B(CallProperty0), R(21), R(20), U8(3),
B(JumpIfJSReceiver), U8(23), B(JumpIfJSReceiver), U8(23),
B(CallRuntime), U16(Runtime::kThrowSymbolAsyncIteratorInvalid), R(0), U8(0), B(CallRuntime), U16(Runtime::kThrowSymbolAsyncIteratorInvalid), R(0), U8(0),
B(LdaNamedProperty), R(20), U8(5), U8(10), B(LdaNamedProperty), R(20), U8(5), U8(5),
B(Star), R(21), B(Star), R(21),
B(CallProperty0), R(21), R(20), U8(12), B(CallProperty0), R(21), R(20), U8(7),
B(Star), R(21), B(Star), R(21),
B(InvokeIntrinsic), U8(Runtime::k_CreateAsyncFromSyncIterator), R(21), U8(1), B(InvokeIntrinsic), U8(Runtime::k_CreateAsyncFromSyncIterator), R(21), U8(1),
B(Star), R(4), B(Star), R(4),
/* 43 E> */ B(LdaNamedProperty), R(4), U8(6), U8(14), /* 43 E> */ B(LdaNamedProperty), R(4), U8(6), U8(9),
B(Star), R(5), B(Star), R(5),
/* 40 S> */ B(CallProperty0), R(5), R(4), U8(16), /* 40 S> */ B(CallProperty0), R(5), R(4), U8(11),
B(Star), R(21), B(Star), R(21),
B(Mov), R(2), R(20), B(Mov), R(2), R(20),
B(Mov), R(11), R(22), B(Mov), R(11), R(22),
...@@ -69,9 +69,9 @@ bytecodes: [ ...@@ -69,9 +69,9 @@ bytecodes: [
B(ToBooleanLogicalNot), B(ToBooleanLogicalNot),
B(JumpIfFalse), U8(7), B(JumpIfFalse), U8(7),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(6), U8(1), B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(6), U8(1),
B(LdaNamedProperty), R(6), U8(7), U8(18), B(LdaNamedProperty), R(6), U8(7), U8(13),
B(JumpIfToBooleanTrue), U8(25), B(JumpIfToBooleanTrue), U8(25),
B(LdaNamedProperty), R(6), U8(8), U8(20), B(LdaNamedProperty), R(6), U8(8), U8(15),
B(Star), R(8), B(Star), R(8),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(Star), R(7), B(Star), R(7),
...@@ -91,7 +91,7 @@ bytecodes: [ ...@@ -91,7 +91,7 @@ bytecodes: [
B(Ldar), R(19), B(Ldar), R(19),
B(PushContext), R(20), B(PushContext), R(20),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(TestEqualStrict), R(7), U8(22), B(TestEqualStrict), R(7), U8(17),
B(JumpIfFalse), U8(6), B(JumpIfFalse), U8(6),
B(LdaSmi), I8(1), B(LdaSmi), I8(1),
B(Star), R(7), B(Star), R(7),
...@@ -110,15 +110,15 @@ bytecodes: [ ...@@ -110,15 +110,15 @@ bytecodes: [
B(SetPendingMessage), B(SetPendingMessage),
B(Star), R(18), B(Star), R(18),
B(LdaZero), B(LdaZero),
B(TestEqualStrict), R(7), U8(23), B(TestEqualStrict), R(7), U8(18),
B(JumpIfTrue), U8(167), B(JumpIfTrue), U8(167),
B(LdaNamedProperty), R(4), U8(11), U8(24), B(LdaNamedProperty), R(4), U8(11), U8(19),
B(Star), R(9), B(Star), R(9),
B(TestUndetectable), B(TestUndetectable),
B(JumpIfFalse), U8(4), B(JumpIfFalse), U8(4),
B(Jump), U8(156), B(Jump), U8(156),
B(LdaSmi), I8(1), B(LdaSmi), I8(1),
B(TestEqualStrict), R(7), U8(26), B(TestEqualStrict), R(7), U8(21),
B(JumpIfFalse), U8(86), B(JumpIfFalse), U8(86),
B(Ldar), R(9), B(Ldar), R(9),
B(TestTypeOf), U8(6), B(TestTypeOf), U8(6),
...@@ -287,22 +287,22 @@ bytecodes: [ ...@@ -287,22 +287,22 @@ bytecodes: [
B(Mov), R(context), R(19), B(Mov), R(context), R(19),
/* 43 S> */ B(CreateArrayLiteral), U8(3), U8(0), U8(37), /* 43 S> */ B(CreateArrayLiteral), U8(3), U8(0), U8(37),
B(Star), R(20), B(Star), R(20),
B(LdaNamedProperty), R(20), U8(4), U8(6), B(LdaNamedProperty), R(20), U8(4), U8(1),
B(JumpIfUndefined), U8(17), B(JumpIfUndefined), U8(17),
B(JumpIfNull), U8(15), B(JumpIfNull), U8(15),
B(Star), R(21), B(Star), R(21),
B(CallProperty0), R(21), R(20), U8(8), B(CallProperty0), R(21), R(20), U8(3),
B(JumpIfJSReceiver), U8(23), B(JumpIfJSReceiver), U8(23),
B(CallRuntime), U16(Runtime::kThrowSymbolAsyncIteratorInvalid), R(0), U8(0), B(CallRuntime), U16(Runtime::kThrowSymbolAsyncIteratorInvalid), R(0), U8(0),
B(LdaNamedProperty), R(20), U8(5), U8(10), B(LdaNamedProperty), R(20), U8(5), U8(5),
B(Star), R(21), B(Star), R(21),
B(CallProperty0), R(21), R(20), U8(12), B(CallProperty0), R(21), R(20), U8(7),
B(Star), R(21), B(Star), R(21),
B(InvokeIntrinsic), U8(Runtime::k_CreateAsyncFromSyncIterator), R(21), U8(1), B(InvokeIntrinsic), U8(Runtime::k_CreateAsyncFromSyncIterator), R(21), U8(1),
B(Star), R(4), B(Star), R(4),
/* 43 E> */ B(LdaNamedProperty), R(4), U8(6), U8(14), /* 43 E> */ B(LdaNamedProperty), R(4), U8(6), U8(9),
B(Star), R(5), B(Star), R(5),
/* 40 S> */ B(CallProperty0), R(5), R(4), U8(16), /* 40 S> */ B(CallProperty0), R(5), R(4), U8(11),
B(Star), R(21), B(Star), R(21),
B(Mov), R(2), R(20), B(Mov), R(2), R(20),
B(Mov), R(11), R(22), B(Mov), R(11), R(22),
...@@ -322,9 +322,9 @@ bytecodes: [ ...@@ -322,9 +322,9 @@ bytecodes: [
B(ToBooleanLogicalNot), B(ToBooleanLogicalNot),
B(JumpIfFalse), U8(7), B(JumpIfFalse), U8(7),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(6), U8(1), B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(6), U8(1),
B(LdaNamedProperty), R(6), U8(7), U8(18), B(LdaNamedProperty), R(6), U8(7), U8(13),
B(JumpIfToBooleanTrue), U8(27), B(JumpIfToBooleanTrue), U8(27),
B(LdaNamedProperty), R(6), U8(8), U8(20), B(LdaNamedProperty), R(6), U8(8), U8(15),
B(Star), R(8), B(Star), R(8),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(Star), R(7), B(Star), R(7),
...@@ -345,7 +345,7 @@ bytecodes: [ ...@@ -345,7 +345,7 @@ bytecodes: [
B(Ldar), R(19), B(Ldar), R(19),
B(PushContext), R(20), B(PushContext), R(20),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(TestEqualStrict), R(7), U8(22), B(TestEqualStrict), R(7), U8(17),
B(JumpIfFalse), U8(6), B(JumpIfFalse), U8(6),
B(LdaSmi), I8(1), B(LdaSmi), I8(1),
B(Star), R(7), B(Star), R(7),
...@@ -364,15 +364,15 @@ bytecodes: [ ...@@ -364,15 +364,15 @@ bytecodes: [
B(SetPendingMessage), B(SetPendingMessage),
B(Star), R(18), B(Star), R(18),
B(LdaZero), B(LdaZero),
B(TestEqualStrict), R(7), U8(23), B(TestEqualStrict), R(7), U8(18),
B(JumpIfTrue), U8(167), B(JumpIfTrue), U8(167),
B(LdaNamedProperty), R(4), U8(11), U8(24), B(LdaNamedProperty), R(4), U8(11), U8(19),
B(Star), R(9), B(Star), R(9),
B(TestUndetectable), B(TestUndetectable),
B(JumpIfFalse), U8(4), B(JumpIfFalse), U8(4),
B(Jump), U8(156), B(Jump), U8(156),
B(LdaSmi), I8(1), B(LdaSmi), I8(1),
B(TestEqualStrict), R(7), U8(26), B(TestEqualStrict), R(7), U8(21),
B(JumpIfFalse), U8(86), B(JumpIfFalse), U8(86),
B(Ldar), R(9), B(Ldar), R(9),
B(TestTypeOf), U8(6), B(TestTypeOf), U8(6),
...@@ -556,22 +556,22 @@ bytecodes: [ ...@@ -556,22 +556,22 @@ bytecodes: [
B(Mov), R(context), R(19), B(Mov), R(context), R(19),
/* 43 S> */ B(CreateArrayLiteral), U8(3), U8(0), U8(37), /* 43 S> */ B(CreateArrayLiteral), U8(3), U8(0), U8(37),
B(Star), R(20), B(Star), R(20),
B(LdaNamedProperty), R(20), U8(4), U8(6), B(LdaNamedProperty), R(20), U8(4), U8(1),
B(JumpIfUndefined), U8(17), B(JumpIfUndefined), U8(17),
B(JumpIfNull), U8(15), B(JumpIfNull), U8(15),
B(Star), R(21), B(Star), R(21),
B(CallProperty0), R(21), R(20), U8(8), B(CallProperty0), R(21), R(20), U8(3),
B(JumpIfJSReceiver), U8(23), B(JumpIfJSReceiver), U8(23),
B(CallRuntime), U16(Runtime::kThrowSymbolAsyncIteratorInvalid), R(0), U8(0), B(CallRuntime), U16(Runtime::kThrowSymbolAsyncIteratorInvalid), R(0), U8(0),
B(LdaNamedProperty), R(20), U8(5), U8(10), B(LdaNamedProperty), R(20), U8(5), U8(5),
B(Star), R(21), B(Star), R(21),
B(CallProperty0), R(21), R(20), U8(12), B(CallProperty0), R(21), R(20), U8(7),
B(Star), R(21), B(Star), R(21),
B(InvokeIntrinsic), U8(Runtime::k_CreateAsyncFromSyncIterator), R(21), U8(1), B(InvokeIntrinsic), U8(Runtime::k_CreateAsyncFromSyncIterator), R(21), U8(1),
B(Star), R(4), B(Star), R(4),
/* 43 E> */ B(LdaNamedProperty), R(4), U8(6), U8(14), /* 43 E> */ B(LdaNamedProperty), R(4), U8(6), U8(9),
B(Star), R(5), B(Star), R(5),
/* 40 S> */ B(CallProperty0), R(5), R(4), U8(16), /* 40 S> */ B(CallProperty0), R(5), R(4), U8(11),
B(Star), R(21), B(Star), R(21),
B(Mov), R(2), R(20), B(Mov), R(2), R(20),
B(Mov), R(11), R(22), B(Mov), R(11), R(22),
...@@ -591,9 +591,9 @@ bytecodes: [ ...@@ -591,9 +591,9 @@ bytecodes: [
B(ToBooleanLogicalNot), B(ToBooleanLogicalNot),
B(JumpIfFalse), U8(7), B(JumpIfFalse), U8(7),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(6), U8(1), B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(6), U8(1),
B(LdaNamedProperty), R(6), U8(7), U8(18), B(LdaNamedProperty), R(6), U8(7), U8(13),
B(JumpIfToBooleanTrue), U8(43), B(JumpIfToBooleanTrue), U8(43),
B(LdaNamedProperty), R(6), U8(8), U8(20), B(LdaNamedProperty), R(6), U8(8), U8(15),
B(Star), R(8), B(Star), R(8),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(Star), R(7), B(Star), R(7),
...@@ -601,11 +601,11 @@ bytecodes: [ ...@@ -601,11 +601,11 @@ bytecodes: [
/* 23 E> */ B(StackCheck), /* 23 E> */ B(StackCheck),
B(Mov), R(3), R(0), B(Mov), R(3), R(0),
/* 63 S> */ B(LdaSmi), I8(10), /* 63 S> */ B(LdaSmi), I8(10),
/* 69 E> */ B(TestEqual), R(0), U8(22), /* 69 E> */ B(TestEqual), R(0), U8(17),
B(JumpIfFalse), U8(4), B(JumpIfFalse), U8(4),
/* 76 S> */ B(Jump), U8(14), /* 76 S> */ B(Jump), U8(14),
/* 90 S> */ B(LdaSmi), I8(20), /* 90 S> */ B(LdaSmi), I8(20),
/* 96 E> */ B(TestEqual), R(0), U8(23), /* 96 E> */ B(TestEqual), R(0), U8(18),
B(JumpIfFalse), U8(4), B(JumpIfFalse), U8(4),
/* 103 S> */ B(Jump), U8(8), /* 103 S> */ B(Jump), U8(8),
B(LdaZero), B(LdaZero),
...@@ -621,7 +621,7 @@ bytecodes: [ ...@@ -621,7 +621,7 @@ bytecodes: [
B(Ldar), R(19), B(Ldar), R(19),
B(PushContext), R(20), B(PushContext), R(20),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(TestEqualStrict), R(7), U8(24), B(TestEqualStrict), R(7), U8(19),
B(JumpIfFalse), U8(6), B(JumpIfFalse), U8(6),
B(LdaSmi), I8(1), B(LdaSmi), I8(1),
B(Star), R(7), B(Star), R(7),
...@@ -640,15 +640,15 @@ bytecodes: [ ...@@ -640,15 +640,15 @@ bytecodes: [
B(SetPendingMessage), B(SetPendingMessage),
B(Star), R(18), B(Star), R(18),
B(LdaZero), B(LdaZero),
B(TestEqualStrict), R(7), U8(25), B(TestEqualStrict), R(7), U8(20),
B(JumpIfTrue), U8(167), B(JumpIfTrue), U8(167),
B(LdaNamedProperty), R(4), U8(11), U8(26), B(LdaNamedProperty), R(4), U8(11), U8(21),
B(Star), R(9), B(Star), R(9),
B(TestUndetectable), B(TestUndetectable),
B(JumpIfFalse), U8(4), B(JumpIfFalse), U8(4),
B(Jump), U8(156), B(Jump), U8(156),
B(LdaSmi), I8(1), B(LdaSmi), I8(1),
B(TestEqualStrict), R(7), U8(28), B(TestEqualStrict), R(7), U8(23),
B(JumpIfFalse), U8(86), B(JumpIfFalse), U8(86),
B(Ldar), R(9), B(Ldar), R(9),
B(TestTypeOf), U8(6), B(TestTypeOf), U8(6),
...@@ -815,30 +815,30 @@ bytecodes: [ ...@@ -815,30 +815,30 @@ bytecodes: [
B(Mov), R(context), R(17), B(Mov), R(context), R(17),
/* 68 S> */ B(CreateArrayLiteral), U8(1), U8(1), U8(37), /* 68 S> */ B(CreateArrayLiteral), U8(1), U8(1), U8(37),
B(Star), R(18), B(Star), R(18),
B(LdaNamedProperty), R(18), U8(2), U8(7), B(LdaNamedProperty), R(18), U8(2), U8(2),
B(Star), R(19), B(Star), R(19),
B(CallProperty0), R(19), R(18), U8(9), B(CallProperty0), R(19), R(18), U8(4),
B(JumpIfJSReceiver), U8(7), B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0), B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
B(Star), R(2), B(Star), R(2),
/* 68 E> */ B(LdaNamedProperty), R(2), U8(3), U8(11), /* 68 E> */ B(LdaNamedProperty), R(2), U8(3), U8(6),
B(Star), R(3), B(Star), R(3),
/* 59 S> */ B(CallProperty0), R(3), R(2), U8(13), /* 59 S> */ B(CallProperty0), R(3), R(2), U8(8),
B(Star), R(4), B(Star), R(4),
/* 59 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(4), U8(1), /* 59 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(4), U8(1),
B(ToBooleanLogicalNot), B(ToBooleanLogicalNot),
B(JumpIfFalse), U8(7), B(JumpIfFalse), U8(7),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(4), U8(1), B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(4), U8(1),
B(LdaNamedProperty), R(4), U8(4), U8(15), B(LdaNamedProperty), R(4), U8(4), U8(10),
B(JumpIfToBooleanTrue), U8(30), B(JumpIfToBooleanTrue), U8(30),
/* 58 E> */ B(LdaNamedProperty), R(4), U8(5), U8(17), /* 58 E> */ B(LdaNamedProperty), R(4), U8(5), U8(12),
B(Star), R(6), B(Star), R(6),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(Star), R(5), B(Star), R(5),
B(Ldar), R(6), B(Ldar), R(6),
B(StaNamedProperty), R(1), U8(6), U8(19), B(StaNamedProperty), R(1), U8(6), U8(14),
/* 53 E> */ B(StackCheck), /* 53 E> */ B(StackCheck),
/* 87 S> */ B(LdaNamedProperty), R(1), U8(6), U8(21), /* 87 S> */ B(LdaNamedProperty), R(1), U8(6), U8(16),
B(Star), R(15), B(Star), R(15),
B(LdaZero), B(LdaZero),
B(Star), R(14), B(Star), R(14),
...@@ -853,7 +853,7 @@ bytecodes: [ ...@@ -853,7 +853,7 @@ bytecodes: [
B(Ldar), R(17), B(Ldar), R(17),
B(PushContext), R(18), B(PushContext), R(18),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(TestEqualStrict), R(5), U8(23), B(TestEqualStrict), R(5), U8(18),
B(JumpIfFalse), U8(6), B(JumpIfFalse), U8(6),
B(LdaSmi), I8(1), B(LdaSmi), I8(1),
B(Star), R(5), B(Star), R(5),
...@@ -872,15 +872,15 @@ bytecodes: [ ...@@ -872,15 +872,15 @@ bytecodes: [
B(SetPendingMessage), B(SetPendingMessage),
B(Star), R(16), B(Star), R(16),
B(LdaZero), B(LdaZero),
B(TestEqualStrict), R(5), U8(24), B(TestEqualStrict), R(5), U8(19),
B(JumpIfTrue), U8(90), B(JumpIfTrue), U8(90),
B(LdaNamedProperty), R(2), U8(9), U8(25), B(LdaNamedProperty), R(2), U8(9), U8(20),
B(Star), R(7), B(Star), R(7),
B(TestUndetectable), B(TestUndetectable),
B(JumpIfFalse), U8(4), B(JumpIfFalse), U8(4),
B(Jump), U8(79), B(Jump), U8(79),
B(LdaSmi), I8(1), B(LdaSmi), I8(1),
B(TestEqualStrict), R(5), U8(27), B(TestEqualStrict), R(5), U8(22),
B(JumpIfFalse), U8(47), B(JumpIfFalse), U8(47),
B(Ldar), R(7), B(Ldar), R(7),
B(TestTypeOf), U8(6), B(TestTypeOf), U8(6),
......
...@@ -123,7 +123,7 @@ bytecodes: [ ...@@ -123,7 +123,7 @@ bytecodes: [
/* 45 E> */ B(StackCheck), /* 45 E> */ B(StackCheck),
B(Star), R(2), B(Star), R(2),
/* 70 S> */ B(Ldar), R(1), /* 70 S> */ B(Ldar), R(1),
/* 75 E> */ B(Add), R(0), U8(7), /* 75 E> */ B(Add), R(0), U8(2),
B(Mov), R(0), R(8), B(Mov), R(0), R(8),
B(Star), R(0), B(Star), R(0),
/* 72 E> */ B(ForInStep), R(7), /* 72 E> */ B(ForInStep), R(7),
...@@ -167,18 +167,18 @@ bytecodes: [ ...@@ -167,18 +167,18 @@ bytecodes: [
B(JumpIfUndefined), U8(41), B(JumpIfUndefined), U8(41),
B(Star), R(6), B(Star), R(6),
B(Ldar), R(6), B(Ldar), R(6),
/* 67 E> */ B(StaNamedProperty), R(0), U8(2), U8(8), /* 67 E> */ B(StaNamedProperty), R(0), U8(2), U8(3),
/* 62 E> */ B(StackCheck), /* 62 E> */ B(StackCheck),
/* 100 S> */ B(LdaNamedProperty), R(0), U8(2), U8(10), /* 100 S> */ B(LdaNamedProperty), R(0), U8(2), U8(5),
B(Star), R(6), B(Star), R(6),
B(LdaSmi), I8(10), B(LdaSmi), I8(10),
/* 106 E> */ B(TestEqual), R(6), U8(12), /* 106 E> */ B(TestEqual), R(6), U8(7),
B(JumpIfFalse), U8(4), B(JumpIfFalse), U8(4),
/* 113 S> */ B(Jump), U8(17), /* 113 S> */ B(Jump), U8(17),
/* 130 S> */ B(LdaNamedProperty), R(0), U8(2), U8(13), /* 130 S> */ B(LdaNamedProperty), R(0), U8(2), U8(8),
B(Star), R(6), B(Star), R(6),
B(LdaSmi), I8(20), B(LdaSmi), I8(20),
/* 136 E> */ B(TestEqual), R(6), U8(15), /* 136 E> */ B(TestEqual), R(6), U8(10),
B(JumpIfFalse), U8(4), B(JumpIfFalse), U8(4),
/* 143 S> */ B(Jump), U8(9), /* 143 S> */ B(Jump), U8(9),
B(ForInStep), R(5), B(ForInStep), R(5),
...@@ -207,26 +207,26 @@ bytecodes: [ ...@@ -207,26 +207,26 @@ bytecodes: [
/* 30 E> */ B(StackCheck), /* 30 E> */ B(StackCheck),
/* 42 S> */ B(CreateArrayLiteral), U8(0), U8(0), U8(37), /* 42 S> */ B(CreateArrayLiteral), U8(0), U8(0), U8(37),
B(Star), R(0), B(Star), R(0),
/* 72 S> */ B(CreateArrayLiteral), U8(1), U8(7), U8(37), /* 72 S> */ B(CreateArrayLiteral), U8(1), U8(2), U8(37),
B(JumpIfUndefined), U8(51), B(JumpIfUndefined), U8(51),
B(JumpIfNull), U8(49), B(JumpIfNull), U8(49),
B(ToObject), R(1), B(ToObject), R(1),
B(ForInEnumerate), R(1), B(ForInEnumerate), R(1),
B(ForInPrepare), R(2), U8(6), B(ForInPrepare), R(2), U8(1),
B(LdaZero), B(LdaZero),
B(Star), R(5), B(Star), R(5),
/* 65 S> */ B(ForInContinue), R(5), R(4), /* 65 S> */ B(ForInContinue), R(5), R(4),
B(JumpIfFalse), U8(34), B(JumpIfFalse), U8(34),
B(ForInNext), R(1), R(5), R(2), U8(6), B(ForInNext), R(1), R(5), R(2), U8(1),
B(JumpIfUndefined), U8(20), B(JumpIfUndefined), U8(20),
B(Star), R(6), B(Star), R(6),
B(LdaZero), B(LdaZero),
B(Star), R(8), B(Star), R(8),
B(Ldar), R(6), B(Ldar), R(6),
/* 64 E> */ B(StaKeyedProperty), R(0), R(8), U8(13), /* 64 E> */ B(StaKeyedProperty), R(0), R(8), U8(3),
/* 59 E> */ B(StackCheck), /* 59 E> */ B(StackCheck),
/* 83 S> */ B(LdaSmi), I8(3), /* 83 S> */ B(LdaSmi), I8(3),
/* 91 E> */ B(LdaKeyedProperty), R(0), U8(15), /* 91 E> */ B(LdaKeyedProperty), R(0), U8(5),
/* 95 S> */ B(Return), /* 95 S> */ B(Return),
B(ForInStep), R(5), B(ForInStep), R(5),
B(Star), R(5), B(Star), R(5),
......
...@@ -20,23 +20,23 @@ bytecodes: [ ...@@ -20,23 +20,23 @@ bytecodes: [
B(Mov), R(context), R(12), B(Mov), R(context), R(12),
/* 48 S> */ B(CreateArrayLiteral), U8(0), U8(0), U8(37), /* 48 S> */ B(CreateArrayLiteral), U8(0), U8(0), U8(37),
B(Star), R(13), B(Star), R(13),
B(LdaNamedProperty), R(13), U8(1), U8(6), B(LdaNamedProperty), R(13), U8(1), U8(1),
B(Star), R(14), B(Star), R(14),
B(CallProperty0), R(14), R(13), U8(8), B(CallProperty0), R(14), R(13), U8(3),
B(JumpIfJSReceiver), U8(7), B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0), B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
B(Star), R(2), B(Star), R(2),
/* 48 E> */ B(LdaNamedProperty), R(2), U8(2), U8(10), /* 48 E> */ B(LdaNamedProperty), R(2), U8(2), U8(5),
B(Star), R(3), B(Star), R(3),
/* 43 S> */ B(CallProperty0), R(3), R(2), U8(12), /* 43 S> */ B(CallProperty0), R(3), R(2), U8(7),
B(Star), R(4), B(Star), R(4),
/* 43 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(4), U8(1), /* 43 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(4), U8(1),
B(ToBooleanLogicalNot), B(ToBooleanLogicalNot),
B(JumpIfFalse), U8(7), B(JumpIfFalse), U8(7),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(4), U8(1), B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(4), U8(1),
B(LdaNamedProperty), R(4), U8(3), U8(14), B(LdaNamedProperty), R(4), U8(3), U8(9),
B(JumpIfToBooleanTrue), U8(25), B(JumpIfToBooleanTrue), U8(25),
B(LdaNamedProperty), R(4), U8(4), U8(16), B(LdaNamedProperty), R(4), U8(4), U8(11),
B(Star), R(6), B(Star), R(6),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(Star), R(5), B(Star), R(5),
...@@ -53,7 +53,7 @@ bytecodes: [ ...@@ -53,7 +53,7 @@ bytecodes: [
B(PushContext), R(13), B(PushContext), R(13),
B(Star), R(12), B(Star), R(12),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(TestEqualStrict), R(5), U8(18), B(TestEqualStrict), R(5), U8(13),
B(JumpIfFalse), U8(6), B(JumpIfFalse), U8(6),
B(LdaSmi), I8(1), B(LdaSmi), I8(1),
B(Star), R(5), B(Star), R(5),
...@@ -72,15 +72,15 @@ bytecodes: [ ...@@ -72,15 +72,15 @@ bytecodes: [
B(SetPendingMessage), B(SetPendingMessage),
B(Star), R(11), B(Star), R(11),
B(LdaZero), B(LdaZero),
B(TestEqualStrict), R(5), U8(19), B(TestEqualStrict), R(5), U8(14),
B(JumpIfTrue), U8(90), B(JumpIfTrue), U8(90),
B(LdaNamedProperty), R(2), U8(7), U8(20), B(LdaNamedProperty), R(2), U8(7), U8(15),
B(Star), R(7), B(Star), R(7),
B(TestUndetectable), B(TestUndetectable),
B(JumpIfFalse), U8(4), B(JumpIfFalse), U8(4),
B(Jump), U8(79), B(Jump), U8(79),
B(LdaSmi), I8(1), B(LdaSmi), I8(1),
B(TestEqualStrict), R(5), U8(22), B(TestEqualStrict), R(5), U8(17),
B(JumpIfFalse), U8(47), B(JumpIfFalse), U8(47),
B(Ldar), R(7), B(Ldar), R(7),
B(TestTypeOf), U8(6), B(TestTypeOf), U8(6),
...@@ -292,23 +292,23 @@ bytecodes: [ ...@@ -292,23 +292,23 @@ bytecodes: [
B(Mov), R(context), R(12), B(Mov), R(context), R(12),
/* 48 S> */ B(CreateArrayLiteral), U8(0), U8(0), U8(37), /* 48 S> */ B(CreateArrayLiteral), U8(0), U8(0), U8(37),
B(Star), R(13), B(Star), R(13),
B(LdaNamedProperty), R(13), U8(1), U8(6), B(LdaNamedProperty), R(13), U8(1), U8(1),
B(Star), R(14), B(Star), R(14),
B(CallProperty0), R(14), R(13), U8(8), B(CallProperty0), R(14), R(13), U8(3),
B(JumpIfJSReceiver), U8(7), B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0), B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
B(Star), R(2), B(Star), R(2),
/* 48 E> */ B(LdaNamedProperty), R(2), U8(2), U8(10), /* 48 E> */ B(LdaNamedProperty), R(2), U8(2), U8(5),
B(Star), R(3), B(Star), R(3),
/* 43 S> */ B(CallProperty0), R(3), R(2), U8(12), /* 43 S> */ B(CallProperty0), R(3), R(2), U8(7),
B(Star), R(4), B(Star), R(4),
/* 43 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(4), U8(1), /* 43 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(4), U8(1),
B(ToBooleanLogicalNot), B(ToBooleanLogicalNot),
B(JumpIfFalse), U8(7), B(JumpIfFalse), U8(7),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(4), U8(1), B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(4), U8(1),
B(LdaNamedProperty), R(4), U8(3), U8(14), B(LdaNamedProperty), R(4), U8(3), U8(9),
B(JumpIfToBooleanTrue), U8(43), B(JumpIfToBooleanTrue), U8(43),
B(LdaNamedProperty), R(4), U8(4), U8(16), B(LdaNamedProperty), R(4), U8(4), U8(11),
B(Star), R(6), B(Star), R(6),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(Star), R(5), B(Star), R(5),
...@@ -316,11 +316,11 @@ bytecodes: [ ...@@ -316,11 +316,11 @@ bytecodes: [
/* 34 E> */ B(StackCheck), /* 34 E> */ B(StackCheck),
B(Mov), R(0), R(1), B(Mov), R(0), R(1),
/* 66 S> */ B(LdaSmi), I8(10), /* 66 S> */ B(LdaSmi), I8(10),
/* 72 E> */ B(TestEqual), R(1), U8(18), /* 72 E> */ B(TestEqual), R(1), U8(13),
B(JumpIfFalse), U8(4), B(JumpIfFalse), U8(4),
/* 79 S> */ B(Jump), U8(14), /* 79 S> */ B(Jump), U8(14),
/* 91 S> */ B(LdaSmi), I8(20), /* 91 S> */ B(LdaSmi), I8(20),
/* 97 E> */ B(TestEqual), R(1), U8(19), /* 97 E> */ B(TestEqual), R(1), U8(14),
B(JumpIfFalse), U8(4), B(JumpIfFalse), U8(4),
/* 104 S> */ B(Jump), U8(8), /* 104 S> */ B(Jump), U8(8),
B(LdaZero), B(LdaZero),
...@@ -333,7 +333,7 @@ bytecodes: [ ...@@ -333,7 +333,7 @@ bytecodes: [
B(PushContext), R(13), B(PushContext), R(13),
B(Star), R(12), B(Star), R(12),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(TestEqualStrict), R(5), U8(20), B(TestEqualStrict), R(5), U8(15),
B(JumpIfFalse), U8(6), B(JumpIfFalse), U8(6),
B(LdaSmi), I8(1), B(LdaSmi), I8(1),
B(Star), R(5), B(Star), R(5),
...@@ -352,15 +352,15 @@ bytecodes: [ ...@@ -352,15 +352,15 @@ bytecodes: [
B(SetPendingMessage), B(SetPendingMessage),
B(Star), R(11), B(Star), R(11),
B(LdaZero), B(LdaZero),
B(TestEqualStrict), R(5), U8(21), B(TestEqualStrict), R(5), U8(16),
B(JumpIfTrue), U8(90), B(JumpIfTrue), U8(90),
B(LdaNamedProperty), R(2), U8(7), U8(22), B(LdaNamedProperty), R(2), U8(7), U8(17),
B(Star), R(7), B(Star), R(7),
B(TestUndetectable), B(TestUndetectable),
B(JumpIfFalse), U8(4), B(JumpIfFalse), U8(4),
B(Jump), U8(79), B(Jump), U8(79),
B(LdaSmi), I8(1), B(LdaSmi), I8(1),
B(TestEqualStrict), R(5), U8(24), B(TestEqualStrict), R(5), U8(19),
B(JumpIfFalse), U8(47), B(JumpIfFalse), U8(47),
B(Ldar), R(7), B(Ldar), R(7),
B(TestTypeOf), U8(6), B(TestTypeOf), U8(6),
...@@ -434,30 +434,30 @@ bytecodes: [ ...@@ -434,30 +434,30 @@ bytecodes: [
B(Mov), R(context), R(11), B(Mov), R(context), R(11),
/* 77 S> */ B(CreateArrayLiteral), U8(1), U8(1), U8(37), /* 77 S> */ B(CreateArrayLiteral), U8(1), U8(1), U8(37),
B(Star), R(12), B(Star), R(12),
B(LdaNamedProperty), R(12), U8(2), U8(7), B(LdaNamedProperty), R(12), U8(2), U8(2),
B(Star), R(13), B(Star), R(13),
B(CallProperty0), R(13), R(12), U8(9), B(CallProperty0), R(13), R(12), U8(4),
B(JumpIfJSReceiver), U8(7), B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0), B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
B(Star), R(1), B(Star), R(1),
/* 77 E> */ B(LdaNamedProperty), R(1), U8(3), U8(11), /* 77 E> */ B(LdaNamedProperty), R(1), U8(3), U8(6),
B(Star), R(2), B(Star), R(2),
/* 68 S> */ B(CallProperty0), R(2), R(1), U8(13), /* 68 S> */ B(CallProperty0), R(2), R(1), U8(8),
B(Star), R(3), B(Star), R(3),
/* 68 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(3), U8(1), /* 68 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(3), U8(1),
B(ToBooleanLogicalNot), B(ToBooleanLogicalNot),
B(JumpIfFalse), U8(7), B(JumpIfFalse), U8(7),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(3), U8(1), B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(3), U8(1),
B(LdaNamedProperty), R(3), U8(4), U8(15), B(LdaNamedProperty), R(3), U8(4), U8(10),
B(JumpIfToBooleanTrue), U8(30), B(JumpIfToBooleanTrue), U8(30),
/* 67 E> */ B(LdaNamedProperty), R(3), U8(5), U8(17), /* 67 E> */ B(LdaNamedProperty), R(3), U8(5), U8(12),
B(Star), R(5), B(Star), R(5),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(Star), R(4), B(Star), R(4),
B(Ldar), R(5), B(Ldar), R(5),
B(StaNamedProperty), R(0), U8(6), U8(19), B(StaNamedProperty), R(0), U8(6), U8(14),
/* 62 E> */ B(StackCheck), /* 62 E> */ B(StackCheck),
/* 96 S> */ B(LdaNamedProperty), R(0), U8(6), U8(21), /* 96 S> */ B(LdaNamedProperty), R(0), U8(6), U8(16),
B(Star), R(9), B(Star), R(9),
B(LdaZero), B(LdaZero),
B(Star), R(8), B(Star), R(8),
...@@ -469,7 +469,7 @@ bytecodes: [ ...@@ -469,7 +469,7 @@ bytecodes: [
B(PushContext), R(12), B(PushContext), R(12),
B(Star), R(11), B(Star), R(11),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(TestEqualStrict), R(4), U8(23), B(TestEqualStrict), R(4), U8(18),
B(JumpIfFalse), U8(6), B(JumpIfFalse), U8(6),
B(LdaSmi), I8(1), B(LdaSmi), I8(1),
B(Star), R(4), B(Star), R(4),
...@@ -488,15 +488,15 @@ bytecodes: [ ...@@ -488,15 +488,15 @@ bytecodes: [
B(SetPendingMessage), B(SetPendingMessage),
B(Star), R(10), B(Star), R(10),
B(LdaZero), B(LdaZero),
B(TestEqualStrict), R(4), U8(24), B(TestEqualStrict), R(4), U8(19),
B(JumpIfTrue), U8(90), B(JumpIfTrue), U8(90),
B(LdaNamedProperty), R(1), U8(9), U8(25), B(LdaNamedProperty), R(1), U8(9), U8(20),
B(Star), R(6), B(Star), R(6),
B(TestUndetectable), B(TestUndetectable),
B(JumpIfFalse), U8(4), B(JumpIfFalse), U8(4),
B(Jump), U8(79), B(Jump), U8(79),
B(LdaSmi), I8(1), B(LdaSmi), I8(1),
B(TestEqualStrict), R(4), U8(27), B(TestEqualStrict), R(4), U8(22),
B(JumpIfFalse), U8(47), B(JumpIfFalse), U8(47),
B(Ldar), R(6), B(Ldar), R(6),
B(TestTypeOf), U8(6), B(TestTypeOf), U8(6),
......
...@@ -123,23 +123,23 @@ bytecodes: [ ...@@ -123,23 +123,23 @@ bytecodes: [
B(Mov), R(context), R(14), B(Mov), R(context), R(14),
/* 30 S> */ B(CreateArrayLiteral), U8(4), U8(0), U8(37), /* 30 S> */ B(CreateArrayLiteral), U8(4), U8(0), U8(37),
B(Star), R(15), B(Star), R(15),
B(LdaNamedProperty), R(15), U8(5), U8(6), B(LdaNamedProperty), R(15), U8(5), U8(1),
B(Star), R(16), B(Star), R(16),
B(CallProperty0), R(16), R(15), U8(8), B(CallProperty0), R(16), R(15), U8(3),
B(JumpIfJSReceiver), U8(7), B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0), B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
B(Star), R(4), B(Star), R(4),
/* 30 E> */ B(LdaNamedProperty), R(4), U8(6), U8(10), /* 30 E> */ B(LdaNamedProperty), R(4), U8(6), U8(5),
B(Star), R(5), B(Star), R(5),
/* 25 S> */ B(CallProperty0), R(5), R(4), U8(12), /* 25 S> */ B(CallProperty0), R(5), R(4), U8(7),
B(Star), R(6), B(Star), R(6),
/* 25 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(6), U8(1), /* 25 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(6), U8(1),
B(ToBooleanLogicalNot), B(ToBooleanLogicalNot),
B(JumpIfFalse), U8(7), B(JumpIfFalse), U8(7),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(6), U8(1), B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(6), U8(1),
B(LdaNamedProperty), R(6), U8(7), U8(14), B(LdaNamedProperty), R(6), U8(7), U8(9),
B(JumpIfToBooleanTrue), U8(65), B(JumpIfToBooleanTrue), U8(65),
B(LdaNamedProperty), R(6), U8(8), U8(16), B(LdaNamedProperty), R(6), U8(8), U8(11),
B(Star), R(8), B(Star), R(8),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(Star), R(7), B(Star), R(7),
...@@ -171,7 +171,7 @@ bytecodes: [ ...@@ -171,7 +171,7 @@ bytecodes: [
B(PushContext), R(15), B(PushContext), R(15),
B(Star), R(14), B(Star), R(14),
B(LdaSmi), I8(2), B(LdaSmi), I8(2),
B(TestEqualStrict), R(7), U8(18), B(TestEqualStrict), R(7), U8(13),
B(JumpIfFalse), U8(6), B(JumpIfFalse), U8(6),
B(LdaSmi), I8(1), B(LdaSmi), I8(1),
B(Star), R(7), B(Star), R(7),
...@@ -190,15 +190,15 @@ bytecodes: [ ...@@ -190,15 +190,15 @@ bytecodes: [
B(SetPendingMessage), B(SetPendingMessage),
B(Star), R(13), B(Star), R(13),
B(LdaZero), B(LdaZero),
B(TestEqualStrict), R(7), U8(19), B(TestEqualStrict), R(7), U8(14),
B(JumpIfTrue), U8(90), B(JumpIfTrue), U8(90),
B(LdaNamedProperty), R(4), U8(13), U8(20), B(LdaNamedProperty), R(4), U8(13), U8(15),
B(Star), R(9), B(Star), R(9),
B(TestUndetectable), B(TestUndetectable),
B(JumpIfFalse), U8(4), B(JumpIfFalse), U8(4),
B(Jump), U8(79), B(Jump), U8(79),
B(LdaSmi), I8(1), B(LdaSmi), I8(1),
B(TestEqualStrict), R(7), U8(22), B(TestEqualStrict), R(7), U8(17),
B(JumpIfFalse), U8(47), B(JumpIfFalse), U8(47),
B(Ldar), R(9), B(Ldar), R(9),
B(TestTypeOf), U8(6), B(TestTypeOf), U8(6),
......
...@@ -29,7 +29,7 @@ bytecodes: [ ...@@ -29,7 +29,7 @@ bytecodes: [
/* 89 S> */ B(CreateArrayLiteral), U8(2), U8(1), U8(37), /* 89 S> */ B(CreateArrayLiteral), U8(2), U8(1), U8(37),
B(Star), R(3), B(Star), R(3),
B(Ldar), R(1), B(Ldar), R(1),
/* 89 E> */ B(ConstructWithSpread), R(2), R(3), U8(1), U8(7), /* 89 E> */ B(ConstructWithSpread), R(2), R(3), U8(1), U8(2),
B(LdaUndefined), B(LdaUndefined),
/* 110 S> */ B(Return), /* 110 S> */ B(Return),
] ]
...@@ -67,7 +67,7 @@ bytecodes: [ ...@@ -67,7 +67,7 @@ bytecodes: [
B(CreateArrayLiteral), U8(2), U8(1), U8(37), B(CreateArrayLiteral), U8(2), U8(1), U8(37),
B(Star), R(4), B(Star), R(4),
B(Ldar), R(1), B(Ldar), R(1),
/* 89 E> */ B(ConstructWithSpread), R(2), R(3), U8(2), U8(7), /* 89 E> */ B(ConstructWithSpread), R(2), R(3), U8(2), U8(2),
B(LdaUndefined), B(LdaUndefined),
/* 113 S> */ B(Return), /* 113 S> */ B(Return),
] ]
...@@ -106,21 +106,21 @@ bytecodes: [ ...@@ -106,21 +106,21 @@ bytecodes: [
B(Star), R(4), B(Star), R(4),
/* 101 S> */ B(CreateArrayLiteral), U8(4), U8(7), U8(37), /* 101 S> */ B(CreateArrayLiteral), U8(4), U8(7), U8(37),
B(Star), R(8), B(Star), R(8),
B(LdaNamedProperty), R(8), U8(5), U8(13), B(LdaNamedProperty), R(8), U8(5), U8(8),
B(Star), R(9), B(Star), R(9),
B(CallProperty0), R(9), R(8), U8(15), B(CallProperty0), R(9), R(8), U8(10),
B(JumpIfJSReceiver), U8(7), B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0), B(CallRuntime), U16(Runtime::kThrowSymbolIteratorInvalid), R(0), U8(0),
B(Star), R(7), B(Star), R(7),
B(LdaNamedProperty), R(7), U8(6), U8(17), B(LdaNamedProperty), R(7), U8(6), U8(12),
B(Star), R(6), B(Star), R(6),
B(CallProperty0), R(6), R(7), U8(19), B(CallProperty0), R(6), R(7), U8(14),
B(Star), R(5), B(Star), R(5),
B(JumpIfJSReceiver), U8(7), B(JumpIfJSReceiver), U8(7),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(5), U8(1), B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(5), U8(1),
B(LdaNamedProperty), R(5), U8(7), U8(21), B(LdaNamedProperty), R(5), U8(7), U8(16),
B(JumpIfToBooleanTrue), U8(21), B(JumpIfToBooleanTrue), U8(21),
B(LdaNamedProperty), R(5), U8(8), U8(23), B(LdaNamedProperty), R(5), U8(8), U8(18),
B(Star), R(5), B(Star), R(5),
B(StaInArrayLiteral), R(3), R(4), U8(2), B(StaInArrayLiteral), R(3), R(4), U8(2),
B(Ldar), R(4), B(Ldar), R(4),
......
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