v8/test/cctest/interpreter/bytecode_expectations/NewTarget.golden
mstarzinger 0681deb914 [interpreter] Fix destroyed new.target register use.
This fixes a corner-case where the bytecode was using the <new.target>
register directly without going through the local variable. The value
might be clobbered because the deoptimizer doesn't properly restore the
value. The label will causes bytecode pipeline to be flushed and hence
ensure {BytecodeRegisterOptimizer} doesn't reuse <new.target> anymore.

R=rmcilroy@chromium.org
TEST=mjsunit/regress/regress-crbug-645103
BUG=chromium:645103

Review-Url: https://codereview.chromium.org/2325133002
Cr-Commit-Position: refs/heads/master@{#39306}
2016-09-09 12:20:20 +00:00

47 lines
717 B
Plaintext

#
# Autogenerated by generate-bytecode-expectations.
#
---
execute: yes
wrap: yes
---
snippet: "
return new.target;
"
frame size: 1
parameter count: 1
bytecode array length: 9
bytecodes: [
B(Mov), R(new_target), R(0),
B(Ldar), R(new_target),
/* 30 E> */ B(StackCheck),
/* 34 S> */ B(Ldar), R(0),
/* 53 S> */ B(Return),
]
constant pool: [
]
handlers: [
]
---
snippet: "
new.target;
"
frame size: 1
parameter count: 1
bytecode array length: 8
bytecodes: [
B(Mov), R(new_target), R(0),
B(Ldar), R(new_target),
/* 30 E> */ B(StackCheck),
/* 34 S> */ B(LdaUndefined),
/* 46 S> */ B(Return),
]
constant pool: [
]
handlers: [
]