// |reftest| shell-option(--enable-top-level-await) skip-if(!xulRuntime.shell) module async -- requires shell-options // This file was procedurally generated from the following sources: // - src/computed-property-names/computed-property-name-from-await-expression.case // - src/computed-property-names/evaluation/class-declaration-accessors.template /*--- description: Computed property name from condition expression (ComputedPropertyName in ClassDeclaration) esid: prod-ComputedPropertyName features: [computed-property-names, top-level-await] flags: [generated, async, module] info: | ClassExpression: classBindingIdentifier opt ClassTail ClassTail: ClassHeritage opt { ClassBody opt } ClassBody: ClassElementList ClassElementList: ClassElement ClassElement: MethodDefinition MethodDefinition: PropertyName ... get PropertyName ... set PropertyName ... PropertyName: ComputedPropertyName ComputedPropertyName: [ AssignmentExpression ] ---*/ try { class C { get [await 9]() { return 9; } set [await 9](v) { return 9; } static get [await 9]() { return 9; } static set [await 9](v) { return 9; } }; let c = new C(); assert.sameValue( c[await 9], 9 ); assert.sameValue( c[await 9] = 9, 9 ); assert.sameValue( C[await 9], 9 ); assert.sameValue( C[await 9] = 9, 9 ); assert.sameValue( c[String(await 9)], 9 ); assert.sameValue( c[String(await 9)] = 9, 9 ); assert.sameValue( C[String(await 9)], 9 ); assert.sameValue( C[String(await 9)] = 9, 9 ); } catch (e) { $DONE(e); } $DONE();