diff --git a/test/built-ins/AsyncFromSyncIteratorPrototype/next/absent-value-not-passed.js b/test/built-ins/AsyncFromSyncIteratorPrototype/next/absent-value-not-passed.js new file mode 100644 index 0000000000..da642ca873 --- /dev/null +++ b/test/built-ins/AsyncFromSyncIteratorPrototype/next/absent-value-not-passed.js @@ -0,0 +1,38 @@ +// Copyright (C) 2020 Alexey Shvayka. All rights reserved. +// This code is governed by the BSD license found in the LICENSE file. + +/*--- +esid: sec-%asyncfromsynciteratorprototype%.next +description: > + `next` method does not pass absent `value`. +info: | + %AsyncFromSyncIteratorPrototype%.next ( value ) + + [...] + 5. If value is present, then + [...] + 6. Else, + a. Let result be IteratorNext(syncIteratorRecord). + [...] +flags: [async] +features: [async-iteration] +---*/ + +var nextArgumentsLength; +var syncIterator = { + [Symbol.iterator]() { + return this; + }, + next() { + nextArgumentsLength = arguments.length; + return {done: true}; + }, +}; + +var asyncIterator = (async function* () { + yield* syncIterator; +})(); + +asyncIterator.next().then(function() { + assert.sameValue(nextArgumentsLength, 0); +}).then($DONE, $DONE);