summaryrefslogtreecommitdiffstats
path: root/js/src/tests/test262/built-ins/AsyncFromSyncIteratorPrototype/next/iterator-result-prototype.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/tests/test262/built-ins/AsyncFromSyncIteratorPrototype/next/iterator-result-prototype.js')
-rw-r--r--js/src/tests/test262/built-ins/AsyncFromSyncIteratorPrototype/next/iterator-result-prototype.js43
1 files changed, 43 insertions, 0 deletions
diff --git a/js/src/tests/test262/built-ins/AsyncFromSyncIteratorPrototype/next/iterator-result-prototype.js b/js/src/tests/test262/built-ins/AsyncFromSyncIteratorPrototype/next/iterator-result-prototype.js
new file mode 100644
index 0000000000..d3f638e48e
--- /dev/null
+++ b/js/src/tests/test262/built-ins/AsyncFromSyncIteratorPrototype/next/iterator-result-prototype.js
@@ -0,0 +1,43 @@
+// |reftest| async
+// Copyright (C) 2018 Valerie Young. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+esid: sec-%asyncfromsynciteratorprototype%.next
+description: next() returns a promise for an IteratorResult object
+info: |
+ %AsyncFromSyncIteratorPrototype%.next ( value )
+ ...
+ 2. Let promiseCapability be ! NewPromiseCapability(%Promise%).
+ ...
+ 5. Let nextResult be IteratorNext(syncIteratorRecord, value).
+ 6. IfAbruptRejectPromise(nextResult, promiseCapability).
+ 7. Let nextDone be IteratorComplete(nextResult).
+ 8. If AbruptRejectPromise(nextDone, promiseCapability).
+ 9. Let nextValue be IteratorValue(nextResult).
+ 10. IfAbruptRejectPromise(nextValue, promiseCapability).
+ ...
+ 14. Let steps be the algorithm steps defined in Async-from-Sync Iterator Value Unwrap Functions.
+
+ Async-from-Sync Iterator Value Unwrap Functions
+ 1. Return ! CreateIterResultObject(value, F.[[Done]]).
+
+flags: [async]
+features: [async-iteration]
+---*/
+
+function* g() {}
+
+async function* asyncg() {
+ yield* g();
+}
+
+asyncg().next().then(function (result) {
+ assert(
+ Object.prototype.hasOwnProperty.call(result, 'value'), 'Has "own" property `value`'
+ );
+ assert(
+ Object.prototype.hasOwnProperty.call(result, 'done'), 'Has "own" property `done`'
+ );
+ assert.sameValue(Object.getPrototypeOf(result), Object.prototype);
+}).then($DONE, $DONE);