summaryrefslogtreecommitdiff
path: root/src/dstr-assignment/array-rest-nested-array-yield-expr.case
diff options
context:
space:
mode:
Diffstat (limited to 'src/dstr-assignment/array-rest-nested-array-yield-expr.case')
-rw-r--r--src/dstr-assignment/array-rest-nested-array-yield-expr.case37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/dstr-assignment/array-rest-nested-array-yield-expr.case b/src/dstr-assignment/array-rest-nested-array-yield-expr.case
new file mode 100644
index 000000000..75b97caf0
--- /dev/null
+++ b/src/dstr-assignment/array-rest-nested-array-yield-expr.case
@@ -0,0 +1,37 @@
+// Copyright (C) 2015 the V8 project authors. All rights reserved.
+// This code is governed by the BSD license found in the LICENSE file.
+
+/*---
+desc: >
+ When a `yield` token appears within the DestructuringAssignmentTarget of a
+ nested destructuring assignment and within a generator function body, it
+ should behave as a YieldExpression.
+template: default
+es6id: 12.14.5.3
+features: [generators]
+---*/
+
+//- setup
+var value = [86];
+var x = {};
+var iterationResult, iter;
+
+iter = (function*() {
+//- elems
+[...[x[yield]]]
+//- vals
+[86]
+//- teardown
+}());
+
+iterationResult = iter.next();
+
+assert.sameValue(iterationResult.value, undefined);
+assert.sameValue(iterationResult.done, false);
+assert.sameValue(x.prop, undefined);
+
+iterationResult = iter.next('prop');
+
+assert.sameValue(iterationResult.value, undefined);
+assert.sameValue(iterationResult.done, true);
+assert.sameValue(x.prop, 86);