summaryrefslogtreecommitdiff
path: root/deps/v8/test/inspector/runtime/evaluate-async.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/test/inspector/runtime/evaluate-async.js')
-rw-r--r--deps/v8/test/inspector/runtime/evaluate-async.js58
1 files changed, 58 insertions, 0 deletions
diff --git a/deps/v8/test/inspector/runtime/evaluate-async.js b/deps/v8/test/inspector/runtime/evaluate-async.js
new file mode 100644
index 0000000000..ed4b6e30e2
--- /dev/null
+++ b/deps/v8/test/inspector/runtime/evaluate-async.js
@@ -0,0 +1,58 @@
+// 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("Tests that Runtime.evaluate works with awaitPromise flag.");
+
+InspectorTest.addScript(`
+function createPromiseAndScheduleResolve()
+{
+ var resolveCallback;
+ var promise = new Promise((resolve) => resolveCallback = resolve);
+ setTimeout(resolveCallback.bind(null, { a : 239 }), 0);
+ return promise;
+}`);
+
+InspectorTest.runTestSuite([
+ function testResolvedPromise(next)
+ {
+ Protocol.Runtime.evaluate({ expression: "Promise.resolve(239)", awaitPromise: true, generatePreview: true })
+ .then(result => InspectorTest.logMessage(result))
+ .then(() => next());
+ },
+
+ function testRejectedPromise(next)
+ {
+ Protocol.Runtime.evaluate({ expression: "Promise.reject(239)", awaitPromise: true })
+ .then(result => InspectorTest.logMessage(result))
+ .then(() => next());
+ },
+
+ function testPrimitiveValueInsteadOfPromise(next)
+ {
+ Protocol.Runtime.evaluate({ expression: "true", awaitPromise: true })
+ .then(result => InspectorTest.logMessage(result))
+ .then(() => next());
+ },
+
+ function testObjectInsteadOfPromise(next)
+ {
+ Protocol.Runtime.evaluate({ expression: "({})", awaitPromise: true })
+ .then(result => InspectorTest.logMessage(result))
+ .then(() => next());
+ },
+
+ function testPendingPromise(next)
+ {
+ Protocol.Runtime.evaluate({ expression: "createPromiseAndScheduleResolve()", awaitPromise: true, returnByValue: true })
+ .then(result => InspectorTest.logMessage(result))
+ .then(() => next());
+ },
+
+ function testExceptionInEvaluate(next)
+ {
+ Protocol.Runtime.evaluate({ expression: "throw 239", awaitPromise: true })
+ .then(result => InspectorTest.logMessage(result))
+ .then(() => next());
+ }
+]);