| Index: test/mjsunit/harmony/mirror-async-function-promise.js
|
| diff --git a/test/mjsunit/es6/mirror-promises.js b/test/mjsunit/harmony/mirror-async-function-promise.js
|
| similarity index 78%
|
| copy from test/mjsunit/es6/mirror-promises.js
|
| copy to test/mjsunit/harmony/mirror-async-function-promise.js
|
| index deeba8f549f2619b4960c4f6b8835058f34c6d3f..966b0ce26743e4297d26d8e9e29c6f81732ef6a8 100644
|
| --- a/test/mjsunit/es6/mirror-promises.js
|
| +++ b/test/mjsunit/harmony/mirror-async-function-promise.js
|
| @@ -1,10 +1,12 @@
|
| -// Copyright 2014 the V8 project authors. All rights reserved.
|
| +// 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: --expose-debug-as debug
|
| +// Flags: --expose-debug-as debug --harmony-async-await --allow-natives-syntax
|
| // Test the mirror object for promises.
|
|
|
| +var AsyncFunction = (async function() {}).constructor;
|
| +
|
| function MirrorRefCache(json_refs) {
|
| var tmp = eval('(' + json_refs + ')');
|
| this.refs_ = [];
|
| @@ -53,25 +55,24 @@ function testPromiseMirror(promise, status, value) {
|
| }
|
|
|
| // Test a number of different promises.
|
| -var resolved = new Promise(function(resolve, reject) { resolve() });
|
| -var rejected = new Promise(function(resolve, reject) { reject() });
|
| -var pending = new Promise(function(resolve, reject) {});
|
| +var resolved = (async function() {})();
|
| +var rejected = (async function() { throw undefined; })();
|
| +var pending = (async function() { await 1; })();
|
|
|
| testPromiseMirror(resolved, "resolved", undefined);
|
| testPromiseMirror(rejected, "rejected", undefined);
|
| testPromiseMirror(pending, "pending", undefined);
|
|
|
| -var resolvedv = new Promise(function(resolve, reject) { resolve('resolve') });
|
| -var rejectedv = new Promise(function(resolve, reject) { reject('reject') });
|
| -var thrownv = new Promise(function(resolve, reject) { throw 'throw' });
|
| +var resolvedv = (async function() { return "resolve"; })();
|
| +var rejectedv = (async function() { return Promise.reject("reject"); })();
|
| +var thrownv = (async function() { throw "throw"; })();
|
|
|
| testPromiseMirror(resolvedv, "resolved", 'resolve');
|
| testPromiseMirror(rejectedv, "rejected", 'reject');
|
| testPromiseMirror(thrownv, "rejected", 'throw');
|
|
|
| // Test internal properties of different promises.
|
| -var m1 = debug.MakeMirror(new Promise(
|
| - function(resolve, reject) { resolve(1) }));
|
| +var m1 = debug.MakeMirror((async function() { return 1; })());
|
| var ip = m1.internalProperties();
|
| assertEquals(2, ip.length);
|
| assertEquals("[[PromiseStatus]]", ip[0].name());
|
| @@ -79,12 +80,14 @@ assertEquals("[[PromiseValue]]", ip[1].name());
|
| assertEquals("resolved", ip[0].value().value());
|
| assertEquals(1, ip[1].value().value());
|
|
|
| -var m2 = debug.MakeMirror(new Promise(function(resolve, reject) { reject(2) }));
|
| +var m2 = debug.MakeMirror((async function() { throw 2; })());
|
| ip = m2.internalProperties();
|
| assertEquals("rejected", ip[0].value().value());
|
| assertEquals(2, ip[1].value().value());
|
|
|
| -var m3 = debug.MakeMirror(new Promise(function(resolve, reject) { }));
|
| +var m3 = debug.MakeMirror((async function() { await 1; })());
|
| ip = m3.internalProperties();
|
| assertEquals("pending", ip[0].value().value());
|
| assertEquals("undefined", typeof(ip[1].value().value()));
|
| +
|
| +%RunMicrotasks();
|
|
|