async-meth-dflt-params-arg-val-not-undefined.js (2161B)
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-meth.template 5 /*--- 6 description: Use of initializer when argument value is not `undefined` (async method) 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 AsyncMethod : 14 async PropertyName ( UniqueFormalParameters ) { 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 var __obj = { 43 async method(aFalse = falseCount +=1, aString = stringCount += 1, aNaN = nanCount += 1, a0 = zeroCount += 1, aNull = nullCount += 1, aObj = objCount +=1) { 44 assert.sameValue(aFalse, false); 45 assert.sameValue(aString, ''); 46 assert.sameValue(aNaN, NaN); 47 assert.sameValue(a0, 0); 48 assert.sameValue(aNull, null); 49 assert.sameValue(aObj, obj); 50 callCount = callCount + 1; 51 } 52 }; 53 54 // Stores a reference `ref` for case evaluation 55 var ref = __obj.method; 56 57 ref(false, '', NaN, 0, null, obj).then(() => { 58 assert.sameValue(callCount, 1, 'async method invoked exactly once'); 59 }).then($DONE, $DONE); 60 61 assert.sameValue(falseCount, 0, 'initializer not evaluated: false'); 62 assert.sameValue(stringCount, 0, 'initializer not evaluated: string'); 63 assert.sameValue(nanCount, 0, 'initializer not evaluated: NaN'); 64 assert.sameValue(zeroCount, 0, 'initializer not evaluated: 0'); 65 assert.sameValue(nullCount, 0, 'initializer not evaluated: null'); 66 assert.sameValue(objCount, 0, 'initializer not evaluated: object');