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}
42 lines
1021 B
Plaintext
42 lines
1021 B
Plaintext
#
|
|
# Autogenerated by generate-bytecode-expectations.
|
|
#
|
|
|
|
---
|
|
wrap: no
|
|
top level: yes
|
|
|
|
---
|
|
snippet: "
|
|
var a = { func: function() { } };
|
|
"
|
|
frame size: 4
|
|
parameter count: 1
|
|
bytecode array length: 36
|
|
bytecodes: [
|
|
B(LdaConstant), U8(0),
|
|
B(Star), R(1),
|
|
B(LdaZero),
|
|
B(Star), R(2),
|
|
B(Mov), R(closure), R(3),
|
|
B(CallRuntime), U16(Runtime::kDeclareGlobalsForInterpreter), R(1), U8(3),
|
|
/* 0 E> */ B(StackCheck),
|
|
/* 8 S> */ B(CreateObjectLiteral), U8(1), U8(7), U8(41), R(1),
|
|
B(CreateClosure), U8(2), U8(6), U8(0),
|
|
B(StaNamedOwnProperty), R(1), U8(3), U8(8),
|
|
B(Ldar), R(1),
|
|
/* 8 E> */ B(StaGlobalSloppy), U8(4), U8(10),
|
|
B(LdaUndefined),
|
|
/* 33 S> */ B(Return),
|
|
]
|
|
constant pool: [
|
|
FIXED_ARRAY_TYPE,
|
|
FIXED_ARRAY_TYPE,
|
|
SHARED_FUNCTION_INFO_TYPE,
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["func"],
|
|
ONE_BYTE_INTERNALIZED_STRING_TYPE ["a"],
|
|
]
|
|
handlers: [
|
|
]
|
|
|