omitted-from-namespace.js (1484B)
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 Ambiguous exports are not reflected in module namespace objects, nor do 7 they trigger an error upon resolution 8 esid: sec-moduledeclarationinstantiation 9 info: | 10 [...] 11 12. For each ImportEntry Record in in module.[[ImportEntries]], do 12 a. Let importedModule be ? HostResolveImportedModule(module, 13 in.[[ModuleRequest]]). 14 b. If in.[[ImportName]] is "*", then 15 i. Let namespace be ? GetModuleNamespace(importedModule). 16 [...] 17 18 15.2.1.18 Runtime Semantics: GetModuleNamespace 19 20 [...] 21 3. If namespace is undefined, then 22 [...] 23 c. For each name that is an element of exportedNames, 24 i. Let resolution be ? module.ResolveExport(name, « », « »). 25 ii. If resolution is null, throw a SyntaxError exception. 26 iii. If resolution is not "ambiguous", append name to 27 unambiguousNames. 28 d. Let namespace be ModuleNamespaceCreate(module, unambiguousNames). 29 flags: [module] 30 ---*/ 31 32 import * as ns from './omitted-from-namespace_FIXTURE.js'; 33 34 assert('first' in ns, 'Non-ambiguous exports from first module are present'); 35 assert('second' in ns, 'Non-ambiguous exports from second module are present'); 36 assert.sameValue('both' in ns, false, 'Ambiguous export is not present'); 37 38 reportCompare(0, 0);