eval-export-dflt-expr-cls-name-meth.js (1304B)
1 // |reftest| module 2 // Copyright (C) 2016 the V8 project authors. All rights reserved. 3 // This code is governed by the BSD license found in the LICENSE file. 4 /*--- 5 description: > 6 Default AssignmentExpression (which can be recognized as an "anonymous" 7 class declaration with a static `name` method) is correctly initialized 8 upon evaluation 9 esid: sec-moduleevaluation 10 info: | 11 [...] 12 16. Let result be the result of evaluating module.[[ECMAScriptCode]]. 13 [...] 14 15 15.2.3.11 Runtime Semantics: Evaluation 16 17 ExportDeclaration : export default ClassDeclaration 18 19 [...] 20 3. Let className be the sole element of BoundNames of ClassDeclaration. 21 4. If className is "*default*", then 22 a. Let hasNameProperty be ? HasOwnProperty(value, "name"). 23 b. If hasNameProperty is false, perform SetFunctionName(value, 24 "default"). 25 c. Let env be the running execution context's LexicalEnvironment. 26 d. Perform ? InitializeBoundName("*default*", value, env). 27 5. Return NormalCompletion(empty). 28 flags: [module] 29 ---*/ 30 31 export default (class { static name() { return 'name method'; } }); 32 import C from './eval-export-dflt-expr-cls-name-meth.js'; 33 34 assert.sameValue( 35 C.name(), 'name method', '`name` property is not over-written' 36 ); 37 38 reportCompare(0, 0);