// |reftest| async // This file was procedurally generated from the following sources: // - src/async-functions/returns-async-arrow-returns-arguments-from-parent-function.case // - src/async-functions/evaluation/async-class-decl-method.template /*--- description: Async function returns an async function. (Async method as a ClassDeclaration element) esid: prod-AsyncMethod features: [async-functions] flags: [generated, async] info: | ClassElement : MethodDefinition MethodDefinition : AsyncMethod Async Function Definitions AsyncMethod : async [no LineTerminator here] PropertyName ( UniqueFormalParameters ) { AsyncFunctionBody } ---*/ let count = 0; class C { async method(x) { let a = arguments; return async () => a === arguments; } } // Stores a reference `asyncFn` for case evaluation let c = new C(); let asyncFn = c.method.bind(c); asyncFn().then(retFn => { count++; return retFn(); }).then(result => { assert.sameValue(result, true); assert.sameValue(count, 1); }).then($DONE, $DONE);