Skip to content

Latest commit

 

History

History
55 lines (38 loc) · 1.74 KB

ESTree.md

File metadata and controls

55 lines (38 loc) · 1.74 KB

This document specifies the extensions to the ESTree ES6 AST types to support this module export extensions proposal.

Modules

ExportNamedDeclaration

extend interface ExportNamedDeclaration {
    specifiers: [ ExportSpecifier | ExportDefaultSpecifier | ExportNamespaceSpecifier ];
}

Extends the ExportNamedDeclaration, e.g., export {foo} from "mod"; to allow two new types of specifiers: ExportDefaultSpecifier and ExportNamespaceSpecifier.

Note: When source is null, having specifiers include either ExportDefaultSpecifier or ExportNamespaceSpecifier results in an invalid state.

Note: Having specifiers include more than one of either ExportDefaultSpecifier or ExportNamespaceSpecifier results in an invalid state.

Note: Having specifiers include both ExportNamespaceSpecifier and ExportSpecifier results in an invalid state.

ExportDefaultSpecifier

interface ExportDefaultSpecifier <: Node {
    type: "ExportDefaultSpecifier";
    exported: Identifier;
}

An exported binding foo in export foo from "mod";. The exported field refers to the name exported in this module. That name is bound to the "default" export from the source of the parent ExportNamedDeclaration.

ExportNamespaceSpecifier

interface ExportNamespaceSpecifier <: Node {
    type: "ExportNamespaceSpecifier";
    exported: Identifier;
}

An exported binding * as ns in export * as ns from "mod";. The exported field refers to the name exported in this module. That name is bound to the ModuleNameSpace exotic object from the source of the parent ExportNamedDeclaration.