Normative: Add export * as ns from "mod” to Export production and Module Semantic#1174
Normative: Add export * as ns from "mod” to Export production and Module Semantic#1174ljharb merged 1 commit intotc39:masterfrom
export * as ns from "mod” to Export production and Module Semantic#1174Conversation
export * as ns from "mod” to Export production and Module Semanticexport * as ns from "mod” to Export production and Module Semantic
|
I updated table 38 based on the modifications made for |
|
Looks good to me, if you want to bikeshed over the new additions: - A List of ExportEntry records derived from the code of this module that correspond to reexported imports that occur within the module or direct exports from an export * as namespace.
+ A List of ExportEntry records derived from the code of this module that correspond to reexported imports that occur within the module or exports from export * as namespace declarations.- A List of ExportEntry records derived from the code of this module that correspond to export * declarations (but not export * as namespace declarations) that occur within the module.
+ A List of ExportEntry records derived from the code of this module that correspond to export * declarations that occur within the module except from export * as namespace declarations. |
b3e3f60 to
5999e11
Compare
|
@ljharb -- you might want to "re-review", I changed how export * as namespace declarations ResolveBinding records are made. I removed the [[isNamespace]] I added and instead the [[BindingName]] is you can see the updated pretty diff here: https://spectranaut.github.io/proposal-export-ns-from/#sec-module-namespace-exotic-objects |
|
@spectranaut would you mind rebasing this? it'd also be great if we could add this to the agenda for july, now that its tests are merged. |
|
Expressing that we have consensus to move forward on this feature but we are waiting on vms to implement this feature before it's merged. Similar to the stage 3 process. Test262 tests are already available, and I'll be happy to point them. |
ec319d4 to
a6cbfac
Compare
|
Rebased, @ljharb :) |
Add support for `export * as ns from "a";` syntax. This was added in ECMAScript 2020. One wrinkle in the implementation is that the parser decides whether to use a lexical vs indirect binding before module linking. Instead, we reserve a hidden environment slot called "*namespace*" for each module that can be referenced by indirect binding maps as needed. Spec is a needs-consensus PR at tc39/ecma262#1174 Depends on D80984 Differential Revision: https://phabricator.services.mozilla.com/D80777
Add support for `export * as ns from "a";` syntax. This was added in ECMAScript 2020. One wrinkle in the implementation is that the parser decides whether to use a lexical vs indirect binding before module linking. Instead, we reserve a hidden environment slot called "*namespace*" for each module that can be referenced by indirect binding maps as needed. Spec is a needs-consensus PR at tc39/ecma262#1174 Depends on D80984 Differential Revision: https://phabricator.services.mozilla.com/D80777
Add support for `export * as ns from "a";` syntax. This was added in ECMAScript 2020. One wrinkle in the implementation is that the parser decides whether to use a lexical vs indirect binding before module linking. Instead, we reserve a hidden environment slot called "*namespace*" for each module that can be referenced by indirect binding maps as needed. Spec is a needs-consensus PR at tc39/ecma262#1174 Depends on D80984 Differential Revision: https://phabricator.services.mozilla.com/D80777
Add support for `export * as ns from "a";` syntax. This was added in ECMAScript 2020. One wrinkle in the implementation is that the parser decides whether to use a lexical vs indirect binding before module linking. Instead, we reserve a hidden environment slot called "*namespace*" for each module that can be referenced by indirect binding maps as needed. Spec is a needs-consensus PR at tc39/ecma262#1174 Depends on D80984 Differential Revision: https://phabricator.services.mozilla.com/D80777
Add support for `export * as ns from "a";` syntax. This was added in ECMAScript 2020. One wrinkle in the implementation is that the parser decides whether to use a lexical vs indirect binding before module linking. Instead, we reserve a hidden environment slot called "*namespace*" for each module that can be referenced by indirect binding maps as needed. Spec is a needs-consensus PR at tc39/ecma262#1174 Depends on D80984 Differential Revision: https://phabricator.services.mozilla.com/D80777
Add support for `export * as ns from "a";` syntax. This was added in ECMAScript 2020. One wrinkle in the implementation is that the parser decides whether to use a lexical vs indirect binding before module linking. Instead, we reserve a hidden environment slot called "*namespace*" for each module that can be referenced by indirect binding maps as needed. Spec is a needs-consensus PR at tc39/ecma262#1174 Depends on D80984 Differential Revision: https://phabricator.services.mozilla.com/D80777
Add support for `export * as ns from "a";` syntax. This was added in ECMAScript 2020. One wrinkle in the implementation is that the parser decides whether to use a lexical vs indirect binding before module linking. Instead, we reserve a hidden environment slot called "*namespace*" for each module that can be referenced by indirect binding maps as needed. Spec is a needs-consensus PR at tc39/ecma262#1174 Depends on D80984 Differential Revision: https://phabricator.services.mozilla.com/D80777
Add support for `export * as ns from "a";` syntax. This was added in ECMAScript 2020. One wrinkle in the implementation is that the parser decides whether to use a lexical vs indirect binding before module linking. Instead, we reserve a hidden environment slot called "*namespace*" for each module that can be referenced by indirect binding maps as needed. Spec is a needs-consensus PR at tc39/ecma262#1174 Depends on D80984 Differential Revision: https://phabricator.services.mozilla.com/D80777
Add support for `export * as ns from "a";` syntax. This was added in ECMAScript 2020. One wrinkle in the implementation is that the parser decides whether to use a lexical vs indirect binding before module linking. Instead, we reserve a hidden environment slot called "*namespace*" for each module that can be referenced by indirect binding maps as needed. Spec is a needs-consensus PR at tc39/ecma262#1174 Depends on D80984 Differential Revision: https://phabricator.services.mozilla.com/D80777
Add support for `export * as ns from "a";` syntax. This was added in ECMAScript 2020. One wrinkle in the implementation is that the parser decides whether to use a lexical vs indirect binding before module linking. Instead, we reserve a hidden environment slot called "*namespace*" for each module that can be referenced by indirect binding maps as needed. Spec is a needs-consensus PR at tc39/ecma262#1174 Depends on D80984 Differential Revision: https://phabricator.services.mozilla.com/D80777
Add support for `export * as ns from "a";` syntax. This was added in ECMAScript 2020. One wrinkle in the implementation is that the parser decides whether to use a lexical vs indirect binding before module linking. Instead, we reserve a hidden environment slot called "*namespace*" for each module that can be referenced by indirect binding maps as needed. Spec is a needs-consensus PR at tc39/ecma262#1174 Depends on D80984 Differential Revision: https://phabricator.services.mozilla.com/D80777
Add support for `export * as ns from "a";` syntax. This was added in ECMAScript 2020. One wrinkle in the implementation is that the parser decides whether to use a lexical vs indirect binding before module linking. Instead, we reserve a hidden environment slot called "*namespace*" for each module that can be referenced by indirect binding maps as needed. Spec is a needs-consensus PR at tc39/ecma262#1174 Depends on D80984 Differential Revision: https://phabricator.services.mozilla.com/D80777
Add support for `export * as ns from "a";` syntax. This was added in ECMAScript 2020. One wrinkle in the implementation is that the parser decides whether to use a lexical vs indirect binding before module linking. Instead, we reserve a hidden environment slot called "*namespace*" for each module that can be referenced by indirect binding maps as needed. Spec is a needs-consensus PR at tc39/ecma262#1174 Depends on D80984 Differential Revision: https://phabricator.services.mozilla.com/D80777
Add support for `export * as ns from "a";` syntax. This was added in ECMAScript 2020. One wrinkle in the implementation is that the parser decides whether to use a lexical vs indirect binding before module linking. Instead, we reserve a hidden environment slot called "*namespace*" for each module that can be referenced by indirect binding maps as needed. Spec is a needs-consensus PR at tc39/ecma262#1174 Depends on D80984 Differential Revision: https://phabricator.services.mozilla.com/D80777
Add support for `export * as ns from "a";` syntax. This was added in ECMAScript 2020. One wrinkle in the implementation is that the parser decides whether to use a lexical vs indirect binding before module linking. Instead, we reserve a hidden environment slot called "*namespace*" for each module that can be referenced by indirect binding maps as needed. Spec is a needs-consensus PR at tc39/ecma262#1174 Depends on D80984 Differential Revision: https://phabricator.services.mozilla.com/D80777
Add support for `export * as ns from "a";` syntax. This was added in ECMAScript 2020. One wrinkle in the implementation is that the parser decides whether to use a lexical vs indirect binding before module linking. Instead, we reserve a hidden environment slot called "*namespace*" for each module that can be referenced by indirect binding maps as needed. Spec is a needs-consensus PR at tc39/ecma262#1174 Depends on D80984 Differential Revision: https://phabricator.services.mozilla.com/D80777
Add support for `export * as ns from "a";` syntax. This was added in ECMAScript 2020. One wrinkle in the implementation is that the parser decides whether to use a lexical vs indirect binding before module linking. Instead, we reserve a hidden environment slot called "*namespace*" for each module that can be referenced by indirect binding maps as needed. Spec is a needs-consensus PR at tc39/ecma262#1174 Depends on D80984 Differential Revision: https://phabricator.services.mozilla.com/D80777
Add support for `export * as ns from "a";` syntax. This was added in ECMAScript 2020. One wrinkle in the implementation is that the parser decides whether to use a lexical vs indirect binding before module linking. Instead, we reserve a hidden environment slot called "*namespace*" for each module that can be referenced by indirect binding maps as needed. Spec is a needs-consensus PR at tc39/ecma262#1174 Depends on D80984 Differential Revision: https://phabricator.services.mozilla.com/D80777
Add support for `export * as ns from "a";` syntax. This was added in ECMAScript 2020. One wrinkle in the implementation is that the parser decides whether to use a lexical vs indirect binding before module linking. Instead, we reserve a hidden environment slot called "*namespace*" for each module that can be referenced by indirect binding maps as needed. Spec is a needs-consensus PR at tc39/ecma262#1174 Depends on D80984 Differential Revision: https://phabricator.services.mozilla.com/D80777
Add support for `export * as ns from "a";` syntax. This was added in ECMAScript 2020. One wrinkle in the implementation is that the parser decides whether to use a lexical vs indirect binding before module linking. Instead, we reserve a hidden environment slot called "*namespace*" for each module that can be referenced by indirect binding maps as needed. Spec is a needs-consensus PR at tc39/ecma262#1174 Depends on D80984 Differential Revision: https://phabricator.services.mozilla.com/D80777
Add support for `export * as ns from "a";` syntax. This was added in ECMAScript 2020. One wrinkle in the implementation is that the parser decides whether to use a lexical vs indirect binding before module linking. Instead, we reserve a hidden environment slot called "*namespace*" for each module that can be referenced by indirect binding maps as needed. Spec is a needs-consensus PR at tc39/ecma262#1174 Depends on D80984 Differential Revision: https://phabricator.services.mozilla.com/D80777
Add support for `export * as ns from "a";` syntax. This was added in ECMAScript 2020. One wrinkle in the implementation is that the parser decides whether to use a lexical vs indirect binding before module linking. Instead, we reserve a hidden environment slot called "*namespace*" for each module that can be referenced by indirect binding maps as needed. Spec is a needs-consensus PR at tc39/ecma262#1174 Depends on D80984 Differential Revision: https://phabricator.services.mozilla.com/D80777
Add support for `export * as ns from "a";` syntax. This was added in ECMAScript 2020. One wrinkle in the implementation is that the parser decides whether to use a lexical vs indirect binding before module linking. Instead, we reserve a hidden environment slot called "*namespace*" for each module that can be referenced by indirect binding maps as needed. Spec is a needs-consensus PR at tc39/ecma262#1174 Depends on D80984 Differential Revision: https://phabricator.services.mozilla.com/D80777
This PR adds export * as ns from "mod" updates from tc39/proposal-export-ns-from to the spec as part of the July 27, 2017 notes. This PR replaces and expands this PR: #1005
To see an updated diff of the new spec changes, you can look here: https://spectranaut.github.io/proposal-export-ns-from
Tests partially complete.
Closes #1005.