diff options
Diffstat (limited to 'js/src/tests/test262/language/module-code/instn-star-ambiguous.js')
-rw-r--r-- | js/src/tests/test262/language/module-code/instn-star-ambiguous.js | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/js/src/tests/test262/language/module-code/instn-star-ambiguous.js b/js/src/tests/test262/language/module-code/instn-star-ambiguous.js new file mode 100644 index 0000000000..92d8ccf850 --- /dev/null +++ b/js/src/tests/test262/language/module-code/instn-star-ambiguous.js @@ -0,0 +1,38 @@ +// |reftest| module +// 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'); + +reportCompare(0, 0); |