a8176a530c
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/543161 Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Cr-Commit-Position: refs/heads/master@{#46742}
388 lines
12 KiB
Plaintext
388 lines
12 KiB
Plaintext
#
|
|
# Autogenerated by generate-bytecode-expectations.
|
|
#
|
|
|
|
---
|
|
wrap: no
|
|
test function name: f
|
|
|
|
---
|
|
snippet: "
|
|
function f(a) { return a.func(); }
|
|
f(new (function Obj() { this.func = function() { return; }})())
|
|
"
|
|
frame size: 1
|
|
parameter count: 2
|
|
bytecode array length: 12
|
|
bytecodes: [
|
|
/* 10 E> */ B(StackCheck),
|
|
/* 25 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(5),
|
|
B(Star), R(0),
|
|
/* 25 E> */ B(CallProperty0), R(0), R(arg0), U8(3),
|
|
/* 32 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["func"],
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
function f(a, b, c) { return a.func(b, c); }
|
|
f(new (function Obj() { this.func = function() { return; }})(), 1, 2)
|
|
"
|
|
frame size: 1
|
|
parameter count: 4
|
|
bytecode array length: 14
|
|
bytecodes: [
|
|
/* 10 E> */ B(StackCheck),
|
|
/* 31 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(5),
|
|
B(Star), R(0),
|
|
/* 31 E> */ B(CallProperty2), R(0), R(arg0), R(arg1), R(arg2), U8(3),
|
|
/* 42 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["func"],
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
function f(a, b) { return a.func(b + b, b); }
|
|
f(new (function Obj() { this.func = function() { return; }})(), 1)
|
|
"
|
|
frame size: 3
|
|
parameter count: 3
|
|
bytecode array length: 21
|
|
bytecodes: [
|
|
/* 10 E> */ B(StackCheck),
|
|
/* 28 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(5),
|
|
B(Star), R(0),
|
|
B(Ldar), R(arg1),
|
|
/* 35 E> */ B(Add), R(arg1), U8(7),
|
|
B(Star), R(2),
|
|
/* 28 E> */ B(CallProperty2), R(0), R(arg0), R(2), R(arg1), U8(3),
|
|
/* 43 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["func"],
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
function f(a) {
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
a.func;
|
|
return a.func(); }
|
|
f(new (function Obj() { this.func = function() { return; }})())
|
|
"
|
|
frame size: 1
|
|
parameter count: 2
|
|
bytecode array length: 536
|
|
bytecodes: [
|
|
/* 10 E> */ B(StackCheck),
|
|
/* 19 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(3),
|
|
/* 28 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(5),
|
|
/* 37 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(7),
|
|
/* 46 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(9),
|
|
/* 55 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(11),
|
|
/* 64 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(13),
|
|
/* 73 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(15),
|
|
/* 82 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(17),
|
|
/* 91 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(19),
|
|
/* 100 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(21),
|
|
/* 109 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(23),
|
|
/* 118 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(25),
|
|
/* 127 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(27),
|
|
/* 136 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(29),
|
|
/* 145 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(31),
|
|
/* 154 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(33),
|
|
/* 163 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(35),
|
|
/* 172 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(37),
|
|
/* 181 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(39),
|
|
/* 190 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(41),
|
|
/* 199 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(43),
|
|
/* 208 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(45),
|
|
/* 217 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(47),
|
|
/* 226 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(49),
|
|
/* 235 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(51),
|
|
/* 244 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(53),
|
|
/* 253 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(55),
|
|
/* 262 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(57),
|
|
/* 271 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(59),
|
|
/* 280 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(61),
|
|
/* 289 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(63),
|
|
/* 298 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(65),
|
|
/* 307 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(67),
|
|
/* 316 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(69),
|
|
/* 325 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(71),
|
|
/* 334 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(73),
|
|
/* 343 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(75),
|
|
/* 352 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(77),
|
|
/* 361 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(79),
|
|
/* 370 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(81),
|
|
/* 379 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(83),
|
|
/* 388 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(85),
|
|
/* 397 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(87),
|
|
/* 406 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(89),
|
|
/* 415 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(91),
|
|
/* 424 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(93),
|
|
/* 433 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(95),
|
|
/* 442 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(97),
|
|
/* 451 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(99),
|
|
/* 460 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(101),
|
|
/* 469 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(103),
|
|
/* 478 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(105),
|
|
/* 487 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(107),
|
|
/* 496 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(109),
|
|
/* 505 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(111),
|
|
/* 514 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(113),
|
|
/* 523 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(115),
|
|
/* 532 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(117),
|
|
/* 541 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(119),
|
|
/* 550 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(121),
|
|
/* 559 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(123),
|
|
/* 568 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(125),
|
|
/* 577 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(127),
|
|
/* 586 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(129),
|
|
/* 595 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(131),
|
|
/* 604 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(133),
|
|
/* 613 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(135),
|
|
/* 622 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(137),
|
|
/* 631 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(139),
|
|
/* 640 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(141),
|
|
/* 649 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(143),
|
|
/* 658 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(145),
|
|
/* 667 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(147),
|
|
/* 676 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(149),
|
|
/* 685 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(151),
|
|
/* 694 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(153),
|
|
/* 703 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(155),
|
|
/* 712 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(157),
|
|
/* 721 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(159),
|
|
/* 730 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(161),
|
|
/* 739 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(163),
|
|
/* 748 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(165),
|
|
/* 757 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(167),
|
|
/* 766 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(169),
|
|
/* 775 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(171),
|
|
/* 784 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(173),
|
|
/* 793 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(175),
|
|
/* 802 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(177),
|
|
/* 811 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(179),
|
|
/* 820 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(181),
|
|
/* 829 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(183),
|
|
/* 838 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(185),
|
|
/* 847 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(187),
|
|
/* 856 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(189),
|
|
/* 865 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(191),
|
|
/* 874 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(193),
|
|
/* 883 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(195),
|
|
/* 892 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(197),
|
|
/* 901 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(199),
|
|
/* 910 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(201),
|
|
/* 919 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(203),
|
|
/* 928 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(205),
|
|
/* 937 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(207),
|
|
/* 946 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(209),
|
|
/* 955 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(211),
|
|
/* 964 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(213),
|
|
/* 973 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(215),
|
|
/* 982 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(217),
|
|
/* 991 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(219),
|
|
/* 1000 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(221),
|
|
/* 1009 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(223),
|
|
/* 1018 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(225),
|
|
/* 1027 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(227),
|
|
/* 1036 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(229),
|
|
/* 1045 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(231),
|
|
/* 1054 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(233),
|
|
/* 1063 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(235),
|
|
/* 1072 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(237),
|
|
/* 1081 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(239),
|
|
/* 1090 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(241),
|
|
/* 1099 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(243),
|
|
/* 1108 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(245),
|
|
/* 1117 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(247),
|
|
/* 1126 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(249),
|
|
/* 1135 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(251),
|
|
/* 1144 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(253),
|
|
/* 1153 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(255),
|
|
/* 1162 S> */ B(Wide), B(LdaNamedProperty), R16(arg0), U16(0), U16(257),
|
|
/* 1178 S> */ B(Wide), B(LdaNamedProperty), R16(arg0), U16(0), U16(261),
|
|
B(Star), R(0),
|
|
/* 1178 E> */ B(Wide), B(CallProperty0), R16(0), R16(arg0), U16(259),
|
|
/* 1185 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["func"],
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
function f(a) { return a.func(1).func(2).func(3); }
|
|
f(new (function Obj() { this.func = function(a) { return this; }})())
|
|
"
|
|
frame size: 5
|
|
parameter count: 2
|
|
bytecode array length: 51
|
|
bytecodes: [
|
|
/* 10 E> */ B(StackCheck),
|
|
/* 25 S> */ B(LdaNamedProperty), R(arg0), U8(0), U8(9),
|
|
B(Star), R(2),
|
|
B(LdaSmi), I8(1),
|
|
B(Star), R(4),
|
|
/* 25 E> */ B(CallProperty1), R(2), R(arg0), R(4), U8(7),
|
|
B(Star), R(2),
|
|
/* 32 E> */ B(LdaNamedProperty), R(2), U8(0), U8(11),
|
|
B(Star), R(1),
|
|
B(LdaSmi), I8(2),
|
|
B(Star), R(3),
|
|
/* 33 E> */ B(CallProperty1), R(1), R(2), R(3), U8(5),
|
|
B(Star), R(1),
|
|
/* 40 E> */ B(LdaNamedProperty), R(1), U8(0), U8(13),
|
|
B(Star), R(0),
|
|
B(LdaSmi), I8(3),
|
|
B(Star), R(2),
|
|
/* 41 E> */ B(CallProperty1), R(0), R(1), R(2), U8(3),
|
|
/* 49 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["func"],
|
|
]
|
|
handlers: [
|
|
]
|
|
|