summaryrefslogtreecommitdiff
path: root/src/async-generators/yield-promise-reject-next-catch.case
diff options
context:
space:
mode:
Diffstat (limited to 'src/async-generators/yield-promise-reject-next-catch.case')
-rw-r--r--src/async-generators/yield-promise-reject-next-catch.case27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/async-generators/yield-promise-reject-next-catch.case b/src/async-generators/yield-promise-reject-next-catch.case
new file mode 100644
index 000000000..bc0568133
--- /dev/null
+++ b/src/async-generators/yield-promise-reject-next-catch.case
@@ -0,0 +1,27 @@
+// Copyright (C) 2017 the V8 project authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+desc: yield Promise.reject(value) is treated as throw value
+template: default
+flags: [async]
+---*/
+
+//- setup
+let error = new Error();
+//- body
+yield Promise.reject(error);
+yield "unreachable";
+//- assertions
+iter.next().then(() => {
+ throw new Test262Error("Promise incorrectly resolved.");
+}).catch(rejectValue => {
+ // yield Promise.reject(error);
+ assert.sameValue(rejectValue, error);
+
+ iter.next().then(({done, value}) => {
+ // iter is closed now.
+ assert.sameValue(done, true, "The value of IteratorResult.done is `true`");
+ assert.sameValue(value, undefined, "The value of IteratorResult.value is `undefined`");
+ }).then($DONE, $DONE);
+});