diff options
Diffstat (limited to 'deps/v8/test/inspector/debugger/async-instrumentation.js')
-rw-r--r-- | deps/v8/test/inspector/debugger/async-instrumentation.js | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/deps/v8/test/inspector/debugger/async-instrumentation.js b/deps/v8/test/inspector/debugger/async-instrumentation.js new file mode 100644 index 0000000000..b61e28a2c4 --- /dev/null +++ b/deps/v8/test/inspector/debugger/async-instrumentation.js @@ -0,0 +1,68 @@ +// Copyright 2016 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. + +print('Checks async instrumentation enabled in the middle.'); + +InspectorTest.addScript(` +function foo() { + // asyncTaskStarted + debugger; + // asyncTaskFinished + debugger; +} + +function test() { + var resolve1; + var p1 = new Promise(resolve => resolve1 = resolve); + var p2 = p1.then(foo); + debugger; + resolve1(); // asyncTaskScheduled + debugger; + return p2; +} + +//# sourceURL=test.js`, 7, 26); + +InspectorTest.setupScriptMap(); +Protocol.Debugger.onPaused(message => { + if (enableOnPause-- === 0) + Protocol.Debugger.setAsyncCallStackDepth({ maxDepth: 128 }); + InspectorTest.logCallFrames(message.params.callFrames); + var asyncStackTrace = message.params.asyncStackTrace; + while (asyncStackTrace) { + InspectorTest.log(`-- ${asyncStackTrace.description} --`); + InspectorTest.logCallFrames(asyncStackTrace.callFrames); + asyncStackTrace = asyncStackTrace.parent; + } + InspectorTest.log(''); + Protocol.Debugger.resume(); +}); + +Protocol.Debugger.enable(); +var enableOnPause = 0; +InspectorTest.runTestSuite([ + function beforeAsyncTaskScheduled(next) { + enableOnPause = 0; + Protocol.Runtime.evaluate({ expression: 'test()//# sourceURL=expr1.js', + awaitPromise: true }) + .then(() => Protocol.Debugger.setAsyncCallStackDepth({ maxDepth: 0 })) + .then(next); + }, + + function afterAsyncTaskScheduled(next) { + enableOnPause = 2; + Protocol.Runtime.evaluate({ expression: 'test()//# sourceURL=expr1.js', + awaitPromise: true }) + .then(() => Protocol.Debugger.setAsyncCallStackDepth({ maxDepth: 0 })) + .then(next); + }, + + function afterAsyncTaskStarted(next) { + enableOnPause = 3; + Protocol.Runtime.evaluate({ expression: 'test()//# sourceURL=expr1.js', + awaitPromise: true }) + .then(() => Protocol.Debugger.setAsyncCallStackDepth({ maxDepth: 0 })) + .then(next); + } +]); |