-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Normative: Add export * as ns from "mod”
to Export production and Module Semantic
#1174
Conversation
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 :) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A
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
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.