v8/test/cctest/interpreter/bytecode_expectations/FunctionLiterals.golden
mvstanton 93df094081 [TypeFeedbackVector] Root literal arrays in function literals slots
Literal arrays and feedback vectors for a function can be garbage
collected if we don't have a rooted closure for the function, which
happens often. It's expensive to come back from this (recreating
boilerplates and gathering feedback again), and the cost is
disproportionate if the function was inlined into optimized code.

To guard against losing these arrays when we need them, we'll now
create literal arrays when creating the feedback vector for the outer
closure, and root them strongly in that vector.

BUG=v8:5456

Review-Url: https://codereview.chromium.org/2504153002
Cr-Commit-Position: refs/heads/master@{#41893}
2016-12-21 14:06:29 +00:00

72 lines
1.3 KiB
Plaintext

#
# Autogenerated by generate-bytecode-expectations.
#
---
wrap: yes
---
snippet: "
return function(){ }
"
frame size: 0
parameter count: 1
bytecode array length: 6
bytecodes: [
/* 30 E> */ B(StackCheck),
/* 34 S> */ B(CreateClosure), U8(0), U8(2), U8(2),
/* 55 S> */ B(Return),
]
constant pool: [
SHARED_FUNCTION_INFO_TYPE,
]
handlers: [
]
---
snippet: "
return (function(){ })()
"
frame size: 2
parameter count: 1
bytecode array length: 16
bytecodes: [
/* 30 E> */ B(StackCheck),
/* 34 S> */ B(LdaUndefined),
B(Star), R(1),
B(CreateClosure), U8(0), U8(4), U8(2),
B(Star), R(0),
/* 56 E> */ B(Call), R(0), R(1), U8(1), U8(2),
/* 59 S> */ B(Return),
]
constant pool: [
SHARED_FUNCTION_INFO_TYPE,
]
handlers: [
]
---
snippet: "
return (function(x){ return x; })(1)
"
frame size: 3
parameter count: 1
bytecode array length: 20
bytecodes: [
/* 30 E> */ B(StackCheck),
/* 34 S> */ B(LdaUndefined),
B(Star), R(1),
B(CreateClosure), U8(0), U8(4), U8(2),
B(Star), R(0),
B(LdaSmi), U8(1),
B(Star), R(2),
/* 67 E> */ B(Call), R(0), R(1), U8(2), U8(2),
/* 71 S> */ B(Return),
]
constant pool: [
SHARED_FUNCTION_INFO_TYPE,
]
handlers: [
]