mirror of https://github.com/tc39/test262.git
39 lines
1.1 KiB
JavaScript
39 lines
1.1 KiB
JavaScript
// Copyright (C) 2015 André Bargull. All rights reserved.
|
|
// This code is governed by the BSD license found in the LICENSE file.
|
|
|
|
/*---
|
|
es6id: 25.4.4.5
|
|
description: >
|
|
Resolve function is called after Promise constructor returns.
|
|
info: >
|
|
Promise.resolve ( x )
|
|
|
|
...
|
|
4. Let promiseCapability be NewPromiseCapability(C).
|
|
5. ReturnIfAbrupt(promiseCapability).
|
|
6. Let resolveResult be Call(promiseCapability.[[Resolve]], undefined, «x»).
|
|
7. ReturnIfAbrupt(resolveResult).
|
|
...
|
|
---*/
|
|
|
|
var expectedThisValue = (function() { return this; }());
|
|
var callCount = 0;
|
|
var object = {};
|
|
var thisValue, args;
|
|
|
|
Promise.resolve.call(function(executor) {
|
|
function resolve(v) {
|
|
callCount += 1;
|
|
thisValue = this;
|
|
args = arguments;
|
|
}
|
|
executor(resolve, $ERROR);
|
|
assert.sameValue(callCount, 0, "callCount before returning from constructor");
|
|
}, object);
|
|
|
|
assert.sameValue(callCount, 1, "callCount after call to resolve()");
|
|
assert.sameValue(typeof args, "object");
|
|
assert.sameValue(args.length, 1);
|
|
assert.sameValue(args[0], object);
|
|
assert.sameValue(thisValue, expectedThisValue);
|