mirror of https://github.com/tc39/test262.git
53 lines
2.5 KiB
JavaScript
53 lines
2.5 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: >
|
|
Module namespace object reports properties for all ExportEntries of all
|
|
dependencies.
|
|
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).
|
|
[...]
|
|
|
|
Runtime Semantics: GetModuleNamespace
|
|
3. If namespace is undefined, then
|
|
a. Let exportedNames be ? module.GetExportedNames(« »).
|
|
b. Let unambiguousNames be a new empty List.
|
|
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]
|
|
features: [export-star-as-namespace-from-module]
|
|
---*/
|
|
|
|
import * as ns from './get-nested-namespace-props-nrml-1_FIXTURE.js';
|
|
|
|
// Export entries defined by a re-exported as exportns module
|
|
assert('starAsVarDecl' in ns.exportns, 'starssVarDecl');
|
|
assert('starAsLetDecl' in ns.exportns, 'starSsLetDecl');
|
|
assert('starAsConstDecl' in ns.exportns, 'starSsConstDecl');
|
|
assert('starAsFuncDecl' in ns.exportns, 'starAsFuncDecl');
|
|
assert('starAsGenDecl' in ns.exportns, 'starAsGenDecl');
|
|
assert('starAsClassDecl' in ns.exportns, 'starAsClassDecl');
|
|
assert('starAsBindingId' in ns.exportns, 'starAsBindingId');
|
|
assert('starIdName' in ns.exportns, 'starIdName');
|
|
assert('starAsIndirectIdName' in ns.exportns, 'starAsIndirectIdName');
|
|
assert('starAsIndirectIdName2' in ns.exportns, 'starAsIndirectIdName2');
|
|
assert('namespaceBinding' in ns.exportns, 'namespaceBinding');
|
|
|
|
// Bindings that were not exported from any module
|
|
assert.sameValue('nonExportedVar' in ns.exportns, false, 'nonExportedVar');
|
|
assert.sameValue('nonExportedLet' in ns.exportns, false, 'nonExportedLet');
|
|
assert.sameValue('nonExportedConst' in ns.exportns, false, 'nonExportedConst');
|
|
assert.sameValue('nonExportedFunc' in ns.exportns, false, 'nonExportedFunc');
|
|
assert.sameValue('nonExportedGen' in ns.exportns, false, 'nonExportedGen');
|
|
assert.sameValue('nonExportedClass' in ns.exportns, false, 'nonExportedClass');
|