[promise] use PromiseCapabilities directly for Promise.race resolve/reject
Does not remove the extra private state added, as doing so seems to break the debugger. Fixes new Test262 tests: - built-ins/Promise/race/same-resolve-function - built-ins/Promise/race/same-reject-function BUG=v8:4632 LOG=N R=littledan@chromium.org, cbruni@chromium.org Review URL: https://codereview.chromium.org/1538853002 Cr-Commit-Position: refs/heads/master@{#33214}
This commit is contained in:
parent
391517ea99
commit
ee1671b9af
@ -394,9 +394,8 @@ function PromiseRace(iterable) {
|
||||
var deferred = NewPromiseCapability(this);
|
||||
try {
|
||||
for (var value of iterable) {
|
||||
var reject = reason => { deferred.reject(reason); };
|
||||
this.resolve(value).then((x) => { deferred.resolve(x) }, reject);
|
||||
SET_PRIVATE(reject, promiseCombinedDeferredSymbol, deferred);
|
||||
this.resolve(value).then(deferred.resolve, deferred.reject);
|
||||
SET_PRIVATE(deferred.reject, promiseCombinedDeferredSymbol, deferred);
|
||||
}
|
||||
} catch (e) {
|
||||
deferred.reject(e)
|
||||
|
@ -403,10 +403,6 @@
|
||||
'language/expressions/generators/invoke-as-constructor': [FAIL],
|
||||
'language/expressions/object/method-definition/generator-invoke-ctor': [FAIL],
|
||||
|
||||
# https://bugs.chromium.org/p/v8/issues/detail?id=4632
|
||||
'built-ins/Promise/race/same-resolve-function': [FAIL],
|
||||
'built-ins/Promise/race/same-reject-function': [FAIL],
|
||||
|
||||
# https://bugs.chromium.org/p/v8/issues/detail?id=4633
|
||||
'built-ins/Promise/reject-function-name': [FAIL],
|
||||
'built-ins/Promise/resolve-function-name': [FAIL],
|
||||
|
Loading…
Reference in New Issue
Block a user