mirror of https://github.com/tc39/test262.git
42 lines
1.1 KiB
JavaScript
Executable File
42 lines
1.1 KiB
JavaScript
Executable File
// 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.1.2
|
|
description: >
|
|
Cannot change result value of resolved Promise.all element.
|
|
info: >
|
|
Promise.all Resolve Element Functions
|
|
|
|
1. Let alreadyCalled be the value of F's [[AlreadyCalled]] internal slot.
|
|
2. If alreadyCalled.[[value]] is true, return undefined.
|
|
3. Set alreadyCalled.[[value]] to true.
|
|
...
|
|
---*/
|
|
|
|
var callCount = 0;
|
|
|
|
function Constructor(executor) {
|
|
function resolve(values) {
|
|
callCount += 1;
|
|
assert(Array.isArray(values), "values is array");
|
|
assert.sameValue(values.length, 1, "values length");
|
|
assert.sameValue(values[0], "expectedValue", "values[0]");
|
|
}
|
|
executor(resolve, $ERROR);
|
|
}
|
|
Constructor.resolve = function(v) { return v; };
|
|
|
|
var p1 = {
|
|
then: function(onFulfilled, onRejected) {
|
|
onFulfilled("expectedValue");
|
|
onFulfilled("unexpectedValue");
|
|
}
|
|
};
|
|
|
|
assert.sameValue(callCount, 0, "callCount before call to all()");
|
|
|
|
Promise.all.call(Constructor, [p1]);
|
|
|
|
assert.sameValue(callCount, 1, "callCount after call to all()");
|