node/deps/v8/test/mjsunit/compiler/promise-capability-default-closures.js
Myles Borins 12a1b9b804
deps: update V8 to 6.6.346.23
PR-URL: https://github.com/nodejs/node/pull/19201
Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com>
Reviewed-By: Myles Borins <myles.borins@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2018-04-11 13:22:42 -04:00

48 lines
1.1 KiB
JavaScript

// Copyright 2018 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: --allow-natives-syntax
(function() {
var resolve, value;
(new Promise(r => resolve = r)).then(v => value = v);
function foo() { resolve(1); }
foo();
foo();
%OptimizeFunctionOnNextCall(foo);
foo();
setTimeout(_ => assertEquals(1, value));
})();
(function() {
var reject, value;
(new Promise((_, r) => reject = r)).catch(v => value = v);
function foo() { reject(1); }
foo();
foo();
%OptimizeFunctionOnNextCall(foo);
foo();
setTimeout(_ => assertEquals(1, value));
})();
(function() {
var value;
function foo(x) { return new Promise((resolve, reject) => resolve(x)); }
foo(1);
foo(1);
%OptimizeFunctionOnNextCall(foo);
foo(1).then(v => value = v);
setTimeout(_ => assertEquals(1, value));
})();
(function() {
var value;
function foo(x) { return new Promise((resolve, reject) => reject(x)); }
foo(1);
foo(1);
%OptimizeFunctionOnNextCall(foo);
foo(1).catch(v => value = v);
setTimeout(_ => assertEquals(1, value));
})();