From c24a206511841e14f156b929005b9e5597c05965 Mon Sep 17 00:00:00 2001 From: Mike Pennisi Date: Fri, 20 May 2016 18:58:23 -0400 Subject: Re-format destructuring assignment tests Utilize the test generation tool to increase coverage of destructuring assignment semantics. Previously, only destructuring assignment in the AssignmentExpression position was tested. With this change applied, the same tests will assert expected behavior for destructuring assignment in `for..of` statements, as well. A limited number of tests are applied to the `for..in` statement as well, but due to the iteration protocol observed by that statement, many destructuring tests are not relevant, and others cannot be automatically generated from this format. --- .../array-rest-nested-array-yield-expr.case | 37 ++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 src/dstr-assignment/array-rest-nested-array-yield-expr.case (limited to 'src/dstr-assignment/array-rest-nested-array-yield-expr.case') 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); -- cgit v1.2.1