mirror of
https://github.com/tc39/test262.git
synced 2025-07-16 10:34:44 +02:00
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.
36 lines
860 B
Plaintext
36 lines
860 B
Plaintext
// 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 Initializer of a nested
|
|
destructuring assignment and within a generator function body, it should
|
|
behave as a YieldExpression.
|
|
template: default
|
|
es6id: 12.14.5.4
|
|
features: [generators]
|
|
---*/
|
|
|
|
//- setup
|
|
var iterationResult, iter, x = undefined;
|
|
|
|
iter = (function*() {
|
|
//- elems
|
|
{ x: { x = yield } }
|
|
//- vals
|
|
{ x: {} }
|
|
//- teardown
|
|
}());
|
|
|
|
iterationResult = iter.next();
|
|
|
|
assert.sameValue(iterationResult.value, undefined);
|
|
assert.sameValue(iterationResult.done, false);
|
|
assert.sameValue(x, undefined);
|
|
|
|
iterationResult = iter.next(4);
|
|
|
|
assert.sameValue(iterationResult.value, undefined);
|
|
assert.sameValue(iterationResult.done, true);
|
|
assert.sameValue(x, 4);
|