blob: 0e1122a5642e27d68c948a20bda93dc173dac773 [file] [log] [blame]
keith_miller@apple.combcc77f22016-07-15 06:03:25 +00001// This file was procedurally generated from the following sources:
2// - src/dflt-params/ref-later.case
3// - src/dflt-params/error/func-expr.template
4/*---
5description: Referencing a parameter that occurs later in the ParameterList (function expression)
6esid: sec-function-definitions-runtime-semantics-evaluation
7es6id: 14.1.20
8features: [default-parameters]
9flags: [generated]
10info: |
11 FunctionExpression : function ( FormalParameters ) { FunctionBody }
12
13 [...]
14 3. Let closure be FunctionCreate(Normal, FormalParameters, FunctionBody,
15 scope, strict).
16 [...]
17
18 9.2.1 [[Call]] ( thisArgument, argumentsList)
19
20 [...]
21 7. Let result be OrdinaryCallEvaluateBody(F, argumentsList).
22 [...]
23
24 9.2.1.3 OrdinaryCallEvaluateBody ( F, argumentsList )
25
26 1. Let status be FunctionDeclarationInstantiation(F, argumentsList).
27 [...]
28
29 9.2.12 FunctionDeclarationInstantiation(func, argumentsList)
30
31 [...]
32 23. Let iteratorRecord be Record {[[iterator]]:
33 CreateListIterator(argumentsList), [[done]]: false}.
34 24. If hasDuplicates is true, then
35 [...]
36 25. Else,
37 b. Let formalStatus be IteratorBindingInitialization for formals with
38 iteratorRecord and env as arguments.
39 [...]
40
41 14.1.19 Runtime Semantics: IteratorBindingInitialization
42
43 FormalsList : FormalsList , FormalParameter
44
45 1. Let status be the result of performing IteratorBindingInitialization for
46 FormalsList using iteratorRecord and environment as the arguments.
47 2. ReturnIfAbrupt(status).
48 3. Return the result of performing IteratorBindingInitialization for
49 FormalParameter using iteratorRecord and environment as the arguments.
50---*/
51var x = 0;
52
53var callCount = 0;
54var f;
55f = function(x = y, y) {
56
57 callCount = callCount + 1;
58};
59
60assert.throws(ReferenceError, function() {
61 f();
62});
63assert.sameValue(callCount, 0, 'function body not evaluated');