a447a44f31
Since now the IterationBody StackChecks are implicit within JumpLoops, we are able to eagerly deopt in them. If we do that, whenever we advance to the next bytecode we don't have to advance to the next literal bytecode, but instead "advance" in the sense of doing the JumpLoop. Adding tests that test this advancing for wide and extra wide JumpLoops. Also, marking JumpLoop as needing source positions since now it has the ability of causing an interrupt. Bug: v8:10149, v8:9960 Fixes: v8:10149 Change-Id: Ib0d9efdfb379e0dfbba7a7f67cba9262668813b0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2064226 Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#66809}
791 lines
21 KiB
Plaintext
791 lines
21 KiB
Plaintext
#
|
|
# Autogenerated by generate-bytecode-expectations.
|
|
#
|
|
|
|
---
|
|
wrap: no
|
|
top level: yes
|
|
print callee: yes
|
|
oneshot opt: yes
|
|
|
|
---
|
|
snippet: "
|
|
|
|
(function() {
|
|
l = {};
|
|
l.aa = 2;
|
|
l.bb = l.aa;
|
|
return arguments.callee;
|
|
})();
|
|
|
|
"
|
|
frame size: 3
|
|
parameter count: 1
|
|
bytecode array length: 39
|
|
bytecodes: [
|
|
/* 16 E> */ B(CreateMappedArguments),
|
|
B(Star), R(0),
|
|
/* 29 S> */ B(CreateEmptyObjectLiteral),
|
|
/* 31 E> */ B(StaGlobal), U8(0), U8(0),
|
|
/* 45 S> */ B(LdaGlobal), U8(0), U8(2),
|
|
B(Star), R(1),
|
|
B(LdaSmi), I8(2),
|
|
/* 50 E> */ B(StaNamedPropertyNoFeedback), R(1), U8(1), U8(0),
|
|
/* 63 S> */ B(LdaGlobal), U8(0), U8(2),
|
|
B(Star), R(1),
|
|
/* 70 E> */ B(LdaGlobal), U8(0), U8(2),
|
|
B(Star), R(2),
|
|
/* 72 E> */ B(LdaNamedPropertyNoFeedback), R(2), U8(1),
|
|
/* 68 E> */ B(StaNamedPropertyNoFeedback), R(1), U8(2), U8(0),
|
|
/* 101 S> */ B(LdaNamedPropertyNoFeedback), R(0), U8(3),
|
|
/* 108 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["l"],
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["aa"],
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["bb"],
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["callee"],
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
|
|
(function() {
|
|
l = {};
|
|
for (i = 0; i < 5; ++i) {
|
|
l.aa = 2;
|
|
l.bb = l.aa;
|
|
}
|
|
return arguments.callee;
|
|
})();
|
|
|
|
"
|
|
frame size: 3
|
|
parameter count: 1
|
|
bytecode array length: 67
|
|
bytecodes: [
|
|
/* 16 E> */ B(CreateMappedArguments),
|
|
B(Star), R(0),
|
|
/* 29 S> */ B(CreateEmptyObjectLiteral),
|
|
/* 31 E> */ B(StaGlobal), U8(0), U8(0),
|
|
/* 50 S> */ B(LdaZero),
|
|
/* 52 E> */ B(StaGlobal), U8(1), U8(2),
|
|
/* 59 S> */ B(LdaGlobal), U8(1), U8(4),
|
|
B(Star), R(1),
|
|
B(LdaSmi), I8(5),
|
|
/* 59 E> */ B(TestLessThan), R(1), U8(6),
|
|
B(JumpIfFalse), U8(42),
|
|
/* 81 S> */ B(LdaGlobal), U8(0), U8(7),
|
|
B(Star), R(1),
|
|
B(LdaSmi), I8(2),
|
|
/* 86 E> */ B(StaNamedProperty), R(1), U8(2), U8(9),
|
|
/* 101 S> */ B(LdaGlobal), U8(0), U8(7),
|
|
B(Star), R(1),
|
|
/* 108 E> */ B(LdaGlobal), U8(0), U8(7),
|
|
B(Star), R(2),
|
|
/* 110 E> */ B(LdaNamedProperty), R(2), U8(2), U8(11),
|
|
/* 106 E> */ B(StaNamedProperty), R(1), U8(3), U8(13),
|
|
/* 66 S> */ B(LdaGlobal), U8(1), U8(4),
|
|
B(Inc), U8(15),
|
|
/* 66 E> */ B(StaGlobal), U8(1), U8(2),
|
|
/* 45 E> */ B(JumpLoop), U8(49), I8(0),
|
|
/* 149 S> */ B(LdaNamedPropertyNoFeedback), R(0), U8(4),
|
|
/* 156 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["l"],
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["i"],
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["aa"],
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["bb"],
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["callee"],
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
|
|
(function() {
|
|
l = {};
|
|
c = 4;
|
|
while(c > 4) {
|
|
l.aa = 2;
|
|
l.bb = l.aa;
|
|
c--;
|
|
}
|
|
return arguments.callee;
|
|
})();
|
|
|
|
"
|
|
frame size: 3
|
|
parameter count: 1
|
|
bytecode array length: 68
|
|
bytecodes: [
|
|
/* 16 E> */ B(CreateMappedArguments),
|
|
B(Star), R(0),
|
|
/* 29 S> */ B(CreateEmptyObjectLiteral),
|
|
/* 31 E> */ B(StaGlobal), U8(0), U8(0),
|
|
/* 45 S> */ B(LdaSmi), I8(4),
|
|
/* 47 E> */ B(StaGlobal), U8(1), U8(2),
|
|
/* 68 S> */ B(LdaGlobal), U8(1), U8(4),
|
|
B(Star), R(1),
|
|
B(LdaSmi), I8(4),
|
|
/* 68 E> */ B(TestGreaterThan), R(1), U8(6),
|
|
B(JumpIfFalse), U8(42),
|
|
/* 85 S> */ B(LdaGlobal), U8(0), U8(7),
|
|
B(Star), R(1),
|
|
B(LdaSmi), I8(2),
|
|
/* 90 E> */ B(StaNamedProperty), R(1), U8(2), U8(9),
|
|
/* 105 S> */ B(LdaGlobal), U8(0), U8(7),
|
|
B(Star), R(1),
|
|
/* 112 E> */ B(LdaGlobal), U8(0), U8(7),
|
|
B(Star), R(2),
|
|
/* 114 E> */ B(LdaNamedProperty), R(2), U8(2), U8(11),
|
|
/* 110 E> */ B(StaNamedProperty), R(1), U8(3), U8(13),
|
|
/* 128 S> */ B(LdaGlobal), U8(1), U8(4),
|
|
B(Dec), U8(15),
|
|
/* 129 E> */ B(StaGlobal), U8(1), U8(2),
|
|
/* 60 E> */ B(JumpLoop), U8(49), I8(0),
|
|
/* 168 S> */ B(LdaNamedPropertyNoFeedback), R(0), U8(4),
|
|
/* 175 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["l"],
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["c"],
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["aa"],
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["bb"],
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["callee"],
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
|
|
(function() {
|
|
l = {};
|
|
c = 4;
|
|
do {
|
|
l.aa = 2;
|
|
l.bb = l.aa;
|
|
c--;
|
|
} while(c > 4)
|
|
return arguments.callee;
|
|
})();
|
|
|
|
"
|
|
frame size: 3
|
|
parameter count: 1
|
|
bytecode array length: 68
|
|
bytecodes: [
|
|
/* 16 E> */ B(CreateMappedArguments),
|
|
B(Star), R(0),
|
|
/* 29 S> */ B(CreateEmptyObjectLiteral),
|
|
/* 31 E> */ B(StaGlobal), U8(0), U8(0),
|
|
/* 45 S> */ B(LdaSmi), I8(4),
|
|
/* 47 E> */ B(StaGlobal), U8(1), U8(2),
|
|
/* 75 S> */ B(LdaGlobal), U8(0), U8(4),
|
|
B(Star), R(1),
|
|
B(LdaSmi), I8(2),
|
|
/* 80 E> */ B(StaNamedProperty), R(1), U8(2), U8(6),
|
|
/* 95 S> */ B(LdaGlobal), U8(0), U8(4),
|
|
B(Star), R(1),
|
|
/* 102 E> */ B(LdaGlobal), U8(0), U8(4),
|
|
B(Star), R(2),
|
|
/* 104 E> */ B(LdaNamedProperty), R(2), U8(2), U8(8),
|
|
/* 100 E> */ B(StaNamedProperty), R(1), U8(3), U8(10),
|
|
/* 118 S> */ B(LdaGlobal), U8(1), U8(12),
|
|
B(Dec), U8(14),
|
|
/* 119 E> */ B(StaGlobal), U8(1), U8(2),
|
|
/* 141 S> */ B(LdaGlobal), U8(1), U8(12),
|
|
B(Star), R(1),
|
|
B(LdaSmi), I8(4),
|
|
/* 141 E> */ B(TestGreaterThan), R(1), U8(15),
|
|
B(JumpIfFalse), U8(5),
|
|
/* 60 E> */ B(JumpLoop), U8(49), I8(0),
|
|
/* 171 S> */ B(LdaNamedPropertyNoFeedback), R(0), U8(4),
|
|
/* 178 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["l"],
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["c"],
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["aa"],
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["bb"],
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["callee"],
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
|
|
(function() {
|
|
l = {
|
|
'aa': 3.3,
|
|
'bb': 4.4
|
|
};
|
|
if (l.aa < 3) {
|
|
l.aa = 3;
|
|
} else {
|
|
l.aa = l.bb;
|
|
}
|
|
return arguments.callee;
|
|
})();
|
|
|
|
"
|
|
frame size: 4
|
|
parameter count: 1
|
|
bytecode array length: 70
|
|
bytecodes: [
|
|
/* 16 E> */ B(CreateMappedArguments),
|
|
B(Star), R(0),
|
|
/* 29 S> */ B(LdaConstant), U8(0),
|
|
B(Star), R(2),
|
|
B(LdaSmi), I8(41),
|
|
B(Star), R(3),
|
|
B(CallRuntime), U16(Runtime::kCreateObjectLiteralWithoutAllocationSite), R(2), U8(2),
|
|
/* 31 E> */ B(StaGlobal), U8(1), U8(0),
|
|
/* 95 S> */ B(LdaGlobal), U8(1), U8(2),
|
|
B(Star), R(1),
|
|
/* 101 E> */ B(LdaNamedPropertyNoFeedback), R(1), U8(2),
|
|
B(Star), R(1),
|
|
B(LdaSmi), I8(3),
|
|
/* 104 E> */ B(TestLessThan), R(1), U8(4),
|
|
B(JumpIfFalse), U8(15),
|
|
/* 121 S> */ B(LdaGlobal), U8(1), U8(2),
|
|
B(Star), R(1),
|
|
B(LdaSmi), I8(3),
|
|
/* 126 E> */ B(StaNamedPropertyNoFeedback), R(1), U8(2), U8(0),
|
|
B(Jump), U8(19),
|
|
/* 158 S> */ B(LdaGlobal), U8(1), U8(2),
|
|
B(Star), R(1),
|
|
/* 165 E> */ B(LdaGlobal), U8(1), U8(2),
|
|
B(Star), R(2),
|
|
/* 167 E> */ B(LdaNamedPropertyNoFeedback), R(2), U8(3),
|
|
/* 163 E> */ B(StaNamedPropertyNoFeedback), R(1), U8(2), U8(0),
|
|
/* 206 S> */ B(LdaNamedPropertyNoFeedback), R(0), U8(4),
|
|
/* 213 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
OBJECT_BOILERPLATE_DESCRIPTION_TYPE,
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["l"],
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["aa"],
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["bb"],
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["callee"],
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
|
|
(function() {
|
|
a = [0, [1, 1,2,], 3];
|
|
return arguments.callee;
|
|
})();
|
|
|
|
"
|
|
frame size: 5
|
|
parameter count: 1
|
|
bytecode array length: 23
|
|
bytecodes: [
|
|
/* 16 E> */ B(CreateMappedArguments),
|
|
B(Star), R(0),
|
|
/* 29 S> */ B(LdaConstant), U8(0),
|
|
B(Star), R(3),
|
|
B(LdaSmi), I8(4),
|
|
B(Star), R(4),
|
|
B(CallRuntime), U16(Runtime::kCreateArrayLiteralWithoutAllocationSite), R(3), U8(2),
|
|
/* 31 E> */ B(StaGlobal), U8(1), U8(0),
|
|
/* 77 S> */ B(LdaNamedPropertyNoFeedback), R(0), U8(2),
|
|
/* 84 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
ARRAY_BOILERPLATE_DESCRIPTION_TYPE,
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["a"],
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["callee"],
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
|
|
(function() {
|
|
a = [];
|
|
return arguments.callee;
|
|
})();
|
|
|
|
"
|
|
frame size: 5
|
|
parameter count: 1
|
|
bytecode array length: 23
|
|
bytecodes: [
|
|
/* 16 E> */ B(CreateMappedArguments),
|
|
B(Star), R(0),
|
|
/* 29 S> */ B(LdaConstant), U8(0),
|
|
B(Star), R(3),
|
|
B(LdaSmi), I8(37),
|
|
B(Star), R(4),
|
|
B(CallRuntime), U16(Runtime::kCreateArrayLiteralWithoutAllocationSite), R(3), U8(2),
|
|
/* 31 E> */ B(StaGlobal), U8(1), U8(0),
|
|
/* 62 S> */ B(LdaNamedPropertyNoFeedback), R(0), U8(2),
|
|
/* 69 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
ARRAY_BOILERPLATE_DESCRIPTION_TYPE,
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["a"],
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["callee"],
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
|
|
this.f0 = function() {};
|
|
this.f1 = function(a) {};
|
|
this.f2 = function(a, b) {};
|
|
this.f3 = function(a, b, c) {};
|
|
this.f4 = function(a, b, c, d) {};
|
|
this.f5 = function(a, b, c, d, e) {};
|
|
(function() {
|
|
this.f0();
|
|
this.f1(1);
|
|
this.f2(1, 2);
|
|
this.f3(1, 2, 3);
|
|
this.f4(1, 2, 3, 4);
|
|
this.f5(1, 2, 3, 4, 5);
|
|
return arguments.callee;
|
|
})();
|
|
|
|
"
|
|
frame size: 8
|
|
parameter count: 1
|
|
bytecode array length: 136
|
|
bytecodes: [
|
|
/* 237 E> */ B(CreateMappedArguments),
|
|
B(Star), R(0),
|
|
/* 255 S> */ B(LdaNamedPropertyNoFeedback), R(this), U8(0),
|
|
B(Star), R(1),
|
|
/* 255 E> */ B(CallNoFeedback), R(1), R(this), U8(1),
|
|
/* 274 S> */ B(LdaNamedPropertyNoFeedback), R(this), U8(1),
|
|
B(Star), R(1),
|
|
B(LdaSmi), I8(1),
|
|
B(Star), R(3),
|
|
B(Mov), R(this), R(2),
|
|
/* 274 E> */ B(CallNoFeedback), R(1), R(2), U8(2),
|
|
/* 294 S> */ B(LdaNamedPropertyNoFeedback), R(this), U8(2),
|
|
B(Star), R(1),
|
|
B(LdaSmi), I8(1),
|
|
B(Star), R(3),
|
|
B(LdaSmi), I8(2),
|
|
B(Star), R(4),
|
|
B(Mov), R(this), R(2),
|
|
/* 294 E> */ B(CallNoFeedback), R(1), R(2), U8(3),
|
|
/* 317 S> */ B(LdaNamedPropertyNoFeedback), R(this), U8(3),
|
|
B(Star), R(1),
|
|
B(LdaSmi), I8(1),
|
|
B(Star), R(3),
|
|
B(LdaSmi), I8(2),
|
|
B(Star), R(4),
|
|
B(LdaSmi), I8(3),
|
|
B(Star), R(5),
|
|
B(Mov), R(this), R(2),
|
|
/* 317 E> */ B(CallNoFeedback), R(1), R(2), U8(4),
|
|
/* 343 S> */ B(LdaNamedPropertyNoFeedback), R(this), U8(4),
|
|
B(Star), R(1),
|
|
B(LdaSmi), I8(1),
|
|
B(Star), R(3),
|
|
B(LdaSmi), I8(2),
|
|
B(Star), R(4),
|
|
B(LdaSmi), I8(3),
|
|
B(Star), R(5),
|
|
B(LdaSmi), I8(4),
|
|
B(Star), R(6),
|
|
B(Mov), R(this), R(2),
|
|
/* 343 E> */ B(CallNoFeedback), R(1), R(2), U8(5),
|
|
/* 372 S> */ B(LdaNamedPropertyNoFeedback), R(this), U8(5),
|
|
B(Star), R(1),
|
|
B(LdaSmi), I8(1),
|
|
B(Star), R(3),
|
|
B(LdaSmi), I8(2),
|
|
B(Star), R(4),
|
|
B(LdaSmi), I8(3),
|
|
B(Star), R(5),
|
|
B(LdaSmi), I8(4),
|
|
B(Star), R(6),
|
|
B(LdaSmi), I8(5),
|
|
B(Star), R(7),
|
|
B(Mov), R(this), R(2),
|
|
/* 372 E> */ B(CallNoFeedback), R(1), R(2), U8(6),
|
|
/* 416 S> */ B(LdaNamedPropertyNoFeedback), R(0), U8(6),
|
|
/* 423 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["f0"],
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["f1"],
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["f2"],
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["f3"],
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["f4"],
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["f5"],
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["callee"],
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
|
|
function f0() {}
|
|
function f1(a) {}
|
|
function f2(a, b) {}
|
|
function f3(a, b, c) {}
|
|
function f4(a, b, c, d) {}
|
|
function f5(a, b, c, d, e) {}
|
|
(function() {
|
|
f0();
|
|
f1(1);
|
|
f2(1, 2);
|
|
f3(1, 2, 3);
|
|
f4(1, 2, 3, 4);
|
|
f5(1, 2, 3, 4, 5);
|
|
return arguments.callee;
|
|
})();
|
|
|
|
"
|
|
frame size: 8
|
|
parameter count: 1
|
|
bytecode array length: 139
|
|
bytecodes: [
|
|
/* 189 E> */ B(CreateMappedArguments),
|
|
B(Star), R(0),
|
|
/* 202 S> */ B(LdaUndefined),
|
|
B(Star), R(2),
|
|
B(LdaGlobal), U8(0), U8(0),
|
|
B(Star), R(1),
|
|
/* 202 E> */ B(CallNoFeedback), R(1), R(2), U8(1),
|
|
/* 216 S> */ B(LdaUndefined),
|
|
B(Star), R(2),
|
|
B(LdaGlobal), U8(1), U8(2),
|
|
B(Star), R(1),
|
|
B(LdaSmi), I8(1),
|
|
B(Star), R(3),
|
|
/* 216 E> */ B(CallNoFeedback), R(1), R(2), U8(2),
|
|
/* 231 S> */ B(LdaUndefined),
|
|
B(Star), R(2),
|
|
B(LdaGlobal), U8(2), U8(4),
|
|
B(Star), R(1),
|
|
B(LdaSmi), I8(1),
|
|
B(Star), R(3),
|
|
B(LdaSmi), I8(2),
|
|
B(Star), R(4),
|
|
/* 231 E> */ B(CallNoFeedback), R(1), R(2), U8(3),
|
|
/* 249 S> */ B(LdaUndefined),
|
|
B(Star), R(2),
|
|
B(LdaGlobal), U8(3), U8(6),
|
|
B(Star), R(1),
|
|
B(LdaSmi), I8(1),
|
|
B(Star), R(3),
|
|
B(LdaSmi), I8(2),
|
|
B(Star), R(4),
|
|
B(LdaSmi), I8(3),
|
|
B(Star), R(5),
|
|
/* 249 E> */ B(CallNoFeedback), R(1), R(2), U8(4),
|
|
/* 270 S> */ B(LdaUndefined),
|
|
B(Star), R(2),
|
|
B(LdaGlobal), U8(4), U8(8),
|
|
B(Star), R(1),
|
|
B(LdaSmi), I8(1),
|
|
B(Star), R(3),
|
|
B(LdaSmi), I8(2),
|
|
B(Star), R(4),
|
|
B(LdaSmi), I8(3),
|
|
B(Star), R(5),
|
|
B(LdaSmi), I8(4),
|
|
B(Star), R(6),
|
|
/* 270 E> */ B(CallNoFeedback), R(1), R(2), U8(5),
|
|
/* 294 S> */ B(LdaUndefined),
|
|
B(Star), R(2),
|
|
B(LdaGlobal), U8(5), U8(10),
|
|
B(Star), R(1),
|
|
B(LdaSmi), I8(1),
|
|
B(Star), R(3),
|
|
B(LdaSmi), I8(2),
|
|
B(Star), R(4),
|
|
B(LdaSmi), I8(3),
|
|
B(Star), R(5),
|
|
B(LdaSmi), I8(4),
|
|
B(Star), R(6),
|
|
B(LdaSmi), I8(5),
|
|
B(Star), R(7),
|
|
/* 294 E> */ B(CallNoFeedback), R(1), R(2), U8(6),
|
|
/* 338 S> */ B(LdaNamedPropertyNoFeedback), R(0), U8(6),
|
|
/* 345 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["f0"],
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["f1"],
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["f2"],
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["f3"],
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["f4"],
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["f5"],
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["callee"],
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
|
|
var t = 0;
|
|
function f2() {};
|
|
if (t == 0) {
|
|
(function(){
|
|
l = {};
|
|
l.a = 3;
|
|
l.b = 4;
|
|
f2();
|
|
return arguments.callee;
|
|
})();
|
|
}
|
|
|
|
"
|
|
frame size: 2
|
|
parameter count: 1
|
|
bytecode array length: 42
|
|
bytecodes: [
|
|
/* 79 E> */ B(CreateMappedArguments),
|
|
B(Star), R(0),
|
|
/* 93 S> */ B(CreateEmptyObjectLiteral),
|
|
/* 95 E> */ B(StaGlobal), U8(0), U8(0),
|
|
/* 111 S> */ B(LdaGlobal), U8(0), U8(2),
|
|
B(Star), R(1),
|
|
B(LdaSmi), I8(3),
|
|
/* 115 E> */ B(StaNamedProperty), R(1), U8(1), U8(4),
|
|
/* 130 S> */ B(LdaGlobal), U8(0), U8(2),
|
|
B(Star), R(1),
|
|
B(LdaSmi), I8(4),
|
|
/* 134 E> */ B(StaNamedProperty), R(1), U8(2), U8(6),
|
|
/* 149 S> */ B(LdaGlobal), U8(3), U8(8),
|
|
B(Star), R(1),
|
|
/* 149 E> */ B(CallUndefinedReceiver0), R(1), U8(10),
|
|
/* 182 S> */ B(LdaNamedProperty), R(0), U8(4), U8(12),
|
|
/* 189 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["l"],
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["a"],
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["b"],
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["f2"],
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["callee"],
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
|
|
function f2() {};
|
|
function f() {
|
|
return (function(){
|
|
l = {};
|
|
l.a = 3;
|
|
l.b = 4;
|
|
f2();
|
|
return arguments.callee;
|
|
})();
|
|
}
|
|
f();
|
|
|
|
"
|
|
frame size: 2
|
|
parameter count: 1
|
|
bytecode array length: 42
|
|
bytecodes: [
|
|
/* 76 E> */ B(CreateMappedArguments),
|
|
B(Star), R(0),
|
|
/* 92 S> */ B(CreateEmptyObjectLiteral),
|
|
/* 94 E> */ B(StaGlobal), U8(0), U8(0),
|
|
/* 112 S> */ B(LdaGlobal), U8(0), U8(2),
|
|
B(Star), R(1),
|
|
B(LdaSmi), I8(3),
|
|
/* 116 E> */ B(StaNamedProperty), R(1), U8(1), U8(4),
|
|
/* 133 S> */ B(LdaGlobal), U8(0), U8(2),
|
|
B(Star), R(1),
|
|
B(LdaSmi), I8(4),
|
|
/* 137 E> */ B(StaNamedProperty), R(1), U8(2), U8(6),
|
|
/* 154 S> */ B(LdaGlobal), U8(3), U8(8),
|
|
B(Star), R(1),
|
|
/* 154 E> */ B(CallUndefinedReceiver0), R(1), U8(10),
|
|
/* 189 S> */ B(LdaNamedProperty), R(0), U8(4), U8(12),
|
|
/* 196 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["l"],
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["a"],
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["b"],
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["f2"],
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["callee"],
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
|
|
var f = function(l) { l.a = 3; return l; };
|
|
f({});
|
|
f;
|
|
|
|
"
|
|
frame size: 0
|
|
parameter count: 2
|
|
bytecode array length: 9
|
|
bytecodes: [
|
|
/* 32 S> */ B(LdaSmi), I8(3),
|
|
/* 36 E> */ B(StaNamedProperty), R(arg0), U8(0), U8(0),
|
|
/* 41 S> */ B(Ldar), R(arg0),
|
|
/* 50 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["a"],
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
|
|
var f = (function(l) { l.a = 3; return l; });
|
|
f;
|
|
|
|
"
|
|
frame size: 0
|
|
parameter count: 2
|
|
bytecode array length: 9
|
|
bytecodes: [
|
|
/* 33 S> */ B(LdaSmi), I8(3),
|
|
/* 37 E> */ B(StaNamedProperty), R(arg0), U8(0), U8(0),
|
|
/* 42 S> */ B(Ldar), R(arg0),
|
|
/* 51 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["a"],
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
|
|
var f = (function foo(l) { l.a = 3; return l; });
|
|
f;
|
|
|
|
"
|
|
frame size: 0
|
|
parameter count: 2
|
|
bytecode array length: 9
|
|
bytecodes: [
|
|
/* 37 S> */ B(LdaSmi), I8(3),
|
|
/* 41 E> */ B(StaNamedProperty), R(arg0), U8(0), U8(0),
|
|
/* 46 S> */ B(Ldar), R(arg0),
|
|
/* 55 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["a"],
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
|
|
var f = function foo(l) { l.a = 3; return l; };
|
|
f({});
|
|
f;
|
|
|
|
"
|
|
frame size: 0
|
|
parameter count: 2
|
|
bytecode array length: 9
|
|
bytecodes: [
|
|
/* 36 S> */ B(LdaSmi), I8(3),
|
|
/* 40 E> */ B(StaNamedProperty), R(arg0), U8(0), U8(0),
|
|
/* 45 S> */ B(Ldar), R(arg0),
|
|
/* 54 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["a"],
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
|
|
l = {};
|
|
var f = (function foo(l) { l.a = 3; return arguments.callee; })(l);
|
|
f;
|
|
|
|
"
|
|
frame size: 3
|
|
parameter count: 2
|
|
bytecode array length: 26
|
|
bytecodes: [
|
|
/* 46 E> */ B(CreateFunctionContext), U8(0), U8(1),
|
|
B(PushContext), R(1),
|
|
B(Ldar), R(arg0),
|
|
B(StaCurrentContextSlot), U8(2),
|
|
B(CreateMappedArguments),
|
|
B(Star), R(0),
|
|
/* 53 S> */ B(LdaCurrentContextSlot), U8(2),
|
|
B(Star), R(2),
|
|
B(LdaSmi), I8(3),
|
|
/* 57 E> */ B(StaNamedPropertyNoFeedback), R(2), U8(1), U8(0),
|
|
/* 79 S> */ B(LdaNamedPropertyNoFeedback), R(0), U8(2),
|
|
/* 86 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
SCOPE_INFO_TYPE,
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["a"],
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["callee"],
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
|
|
var f = (function foo(l) { l.a = 3; return arguments.callee; })({});
|
|
f;
|
|
|
|
"
|
|
frame size: 3
|
|
parameter count: 2
|
|
bytecode array length: 26
|
|
bytecodes: [
|
|
/* 30 E> */ B(CreateFunctionContext), U8(0), U8(1),
|
|
B(PushContext), R(1),
|
|
B(Ldar), R(arg0),
|
|
B(StaCurrentContextSlot), U8(2),
|
|
B(CreateMappedArguments),
|
|
B(Star), R(0),
|
|
/* 37 S> */ B(LdaCurrentContextSlot), U8(2),
|
|
B(Star), R(2),
|
|
B(LdaSmi), I8(3),
|
|
/* 41 E> */ B(StaNamedPropertyNoFeedback), R(2), U8(1), U8(0),
|
|
/* 63 S> */ B(LdaNamedPropertyNoFeedback), R(0), U8(2),
|
|
/* 70 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
SCOPE_INFO_TYPE,
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["a"],
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["callee"],
|
|
]
|
|
handlers: [
|
|
]
|
|
|