blob: 7772a8e1790e67bb0db2b1e540061c2941ed3bad [file] [log] [blame]
// Copyright (C) 2020 Alexey Shvayka. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
esid: sec-%asyncfromsynciteratorprototype%.return
description: >
`return` method does not pass absent `value`.
info: |
%AsyncFromSyncIteratorPrototype%.return ( value )
[...]
8. If value is present, then
[...]
9. Else,
a. Let result be Call(return, syncIterator).
[...]
flags: [async]
features: [async-iteration]
---*/
var returnArgumentsLength;
var syncIterator = {
[Symbol.iterator]() {
return this;
},
next() {
return {done: false};
},
return() {
returnArgumentsLength = arguments.length;
return {done: true};
},
};
var asyncIterator = (async function* () {
yield* syncIterator;
})();
asyncIterator.next().then(function() {
return asyncIterator.return();
}).then(function() {
assert.sameValue(returnArgumentsLength, 0);
}).then($DONE, $DONE);