blob: 383e085750b4aba795b40bddcabd3481c67a033d [file] [log] [blame]
keith_miller@apple.combcc77f22016-07-15 06:03:25 +00001// This file was procedurally generated from the following sources:
2// - src/dstr-binding/ary-ptrn-elem-ary-rest-init.case
3// - src/dstr-binding/default/var-stmt.template
4/*---
5description: BindingElement with array binding pattern and initializer is used (`var` statement)
6esid: sec-variable-statement-runtime-semantics-evaluation
7es6id: 13.3.2.4
8features: [destructuring-binding]
9flags: [generated]
10info: |
11 VariableDeclaration : BindingPattern Initializer
12
13 1. Let rhs be the result of evaluating Initializer.
14 2. Let rval be GetValue(rhs).
15 3. ReturnIfAbrupt(rval).
16 4. Return the result of performing BindingInitialization for
17 BindingPattern passing rval and undefined as arguments.
18
19 13.3.3.6 Runtime Semantics: IteratorBindingInitialization
20
21 BindingElement : BindingPatternInitializer opt
22
23 [...]
24 2. If iteratorRecord.[[done]] is true, let v be undefined.
25 3. If Initializer is present and v is undefined, then
26 a. Let defaultValue be the result of evaluating Initializer.
27 b. Let v be ? GetValue(defaultValue).
28 4. Return the result of performing BindingInitialization of BindingPattern
29 with v and environment as the arguments.
30---*/
31var values = [2, 1, 3];
32
33var [[...x] = values] = [];
34
35assert(Array.isArray(x));
36assert.sameValue(x[0], 2);
37assert.sameValue(x[1], 1);
38assert.sameValue(x[2], 3);
39assert.sameValue(x.length, 3);
40assert.notSameValue(x, values);