| Index: src/js/promise.js
|
| diff --git a/src/js/promise.js b/src/js/promise.js
|
| index a165817b7160ec3798f34e01917f5f4a8467a27b..6fc8728562c03f4e5def5bc4d3dcc72088b90b75 100644
|
| --- a/src/js/promise.js
|
| +++ b/src/js/promise.js
|
| @@ -317,13 +317,13 @@ function PromiseCatch(onReject) {
|
|
|
| function PromiseCast(x) {
|
| if (!IS_RECEIVER(this)) {
|
| - throw MakeTypeError(kCalledOnNonObject, PromiseCast);
|
| - }
|
| - if (IsPromise(x) && x.constructor === this) {
|
| - return x;
|
| - } else {
|
| - return new this(function(resolve, reject) { resolve(x) });
|
| + throw MakeTypeError(kCalledOnNonObject, "Promise.resolve");
|
| }
|
| + if (IsPromise(x) && x.constructor === this) return x;
|
| +
|
| + var promiseCapability = NewPromiseCapability(this);
|
| + var resolveResult = %_Call(promiseCapability.resolve, UNDEFINED, x);
|
| + return promiseCapability.promise;
|
| }
|
|
|
| function PromiseAll(iterable) {
|
|
|