162402f9c5
The decision as to whether to optimize an IIFE as oneshot depends on whether it's outer scope is the script scope. During lazy compile, we might have discarded scopes which don't need a context between the IIFE and the script scope, which means we might treat an IIFE as oneshot, even though initial eager compile treated it as non-oneshot. Both bytecode flushing and lazy source positions rely on us generating the same bytecode during lazy compile as eager compile, so we move the decision into the parser where it happens once and is then stored in the SFI for any future lazy compiles. BUG=v8:8395,v8:8510 Change-Id: I88f1e74ad95d47a2636c393ceb1318d7d610055d Reviewed-on: https://chromium-review.googlesource.com/c/1421841 Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#58996}
811 lines
22 KiB
Plaintext
811 lines
22 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: 40
|
|
bytecodes: [
|
|
B(CreateMappedArguments),
|
|
B(Star), R(0),
|
|
/* 16 E> */ B(StackCheck),
|
|
/* 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: 69
|
|
bytecodes: [
|
|
B(CreateMappedArguments),
|
|
B(Star), R(0),
|
|
/* 16 E> */ B(StackCheck),
|
|
/* 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(43),
|
|
/* 45 E> */ B(StackCheck),
|
|
/* 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),
|
|
B(JumpLoop), U8(50), 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: 70
|
|
bytecodes: [
|
|
B(CreateMappedArguments),
|
|
B(Star), R(0),
|
|
/* 16 E> */ B(StackCheck),
|
|
/* 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(43),
|
|
/* 60 E> */ B(StackCheck),
|
|
/* 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),
|
|
B(JumpLoop), U8(50), 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: 70
|
|
bytecodes: [
|
|
B(CreateMappedArguments),
|
|
B(Star), R(0),
|
|
/* 16 E> */ B(StackCheck),
|
|
/* 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),
|
|
/* 60 E> */ B(StackCheck),
|
|
/* 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),
|
|
B(JumpLoop), U8(50), 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: 71
|
|
bytecodes: [
|
|
B(CreateMappedArguments),
|
|
B(Star), R(0),
|
|
/* 16 E> */ B(StackCheck),
|
|
/* 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: 24
|
|
bytecodes: [
|
|
B(CreateMappedArguments),
|
|
B(Star), R(0),
|
|
/* 16 E> */ B(StackCheck),
|
|
/* 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: 24
|
|
bytecodes: [
|
|
B(CreateMappedArguments),
|
|
B(Star), R(0),
|
|
/* 16 E> */ B(StackCheck),
|
|
/* 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: 137
|
|
bytecodes: [
|
|
B(CreateMappedArguments),
|
|
B(Star), R(0),
|
|
/* 237 E> */ B(StackCheck),
|
|
/* 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: 140
|
|
bytecodes: [
|
|
B(CreateMappedArguments),
|
|
B(Star), R(0),
|
|
/* 189 E> */ B(StackCheck),
|
|
/* 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: 43
|
|
bytecodes: [
|
|
B(CreateMappedArguments),
|
|
B(Star), R(0),
|
|
/* 79 E> */ B(StackCheck),
|
|
/* 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: 43
|
|
bytecodes: [
|
|
B(CreateMappedArguments),
|
|
B(Star), R(0),
|
|
/* 76 E> */ B(StackCheck),
|
|
/* 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: 10
|
|
bytecodes: [
|
|
/* 25 E> */ B(StackCheck),
|
|
/* 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: 10
|
|
bytecodes: [
|
|
/* 26 E> */ B(StackCheck),
|
|
/* 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: 10
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 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: 10
|
|
bytecodes: [
|
|
/* 29 E> */ B(StackCheck),
|
|
/* 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: 27
|
|
bytecodes: [
|
|
B(CreateFunctionContext), U8(0), U8(1),
|
|
B(PushContext), R(1),
|
|
B(Ldar), R(arg0),
|
|
B(StaCurrentContextSlot), U8(4),
|
|
B(CreateMappedArguments),
|
|
B(Star), R(0),
|
|
/* 46 E> */ B(StackCheck),
|
|
/* 53 S> */ B(LdaCurrentContextSlot), U8(4),
|
|
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: 27
|
|
bytecodes: [
|
|
B(CreateFunctionContext), U8(0), U8(1),
|
|
B(PushContext), R(1),
|
|
B(Ldar), R(arg0),
|
|
B(StaCurrentContextSlot), U8(4),
|
|
B(CreateMappedArguments),
|
|
B(Star), R(0),
|
|
/* 30 E> */ B(StackCheck),
|
|
/* 37 S> */ B(LdaCurrentContextSlot), U8(4),
|
|
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: [
|
|
]
|
|
|