Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR includes two changes:
exports.package
(wherepackage
is a reserved word in strict mode) is now allowed.This seemed to be an arbitrary limitation, given that you can do
import { package as pkg } from "dep"
and thatexports.var
was already allowed.exports["foo bar"]
, rather than forcing the string contents to be an identifier. They can be imported in Node.js 16 usingimport { "foo bar" as foobar } from "dep"
, or in older Node.js versions usingimport * as ns from "dep"; ns["foo bar"]
.I also refactored a bit how strings are parsed, by using a single
stringLiteral(quote)
function rather than having to branch between'
and"
every time.Thanks @bmeck for making me realize that they didn't work.
TODO:
export { x as "foo bar" }
, and make sure that it works. EDIT: Babel just generatesexports["foo bar"] = x;
.