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);