Commit 473badf5 authored by arv's avatar arv Committed by Commit bot

[es6] Make sure we do not invoke setter when calling Promise.all

We were calling the setter for Object.prototype.promise if it existed
when calling PromiseAll.

BUG=v9:4232
LOG=N
R=rossberg@chromium.org, adamk@chromium.org

Review URL: https://codereview.chromium.org/1219623005

Cr-Commit-Position: refs/heads/master@{#29357}
parent ba08cc8c
......@@ -189,11 +189,11 @@ function PromiseDeferred() {
reject: function(r) { PromiseReject(promise, r) }
};
} else {
var result = {};
var result = {promise: UNDEFINED, reject: UNDEFINED, resolve: UNDEFINED};
result.promise = new this(function(resolve, reject) {
result.resolve = resolve;
result.reject = reject;
})
});
return result;
}
}
......
// Copyright 2015 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.
'use strict';
Object.defineProperties(Object.prototype, {
promise: {set: assertUnreachable},
reject: {set: assertUnreachable},
resolve: {set: assertUnreachable},
});
class P extends Promise {}
P.all([Promise.resolve('ok')]);
P.race([Promise.resolve('ok')]);
P.defer();
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment