named-strict-error-reassign-fn-name-in-body-in-eval-strict.js (1115B)
1 // |reftest| async 2 'use strict'; 3 // This file was procedurally generated from the following sources: 4 // - src/function-forms/reassign-fn-name-in-body-in-eval.case 5 // - src/function-forms/expr-named/async-gen-func-expr-named-strict-error.template 6 /*--- 7 description: Reassignment of function name is silently ignored in non-strict mode code. (async generator named function expression in strict mode code) 8 esid: sec-asyncgenerator-definitions-evaluation 9 features: [async-iteration] 10 flags: [generated, async, onlyStrict] 11 includes: [asyncHelpers.js] 12 info: | 13 AsyncGeneratorExpression : 14 async function * BindingIdentifier ( FormalParameters ) { AsyncGeneratorBody } 15 16 ---*/ 17 18 // increment callCount in case "body" 19 let callCount = 0; 20 let ref = async function * BindingIdentifier() { 21 callCount++; 22 eval("BindingIdentifier = 1"); 23 return BindingIdentifier; 24 }; 25 26 asyncTest(async () => { 27 let catchCount = 0; 28 try { 29 (await (await ref()).next()).value 30 } catch (error) { 31 catchCount++; 32 assert(error instanceof TypeError); 33 } 34 assert.sameValue(catchCount, 1); 35 assert.sameValue(callCount, 1); 36 });