Commit 09a7ac5f authored by mstarzinger's avatar mstarzinger Committed by Commit bot

[deoptimizer] Potentially deopt into debug bytecode.

This makes sure the deoptimizer picks bytecode prepared for debugging
when materializing an interpreted frame if one is available. This is
normally done by the interpreter entry trampoline and hence needs to be
replicated by the deoptimizer.

R=jarin@chromium.org

Review-Url: https://codereview.chromium.org/2271443003
Cr-Commit-Position: refs/heads/master@{#38815}
parent 9a549cc6
......@@ -1234,7 +1234,9 @@ void Deoptimizer::DoComputeInterpretedFrame(TranslatedFrame* translated_frame,
// Set the bytecode array pointer.
output_offset -= kPointerSize;
Object* bytecode_array = shared->bytecode_array();
Object* bytecode_array = shared->HasDebugInfo()
? shared->GetDebugInfo()->DebugBytecodeArray()
: shared->bytecode_array();
WriteValueToOutput(bytecode_array, 0, frame_index, output_offset,
"bytecode array ");
......
......@@ -57,7 +57,7 @@
# Issue 3660: Replacing activated TurboFan frames by unoptimized code does
# not work, but we expect it to not crash.
'debug-step-turbofan': [FAIL],
'debug-step-turbofan': [PASS, FAIL],
##############################################################################
# Too slow in debug mode with --stress-opt mode.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment