Add `return` method test

This commit is contained in:
Alexey Shvayka 2020-03-29 23:04:54 +03:00 committed by Rick Waldron
parent 1bf4e159dd
commit 543370c44d
1 changed files with 43 additions and 0 deletions

View File

@ -0,0 +1,43 @@
// 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);