| browser.js |
|
0 |
- |
| ensure-linking-error_FIXTURE.js |
|
411 |
- |
| import-source-binding-name-2_FIXTURE.js |
|
745 |
- |
| import-source-binding-name_FIXTURE.js |
|
729 |
- |
| import-source-newlines_FIXTURE.js |
|
1017 |
- |
| import-source.js |
---
description: >
Verify that ImportDeclaration can be correctly parsed.
esid: sec-modules
features: [source-phase-imports]
flags: [async]
includes: [asyncHelpers.js]
--- |
1400 |
- |
| reexport-source-binding-named-import.js |
---
description: >
A named import of a re-exported source-phase binding is initialized to the
imported module's ModuleSource object.
esid: sec-source-text-module-record-initialize-environment
info: |
When a module does `import source x from "..."; export { x };`, ParseModule
reclassifies the local re-export to an indirect ExportEntry whose
[[ImportName]] is ~source~. ResolveExport on the re-exporting module returns
a ResolvedBinding Record with [[BindingName]] ~source~ and [[Module]] set to
the source-phase target module.
InitializeEnvironment ( )
7. For each ImportEntry Record in of module.[[ImportEntries]], do
[...]
d. Else,
i. Assert: in.[[ImportName]] is a String.
ii. Let resolution be importedModule.ResolveExport(in.[[ImportName]]).
iii. If resolution is either null or ambiguous, throw a SyntaxError.
iv. If resolution.[[BindingName]] is namespace, then [...]
v. Else if resolution.[[BindingName]] is source, then
1. Let moduleSourceObject be resolution.[[Module]].[[ModuleSource]].
2. If moduleSourceObject is empty, throw a SyntaxError exception.
3. Perform ! env.CreateImmutableBinding(in.[[LocalName]], true).
4. Perform ! env.InitializeBinding(in.[[LocalName]], moduleSourceObject).
The named import `x` is therefore bound directly to the ModuleSource object
of the underlying module, an instance of %AbstractModuleSource%.
features: [source-phase-imports, source-phase-imports-module-source]
flags: [module]
--- |
2465 |
- |
| reexport-source-binding-namespace-get.js |
---
description: >
Namespace [[Get]] of a re-exported source-phase binding returns the
imported module's ModuleSource object.
esid: sec-module-namespace-exotic-objects-get-p-receiver
info: |
When a module does `import source x from "..."; export { x };`, ParseModule
reclassifies the local re-export to an indirect ExportEntry whose
[[ImportName]] is ~source~. ResolveExport on the re-exporting module returns
a ResolvedBinding Record with [[BindingName]] ~source~ and [[Module]] set to
the source-phase target module.
Module Namespace Exotic Object [[Get]] ( P, Receiver )
[...]
7. If binding.[[BindingName]] is namespace, then
a. Return GetModuleNamespace(targetModule).
8. If binding.[[BindingName]] is source, then
a. Let moduleSourceObject be targetModule.[[ModuleSource]].
b. If moduleSourceObject is empty, throw a ReferenceError exception.
c. Return moduleSourceObject.
9. [...]
Accessing the re-exported binding via `ns.x` therefore returns the
ModuleSource object of the underlying module, an instance of
%AbstractModuleSource%.
features: [source-phase-imports, source-phase-imports-module-source]
flags: [module]
--- |
2092 |
- |
| reexport-source-binding_FIXTURE.js |
|
182 |
- |
| shell.js |
---
description: |
A collection of assertion and wrapper functions for testing asynchronous built-ins.
defines: [asyncTest, assert.throwsAsync]
--- |
3626 |
- |