diff options
author | Michaël Zasso <targos@protonmail.com> | 2017-02-14 11:27:26 +0100 |
---|---|---|
committer | Michaël Zasso <targos@protonmail.com> | 2017-02-22 15:55:42 +0100 |
commit | 7a77daf24344db7942e34c962b0f1ee729ab7af5 (patch) | |
tree | e7cbe7bf4e2f4b802a8f5bc18336c546cd6a0d7f /deps/v8/test/debugger/debug/es6/debug-promises/stepin-handler.js | |
parent | 5f08871ee93ea739148cc49e0f7679e33c70295a (diff) | |
download | node-new-7a77daf24344db7942e34c962b0f1ee729ab7af5.tar.gz |
deps: update V8 to 5.6.326.55
PR-URL: https://github.com/nodejs/node/pull/10992
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Diffstat (limited to 'deps/v8/test/debugger/debug/es6/debug-promises/stepin-handler.js')
-rw-r--r-- | deps/v8/test/debugger/debug/es6/debug-promises/stepin-handler.js | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/deps/v8/test/debugger/debug/es6/debug-promises/stepin-handler.js b/deps/v8/test/debugger/debug/es6/debug-promises/stepin-handler.js new file mode 100644 index 0000000000..721423a968 --- /dev/null +++ b/deps/v8/test/debugger/debug/es6/debug-promises/stepin-handler.js @@ -0,0 +1,59 @@ +// Copyright 2015 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Flags: --noalways-opt +// Tests stepping into through Promises. + +Debug = debug.Debug +var exception = null; +var break_count = 0; +const expected_breaks = 9; + +function listener(event, exec_state, event_data, data) { + try { + if (event == Debug.DebugEvent.Break) { + assertTrue(exec_state.frameCount() != 0, "FAIL: Empty stack trace"); + var source = exec_state.frame(0).sourceLineText(); + print("paused at: " + source); + assertTrue(source.indexOf("// Break " + break_count + ".") > 0, + "Unexpected pause at: " + source + "\n" + + "Expected: // Break " + break_count + "."); + ++break_count; + if (break_count !== expected_breaks) { + exec_state.prepareStep(Debug.StepAction.StepIn); + } + } + } catch(e) { + exception = e; + print(e, e.stack); + } +}; + +Debug.setListener(listener); + +Promise.resolve(42) + .then( + function f0() { + debugger; // Break 0. + } // Break 1. + ) + .then(callback) + .then(callback.bind(null)) + .then(Object) + .then(callback.bind(null).bind(null)) + .then(finalize) + .catch(function(err) { + %AbortJS("FAIL: " + err); + }); + +function callback(x) { + return x; // Break 2. // Break 4. // Break 6. +} // Break 3. // Break 5. // Break 7. + +function finalize() { + assertNull(exception); // Break 8. + assertEquals(expected_breaks, break_count); + + Debug.setListener(null); +} |