Skip to content
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

Merged
merged 1 commit into from
Oct 2, 2019

Conversation

spectranaut
Copy link

@spectranaut spectranaut commented Apr 17, 2018

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.

@spectranaut spectranaut changed the title Add export * as ns from "mod” to Export production and Module Semantic Normative: Add export * as ns from "mod” to Export production and Module Semantic Apr 17, 2018
spec.html Outdated Show resolved Hide resolved
spec.html Outdated Show resolved Hide resolved
@ljharb ljharb added normative change Affects behavior required to correctly evaluate some ECMAScript source text needs consensus This needs committee consensus before it can be eligible to be merged. needs test262 tests The proposal should specify how to test an implementation. Ideally via github.com/tc39/test262 labels Apr 17, 2018
@spectranaut
Copy link
Author

spectranaut commented Apr 18, 2018

I updated table 38 based on the modifications made for export * as namespace but would like if someone review/read for clarity and word choice - I feel awkward editing editorial text: https://spectranaut.github.io/proposal-export-ns-from/#table-38

@leobalter
Copy link
Member

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.

@spectranaut
Copy link
Author

spectranaut commented Apr 20, 2018

@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 "*namespace*" in these scenarios (as there is actually no binding for the namespace). I tried to update more editorial text to make it clear.

you can see the updated pretty diff here: https://spectranaut.github.io/proposal-export-ns-from/#sec-module-namespace-exotic-objects

@ljharb ljharb added has test262 tests and removed needs test262 tests The proposal should specify how to test an implementation. Ideally via github.com/tc39/test262 labels Jun 28, 2018
@ljharb
Copy link
Member

ljharb commented Jun 28, 2018

@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.

@leobalter
Copy link
Member

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.

@spectranaut
Copy link
Author

Rebased, @ljharb :)

Copy link

@hiramtibbit hiramtibbit left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A

buttercookie42 pushed a commit to buttercookie42/Waterfox-Classic that referenced this pull request May 30, 2022
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
buttercookie42 pushed a commit to buttercookie42/Waterfox-Classic that referenced this pull request May 31, 2022
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
buttercookie42 pushed a commit to buttercookie42/Waterfox-Classic that referenced this pull request May 31, 2022
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
buttercookie42 pushed a commit to buttercookie42/Waterfox-Classic that referenced this pull request Jun 1, 2022
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
buttercookie42 pushed a commit to buttercookie42/Waterfox-Classic that referenced this pull request Jun 1, 2022
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
buttercookie42 pushed a commit to buttercookie42/Waterfox-Classic that referenced this pull request Jun 1, 2022
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
buttercookie42 pushed a commit to buttercookie42/Waterfox-Classic that referenced this pull request Jun 1, 2022
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
buttercookie42 pushed a commit to buttercookie42/Waterfox-Classic that referenced this pull request Jun 2, 2022
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
buttercookie42 pushed a commit to buttercookie42/Waterfox-Classic that referenced this pull request Jun 2, 2022
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
buttercookie42 pushed a commit to buttercookie42/Waterfox-Classic that referenced this pull request Jun 3, 2022
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
buttercookie42 pushed a commit to buttercookie42/Waterfox-Classic that referenced this pull request Jun 3, 2022
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
buttercookie42 pushed a commit to buttercookie42/Waterfox-Classic that referenced this pull request Jun 3, 2022
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
buttercookie42 pushed a commit to buttercookie42/Waterfox-Classic that referenced this pull request Jun 11, 2022
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
buttercookie42 pushed a commit to buttercookie42/Waterfox-Classic that referenced this pull request Jun 13, 2022
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
buttercookie42 pushed a commit to buttercookie42/Waterfox-Classic that referenced this pull request Jun 17, 2022
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
buttercookie42 pushed a commit to buttercookie42/Waterfox-Classic that referenced this pull request Jun 17, 2022
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
buttercookie42 pushed a commit to buttercookie42/Waterfox-Classic that referenced this pull request Jun 17, 2022
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
buttercookie42 pushed a commit to buttercookie42/Waterfox-Classic that referenced this pull request Jun 21, 2022
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
buttercookie42 pushed a commit to buttercookie42/Waterfox-Classic that referenced this pull request Jun 22, 2022
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
buttercookie42 pushed a commit to buttercookie42/Waterfox-Classic that referenced this pull request Jun 23, 2022
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
buttercookie42 pushed a commit to buttercookie42/Waterfox-Classic that referenced this pull request Jul 23, 2022
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
buttercookie42 pushed a commit to buttercookie42/Waterfox-Classic that referenced this pull request Jul 29, 2022
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
buttercookie42 pushed a commit to buttercookie42/Waterfox-Classic that referenced this pull request Jul 29, 2022
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
buttercookie42 pushed a commit to buttercookie42/Waterfox-Classic that referenced this pull request Aug 11, 2022
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
has consensus This has committee consensus. has test262 tests normative change Affects behavior required to correctly evaluate some ECMAScript source text
Projects
None yet
Development

Successfully merging this pull request may close these issues.