tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

eval-export-dflt-expr-cls-name-meth.js (1439B)


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