named-dflt-params-arg-val-not-undefined.js (2171B)
1 // |reftest| async 2 // This file was procedurally generated from the following sources: 3 // - src/function-forms/dflt-params-arg-val-not-undefined.case 4 // - src/function-forms/default/async-func-expr-named.template 5 /*--- 6 description: Use of initializer when argument value is not `undefined` (async function named expression) 7 esid: sec-async-function-definitions 8 features: [default-parameters, async-functions] 9 flags: [generated, async] 10 info: | 11 14.6 Async Function Definitions 12 13 AsyncFunctionExpression : 14 async function BindingIdentifier ( FormalParameters ) { AsyncFunctionBody } 15 16 17 14.1.19 Runtime Semantics: IteratorBindingInitialization 18 19 FormalsList : FormalsList , FormalParameter 20 21 [...] 22 23. Let iteratorRecord be Record {[[Iterator]]: 23 CreateListIterator(argumentsList), [[Done]]: false}. 24 24. If hasDuplicates is true, then 25 [...] 26 25. Else, 27 a. Perform ? IteratorBindingInitialization for formals with 28 iteratorRecord and env as arguments. 29 [...] 30 31 ---*/ 32 var obj = {}; 33 var falseCount = 0; 34 var stringCount = 0; 35 var nanCount = 0; 36 var zeroCount = 0; 37 var nullCount = 0; 38 var objCount = 0; 39 40 41 var callCount = 0; 42 43 // Stores a reference `ref` for case evaluation 44 var ref; 45 ref = async function ref(aFalse = falseCount +=1, aString = stringCount += 1, aNaN = nanCount += 1, a0 = zeroCount += 1, aNull = nullCount += 1, aObj = objCount +=1) { 46 assert.sameValue(aFalse, false); 47 assert.sameValue(aString, ''); 48 assert.sameValue(aNaN, NaN); 49 assert.sameValue(a0, 0); 50 assert.sameValue(aNull, null); 51 assert.sameValue(aObj, obj); 52 callCount = callCount + 1; 53 }; 54 55 ref(false, '', NaN, 0, null, obj).then(() => { 56 assert.sameValue(callCount, 1, 'function invoked exactly once'); 57 }).then($DONE, $DONE); 58 59 assert.sameValue(falseCount, 0, 'initializer not evaluated: false'); 60 assert.sameValue(stringCount, 0, 'initializer not evaluated: string'); 61 assert.sameValue(nanCount, 0, 'initializer not evaluated: NaN'); 62 assert.sameValue(zeroCount, 0, 'initializer not evaluated: 0'); 63 assert.sameValue(nullCount, 0, 'initializer not evaluated: null'); 64 assert.sameValue(objCount, 0, 'initializer not evaluated: object');