diff options
Diffstat (limited to 'deps/v8/test/debugger/debug/harmony/debug-async-function-async-task-event.js')
-rw-r--r-- | deps/v8/test/debugger/debug/harmony/debug-async-function-async-task-event.js | 97 |
1 files changed, 0 insertions, 97 deletions
diff --git a/deps/v8/test/debugger/debug/harmony/debug-async-function-async-task-event.js b/deps/v8/test/debugger/debug/harmony/debug-async-function-async-task-event.js deleted file mode 100644 index d5d506e153..0000000000 --- a/deps/v8/test/debugger/debug/harmony/debug-async-function-async-task-event.js +++ /dev/null @@ -1,97 +0,0 @@ -// 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. - -// Flags: --harmony-async-await - -// The test observes the callbacks that async/await makes to the inspector -// to make accurate stack traces. The pattern is based on saving a stack once -// with enqueueRecurring and restoring it multiple times. - -// Additionally, the limited number of events is an indirect indication that -// we are not doing extra Promise processing that could be associated with memory -// leaks (v8:5380). In particular, no stacks are saved and restored for extra -// Promise handling on throwaway Promises. - -// TODO(littledan): Write a test that demonstrates that the memory leak in -// the exception case is fixed. - -Debug = debug.Debug; - -var base_id = -1; -var exception = null; -var expected = [ - 'enqueueRecurring #1', - 'willHandle #1', - 'then #1', - 'didHandle #1', - 'willHandle #1', - 'then #2', - 'cancel #1', - 'didHandle #1', -]; - -function assertLog(msg) { - print(msg); - assertTrue(expected.length > 0); - assertEquals(expected.shift(), msg); - if (!expected.length) { - Debug.setListener(null); - } -} - -function listener(event, exec_state, event_data, data) { - if (event != Debug.DebugEvent.AsyncTaskEvent) return; - try { - if ("Promise.resolve" == event_data.name()) return; - if (base_id < 0) - base_id = event_data.id(); - var id = event_data.id() - base_id + 1; - assertTrue("async function" == event_data.name()); - assertLog(event_data.type() + " #" + id); - } catch (e) { - print(e + e.stack) - exception = e; - } -} - -Debug.setListener(listener); - -var resolver; -var p = new Promise(function(resolve, reject) { - resolver = resolve; -}); - -async function main() { - await p; - assertLog("then #1"); - await undefined; - assertLog("then #2"); -} -main(); -resolver(); - -%RunMicrotasks(); - -assertNull(exception); - -Debug.clearBreakOnUncaughtException(); -Debug.setListener(null); - -var resolve; -var turnOnListenerPromise = new Promise(r => resolve = r); -async function confused() { - await turnOnListenerPromise; - throw foo -} - -confused(); - -Promise.resolve().then(() => { - Debug.setListener(listener); - Debug.setBreakOnUncaughtException(); - resolve(); -}); - -%RunMicrotasks(); -assertNull(exception); |