blob: 76d6483a58d5ad1483eb98179a296595f270429b [file] [log] [blame]
// 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);