v8/test/inspector/debugger
Alexey Kozyatinskiy 0896586083 [inspector] improve return position of explicit return in non-async function
Goal of this CL: explicit return from non-async function has position after
return expression as return position (will unblock [1]).

BytecodeArrayBuilder has SetStatementPosition and SetExpressionPosition methods.
If one of these methods is called then next generated bytecode will get passed
position. It's general treatment for most cases.
Unfortunately it doesn't work for Returns:
- debugger requires source positions exactly on kReturn bytecode in stepping
  implementation,
- BytecodeGenerator::BuildReturn and BytecodeGenerator::BuildAsyncReturn
  generates more then one bytecode and general solution will put return position
  on first generated bytecode,
- it's not easy to split BuildReturn function into two parts to allow something
  like following in BytecodeGenerator::VisitReturnStatement since generated
  bytecodes are actually controlled by execution_control().
..->BuildReturnPrologue();
..->SetReturnPosition(stmt);
..->Return();

In this CL we pass ReturnStatement through ExecutionControl and use it for
position when we emit return bytecode right here.

So this CL only will improve return position for returns inside of non-async
functions, I'll address async functions later.

[1] https://chromium-review.googlesource.com/c/543161/

Change-Id: Iede512c120b00c209990bf50c20e7d23dc0d65db
Reviewed-on: https://chromium-review.googlesource.com/560738
Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
Reviewed-by: Adam Klein <adamk@chromium.org>
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#46687}
2017-07-14 19:10:13 +00:00
..
resources [inspector] added master test for break locations 2017-02-27 20:20:39 +00:00
access-obsolete-frame-expected.txt [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
access-obsolete-frame.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
asm-js-breakpoint-before-exec-expected.txt [inspector] improve return position of explicit return in non-async function 2017-07-14 19:10:13 +00:00
asm-js-breakpoint-before-exec.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
asm-js-breakpoint-during-exec-expected.txt Fix detection of BUILTIN functions 2016-10-28 06:48:44 +00:00
asm-js-breakpoint-during-exec.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
asm-js-stack-expected.txt [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
asm-js-stack.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
async-console-count-doesnt-crash-expected.txt [inspector] test for fixed empty stack processing in console.count 2016-10-03 21:10:53 +00:00
async-console-count-doesnt-crash.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
async-for-await-of-promise-stack-expected.txt [inspector] use creation stack trace as parent for async call chains 2017-05-11 19:21:24 +00:00
async-for-await-of-promise-stack.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
async-instrumentation-expected.txt [inspector] use creation stack trace as parent for async call chains 2017-05-11 19:21:24 +00:00
async-instrumentation.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
async-promise-late-then-expected.txt [inspector] use creation stack trace as parent for async call chains 2017-05-11 19:21:24 +00:00
async-promise-late-then.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
async-set-timeout-expected.txt [inspector] add async instrumentation for setTimeout in tests 2016-12-13 19:41:22 +00:00
async-set-timeout.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
async-stack-await-expected.txt [inspector] use creation stack trace as parent for async call chains 2017-05-11 19:21:24 +00:00
async-stack-await.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
async-stack-created-frame-expected.txt [inspector] use creation stack trace as parent for async call chains 2017-05-11 19:21:24 +00:00
async-stack-created-frame.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
async-stack-for-promise-expected.txt [inspector] use creation stack trace as parent for async call chains 2017-05-11 19:21:24 +00:00
async-stack-for-promise.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
break-location-function-calls-expected.txt [inspector] fixed getPossibleBreakpoints 2017-06-07 13:25:52 +00:00
break-location-function-calls.js [inspector] fixed getPossibleBreakpoints 2017-06-07 13:25:52 +00:00
break-locations-await-expected.txt [inspector] improve return position of explicit return in non-async function 2017-07-14 19:10:13 +00:00
break-locations-await.js [inspector] removed break location right before suspension in async function 2017-05-31 12:15:09 +00:00
break-locations-var-init-expected.txt [inspector] improve return position of explicit return in non-async function 2017-07-14 19:10:13 +00:00
break-locations-var-init.js [inspector] moved var initialization break location before init expression (reland) 2017-05-30 12:54:49 +00:00
break-on-exception-expected.txt [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
break-on-exception.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
call-frame-function-location-expected.txt [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
call-frame-function-location.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
caught-exception-from-framework-inside-async-expected.txt [inspector] merged IsSubjectToDebugging and IsBlackboxed and fixed issue 2017-03-10 17:44:35 +00:00
caught-exception-from-framework-inside-async.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
caught-uncaught-exceptions-expected.txt [inspector] Add exception caught/uncaught status to protocol 2016-11-10 07:58:48 +00:00
caught-uncaught-exceptions.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
collect-obsolete-async-tasks-expected.txt [inspector] removed kDebugPromiseCollected event 2017-04-20 15:49:02 +00:00
collect-obsolete-async-tasks.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
collect-old-async-call-chains-expected.txt [inspector] use creation stack trace as parent for async call chains 2017-05-11 19:21:24 +00:00
collect-old-async-call-chains.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
command-line-api-with-bound-function-expected.txt [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
command-line-api-with-bound-function.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
continue-to-location-expected.txt [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
continue-to-location-target-call-frames-expected.txt [inspector] added targetCallFrames for continueToLocation 2017-05-16 21:52:49 +00:00
continue-to-location-target-call-frames.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
continue-to-location.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
destory-in-break-program-expected.txt [inspector] improved V8Debugger::breakProgram method 2017-04-25 22:55:45 +00:00
destory-in-break-program.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
doesnt-step-into-injected-script-expected.txt [inspector] changed a way of preserving stepping between tasks 2017-03-22 16:20:54 +00:00
doesnt-step-into-injected-script.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
es6-module-script-parsed-expected.txt [inspector] added length for scriptParsed notification 2017-03-07 22:01:37 +00:00
es6-module-script-parsed.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
es6-module-set-script-source-expected.txt [inspector] return meaningful error on Debug.setScriptSource for ES module 2017-02-03 22:10:04 +00:00
es6-module-set-script-source.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
eval-scopes-expected.txt [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
eval-scopes.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
evaluate-on-call-frame-in-module-expected.txt [inspector] expose module variables for Debugger.evaluateOnCallFrame method 2017-06-14 14:58:12 +00:00
evaluate-on-call-frame-in-module.js [inspector] expose module variables for Debugger.evaluateOnCallFrame method 2017-06-14 14:58:12 +00:00
for-of-loops-expected.txt [inspector] improve return position of explicit return in non-async function 2017-07-14 19:10:13 +00:00
for-of-loops.js [inspector] moved var initialization break location before init expression (reland) 2017-05-30 12:54:49 +00:00
framework-break-expected.txt [test/inspector] remove any usage of v8::Extension 2017-04-21 23:41:07 +00:00
framework-break.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
framework-nested-scheduled-break-expected.txt [test/inspector] remove any usage of v8::Extension 2017-04-21 23:41:07 +00:00
framework-nested-scheduled-break.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
framework-precise-ranges-expected.txt [inspector] improve return position of explicit return in non-async function 2017-07-14 19:10:13 +00:00
framework-precise-ranges.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
framework-stepping-expected.txt [test/inspector] remove any usage of v8::Extension 2017-04-21 23:41:07 +00:00
framework-stepping.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
get-possible-breakpoints-array-literal-expected.txt [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
get-possible-breakpoints-array-literal.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
get-possible-breakpoints-expected.txt [inspector] improve return position of explicit return in non-async function 2017-07-14 19:10:13 +00:00
get-possible-breakpoints-lazy-error-expected.txt [inspector] entered into context before getPossibleBreakpoints call 2017-05-01 19:44:13 +00:00
get-possible-breakpoints-lazy-error.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
get-possible-breakpoints-master-expected.txt [inspector] improve return position of explicit return in non-async function 2017-07-14 19:10:13 +00:00
get-possible-breakpoints-master.js [Interpreter] Replace --ignition flag with a --stress-fullcodegen 2017-07-13 13:05:00 +00:00
get-possible-breakpoints-restrict-to-function-expected.txt [inspector] moved var initialization break location before init expression (reland) 2017-05-30 12:54:49 +00:00
get-possible-breakpoints-restrict-to-function.js [inspector] moved var initialization break location before init expression (reland) 2017-05-30 12:54:49 +00:00
get-possible-breakpoints.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
inspector-break-api-expected.txt [test/inspector] remove any usage of v8::Extension 2017-04-21 23:41:07 +00:00
inspector-break-api.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
max-async-call-chain-depth-expected.txt [inspector] use creation stack trace as parent for async call chains 2017-05-11 19:21:24 +00:00
max-async-call-chain-depth.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
not-hold-promises-expected.txt [inspector] test to check that we don't hold resolved promises 2017-06-06 17:43:55 +00:00
not-hold-promises.js [inspector] test to check that we don't hold resolved promises 2017-06-06 17:43:55 +00:00
object-preview-internal-properties-expected.txt [inspector] introduced v8::debug::EntriesPreview for inspector 2017-02-07 07:46:21 +00:00
object-preview-internal-properties.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
pause-expected.txt [inspector] Return error when paused in different context group 2017-06-06 18:45:52 +00:00
pause-on-oom-expected.txt [inspector] unconditionally pause on OOM 2017-01-18 21:35:09 +00:00
pause-on-oom.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
pause.js [inspector] Return error when paused in different context group 2017-06-06 18:45:52 +00:00
promise-chain-when-limit-hit-expected.txt [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
promise-chain-when-limit-hit.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
protocol-string-to-double-locale-expected.txt [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
protocol-string-to-double-locale.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
restore-breakpoint-expected.txt [inspector] restore provisional breakpoints smarter 2017-02-28 16:14:27 +00:00
restore-breakpoint.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
return-break-locations-expected.txt [inspector] improve return position of explicit return in non-async function 2017-07-14 19:10:13 +00:00
return-break-locations.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
schedule-step-into-async-expected.txt [inspector] introduced Debugger.scheduleStepIntoAsync 2017-03-06 16:28:21 +00:00
schedule-step-into-async-set-timeout-expected.txt [inspector] support setTimeout in Debugger.scheduleStepIntoAsync method 2017-03-30 14:42:24 +00:00
schedule-step-into-async-set-timeout.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
schedule-step-into-async.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
scope-skip-variables-with-empty-name-expected.txt [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
scope-skip-variables-with-empty-name.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
script-end-location-expected.txt [inspector] fixed endLine in Debugger.scriptParsed event 2017-03-03 06:58:11 +00:00
script-end-location.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
script-on-after-compile-expected.txt [Devtools] Add stacktrace to protocol for scriptParsed event 2017-03-16 23:34:11 +00:00
script-on-after-compile.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
script-parsed-for-runtime-evaluate-expected.txt [Devtools] Add stacktrace to protocol for scriptParsed event 2017-03-16 23:34:11 +00:00
script-parsed-for-runtime-evaluate.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
script-parsed-hash-expected.txt [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
script-parsed-hash.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
script-with-negative-offset-expected.txt [inspector] don't create negative location for isBlackboxed check 2017-05-31 14:02:03 +00:00
script-with-negative-offset.js [inspector] don't create negative location for isBlackboxed check 2017-05-31 14:02:03 +00:00
set-async-call-stack-depth-expected.txt [inspector] use creation stack trace as parent for async call chains 2017-05-11 19:21:24 +00:00
set-async-call-stack-depth.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
set-blackbox-patterns-expected.txt [inspector] improve return position of explicit return in non-async function 2017-07-14 19:10:13 +00:00
set-blackbox-patterns.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
set-breakpoint-before-enabling-expected.txt [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
set-breakpoint-before-enabling.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
set-script-source-exception-expected.txt [inspector] return meaningful error on Debug.setScriptSource for ES module 2017-02-03 22:10:04 +00:00
set-script-source-exception.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
set-script-source-expected.txt [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
set-script-source.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
set-skip-all-pauses-expected.txt [inspector] Support multiple sessions per context group 2017-06-01 21:33:59 +00:00
set-skip-all-pauses.js [inspector] Support multiple sessions per context group 2017-06-01 21:33:59 +00:00
side-effect-free-debug-evaluate-expected.txt [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
side-effect-free-debug-evaluate.js [Interpreter] Replace --ignition flag with a --stress-fullcodegen 2017-07-13 13:05:00 +00:00
step-into-expected.txt [inspector] improve return position of explicit return in non-async function 2017-07-14 19:10:13 +00:00
step-into-nested-arrow-expected.txt [debugger] correctly find inner function scope. 2017-03-14 16:35:19 +00:00
step-into-nested-arrow.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
step-into-next-script-expected.txt [inspector] improve return position of explicit return in non-async function 2017-07-14 19:10:13 +00:00
step-into-next-script.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
step-into.js [Interpreter] Replace --ignition flag with a --stress-fullcodegen 2017-07-13 13:05:00 +00:00
step-out-async-await-expected.txt [inspector] added test for StepOut at return postion from async function 2017-03-28 21:14:19 +00:00
step-out-async-await.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
step-over-another-context-group-expected.txt [inspector] changed a way of preserving stepping between tasks 2017-03-22 16:20:54 +00:00
step-over-another-context-group.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
step-over-caught-exception-expected.txt [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
step-over-caught-exception.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
step-snapshot-expected.txt [inspector] improve return position of explicit return in non-async function 2017-07-14 19:10:13 +00:00
step-snapshot.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
stepping-after-get-possible-breakpoints-expected.txt [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
stepping-after-get-possible-breakpoints.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
stepping-and-break-program-api-expected.txt [test/inspector] remove any usage of v8::Extension 2017-04-21 23:41:07 +00:00
stepping-and-break-program-api.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
stepping-ignores-injected-script-expected.txt [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
stepping-ignores-injected-script.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
stepping-tail-call-expected.txt [inspector] improve return position of explicit return in non-async function 2017-07-14 19:10:13 +00:00
stepping-tail-call.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
stepping-with-blackboxed-ranges-expected.txt [inspector] improve return position of explicit return in non-async function 2017-07-14 19:10:13 +00:00
stepping-with-blackboxed-ranges.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
stepping-with-exposed-injected-script-expected.txt [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
stepping-with-exposed-injected-script.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
stepping-with-natives-and-frameworks-expected.txt [debugger] tuned StepNext and StepOut at return position 2017-03-22 14:16:18 +00:00
stepping-with-natives-and-frameworks.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
suspended-generator-scopes-expected.txt Make non-Module generators only context allocate parameters. 2017-05-24 13:54:57 +00:00
suspended-generator-scopes.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
update-call-frame-scopes-expected.txt [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
update-call-frame-scopes.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
wasm-get-breakable-locations-expected.txt [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
wasm-get-breakable-locations.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
wasm-imports-expected.txt [wasm] Use spec'ed location format 2017-06-09 15:04:36 +00:00
wasm-imports.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
wasm-scope-info-expected.txt [wasm] Decode local names for debugging 2017-07-03 09:53:03 +00:00
wasm-scope-info.js [wasm] Decode local names for debugging 2017-07-03 09:53:03 +00:00
wasm-scripts-expected.txt [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
wasm-scripts.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
wasm-source-expected.txt [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
wasm-source.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
wasm-stack-expected.txt [wasm] [cleanup] Avoid shouting WASM 2017-06-09 16:24:19 +00:00
wasm-stack.js [wasm] [cleanup] Avoid shouting WASM 2017-06-09 16:24:19 +00:00
wasm-stepping-expected.txt [wasm] Decode local names for debugging 2017-07-03 09:53:03 +00:00
wasm-stepping.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00