test262/test/language/module-code/instn-star-ambiguous.js

36 lines
1.4 KiB
JavaScript

// Copyright (C) 2016 the V8 project authors. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
description: >
Ambiguous exports are not reflected in module namespace objects, nor do
they trigger an error upon resolution
esid: sec-moduledeclarationinstantiation
info: |
[...]
12. For each ImportEntry Record in in module.[[ImportEntries]], do
a. Let importedModule be ? HostResolveImportedModule(module,
in.[[ModuleRequest]]).
b. If in.[[ImportName]] is "*", then
i. Let namespace be ? GetModuleNamespace(importedModule).
[...]
15.2.1.18 Runtime Semantics: GetModuleNamespace
[...]
3. If namespace is undefined, then
[...]
c. For each name that is an element of exportedNames,
i. Let resolution be ? module.ResolveExport(name, « », « »).
ii. If resolution is null, throw a SyntaxError exception.
iii. If resolution is not "ambiguous", append name to
unambiguousNames.
d. Let namespace be ModuleNamespaceCreate(module, unambiguousNames).
flags: [module]
---*/
import * as ns from './instn-star-ambiguous_FIXTURE.js';
assert('first' in ns, 'Non-ambiguous exports from first module are present');
assert('second' in ns, 'Non-ambiguous exports from second module are present');
assert.sameValue('both' in ns, false, 'Ambiguous export is not present');