cebfde6769
The function-entry stack check should dominate all other instructions in a function. Prior to this CL it was possible to create paths not including a stack check due to SwitchOnGeneratorState: the generator-creation branch had a stack check, while generator-resume branches did not. 0 : af fb 00 01 SwitchOnGeneratorState r0, [0], [1] { 0: @22 } 4 : 27 fe fa Mov <closure>, r1 7 : 27 02 f9 Mov <this>, r2 10 : 64 0a fa 02 InvokeIntrinsic [_CreateJSGeneratorObject], r1-r2 14 : 26 fb Star r0 16 : a7 StackCheck 17 : b0 fb fb 01 00 SuspendGenerator r0, r0-r0, [0] 22 : b1 fb fb 01 ResumeGenerator r0, r0-r0 [... no stack check here ...] This CL moves the stack check to the beginning of the bytecode array, i.e. before SwitchOnGeneratorState. Bug: chromium:1020031 Change-Id: I8ba8cba99611ddbe50c76023129d926cc84b1d5e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1903440 Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#64888}
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: [
|
|
/* 16 E> */ B(StackCheck),
|
|
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: 69
|
|
bytecodes: [
|
|
/* 16 E> */ B(StackCheck),
|
|
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(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: [
|
|
/* 16 E> */ B(StackCheck),
|
|
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(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: [
|
|
/* 16 E> */ B(StackCheck),
|
|
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),
|
|
/* 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: [
|
|
/* 16 E> */ B(StackCheck),
|
|
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: 24
|
|
bytecodes: [
|
|
/* 16 E> */ B(StackCheck),
|
|
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: 24
|
|
bytecodes: [
|
|
/* 16 E> */ B(StackCheck),
|
|
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: 137
|
|
bytecodes: [
|
|
/* 237 E> */ B(StackCheck),
|
|
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: 140
|
|
bytecodes: [
|
|
/* 189 E> */ B(StackCheck),
|
|
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: 43
|
|
bytecodes: [
|
|
/* 79 E> */ B(StackCheck),
|
|
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: 43
|
|
bytecodes: [
|
|
/* 76 E> */ B(StackCheck),
|
|
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: 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: [
|
|
/* 46 E> */ B(StackCheck),
|
|
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: 27
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
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: [
|
|
]
|
|
|