diff --git a/js/src/builtin/Promise.cpp b/js/src/builtin/Promise.cpp index f660f1420ec69..feb3f0a0df2c3 100644 --- a/js/src/builtin/Promise.cpp +++ b/js/src/builtin/Promise.cpp @@ -4615,9 +4615,17 @@ bool js::AsyncFromSyncIteratorMethod(JSContext* cx, CallArgs& args, // return/throw() steps 8-9. // Step 8: Let result be Call(throw, syncIterator, « value »). // Step 9: IfAbruptRejectPromise(result, promiseCapability). + // + // Including the changes from: https://github.com/tc39/ecma262/pull/1776 RootedValue iterVal(cx, ObjectValue(*iter)); RootedValue resultVal(cx); - if (!Call(cx, func, iterVal, args.get(0), &resultVal)) { + bool ok; + if (args.length() == 0) { + ok = Call(cx, func, iterVal, &resultVal); + } else { + ok = Call(cx, func, iterVal, args[0], &resultVal); + } + if (!ok) { return AbruptRejectPromise(cx, args, resultPromise, nullptr); } diff --git a/js/src/tests/jstests.list b/js/src/tests/jstests.list index 03748ebb3a0fc..b81645c2081b5 100644 --- a/js/src/tests/jstests.list +++ b/js/src/tests/jstests.list @@ -463,11 +463,6 @@ skip script test262/language/statements/for-await-of/iterator-close-throw-get-me skip script test262/language/statements/for-of/iterator-close-throw-get-method-non-callable.js skip script test262/language/statements/for-of/iterator-close-throw-get-method-abrupt.js -# https://github.com/tc39/ecma262/pull/1776 -# https://bugzilla.mozilla.org/show_bug.cgi?id=1629794 -skip script test262/built-ins/AsyncFromSyncIteratorPrototype/return/absent-value-not-passed.js -skip script test262/built-ins/AsyncFromSyncIteratorPrototype/next/absent-value-not-passed.js - ########################################################### # Tests disabled due to issues in test262 importer script #