36421dc467
By creating the boilerplate only on the second instantiation we cannot propagate back the elements transitions early enough. The resulting literals would change the initial ElementsKind one step too late and already pollute ICs that went to monomorphic state. - Disable lazy AllocationSites for literals containing arrays - Introduce new ComplexLiteral class to share code between ObjectLiteral and ArrayLiteral - RegexpLiteral now no longer needs a depth_ field Bug: v8:6517, v8:6519, v8:6211 Change-Id: Ia88d1878954e8895c3d00a7dda8d71e95bba005c Reviewed-on: https://chromium-review.googlesource.com/563305 Reviewed-by: Adam Klein <adamk@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#46603}
143 lines
4.2 KiB
Plaintext
143 lines
4.2 KiB
Plaintext
#
|
|
# Autogenerated by generate-bytecode-expectations.
|
|
#
|
|
|
|
---
|
|
wrap: yes
|
|
|
|
---
|
|
snippet: "
|
|
class A { constructor(...args) { this.args = args; } }
|
|
new A(...[1, 2, 3]);
|
|
"
|
|
frame size: 7
|
|
parameter count: 1
|
|
bytecode array length: 56
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
B(CreateClosure), U8(0), U8(4), U8(2),
|
|
B(Star), R(2),
|
|
B(LdaTheHole),
|
|
B(Star), R(3),
|
|
B(LdaSmi), I8(34),
|
|
B(Star), R(5),
|
|
B(LdaSmi), I8(88),
|
|
B(Star), R(6),
|
|
B(Mov), R(2), R(4),
|
|
B(CallRuntime), U16(Runtime::kDefineClass), R(3), U8(4),
|
|
B(Star), R(3),
|
|
B(CallRuntime), U16(Runtime::kInstallClassNameAccessor), R(2), U8(1),
|
|
B(CallRuntime), U16(Runtime::kToFastProperties), R(2), U8(1),
|
|
B(Star), R(0),
|
|
B(Star), R(1),
|
|
/* 89 S> */ B(CreateArrayLiteral), U8(1), U8(7), U8(37),
|
|
B(Star), R(3),
|
|
B(Ldar), R(1),
|
|
/* 89 E> */ B(ConstructWithSpread), R(1), R(3), U8(1),
|
|
B(LdaUndefined),
|
|
/* 110 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
SHARED_FUNCTION_INFO_TYPE,
|
|
TUPLE2_TYPE,
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
class A { constructor(...args) { this.args = args; } }
|
|
new A(0, ...[1, 2, 3]);
|
|
"
|
|
frame size: 7
|
|
parameter count: 1
|
|
bytecode array length: 59
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
B(CreateClosure), U8(0), U8(4), U8(2),
|
|
B(Star), R(2),
|
|
B(LdaTheHole),
|
|
B(Star), R(3),
|
|
B(LdaSmi), I8(34),
|
|
B(Star), R(5),
|
|
B(LdaSmi), I8(88),
|
|
B(Star), R(6),
|
|
B(Mov), R(2), R(4),
|
|
B(CallRuntime), U16(Runtime::kDefineClass), R(3), U8(4),
|
|
B(Star), R(3),
|
|
B(CallRuntime), U16(Runtime::kInstallClassNameAccessor), R(2), U8(1),
|
|
B(CallRuntime), U16(Runtime::kToFastProperties), R(2), U8(1),
|
|
B(Star), R(0),
|
|
B(Star), R(1),
|
|
/* 89 S> */ B(LdaZero),
|
|
B(Star), R(3),
|
|
B(CreateArrayLiteral), U8(1), U8(7), U8(37),
|
|
B(Star), R(4),
|
|
B(Ldar), R(1),
|
|
/* 89 E> */ B(ConstructWithSpread), R(1), R(3), U8(2),
|
|
B(LdaUndefined),
|
|
/* 113 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
SHARED_FUNCTION_INFO_TYPE,
|
|
TUPLE2_TYPE,
|
|
]
|
|
handlers: [
|
|
]
|
|
|
|
---
|
|
snippet: "
|
|
class A { constructor(...args) { this.args = args; } }
|
|
new A(0, ...[1, 2, 3], 4);
|
|
"
|
|
frame size: 8
|
|
parameter count: 1
|
|
bytecode array length: 90
|
|
bytecodes: [
|
|
/* 30 E> */ B(StackCheck),
|
|
B(CreateClosure), U8(0), U8(4), U8(2),
|
|
B(Star), R(2),
|
|
B(LdaTheHole),
|
|
B(Star), R(3),
|
|
B(LdaSmi), I8(34),
|
|
B(Star), R(5),
|
|
B(LdaSmi), I8(88),
|
|
B(Star), R(6),
|
|
B(Mov), R(2), R(4),
|
|
B(CallRuntime), U16(Runtime::kDefineClass), R(3), U8(4),
|
|
B(Star), R(3),
|
|
B(CallRuntime), U16(Runtime::kInstallClassNameAccessor), R(2), U8(1),
|
|
B(CallRuntime), U16(Runtime::kToFastProperties), R(2), U8(1),
|
|
B(Star), R(0),
|
|
B(Star), R(1),
|
|
/* 89 S> */ B(LdaUndefined),
|
|
B(Star), R(2),
|
|
B(LdaUndefined),
|
|
B(Star), R(4),
|
|
/* 93 E> */ B(CreateArrayLiteral), U8(1), U8(5), U8(37),
|
|
B(Star), R(5),
|
|
B(LdaUndefined),
|
|
B(Star), R(6),
|
|
B(CreateArrayLiteral), U8(2), U8(6), U8(37),
|
|
B(Star), R(7),
|
|
B(CallJSRuntime), U8(%spread_iterable), R(6), U8(2),
|
|
B(Star), R(6),
|
|
B(CreateArrayLiteral), U8(3), U8(7), U8(37),
|
|
B(Star), R(7),
|
|
B(CallJSRuntime), U8(%spread_arguments), R(4), U8(4),
|
|
B(Star), R(4),
|
|
B(Mov), R(0), R(3),
|
|
B(CallJSRuntime), U8(%reflect_construct), R(2), U8(3),
|
|
B(LdaUndefined),
|
|
/* 116 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
SHARED_FUNCTION_INFO_TYPE,
|
|
TUPLE2_TYPE,
|
|
TUPLE2_TYPE,
|
|
TUPLE2_TYPE,
|
|
]
|
|
handlers: [
|
|
]
|
|
|