blob: 3ec4a84f8eb28a51e4e6836b3cc8be6053022a18 [file] [log] [blame]
// Copyright (C) 2018 Valerie Young. All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.
/*---
description: >
Default exports are included in an imported module namespace object when module exported with `* as namespace`
esid: sec-moduledeclarationinstantiation
info: |
[...]
4. Let result be InnerModuleInstantiation(module, stack, 0).
[...]
InnerModuleInstantiation( module, stack, index )
[...]
10. Perform ? ModuleDeclarationEnvironmentSetup(module).
[...]
ModuleDeclarationEnvironmentSetup( module )
[...]
c. If in.[[ImportName]] is "*", then
[...]
d. Else,
i. Let resolution be ? importedModule.ResolveExport(in.[[ImportName]], « »).
ii. If resolution is null or "ambiguous", throw a SyntaxError exception.
iii. If resolution.[[BindingName]] is "*namespace*", then
1. Let namespace be ? GetModuleNamespace(resolution.[[Module]]).
[...]
15.2.1.18 Runtime Semantics: GetModuleNamespace
[...]
3. If namespace is undefined, then
a. Let exportedNames be ? module.GetExportedNames(« »).
[...]
15.2.1.16.2 GetExportedNames
[...]
7. For each ExportEntry Record e in module.[[StarExportEntries]], do
[...]
c. For each element n of starNames, do
i. If SameValue(n, "default") is false, then
[...]
flags: [module]
features: [export-star-as-namespace-from-module]
---*/
import {named} from './instn-star-props-dflt-skip-star-as-named_FIXTURE.js';
import {production} from './instn-star-props-dflt-skip-star-as-prod_FIXTURE.js';
assert('namedOther' in named);
assert.sameValue(
'default' in named, true, 'default specified via identifier'
);
assert('productionOther' in production);
assert.sameValue(
'default' in production, true, 'default specified via dedicated production'
);