blob: 3e48ab4dea59f76c2e317fa595321dd99b4fc73b [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-elision-iter.case
3// - src/dstr-binding/default/func-decl.template
4/*---
5description: BindingElement with array binding pattern and initializer is not used (function declaration)
6esid: sec-function-definitions-runtime-semantics-instantiatefunctionobject
7es6id: 14.1.19
8features: [generators, destructuring-binding]
9flags: [generated]
10info: |
11 FunctionDeclaration :
12 function BindingIdentifier ( FormalParameters ) { FunctionBody }
13
14 [...]
15 3. Let F be FunctionCreate(Normal, FormalParameters, FunctionBody,
16 scope, strict).
17 [...]
18
19 9.2.1 [[Call]] ( thisArgument, argumentsList)
20
21 [...]
22 7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
23 [...]
24
25 9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
26
27 1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
28 [...]
29
30 9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
31
32 [...]
33 23. Let iteratorRecord be Record {[[iterator]]:
34 CreateListIterator(argumentsList), [[done]]: false}.
35 24. If hasDuplicates is true, then
36 [...]
37 25. Else,
38 b. Let formalStatus be IteratorBindingInitialization for formals with
39 iteratorRecord and env as arguments.
40 [...]
41
42 13.3.3.6 Runtime Semantics: IteratorBindingInitialization
43
44 BindingElement : BindingPatternInitializer opt
45
46 1. If iteratorRecord.[[done]] is false, then
47 a. Let next be IteratorStep(iteratorRecord.[[iterator]]).
48 [...]
49 e. Else,
50 i. Let v be IteratorValue(next).
51 [...]
52 4. Return the result of performing BindingInitialization of BindingPattern
53 with v and environment as the arguments.
54
55---*/
56var callCount = 0;
57function* g() {
58 callCount += 1;
59};
60
61var callCount = 0;
62function f([[,] = g()]) {
63 assert.sameValue(callCount, 0);
64 callCount = callCount + 1;
65};
66f([[]]);
67assert.sameValue(callCount, 1, 'function invoked exactly once');