Commit a8176a53 authored by Alexey Kozyatinskiy's avatar Alexey Kozyatinskiy Committed by Commit Bot

[ignition] removed nop bytecode

Nop bytecodes are required only for break locations in debugger. Since nop bytecode doesn't change program state we can remove all of them.

There are at least two changes which this CL produce:
- we don't provide break position when we load local variable (still provide when load variable from global),
- we don't provide break position for statements without actual break positions (e.g. "a;") - these expressions should be super rare and user always can set breakpoint before or after this statement.

More details in one pager: https://docs.google.com/a/google.com/document/d/1JXlQpfMa9vRojbE272b6GMBbrfh6m_00135iAUOJEz8/edit?usp=sharing

Bug: v8:6425
Change-Id: I4aee73d497a84f7b5d89caa6dda6d3060567dfda
Reviewed-on: https://chromium-review.googlesource.com/543161Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#46742}
parent 7bcec7ae
......@@ -2428,8 +2428,6 @@ void BytecodeGraphBuilder::VisitIllegal() {
UNREACHABLE();
}
void BytecodeGraphBuilder::VisitNop() {}
void BytecodeGraphBuilder::SwitchToMergeEnvironment(int current_offset) {
auto it = merge_environments_.find(current_offset);
if (it != merge_environments_.end()) {
......
......@@ -119,22 +119,18 @@ BytecodeSourceInfo BytecodeArrayBuilder::CurrentSourcePosition(
void BytecodeArrayBuilder::SetDeferredSourceInfo(
BytecodeSourceInfo source_info) {
if (!source_info.is_valid()) return;
if (deferred_source_info_.is_valid()) {
// Emit any previous deferred source info now as a nop.
BytecodeNode node = BytecodeNode::Nop(deferred_source_info_);
bytecode_array_writer_.Write(&node);
}
deferred_source_info_ = source_info;
}
void BytecodeArrayBuilder::AttachOrEmitDeferredSourceInfo(BytecodeNode* node) {
if (!deferred_source_info_.is_valid()) return;
if (!node->source_info().is_valid()) {
node->set_source_info(deferred_source_info_);
} else {
BytecodeNode node = BytecodeNode::Nop(deferred_source_info_);
bytecode_array_writer_.Write(&node);
} else if (deferred_source_info_.is_statement() &&
node->source_info().is_expression()) {
BytecodeSourceInfo source_position = node->source_info();
source_position.MakeStatementPosition(source_position.source_position());
node->set_source_info(source_position);
}
deferred_source_info_.set_invalid();
}
......@@ -640,7 +636,7 @@ BytecodeArrayBuilder& BytecodeArrayBuilder::LoadAccumulatorWithRegister(
Register reg) {
if (register_optimizer_) {
// Defer source info so that if we elide the bytecode transfer, we attach
// the source info to a subsequent bytecode or to a nop.
// the source info to a subsequent bytecode if it exists.
SetDeferredSourceInfo(CurrentSourcePosition(Bytecode::kLdar));
register_optimizer_->DoLdar(reg);
} else {
......@@ -653,7 +649,7 @@ BytecodeArrayBuilder& BytecodeArrayBuilder::StoreAccumulatorInRegister(
Register reg) {
if (register_optimizer_) {
// Defer source info so that if we elide the bytecode transfer, we attach
// the source info to a subsequent bytecode or to a nop.
// the source info to a subsequent bytecode if it exists.
SetDeferredSourceInfo(CurrentSourcePosition(Bytecode::kStar));
register_optimizer_->DoStar(reg);
} else {
......@@ -667,7 +663,7 @@ BytecodeArrayBuilder& BytecodeArrayBuilder::MoveRegister(Register from,
DCHECK(from != to);
if (register_optimizer_) {
// Defer source info so that if we elide the bytecode transfer, we attach
// the source info to a subsequent bytecode or to a nop.
// the source info to a subsequent bytecode if it exists.
SetDeferredSourceInfo(CurrentSourcePosition(Bytecode::kMov));
register_optimizer_->DoMov(from, to);
} else {
......
......@@ -344,10 +344,6 @@ namespace interpreter {
\
/* Illegal bytecode (terminates execution) */ \
V(Illegal, AccumulatorUse::kNone) \
\
/* No operation (used to maintain source positions for peephole */ \
/* eliminated bytecodes). */ \
V(Nop, AccumulatorUse::kNone)
// List of debug break bytecodes.
#define DEBUG_BREAK_PLAIN_BYTECODE_LIST(V) \
......@@ -632,7 +628,7 @@ class V8_EXPORT_PRIVATE Bytecodes final {
static constexpr bool IsWithoutExternalSideEffects(Bytecode bytecode) {
return (IsAccumulatorLoadWithoutEffects(bytecode) ||
IsRegisterLoadWithoutEffects(bytecode) ||
IsCompareWithoutEffects(bytecode) || bytecode == Bytecode::kNop ||
IsCompareWithoutEffects(bytecode) ||
IsJumpWithoutEffects(bytecode) || IsSwitch(bytecode));
}
......
......@@ -3251,11 +3251,6 @@ IGNITION_HANDLER(ExtraWide, InterpreterAssembler) {
// An invalid bytecode aborting execution if dispatched.
IGNITION_HANDLER(Illegal, InterpreterAssembler) { Abort(kInvalidBytecode); }
// Nop
//
// No operation.
IGNITION_HANDLER(Nop, InterpreterAssembler) { Dispatch(); }
// SuspendGenerator <generator> <first input register> <register count>
//
// Exports the register file and stores it into the generator. Also stores the
......
......@@ -42,7 +42,7 @@ snippet: "
"
frame size: 2
parameter count: 1
bytecode array length: 13
bytecode array length: 12
bytecodes: [
/* 30 E> */ B(StackCheck),
/* 42 S> */ B(LdaSmi), I8(55),
......@@ -50,7 +50,6 @@ bytecodes: [
/* 54 S> */ B(LdaSmi), I8(100),
B(Star), R(0),
B(Star), R(1),
/* 65 S> */ B(Nop),
/* 74 S> */ B(Return),
]
constant pool: [
......@@ -66,7 +65,7 @@ snippet: "
"
frame size: 2
parameter count: 1
bytecode array length: 28
bytecode array length: 27
bytecodes: [
/* 30 E> */ B(StackCheck),
/* 42 S> */ B(LdaSmi), I8(55),
......@@ -80,7 +79,6 @@ bytecodes: [
B(Star), R(0),
/* 64 E> */ B(Add), R(1), U8(4),
B(Star), R(0),
/* 77 S> */ B(Nop),
/* 86 S> */ B(Return),
]
constant pool: [
......@@ -97,7 +95,7 @@ snippet: "
"
frame size: 2
parameter count: 1
bytecode array length: 29
bytecode array length: 28
bytecodes: [
/* 30 E> */ B(StackCheck),
/* 42 S> */ B(LdaSmi), I8(55),
......@@ -112,7 +110,6 @@ bytecodes: [
B(Star), R(0),
/* 75 S> */ B(Inc), U8(5),
B(Star), R(0),
/* 80 S> */ B(Nop),
/* 89 S> */ B(Return),
]
constant pool: [
......@@ -128,7 +125,7 @@ snippet: "
"
frame size: 3
parameter count: 1
bytecode array length: 37
bytecode array length: 36
bytecodes: [
/* 30 E> */ B(StackCheck),
/* 42 S> */ B(LdaSmi), I8(55),
......@@ -146,7 +143,6 @@ bytecodes: [
B(Star), R(0),
/* 76 E> */ B(Add), R(2), U8(5),
B(Star), R(1),
/* 87 S> */ B(Nop),
/* 96 S> */ B(Return),
]
constant pool: [
......@@ -162,7 +158,7 @@ snippet: "
"
frame size: 2
parameter count: 1
bytecode array length: 37
bytecode array length: 36
bytecodes: [
/* 30 E> */ B(StackCheck),
/* 42 S> */ B(LdaSmi), I8(55),
......@@ -180,7 +176,6 @@ bytecodes: [
B(Star), R(0),
/* 76 E> */ B(Add), R(1), U8(5),
B(Star), R(0),
/* 87 S> */ B(Nop),
/* 96 S> */ B(Return),
]
constant pool: [
......
......@@ -13,12 +13,11 @@ snippet: "
"
frame size: 1
parameter count: 1
bytecode array length: 6
bytecode array length: 5
bytecodes: [
/* 30 E> */ B(StackCheck),
/* 42 S> */ B(LdaZero),
B(Star), R(0),
/* 88 S> */ B(Nop),
/* 97 S> */ B(Return),
]
constant pool: [
......@@ -36,12 +35,11 @@ snippet: "
"
frame size: 1
parameter count: 1
bytecode array length: 6
bytecode array length: 5
bytecodes: [
/* 30 E> */ B(StackCheck),
/* 42 S> */ B(LdaZero),
B(Star), R(0),
/* 77 S> */ B(Nop),
/* 86 S> */ B(Return),
]
constant pool: [
......@@ -328,7 +326,7 @@ snippet: "
"
frame size: 2
parameter count: 1
bytecode array length: 43
bytecode array length: 42
bytecodes: [
/* 30 E> */ B(StackCheck),
/* 42 S> */ B(LdaZero),
......@@ -336,8 +334,7 @@ bytecodes: [
/* 53 S> */ B(LdaSmi), I8(1),
B(Star), R(1),
/* 56 E> */ B(StackCheck),
/* 63 S> */ B(Nop),
/* 69 E> */ B(MulSmi), I8(10), U8(3),
/* 69 S> */ B(MulSmi), I8(10), U8(3),
B(Star), R(1),
/* 77 S> */ B(LdaSmi), I8(5),
/* 83 E> */ B(TestEqual), R(0), U8(4),
......
......@@ -17,13 +17,12 @@ snippet: "
"
frame size: 1
parameter count: 1
bytecode array length: 15
bytecode array length: 14
bytecodes: [
/* 30 E> */ B(StackCheck),
/* 42 S> */ B(LdaZero),
B(Star), R(0),
/* 56 S> */ B(Nop),
/* 62 E> */ B(AddSmi), I8(1), U8(3),
/* 62 S> */ B(AddSmi), I8(1), U8(3),
B(Star), R(0),
/* 69 S> */ B(Jump), U8(2),
/* 97 S> */ B(Ldar), R(0),
......
......@@ -171,7 +171,7 @@ snippet: "
"
frame size: 8
parameter count: 1
bytecode array length: 56
bytecode array length: 55
bytecodes: [
B(CreateFunctionContext), U8(1),
B(PushContext), R(2),
......@@ -193,8 +193,7 @@ bytecodes: [
B(CallRuntime), U16(Runtime::kToFastProperties), R(3), U8(1),
B(Star), R(0),
B(Star), R(1),
/* 87 S> */ B(Nop),
/* 94 E> */ B(Construct), R(1), R(0), U8(0), U8(4),
/* 94 S> */ B(Construct), R(1), R(0), U8(0), U8(4),
/* 102 S> */ B(Return),
]
constant pool: [
......
......@@ -30,12 +30,11 @@ snippet: "
"
frame size: 1
parameter count: 1
bytecode array length: 7
bytecode array length: 6
bytecodes: [
/* 30 E> */ B(StackCheck),
/* 44 S> */ B(LdaSmi), I8(10),
B(Star), R(0),
/* 48 S> */ B(Nop),
/* 57 S> */ B(Return),
]
constant pool: [
......
......@@ -13,12 +13,11 @@ snippet: "
"
frame size: 1
parameter count: 1
bytecode array length: 6
bytecode array length: 5
bytecodes: [
B(CreateMappedArguments),
B(Star), R(0),
/* 10 E> */ B(StackCheck),
/* 15 S> */ B(Nop),
/* 32 S> */ B(Return),
]
constant pool: [
......@@ -54,12 +53,11 @@ snippet: "
"
frame size: 1
parameter count: 1
bytecode array length: 6
bytecode array length: 5
bytecodes: [
B(CreateUnmappedArguments),
B(Star), R(0),
/* 10 E> */ B(StackCheck),
/* 29 S> */ B(Nop),
/* 46 S> */ B(Return),
]
constant pool: [
......@@ -99,7 +97,7 @@ snippet: "
"
frame size: 2
parameter count: 4
bytecode array length: 22
bytecode array length: 21
bytecodes: [
B(CreateFunctionContext), U8(3),
B(PushContext), R(1),
......@@ -112,7 +110,6 @@ bytecodes: [
B(CreateMappedArguments),
B(Star), R(0),
/* 10 E> */ B(StackCheck),
/* 22 S> */ B(Nop),
/* 39 S> */ B(Return),
]
constant pool: [
......@@ -127,12 +124,11 @@ snippet: "
"
frame size: 1
parameter count: 4
bytecode array length: 6
bytecode array length: 5
bytecodes: [
B(CreateUnmappedArguments),
B(Star), R(0),
/* 10 E> */ B(StackCheck),
/* 36 S> */ B(Nop),
/* 53 S> */ B(Return),
]
constant pool: [
......
......@@ -13,13 +13,12 @@ snippet: "
"
frame size: 2
parameter count: 1
bytecode array length: 8
bytecode array length: 7
bytecodes: [
B(CreateRestParameter),
B(Star), R(0),
/* 10 E> */ B(StackCheck),
B(Star), R(1),
/* 26 S> */ B(Nop),
/* 42 S> */ B(Return),
]
constant pool: [
......
......@@ -30,7 +30,7 @@ snippet: "
"
frame size: 3
parameter count: 1
bytecode array length: 12
bytecode array length: 11
bytecodes: [
/* 30 E> */ B(StackCheck),
/* 55 S> */ B(LdaSmi), I8(100),
......@@ -38,7 +38,6 @@ bytecodes: [
/* 42 S> */ B(LdaUndefined),
B(Star), R(1),
B(Star), R(2),
/* 63 S> */ B(Nop),
/* 72 S> */ B(Return),
]
constant pool: [
......
......@@ -982,7 +982,7 @@ snippet: "
"
frame size: 19
parameter count: 1
bytecode array length: 432
bytecode array length: 431
bytecodes: [
/* 16 E> */ B(StackCheck),
B(LdaUndefined),
......@@ -1014,7 +1014,7 @@ bytecodes: [
B(JumpIfFalse), U8(7),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(3), U8(1),
B(LdaNamedProperty), R(3), U8(4), U8(13),
B(JumpIfToBooleanTrue), U8(31),
B(JumpIfToBooleanTrue), U8(30),
/* 58 E> */ B(LdaNamedProperty), R(3), U8(5), U8(15),
B(Star), R(5),
B(LdaSmi), I8(2),
......@@ -1022,8 +1022,7 @@ bytecodes: [
B(Ldar), R(5),
B(StaNamedPropertySloppy), R(1), U8(6), U8(17),
/* 53 E> */ B(StackCheck),
/* 79 S> */ B(Nop),
/* 87 E> */ B(LdaNamedProperty), R(1), U8(6), U8(19),
/* 87 S> */ B(LdaNamedProperty), R(1), U8(6), U8(19),
B(Star), R(14),
B(LdaZero),
B(Star), R(13),
......@@ -1195,10 +1194,10 @@ constant pool: [
Smi [25],
]
handlers: [
[13, 371, 377],
[16, 325, 327],
[30, 157, 163],
[33, 117, 119],
[224, 234, 236],
[13, 370, 376],
[16, 324, 326],
[30, 156, 162],
[33, 116, 118],
[223, 233, 235],
]
......@@ -63,29 +63,28 @@ snippet: "
"
frame size: 8
parameter count: 1
bytecode array length: 45
bytecode array length: 44
bytecodes: [
/* 30 E> */ B(StackCheck),
/* 42 S> */ B(LdaConstant), U8(0),
B(Star), R(0),
/* 68 S> */ B(JumpIfUndefined), U8(38),
B(JumpIfNull), U8(36),
/* 68 S> */ B(JumpIfUndefined), U8(37),
B(JumpIfNull), U8(35),
B(ToObject), R(3),
B(ForInPrepare), R(3), R(4),
B(LdaZero),
B(Star), R(7),
/* 63 S> */ B(ForInContinue), R(7), R(6),
B(JumpIfFalse), U8(23),
B(JumpIfFalse), U8(22),
B(ForInNext), R(3), R(7), R(4), U8(3),
B(JumpIfUndefined), U8(9),
B(JumpIfUndefined), U8(8),
B(Star), R(1),
/* 54 E> */ B(StackCheck),
B(Star), R(2),
/* 73 S> */ B(Nop),
/* 82 S> */ B(Return),
B(ForInStep), R(7),
B(Star), R(7),
B(JumpLoop), U8(23), I8(0),
B(JumpLoop), U8(22), I8(0),
B(LdaUndefined),
/* 85 S> */ B(Return),
]
......@@ -147,35 +146,33 @@ snippet: "
"
frame size: 7
parameter count: 1
bytecode array length: 87
bytecode array length: 85
bytecodes: [
/* 30 E> */ B(StackCheck),
/* 42 S> */ B(CreateObjectLiteral), U8(0), U8(3), U8(41), R(1),
B(Mov), R(1), R(0),
/* 77 S> */ B(CreateArrayLiteral), U8(1), U8(4), U8(37),
B(JumpIfUndefined), U8(72),
B(JumpIfNull), U8(70),
B(JumpIfUndefined), U8(70),
B(JumpIfNull), U8(68),
B(ToObject), R(1),
B(ForInPrepare), R(1), R(2),
B(LdaZero),
B(Star), R(5),
/* 68 S> */ B(ForInContinue), R(5), R(4),
B(JumpIfFalse), U8(57),
B(JumpIfFalse), U8(55),
B(ForInNext), R(1), R(5), R(2), U8(15),
B(JumpIfUndefined), U8(43),
B(JumpIfUndefined), U8(41),
B(Star), R(6),
B(Ldar), R(6),
/* 67 E> */ B(StaNamedPropertySloppy), R(0), U8(2), U8(13),
/* 62 E> */ B(StackCheck),
/* 95 S> */ B(Nop),
/* 100 E> */ B(LdaNamedProperty), R(0), U8(2), U8(7),
/* 100 S> */ B(LdaNamedProperty), R(0), U8(2), U8(7),
B(Star), R(6),
B(LdaSmi), I8(10),
/* 106 E> */ B(TestEqual), R(6), U8(9),
B(JumpIfFalse), U8(4),
/* 113 S> */ B(Jump), U8(18),
/* 125 S> */ B(Nop),
/* 130 E> */ B(LdaNamedProperty), R(0), U8(2), U8(10),
/* 113 S> */ B(Jump), U8(17),
/* 130 S> */ B(LdaNamedProperty), R(0), U8(2), U8(10),
B(Star), R(6),
B(LdaSmi), I8(20),
/* 136 E> */ B(TestEqual), R(6), U8(12),
......@@ -183,7 +180,7 @@ bytecodes: [
/* 143 S> */ B(Jump), U8(9),
B(ForInStep), R(5),
B(Star), R(5),
B(JumpLoop), U8(57), I8(0),
B(JumpLoop), U8(55), I8(0),
B(LdaUndefined),
/* 152 S> */ B(Return),
]
......
......@@ -441,7 +441,7 @@ snippet: "
"
frame size: 13
parameter count: 1
bytecode array length: 281
bytecode array length: 280
bytecodes: [
/* 30 E> */ B(StackCheck),
/* 42 S> */ B(CreateObjectLiteral), U8(0), U8(3), U8(41), R(7),
......@@ -467,7 +467,7 @@ bytecodes: [
B(JumpIfFalse), U8(7),
B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(2), U8(1),
B(LdaNamedProperty), R(2), U8(4), U8(13),
B(JumpIfToBooleanTrue), U8(31),
B(JumpIfToBooleanTrue), U8(30),
/* 67 E> */ B(LdaNamedProperty), R(2), U8(5), U8(15),
B(Star), R(4),
B(LdaSmi), I8(2),
......@@ -475,8 +475,7 @@ bytecodes: [
B(Ldar), R(4),
B(StaNamedPropertySloppy), R(0), U8(6), U8(17),
/* 62 E> */ B(StackCheck),
/* 88 S> */ B(Nop),
/* 96 E> */ B(LdaNamedProperty), R(0), U8(6), U8(19),
/* 96 S> */ B(LdaNamedProperty), R(0), U8(6), U8(19),
B(Star), R(8),
B(LdaZero),
B(Star), R(7),
......@@ -578,8 +577,8 @@ constant pool: [
Smi [9],
]
handlers: [
[15, 138, 144],
[18, 102, 104],
[205, 215, 217],
[15, 137, 143],
[18, 101, 103],
[204, 214, 216],
]
......@@ -258,7 +258,7 @@ snippet: "
"
frame size: 2
parameter count: 2
bytecode array length: 156
bytecode array length: 29
bytecodes: [
/* 10 E> */ B(StackCheck),
/* 24 S> */ B(LdaZero),
......@@ -267,135 +267,8 @@ bytecodes: [
B(Star), R(1),
/* 38 S> */ B(LdaConstant), U8(0),
/* 44 E> */ B(TestEqualStrict), R(0), U8(3),
B(JumpIfFalse), U8(137),
B(JumpIfFalse), U8(10),
/* 58 S> */ B(Mov), R(0), R(1),
/* 65 S> */ B(Nop),
/* 74 S> */ B(Nop),
/* 81 S> */ B(Nop),
/* 90 S> */ B(Nop),
/* 97 S> */ B(Nop),
/* 106 S> */ B(Nop),
/* 113 S> */ B(Nop),
/* 122 S> */ B(Nop),
/* 129 S> */ B(Nop),
/* 138 S> */ B(Nop),
/* 145 S> */ B(Nop),
/* 154 S> */ B(Nop),
/* 161 S> */ B(Nop),
/* 170 S> */ B(Nop),
/* 177 S> */ B(Nop),
/* 186 S> */ B(Nop),
/* 193 S> */ B(Nop),
/* 202 S> */ B(Nop),
/* 209 S> */ B(Nop),
/* 218 S> */ B(Nop),
/* 225 S> */ B(Nop),
/* 234 S> */ B(Nop),
/* 241 S> */ B(Nop),
/* 250 S> */ B(Nop),
/* 257 S> */ B(Nop),
/* 266 S> */ B(Nop),
/* 273 S> */ B(Nop),
/* 282 S> */ B(Nop),
/* 289 S> */ B(Nop),
/* 298 S> */ B(Nop),
/* 305 S> */ B(Nop),
/* 314 S> */ B(Nop),
/* 321 S> */ B(Nop),
/* 330 S> */ B(Nop),
/* 337 S> */ B(Nop),
/* 346 S> */ B(Nop),
/* 353 S> */ B(Nop),
/* 362 S> */ B(Nop),
/* 369 S> */ B(Nop),
/* 378 S> */ B(Nop),
/* 385 S> */ B(Nop),
/* 394 S> */ B(Nop),
/* 401 S> */ B(Nop),
/* 410 S> */ B(Nop),
/* 417 S> */ B(Nop),
/* 426 S> */ B(Nop),
/* 433 S> */ B(Nop),
/* 442 S> */ B(Nop),
/* 449 S> */ B(Nop),
/* 458 S> */ B(Nop),
/* 465 S> */ B(Nop),
/* 474 S> */ B(Nop),
/* 481 S> */ B(Nop),
/* 490 S> */ B(Nop),
/* 497 S> */ B(Nop),
/* 506 S> */ B(Nop),
/* 513 S> */ B(Nop),
/* 522 S> */ B(Nop),
/* 529 S> */ B(Nop),
/* 538 S> */ B(Nop),
/* 545 S> */ B(Nop),
/* 554 S> */ B(Nop),
/* 561 S> */ B(Nop),
/* 570 S> */ B(Nop),
/* 577 S> */ B(Nop),
/* 586 S> */ B(Nop),
/* 593 S> */ B(Nop),
/* 602 S> */ B(Nop),
/* 609 S> */ B(Nop),
/* 618 S> */ B(Nop),
/* 625 S> */ B(Nop),
/* 634 S> */ B(Nop),
/* 641 S> */ B(Nop),
/* 650 S> */ B(Nop),
/* 657 S> */ B(Nop),
/* 666 S> */ B(Nop),
/* 673 S> */ B(Nop),
/* 682 S> */ B(Nop),
/* 689 S> */ B(Nop),
/* 698 S> */ B(Nop),
/* 705 S> */ B(Nop),
/* 714 S> */ B(Nop),
/* 721 S> */ B(Nop),
/* 730 S> */ B(Nop),
/* 737 S> */ B(Nop),
/* 746 S> */ B(Nop),
/* 753 S> */ B(Nop),
/* 762 S> */ B(Nop),
/* 769 S> */ B(Nop),
/* 778 S> */ B(Nop),
/* 785 S> */ B(Nop),
/* 794 S> */ B(Nop),
/* 801 S> */ B(Nop),
/* 810 S> */ B(Nop),
/* 817 S> */ B(Nop),
/* 826 S> */ B(Nop),
/* 833 S> */ B(Nop),
/* 842 S> */ B(Nop),
/* 849 S> */ B(Nop),
/* 858 S> */ B(Nop),
/* 865 S> */ B(Nop),
/* 874 S> */ B(Nop),
/* 881 S> */ B(Nop),
/* 890 S> */ B(Nop),
/* 897 S> */ B(Nop),
/* 906 S> */ B(Nop),
/* 913 S> */ B(Nop),
/* 922 S> */ B(Nop),
/* 929 S> */ B(Nop),
/* 938 S> */ B(Nop),
/* 945 S> */ B(Nop),
/* 954 S> */ B(Nop),
/* 961 S> */ B(Nop),
/* 970 S> */ B(Nop),
/* 977 S> */ B(Nop),
/* 986 S> */ B(Nop),
/* 993 S> */ B(Nop),
/* 1002 S> */ B(Nop),
/* 1009 S> */ B(Nop),
/* 1018 S> */ B(Nop),
/* 1025 S> */ B(Nop),
/* 1034 S> */ B(Nop),
/* 1041 S> */ B(Nop),
/* 1050 S> */ B(Nop),
/* 1057 S> */ B(Nop),
/* 1066 S> */ B(Nop),
/* 1073 S> */ B(Nop),
/* 1081 S> */ B(Wide), B(LdaSmi), I16(200),
/* 1092 S> */ B(Return),
/* 1102 S> */ B(Wide), B(LdaSmi), I16(-200),
......@@ -484,7 +357,7 @@ snippet: "
"
frame size: 2
parameter count: 1
bytecode array length: 153
bytecode array length: 26
bytecodes: [
/* 10 E> */ B(StackCheck),
/* 25 S> */ B(LdaZero),
......@@ -492,135 +365,8 @@ bytecodes: [
/* 36 S> */ B(LdaZero),
B(Star), R(1),
/* 41 S> */ B(Ldar), R(0),
B(JumpIfToBooleanFalse), U8(137),
B(JumpIfToBooleanFalse), U8(10),
/* 52 S> */ B(Mov), R(0), R(1),
/* 59 S> */ B(Nop),
/* 68 S> */ B(Nop),
/* 75 S> */ B(Nop),
/* 84 S> */ B(Nop),
/* 91 S> */ B(Nop),
/* 100 S> */ B(Nop),
/* 107 S> */ B(Nop),
/* 116 S> */ B(Nop),
/* 123 S> */ B(Nop),
/* 132 S> */ B(Nop),
/* 139 S> */ B(Nop),
/* 148 S> */ B(Nop),
/* 155 S> */ B(Nop),
/* 164 S> */ B(Nop),
/* 171 S> */ B(Nop),
/* 180 S> */ B(Nop),
/* 187 S> */ B(Nop),
/* 196 S> */ B(Nop),
/* 203 S> */ B(Nop),
/* 212 S> */ B(Nop),
/* 219 S> */ B(Nop),
/* 228 S> */ B(Nop),
/* 235 S> */ B(Nop),
/* 244 S> */ B(Nop),
/* 251 S> */ B(Nop),
/* 260 S> */ B(Nop),
/* 267 S> */ B(Nop),
/* 276 S> */ B(Nop),
/* 283 S> */ B(Nop),
/* 292 S> */ B(Nop),
/* 299 S> */ B(Nop),
/* 308 S> */ B(Nop),
/* 315 S> */ B(Nop),
/* 324 S> */ B(Nop),
/* 331 S> */ B(Nop),
/* 340 S> */ B(Nop),
/* 347 S> */ B(Nop),
/* 356 S> */ B(Nop),
/* 363 S> */ B(Nop),
/* 372 S> */ B(Nop),
/* 379 S> */ B(Nop),
/* 388 S> */ B(Nop),
/* 395 S> */ B(Nop),
/* 404 S> */ B(Nop),
/* 411 S> */ B(Nop),
/* 420 S> */ B(Nop),
/* 427 S> */ B(Nop),
/* 436 S> */ B(Nop),
/* 443 S> */ B(Nop),
/* 452 S> */ B(Nop),
/* 459 S> */ B(Nop),
/* 468 S> */ B(Nop),
/* 475 S> */ B(Nop),
/* 484 S> */ B(Nop),
/* 491 S> */ B(Nop),
/* 500 S> */ B(Nop),
/* 507 S> */ B(Nop),
/* 516 S> */ B(Nop),
/* 523 S> */ B(Nop),
/* 532 S> */ B(Nop),
/* 539 S> */ B(Nop),
/* 548 S> */ B(Nop),
/* 555 S> */ B(Nop),
/* 564 S> */ B(Nop),
/* 571 S> */ B(Nop),
/* 580 S> */ B(Nop),
/* 587 S> */ B(Nop),
/* 596 S> */ B(Nop),
/* 603 S> */ B(Nop),
/* 612 S> */ B(Nop),
/* 619 S> */ B(Nop),
/* 628 S> */ B(Nop),
/* 635 S> */ B(Nop),
/* 644 S> */ B(Nop),
/* 651 S> */ B(Nop),
/* 660 S> */ B(Nop),
/* 667 S> */ B(Nop),
/* 676 S> */ B(Nop),
/* 683 S> */ B(Nop),
/* 692 S> */ B(Nop),
/* 699 S> */ B(Nop),
/* 708 S> */ B(Nop),
/* 715 S> */ B(Nop),
/* 724 S> */ B(Nop),
/* 731 S> */ B(Nop),
/* 740 S> */ B(Nop),
/* 747 S> */ B(Nop),
/* 756 S> */ B(Nop),
/* 763 S> */ B(Nop),
/* 772 S> */ B(Nop),
/* 779 S> */ B(Nop),
/* 788 S> */ B(Nop),
/* 795 S> */ B(Nop),
/* 804 S> */ B(Nop),
/* 811 S> */ B(Nop),
/* 820 S> */ B(Nop),
/* 827 S> */ B(Nop),
/* 836 S> */ B(Nop),
/* 843 S> */ B(Nop),
/* 852 S> */ B(Nop),
/* 859 S> */ B(Nop),
/* 868 S> */ B(Nop),
/* 875 S> */ B(Nop),
/* 884 S> */ B(Nop),
/* 891 S> */ B(Nop),
/* 900 S> */ B(Nop),
/* 907 S> */ B(Nop),
/* 916 S> */ B(Nop),
/* 923 S> */ B(Nop),
/* 932 S> */ B(Nop),
/* 939 S> */ B(Nop),
/* 948 S> */ B(Nop),
/* 955 S> */ B(Nop),
/* 964 S> */ B(Nop),
/* 971 S> */ B(Nop),
/* 980 S> */ B(Nop),
/* 987 S> */ B(Nop),
/* 996 S> */ B(Nop),
/* 1003 S> */ B(Nop),
/* 1012 S> */ B(Nop),
/* 1019 S> */ B(Nop),
/* 1028 S> */ B(Nop),
/* 1035 S> */ B(Nop),
/* 1044 S> */ B(Nop),
/* 1051 S> */ B(Nop),
/* 1060 S> */ B(Nop),
/* 1067 S> */ B(Nop),
/* 1076 S> */ B(Wide), B(LdaSmi), I16(200),
/* 1087 S> */ B(Return),
/* 1097 S> */ B(Wide), B(LdaSmi), I16(-200),
......
......@@ -30,12 +30,11 @@ snippet: "
"
frame size: 1
parameter count: 1
bytecode array length: 7
bytecode array length: 6
bytecodes: [
/* 30 E> */ B(StackCheck),
/* 42 S> */ B(LdaSmi), I8(10),
B(Star), R(0),
/* 46 S> */ B(Nop),
/* 55 S> */ B(Return),
]
constant pool: [
......
......@@ -11,12 +11,11 @@ snippet: "
"
frame size: 1
parameter count: 1
bytecode array length: 6
bytecode array length: 5
bytecodes: [
/* 30 E> */ B(StackCheck),
/* 42 S> */ B(LdaZero),
B(Star), R(0),
/* 45 S> */ B(Nop),
/* 54 S> */ B(Return),
]
constant pool: [
......@@ -30,13 +29,12 @@ snippet: "
"
frame size: 1
parameter count: 1
bytecode array length: 9
bytecode array length: 8
bytecodes: [
/* 30 E> */ B(StackCheck),
/* 42 S> */ B(LdaZero),
B(Star), R(0),
/* 45 S> */ B(Nop),
/* 54 E> */ B(AddSmi), I8(3), U8(3),
/* 54 S> */ B(AddSmi), I8(3), U8(3),
/* 58 S> */ B(Return),
]
constant pool: [
......@@ -72,13 +70,12 @@ snippet: "
"
frame size: 1
parameter count: 1
bytecode array length: 9
bytecode array length: 8
bytecodes: [
/* 30 E> */ B(StackCheck),
/* 42 S> */ B(LdaZero),
B(Star), R(0),
/* 45 S> */ B(Nop),
/* 54 E> */ B(SubSmi), I8(3), U8(3),
/* 54 S> */ B(SubSmi), I8(3), U8(3),
/* 58 S> */ B(Return),
]
constant pool: [
......@@ -114,13 +111,12 @@ snippet: "
"
frame size: 1
parameter count: 1
bytecode array length: 10
bytecode array length: 9
bytecodes: [
/* 30 E> */ B(StackCheck),
/* 42 S> */ B(LdaSmi), I8(4),
B(Star), R(0),
/* 45 S> */ B(Nop),
/* 54 E> */ B(MulSmi), I8(3), U8(3),
/* 54 S> */ B(MulSmi), I8(3), U8(3),
/* 58 S> */ B(Return),
]
constant pool: [
......@@ -134,13 +130,12 @@ snippet: "
"
frame size: 1
parameter count: 1
bytecode array length: 10
bytecode array length: 9
bytecodes: [
/* 30 E> */ B(StackCheck),
/* 42 S> */ B(LdaSmi), I8(4),
B(Star), R(0),
/* 45 S> */ B(Nop),
/* 54 E> */ B(MulSmi), I8(3), U8(3),
/* 54 S> */ B(MulSmi), I8(3), U8(3),
/* 58 S> */ B(Return),
]
constant pool: [
......@@ -154,13 +149,12 @@ snippet: "
"
frame size: 1
parameter count: 1
bytecode array length: 10
bytecode array length: 9
bytecodes: [
/* 30 E> */ B(StackCheck),
/* 42 S> */ B(LdaSmi), I8(4),
B(Star), R(0),
/* 45 S> */ B(Nop),
/* 54 E> */ B(DivSmi), I8(3), U8(3),
/* 54 S> */ B(DivSmi), I8(3), U8(3),
/* 58 S> */ B(Return),
]
constant pool: [
......@@ -196,13 +190,12 @@ snippet: "
"
frame size: 1
parameter count: 1
bytecode array length: 10
bytecode array length: 9
bytecodes: [
/* 30 E> */ B(StackCheck),
/* 42 S> */ B(LdaSmi), I8(4),
B(Star), R(0),
/* 45 S> */ B(Nop),
/* 54 E> */ B(ModSmi), I8(3), U8(3),
/* 54 S> */ B(ModSmi), I8(3), U8(3),
/* 58 S> */ B(Return),
]
constant pool: [
......@@ -238,13 +231,12 @@ snippet: "
"
frame size: 1
parameter count: 1
bytecode array length: 10
bytecode array length: 9
bytecodes: [
/* 30 E> */ B(StackCheck),
/* 42 S> */ B(LdaSmi), I8(1),
B(Star), R(0),
/* 45 S> */ B(Nop),
/* 54 E> */ B(BitwiseOrSmi), I8(2), U8(3),
/* 54 S> */ B(BitwiseOrSmi), I8(2), U8(3),
/* 58 S> */ B(Return),
]
constant pool: [
......@@ -258,13 +250,12 @@ snippet: "
"
frame size: 1
parameter count: 1
bytecode array length: 10
bytecode array length: 9
bytecodes: [
/* 30 E> */ B(StackCheck),
/* 42 S> */ B(LdaSmi), I8(1),
B(Star), R(0),
/* 45 S> */ B(Nop),
/* 54 E> */ B(BitwiseOrSmi), I8(2), U8(3),
/* 54 S> */ B(BitwiseOrSmi), I8(2), U8(3),
/* 58 S> */ B(Return),
]
constant pool: [
......@@ -278,13 +269,12 @@ snippet: "
"
frame size: 1
parameter count: 1
bytecode array length: 10
bytecode array length: 9
bytecodes: [
/* 30 E> */ B(StackCheck),
/* 42 S> */ B(LdaSmi), I8(1),
B(Star), R(0),
/* 45 S> */ B(Nop),
/* 54 E> */ B(BitwiseXorSmi), I8(2), U8(3),
/* 54 S> */ B(BitwiseXorSmi), I8(2), U8(3),
/* 58 S> */ B(Return),
]
constant pool: [
......@@ -298,13 +288,12 @@ snippet: "
"
frame size: 1
parameter count: 1
bytecode array length: 10
bytecode array length: 9
bytecodes: [
/* 30 E> */ B(StackCheck),
/* 42 S> */ B(LdaSmi), I8(1),
B(Star), R(0),
/* 45 S> */ B(Nop),
/* 54 E> */ B(BitwiseXorSmi), I8(2), U8(3),
/* 54 S> */ B(BitwiseXorSmi), I8(2), U8(3),
/* 58 S> */ B(Return),
]
constant pool: [
......@@ -318,13 +307,12 @@ snippet: "
"
frame size: 1
parameter count: 1
bytecode array length: 10
bytecode array length: 9
bytecodes: [
/* 30 E> */ B(StackCheck),
/* 42 S> */ B(LdaSmi), I8(1),
B(Star), R(0),
/* 45 S> */ B(Nop),
/* 54 E> */ B(BitwiseAndSmi), I8(2), U8(3),
/* 54 S> */ B(BitwiseAndSmi), I8(2), U8(3),
/* 58 S> */ B(Return),
]
constant pool: [
......@@ -338,13 +326,12 @@ snippet: "
"
frame size: 1
parameter count: 1
bytecode array length: 10
bytecode array length: 9
bytecodes: [
/* 30 E> */ B(StackCheck),
/* 42 S> */ B(LdaSmi), I8(1),
B(Star), R(0),
/* 45 S> */ B(Nop),
/* 54 E> */ B(BitwiseAndSmi), I8(2), U8(3),
/* 54 S> */ B(BitwiseAndSmi), I8(2), U8(3),
/* 58 S> */ B(Return),
]
constant pool: [
......@@ -358,13 +345,12 @@ snippet: "
"
frame size: 1
parameter count: 1
bytecode array length: 10
bytecode array length: 9
bytecodes: [
/* 30 E> */ B(StackCheck),
/* 42 S> */ B(LdaSmi), I8(10),
B(Star), R(0),
/* 46 S> */ B(Nop),
/* 55 E> */ B(ShiftLeftSmi), I8(3), U8(3),
/* 55 S> */ B(ShiftLeftSmi), I8(3), U8(3),
/* 60 S> */ B(Return),
]
constant pool: [
......@@ -400,13 +386,12 @@ snippet: "
"
frame size: 1
parameter count: 1
bytecode array length: 10
bytecode array length: 9
bytecodes: [
/* 30 E> */ B(StackCheck),
/* 42 S> */ B(LdaSmi), I8(10),
B(Star), R(0),
/* 46 S> */ B(Nop),
/* 55 E> */ B(ShiftRightSmi), I8(3), U8(3),
/* 55 S> */ B(ShiftRightSmi), I8(3), U8(3),
/* 60 S> */ B(Return),
]
constant pool: [
......@@ -442,13 +427,12 @@ snippet: "
"
frame size: 1
parameter count: 1
bytecode array length: 10
bytecode array length: 9
bytecodes: [
/* 30 E> */ B(StackCheck),
/* 42 S> */ B(LdaSmi), I8(10),
B(Star), R(0),
/* 46 S> */ B(Nop),
/* 55 E> */ B(ShiftRightLogicalSmi), I8(3), U8(3),
/* 55 S> */ B(ShiftRightLogicalSmi), I8(3), U8(3),
/* 61 S> */ B(Return),
]
constant pool: [
......
......@@ -49,14 +49,13 @@ snippet: "
"
frame size: 1
parameter count: 1
bytecode array length: 24
bytecode array length: 23
bytecodes: [
/* 30 E> */ B(StackCheck),
/* 45 S> */ B(LdaSmi), I8(1),
B(Star), R(0),
/* 48 E> */ B(StackCheck),
/* 55 S> */ B(Nop),
/* 67 E> */ B(Add), R(0), U8(3),
/* 67 S> */ B(Add), R(0), U8(3),
B(Star), R(0),
/* 77 S> */ B(LdaSmi), I8(10),
/* 86 E> */ B(TestGreaterThan), R(0), U8(4),
......@@ -78,15 +77,13 @@ snippet: "
"
frame size: 1
parameter count: 1
bytecode array length: 13
bytecode array length: 11
bytecodes: [
/* 30 E> */ B(StackCheck),
/* 45 S> */ B(LdaSmi), I8(1),
B(Star), R(0),
/* 50 S> */ B(Nop),
/* 62 E> */ B(Add), R(0), U8(3),
/* 62 S> */ B(Add), R(0), U8(3),
B(Star), R(0),
/* 72 S> */ B(Nop),
/* 84 S> */ B(Return),
]
constant pool: [
......
......@@ -74,13 +74,12 @@ snippet: "
"
frame size: 1
parameter count: 1
bytecode array length: 11
bytecode array length: 10
bytecodes: [
/* 30 E> */ B(StackCheck),
/* 42 S> */ B(LdaSmi), I8(101),
B(Star), R(0),
/* 47 S> */ B(Nop),
/* 61 E> */ B(MulSmi), I8(3), U8(3),
/* 61 S> */ B(MulSmi), I8(3), U8(3),
B(LdaUndefined),
/* 66 S> */ B(Return),
]
......@@ -97,17 +96,15 @@ snippet: "
"
frame size: 2
parameter count: 1
bytecode array length: 19
bytecode array length: 17
bytecodes: [
/* 30 E> */ B(StackCheck),
/* 42 S> */ B(Wide), B(LdaSmi), I16(1234),
B(Star), R(0),
/* 56 S> */ B(Nop),
/* 64 E> */ B(Mul), R(0), U8(3),
/* 64 S> */ B(Mul), R(0), U8(3),
/* 68 E> */ B(SubSmi), I8(1), U8(4),
B(LdaUndefined),
B(Star), R(1),
/* 74 S> */ B(Nop),
/* 83 S> */ B(Return),
]
constant pool: [
......@@ -122,13 +119,12 @@ snippet: "
"
frame size: 1
parameter count: 1
bytecode array length: 10
bytecode array length: 9
bytecodes: [
/* 30 E> */ B(StackCheck),
/* 42 S> */ B(LdaSmi), I8(13),
B(Star), R(0),
/* 46 S> */ B(Nop),
/* 53 E> */ B(BitwiseXorSmi), I8(-1), U8(3),
/* 53 S> */ B(BitwiseXorSmi), I8(-1), U8(3),
/* 56 S> */ B(Return),
]
constant pool: [
......@@ -143,13 +139,12 @@ snippet: "
"
frame size: 1
parameter count: 1
bytecode array length: 10
bytecode array length: 9
bytecodes: [
/* 30 E> */ B(StackCheck),
/* 42 S> */ B(LdaSmi), I8(13),
B(Star), R(0),
/* 46 S> */ B(Nop),
/* 53 E> */ B(MulSmi), I8(1), U8(3),
/* 53 S> */ B(MulSmi), I8(1), U8(3),
/* 56 S> */ B(Return),
]
constant pool: [
......@@ -164,13 +159,12 @@ snippet: "
"
frame size: 1
parameter count: 1
bytecode array length: 10
bytecode array length: 9
bytecodes: [
/* 30 E> */ B(StackCheck),
/* 42 S> */ B(LdaSmi), I8(13),
B(Star), R(0),
/* 46 S> */ B(Nop),
/* 53 E> */ B(MulSmi), I8(-1), U8(3),
/* 53 S> */ B(MulSmi), I8(-1), U8(3),
/* 56 S> */ B(Return),
]
constant pool: [
......
......@@ -41,5 +41,5 @@ Debug.setListener(null); // c
assertNull(exception);
assertEquals("default", result);
assertEquals(["a0","b13","f18b13","d2f18b13","d19f18b13","g2b13","g14b13","c0"],
assertEquals(["a0","b13","f18b13","d2f18b13","d19f18b13","g14b13","c0"],
log);
......@@ -48,10 +48,10 @@ assertNull(exception);
assertEquals([
"a0",
"b8",
"d2b13",
"d11b13",
"d25b13",
"b25",
"d2b25",
"d11b25",
"d25b25",
"f4b44",
"f15b44",
......
......@@ -34,8 +34,8 @@ function g() {
async function f() {
var a = 1;
debugger; // B0 StepNext
a += // B1 StepIn
await
a +=
await // B1 StepIn
g(); // B2 StepIn
return a;
}
......
......@@ -34,8 +34,8 @@ function g() {
async function f() {
var a = 1;
debugger; // B0 StepNext
a += // B1 StepIn
await // B4 StepNext
a +=
await // B1 StepIn
g(); // B2 StepIn
return a; // B4 StepNext
} // B5 Continue
......
......@@ -34,8 +34,8 @@ function g() {
async function f() {
var a = 1;
debugger; // B0 StepNext
a += // B1 StepIn
await
a +=
await // B1 StepIn
g();
return a; // B3 StepNext
} // B4 Continue
......
......@@ -34,8 +34,8 @@ function g() {
async function f() {
var a = 1;
debugger; // B0 StepNext
a += // B1 StepIn
await
a +=
await // B1 StepIn
g();
return a; // B3 Continue
}
......
......@@ -34,8 +34,8 @@ function g() {
async function f() {
var a = 1;
debugger; // B0 StepNext
a += // B1 StepIn
await
a +=
await // B1 StepIn
g();
return a; // B6 StepIn
} // B7 Continue
......
......@@ -34,8 +34,8 @@ function g() {
async function f1() {
var a = 1;
debugger; // B0 StepNext
a += // B1 StepIn
await // B7 StepNext
a +=
await // B1 StepIn
f2(); // B2 StepIn
return a; // B5 StepNext
} // B6 Continue
......
......@@ -34,8 +34,8 @@ function g() {
async function f() {
var a = 1;
debugger; // B0 StepNext
a += // B1 StepNext
await
a +=
await // B1 StepNext
g();
return a; // B2 StepNext
} // B3 Continue
......
......@@ -24,14 +24,13 @@ function listener(event, exec_state, event_data, data) {
function f() {
var a = 1; // Break 2. 10.
return a // Break 3. 2.
; // Break 4. 3.
return a; // Break 3. 11.
}
Debug.setListener(listener);
debugger; // Break 0. 0.
f(); // Break 1. 0.
Debug.setListener(null); // Break 5. 0.
Debug.setListener(null); // Break 4. 0.
assertNull(exception);
assertEquals(6, break_count);
assertEquals(5, break_count);
......@@ -5,7 +5,7 @@
function f() {
for (var i = 10; i < 14; i++) { // 1
i; // 2
i *= 1; // 2
}
} // 3
......
......@@ -50,7 +50,7 @@ Paused #2
- [0] {"functionName":"testFunction","function_lineNumber":0,"function_columnNumber":21,"lineNumber":18,"columnNumber":12}
- [1] {"functionName":"","function_lineNumber":0,"function_columnNumber":0,"lineNumber":0,"columnNumber":0}
Paused #3
- [0] {"functionName":"generateAsmJs","function_lineNumber":1,"function_columnNumber":24,"lineNumber":3,"columnNumber":23}
- [0] {"functionName":"generateAsmJs","function_lineNumber":1,"function_columnNumber":24,"lineNumber":3,"columnNumber":31}
- [1] {"functionName":"testFunction","function_lineNumber":0,"function_columnNumber":21,"lineNumber":18,"columnNumber":12}
- [2] {"functionName":"","function_lineNumber":0,"function_columnNumber":0,"lineNumber":0,"columnNumber":0}
Paused #4
......
......@@ -19,7 +19,7 @@ function testFunction() {
|_|return r;
|R|}
|_|return |C|f2();|R|
return |C|f2();|R|
}
......@@ -27,10 +27,10 @@ Running test: testStepInto
(anonymous) (expr.js:0:0)
testFunction (test.js:18:2)
testFunction (test.js:18:9)
(anonymous) (expr.js:0:0)
#return f2();
return #f2();
}
f2 (test.js:8:12)
......
......@@ -17,7 +17,7 @@ function testFunction() {
function f() {
for (let { x, y } = |_|{ x: 0, y: 1 }; y |_|> 0; --|_|y) { let z = |_|x + y; }
|R|}
var b = |_|obj1.a;
var b = obj1.|_|a;
|_|(async function asyncF() {
let r = |_|await Promise.|C|resolve(42);
|_|return r;
......@@ -124,10 +124,10 @@ testFunction (test.js:10:44)
#}
var b = obj1.a;
testFunction (test.js:14:10)
testFunction (test.js:14:15)
(anonymous) (expr.js:0:0)
}
var b = #obj1.a;
var b = obj1.#a;
(async function asyncF() {
testFunction (test.js:15:2)
......
......@@ -8,19 +8,19 @@ function testFunction() {
var obj = |_|{a : 1};
var arr = |_|[1];
var all = |_|[];
for (var |_|k in |_|arr) { |_|all.|C|push(k); }
for (var |_|k of |_|arr) { |_|all.|C|push(k); }
for (var |_|k in |_|obj) { |_|all.|C|push(k); }
for (let |_|k in |_|arr) { |_|all.|C|push(k); }
for (let |_|k of |_|arr) { |_|all.|C|push(k); }
for (let |_|k in |_|obj) { |_|all.|C|push(k); }
for (var |_|k in |_|arr) { all.|C|push(k); }
for (var |_|k of |_|arr) { all.|C|push(k); }
for (var |_|k in |_|obj) { all.|C|push(k); }
for (let |_|k in |_|arr) { all.|C|push(k); }
for (let |_|k of |_|arr) { all.|C|push(k); }
for (let |_|k in |_|obj) { all.|C|push(k); }
var iterable = |_|{
[Symbol.iterator]() {
|_|return {
i: 0,
next() {
|_|if (this.i < 1) {
if (this.|_|i < 1) {
|_|return { value: this.i++, done: false };|R|
}
|_|return { value: undefined, done: true };|R|
......@@ -28,9 +28,9 @@ function testFunction() {
};|R|
}
};
for (var |_|k of |_|iterable) { |_|all.|C|push(k); }
for (var |_|k of |_|iterable) { all.|C|push(k); }
|_|iterable.i = 0;
for (let |_|k of |_|iterable) { |_|all.|C|push(k); }
for (let |_|k of |_|iterable) { all.|C|push(k); }
|R|}
(anonymous) (expr.js:0:0)
......@@ -66,10 +66,10 @@ testFunction (test.js:5:11)
for (var #k in arr) { all.push(k); }
for (var k of arr) { all.push(k); }
testFunction (test.js:5:23)
testFunction (test.js:5:27)
(anonymous) (expr.js:0:0)
var all = [];
for (var k in arr) { #all.push(k); }
for (var k in arr) { all.#push(k); }
for (var k of arr) { all.push(k); }
testFunction (test.js:5:11)
......@@ -90,10 +90,10 @@ testFunction (test.js:6:11)
for (var #k of arr) { all.push(k); }
for (var k in obj) { all.push(k); }
testFunction (test.js:6:23)
testFunction (test.js:6:27)
(anonymous) (expr.js:0:0)
for (var k in arr) { all.push(k); }
for (var k of arr) { #all.push(k); }
for (var k of arr) { all.#push(k); }
for (var k in obj) { all.push(k); }
testFunction (test.js:6:11)
......@@ -114,10 +114,10 @@ testFunction (test.js:7:11)
for (var #k in obj) { all.push(k); }
for (let k in arr) { all.push(k); }
testFunction (test.js:7:23)
testFunction (test.js:7:27)
(anonymous) (expr.js:0:0)
for (var k of arr) { all.push(k); }
for (var k in obj) { #all.push(k); }
for (var k in obj) { all.#push(k); }
for (let k in arr) { all.push(k); }
testFunction (test.js:7:11)
......@@ -138,10 +138,10 @@ testFunction (test.js:8:11)
for (let #k in arr) { all.push(k); }
for (let k of arr) { all.push(k); }
testFunction (test.js:8:23)
testFunction (test.js:8:27)
(anonymous) (expr.js:0:0)
for (var k in obj) { all.push(k); }
for (let k in arr) { #all.push(k); }
for (let k in arr) { all.#push(k); }
for (let k of arr) { all.push(k); }
testFunction (test.js:8:11)
......@@ -162,10 +162,10 @@ testFunction (test.js:9:11)
for (let #k of arr) { all.push(k); }
for (let k in obj) { all.push(k); }
testFunction (test.js:9:23)
testFunction (test.js:9:27)
(anonymous) (expr.js:0:0)
for (let k in arr) { all.push(k); }
for (let k of arr) { #all.push(k); }
for (let k of arr) { all.#push(k); }
for (let k in obj) { all.push(k); }
testFunction (test.js:9:11)
......@@ -186,10 +186,10 @@ testFunction (test.js:10:11)
for (let #k in obj) { all.push(k); }
testFunction (test.js:10:23)
testFunction (test.js:10:27)
(anonymous) (expr.js:0:0)
for (let k of arr) { all.push(k); }
for (let k in obj) { #all.push(k); }
for (let k in obj) { all.#push(k); }
testFunction (test.js:10:11)
......@@ -230,11 +230,11 @@ testFunction (test.js:25:11)
for (var #k of iterable) { all.push(k); }
iterable.i = 0;
next (test.js:17:10)
next (test.js:17:19)
testFunction (test.js:25:11)
(anonymous) (expr.js:0:0)
next() {
#if (this.i < 1) {
if (this.#i < 1) {
return { value: this.i++, done: false };
next (test.js:18:12)
......@@ -251,10 +251,10 @@ testFunction (test.js:25:11)
return { value: this.i++, done: false };#
}
testFunction (test.js:25:28)
testFunction (test.js:25:32)
(anonymous) (expr.js:0:0)
};
for (var k of iterable) { #all.push(k); }
for (var k of iterable) { all.#push(k); }
iterable.i = 0;
testFunction (test.js:25:11)
......@@ -263,11 +263,11 @@ testFunction (test.js:25:11)
for (var #k of iterable) { all.push(k); }
iterable.i = 0;
next (test.js:17:10)
next (test.js:17:19)
testFunction (test.js:25:11)
(anonymous) (expr.js:0:0)
next() {
#if (this.i < 1) {
if (this.#i < 1) {
return { value: this.i++, done: false };
next (test.js:20:10)
......@@ -316,11 +316,11 @@ testFunction (test.js:27:11)
for (let #k of iterable) { all.push(k); }
}
next (test.js:17:10)
next (test.js:17:19)
testFunction (test.js:27:11)
(anonymous) (expr.js:0:0)
next() {
#if (this.i < 1) {
if (this.#i < 1) {
return { value: this.i++, done: false };
next (test.js:18:12)
......@@ -337,10 +337,10 @@ testFunction (test.js:27:11)
return { value: this.i++, done: false };#
}
testFunction (test.js:27:28)
testFunction (test.js:27:32)
(anonymous) (expr.js:0:0)
iterable.i = 0;
for (let k of iterable) { #all.push(k); }
for (let k of iterable) { all.#push(k); }
}
testFunction (test.js:27:11)
......@@ -349,11 +349,11 @@ testFunction (test.js:27:11)
for (let #k of iterable) { all.push(k); }
}
next (test.js:17:10)
next (test.js:17:19)
testFunction (test.js:27:11)
(anonymous) (expr.js:0:0)
next() {
#if (this.i < 1) {
if (this.#i < 1) {
return { value: this.i++, done: false };
next (test.js:20:10)
......@@ -386,10 +386,10 @@ testFunction (test.js:25:11)
for (var #k of iterable) { all.push(k); }
iterable.i = 0;
next (test.js:17:10)
next (test.js:17:19)
testFunction (test.js:25:11)
(anonymous) (expr.js:0:0)
next() {
#if (this.i < 1) {
if (this.#i < 1) {
return { value: this.i++, done: false };
......@@ -58,7 +58,7 @@ function testNested() {
|C|nested3();
|_|return;|R|
}
|_|return |C|nested2();|R|
return |C|nested2();|R|
}
|C|nested1();
|R|}
......@@ -90,7 +90,7 @@ function testWith() {
function testForLoop() {
for (var i = |_|0; i |_|< 1; ++|_|i) {}
for (var i = |_|0; i |_|< 1; ++|_|i) |_|i;
for (var i = |_|0; i |_|< 1; ++|_|i) i;
for (var i = |_|0; i |_|< 0; ++|_|i) {}
|R|}
......@@ -161,13 +161,13 @@ function* idMaker() {
function testGenerator() {
var gen = |C|idMaker();
|C|return42();
|_|gen.|C|next().value;
gen.|C|next().value;
|D|debugger;
|_|gen.|C|next().value;
gen.|C|next().value;
|C|return42();
|_|gen.|C|next().value;
gen.|C|next().value;
|C|return42();
|_|gen.|C|next().value;
gen.|C|next().value;
|R|}
function throwException() {
......@@ -230,8 +230,8 @@ async function testPromiseAsyncWithCode() {
|_|await p;
|R|}
|C|setTimeout(returnCall, 0);
|_|await |C|foo();
|_|await |C|foo();
await |C|foo();
await |C|foo();
|C|nextTest();
|R|}
|C|main();
......
......@@ -56,7 +56,7 @@ paused at:
paused at:
debugger;
#p.then(v => v * 2);
p.#then(v => v * 2);
resolveCallback();
{
......
......@@ -155,7 +155,7 @@ break at:
break at:
}
#return nested2();
return #nested2();
}
break at:
......@@ -299,11 +299,6 @@ break at:
for (var i = 0; i #< 1; ++i) i;
for (var i = 0; i < 0; ++i) {}
break at:
for (var i = 0; i < 1; ++i) {}
for (var i = 0; i < 1; ++i) #i;
for (var i = 0; i < 0; ++i) {}
break at:
for (var i = 0; i < 1; ++i) {}
for (var i = 0; i < 1; ++#i) i;
......@@ -699,7 +694,7 @@ break at:
break at:
debugger;
#gen.next().value;
gen.#next().value;
return42();
break at:
......@@ -852,7 +847,7 @@ break at:
break at:
setTimeout(returnCall, 0);
#await foo();
await #foo();
await foo();
break at:
......
......@@ -38,6 +38,7 @@
'debugger/asm-js-breakpoint-before-exec': [SKIP],
'debugger/break-locations-await': [SKIP],
'debugger/get-possible-breakpoints': [SKIP],
'debugger/stepping-with-blackboxed-ranges': [SKIP],
}], # variant == fullcode
]
......@@ -421,9 +421,6 @@ TEST_F(BytecodeArrayBuilderTest, AllBytecodesGenerated) {
// Insert entry for illegal bytecode as this is never willingly emitted.
scorecard[Bytecodes::ToByte(Bytecode::kIllegal)] = 1;
// Insert entry for nop bytecode as this often gets optimized out.
scorecard[Bytecodes::ToByte(Bytecode::kNop)] = 1;
if (!FLAG_type_profile) {
// Bytecode for CollectTypeProfile is only emitted when
// Type Information for DevTools is turned on.
......
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