tor-browser

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

call-expr-identifier.js (1742B)


      1 // |reftest| async
      2 // Copyright (C) 2018 Leo Balter. All rights reserved.
      3 // This code is governed by the BSD license found in the LICENSE file.
      4 /*---
      5 description: >
      6    Dynamic Import receives an AssignmentExpression (CallExpression . IdentifierName)
      7 esid: prod-ImportCall
      8 info: |
      9    ImportCall [Yield]:
     10        import ( AssignmentExpression[+In, ?Yield] )
     11 
     12    AssignmentExpression[In, Yield, Await]:
     13        ConditionalExpression[?In, ?Yield, ?Await]
     14        [+Yield]YieldExpression[?In, ?Await]
     15        ArrowFunction[?In, ?Yield, ?Await]
     16        AsyncArrowFunction[?In, ?Yield, ?Await]
     17        LeftHandSideExpression[?Yield, ?Await] = AssignmentExpression[?In, ?Yield, ?Await]
     18        LeftHandSideExpression[?Yield, ?Await] AssignmentOperator AssignmentExpression[?In, ?Yield, ?Await]
     19 
     20    CallExpression[Yield, Await]:
     21        CoverCallExpressionAndAsyncArrowHead[?Yield, ?Await]
     22        SuperCall[?Yield, ?Await]
     23        CallExpression[?Yield, ?Await]Arguments[?Yield, ?Await]
     24        CallExpression[?Yield, ?Await][Expression[+In, ?Yield, ?Await]]
     25        CallExpression[?Yield, ?Await].IdentifierName
     26        CallExpression[?Yield, ?Await]TemplateLiteral[?Yield, ?Await, +Tagged]
     27 flags: [async]
     28 features: [dynamic-import]
     29 includes: [asyncHelpers.js]
     30 ---*/
     31 
     32 const a = () => ({
     33    x: './module-code_FIXTURE.js',
     34    y: './module-code-other_FIXTURE.js'
     35 });
     36 
     37 async function fn() {
     38    const ns1 = await import(a().x); // import('./module-code_FIXTURE.js')
     39 
     40    assert.sameValue(ns1.local1, 'Test262');
     41    assert.sameValue(ns1.default, 42);
     42 
     43    const ns2 = await import(a().y); // import('./module-code-other_FIXTURE.js')
     44 
     45    assert.sameValue(ns2.local1, 'one six one two');
     46    assert.sameValue(ns2.default, 1612);
     47 }
     48 
     49 asyncTest(fn);