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
Improve module expression parsing/printing #14980
Conversation
Build successful! You can test your changes in the REPL here: https://babeljs.io/repl/build/53063/ |
@@ -0,0 +1 @@ | |||
module{|foo:42|}} |
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.
Before this PR we parses this input as if it were
// note the extra required `{` after `module`
module {
{| foo: 42 |}
}
This is now fixed by expecting {
after module
.
@@ -222,6 +222,7 @@ export default abstract class StatementParser extends ExpressionParser { | |||
this.raise(Errors.ModuleExportUndefined, { at, localName }); | |||
} | |||
} | |||
this.eat(tt.eof); // stop before } when parsing a module expression |
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.
Why do we need to eat it?
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.
tt.eof
is eaten when we are parsing top level program. If it is not eaten, the tt.eof
token won't be pushed to this.tokens
.
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.
Can we move it as tt.expect
in parseTopLevel
, to assert that we actually consumed all the tokens?
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.
If we eat tt.eof
in parseTopLevel
, the Program
will end earlier than it should be and as a result its trailing comments won't append. I revises it a bit and now it only consume when end
is tt.eof
, which must be invoked by parseTopLevel
.
try { | ||
fn(); | ||
} finally { | ||
this._noLineTerminator = _noLineTerminator; | ||
} | ||
} |
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.
It seems that currently our generator is not allowed to throw exceptions, I personally prefer not to have this try.
160b1f2
to
0dc2ccc
Compare
@@ -11,5 +11,5 @@ | |||
"sourcesContent": [ | |||
"const m = module { export const foo = \"foo\" };\nmodule {\n foo;\n bar;\n};\nfoo(module {});" | |||
], | |||
"mappings": "AAAA,MAAMA,CAAC,GAAG;EAAS,OAAO,MAAMC,GAAG,GAAG,KAAK;AAAC,CAAC;AAC7C;EACEA,GAAG;EACHC,GAAG;AACL,CAAC;AACDD,GAAG,CAAC,SAAS,CAAC" | |||
"mappings": "AAAA,MAAMA,CAAC,GAAG;EAAS,OAAO,MAAMC,GAAG,GAAG,KAAK;AAAC,CAAC;AAC7C;EACEA,GAAG;EACHC,GAAG;AACL,CAAC;AACDD,GAAG,CAAC,QAAQ,CAAC,CAAC" |
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.
The source map is updated because we now generate two sections module{
and }
and map them respectively for the empty module expression module{}
. Before this PR we map module{}
as module{}
.
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.
Maybe we could optimize this in the future (directly or in one of @jridgewell's packages) by merging source map segments that are adjacent both in the input and in the output.
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.
This shouldn't be technically difficult, but I'm not sure that's better. In the last PR I marked the sourcemap for every ";".
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.
This has to be done in Babel, because the sourcemap packages will not know whether this marking is important or not. Eg, function foo() { return bar; }
, we should generate a marking for bar
and }
(the }
is required for Chrome's debug stepping). I can't make the source map package ignore this module {}
case without also ignoring that case.
Following this change, one of my TS projects is not building anymore. I'm seeing:
The files that are failing to compile are using comments inside dynamic imports: loadable(async () => import(/* webpackChunkName: "pages/psf_comment" */ 'src/app/pages/psf/comment'), {
exportName: 'PsfComment',
fallback: Loading,
}) |
…ges) Summary: Update `babel/generator` to the latest, which is a semver-minor update within the pre-existing range. I'm separating this out for ease of review because it brings some noisy snapshot changes, including more granular source maps and fewer empty lines in generated output. The majority of this is a result of babel/babel#14980 (`>=7.19.4`). This and the previous diff clear the way for a general Babel update, which is currently blocking a perf-boosting Metro PR #854. Changelog: [Internal] Bump `babel/generator dependency` to `^7.20.0` Reviewed By: motiz88 Differential Revision: D41438635 fbshipit-source-id: d56853169be22a2197ad53d6320ec6c1faf6b2a7
…ges) Summary: Update `babel/generator` to the latest, which is a semver-minor update within the pre-existing range. I'm separating this out for ease of review because it brings some noisy snapshot changes, including more granular source maps and fewer empty lines in generated output. The majority of this is a result of babel/babel#14980 (`>=7.19.4`). This and the previous diff clear the way for a general Babel update, which is currently blocking a perf-boosting Metro PR facebook/metro#854. Changelog: [Internal] Bump `babel/generator dependency` to `^7.20.0` Reviewed By: motiz88 Differential Revision: D41438635 fbshipit-source-id: d56853169be22a2197ad53d6320ec6c1faf6b2a7
<h3>Snyk has created this PR to upgrade multiple dependencies.</h3> 👯♂ The following dependencies are linked and will therefore be updated together. </br></br> :information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project. </br></br> Name | Versions | Released on :-------------|:-------------|:------------- **@babel/core**</br>from 7.19.6 to 7.20.2 | **1 version** ahead of your current version | **21 days ago**</br>on 2022-11-04 **@babel/preset-env**</br>from 7.19.4 to 7.20.2 | **1 version** ahead of your current version | **21 days ago**</br>on 2022-11-04 <details> <summary><b>Release notes</b></summary> <br/> <details> <summary>Package name: <b>@babel/core</b></summary> <ul> <li> <b>7.20.2</b> - <a href="https://snyk.io/redirect/github/babel/babel/releases/tag/v7.20.2">2022-11-04</a></br><h2>v7.20.2 (2022-11-04)</h2> <h4><g-emoji class="g-emoji" alias="bug" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f41b.png">🐛</g-emoji> Bug Fix</h4> <ul> <li><code>babel-core</code>, <code>babel-helper-create-class-features-plugin</code>, <code>babel-helper-module-transforms</code>, <code>babel-helper-plugin-utils</code>, <code>babel-helper-simple-access</code>, <code>babel-node</code>, <code>babel-plugin-transform-block-scoping</code>, <code>babel-plugin-transform-classes</code>, <code>babel-plugin-transform-react-constant-elements</code>, <code>babel-preset-env</code>, <code>babel-standalone</code>, <code>babel-types</code> <ul> <li><a href="https://snyk.io/redirect/github/babel/babel/pull/15124" data-hovercard-type="pull_request" data-hovercard-url="/babel/babel/pull/15124/hovercard">#15124</a> fix: <code>@ babel/node</code> repl and enable <code>no-use-before-define</code> rule (<a href="https://snyk.io/redirect/github/liuxingbaoyu">@ liuxingbaoyu</a>)</li> </ul> </li> <li><code>babel-plugin-transform-typescript</code> <ul> <li><a href="https://snyk.io/redirect/github/babel/babel/pull/15121" data-hovercard-type="pull_request" data-hovercard-url="/babel/babel/pull/15121/hovercard">#15121</a> fix: <code>tsSatisfiesExpression</code> check with different duplicated <code>@ babel/types</code> versions (<a href="https://snyk.io/redirect/github/liuxingbaoyu">@ liuxingbaoyu</a>)</li> </ul> </li> <li><code>babel-parser</code> <ul> <li><a href="https://snyk.io/redirect/github/babel/babel/pull/15094" data-hovercard-type="pull_request" data-hovercard-url="/babel/babel/pull/15094/hovercard">#15094</a> fix: <code>parser</code> typings for plugins (<a href="https://snyk.io/redirect/github/liuxingbaoyu">@ liuxingbaoyu</a>)</li> </ul> </li> <li><code>babel-generator</code> <ul> <li><a href="https://snyk.io/redirect/github/babel/babel/pull/15118" data-hovercard-type="pull_request" data-hovercard-url="/babel/babel/pull/15118/hovercard">#15118</a> Improve printing of [no LineTerminator here] with comments (<a href="https://snyk.io/redirect/github/nicolo-ribaudo">@ nicolo-ribaudo</a>)</li> </ul> </li> <li><code>babel-plugin-proposal-decorators</code>, <code>babel-plugin-proposal-object-rest-spread</code>, <code>babel-plugin-transform-jscript</code> <ul> <li><a href="https://snyk.io/redirect/github/babel/babel/pull/15113" data-hovercard-type="pull_request" data-hovercard-url="/babel/babel/pull/15113/hovercard">#15113</a> fix: wrap anonymous class expression within statement (<a href="https://snyk.io/redirect/github/JLHwung">@ JLHwung</a>)</li> </ul> </li> <li><code>babel-plugin-transform-destructuring</code> <ul> <li><a href="https://snyk.io/redirect/github/babel/babel/pull/15104" data-hovercard-type="pull_request" data-hovercard-url="/babel/babel/pull/15104/hovercard">#15104</a> fix: Destructuring exceptions <code>for ( let { } = 0 ; 0 ; ) </code> (<a href="https://snyk.io/redirect/github/liuxingbaoyu">@ liuxingbaoyu</a>)</li> </ul> </li> </ul> <h4>Committers: 3</h4> <ul> <li>Huáng Jùnliàng (<a href="https://snyk.io/redirect/github/JLHwung">@ JLHwung</a>)</li> <li>Nicolò Ribaudo (<a href="https://snyk.io/redirect/github/nicolo-ribaudo">@ nicolo-ribaudo</a>)</li> <li><a href="https://snyk.io/redirect/github/liuxingbaoyu">@ liuxingbaoyu</a></li> </ul> </li> <li> <b>7.19.6</b> - <a href="https://snyk.io/redirect/github/babel/babel/releases/tag/v7.19.6">2022-10-20</a></br><h2>v7.19.6 (2022-10-20)</h2> <p>Thanks <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/lomirus/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://snyk.io/redirect/github/lomirus">@ lomirus</a> for your first PR!</p> <h4><g-emoji class="g-emoji" alias="eyeglasses" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f453.png">👓</g-emoji> Spec Compliance</h4> <ul> <li><code>babel-plugin-proposal-decorators</code> <ul> <li><a href="https://snyk.io/redirect/github/babel/babel/pull/15059" data-hovercard-type="pull_request" data-hovercard-url="/babel/babel/pull/15059/hovercard">#15059</a> Ensure non-static decorators are applied when a class is instantiated. (<a href="https://snyk.io/redirect/github/JLHwung">@ JLHwung</a>)</li> </ul> </li> </ul> <h4><g-emoji class="g-emoji" alias="bug" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f41b.png">🐛</g-emoji> Bug Fix</h4> <ul> <li><code>babel-parser</code> <ul> <li><a href="https://snyk.io/redirect/github/babel/babel/pull/15062" data-hovercard-type="pull_request" data-hovercard-url="/babel/babel/pull/15062/hovercard">#15062</a> Fix parsing of block comments nested in flow comments (<a href="https://snyk.io/redirect/github/nicolo-ribaudo">@ nicolo-ribaudo</a>)</li> <li><a href="https://snyk.io/redirect/github/babel/babel/pull/15052" data-hovercard-type="pull_request" data-hovercard-url="/babel/babel/pull/15052/hovercard">#15052</a> fix: improve module block program location tracking (<a href="https://snyk.io/redirect/github/JLHwung">@ JLHwung</a>)</li> </ul> </li> <li><code>babel-plugin-transform-runtime</code>, <code>babel-runtime-corejs2</code>, <code>babel-runtime-corejs3</code> <ul> <li><a href="https://snyk.io/redirect/github/babel/babel/pull/15060" data-hovercard-type="pull_request" data-hovercard-url="/babel/babel/pull/15060/hovercard">#15060</a> Ensure <code>@ babel/runtime-corejs3/core-js/*.js</code> can be imported on Node.js 17+ (<a href="https://snyk.io/redirect/github/JLHwung">@ JLHwung</a>)</li> </ul> </li> <li><code>babel-preset-env</code>, <code>babel-traverse</code> <ul> <li><a href="https://snyk.io/redirect/github/babel/babel/pull/15043" data-hovercard-type="pull_request" data-hovercard-url="/babel/babel/pull/15043/hovercard">#15043</a> fix: preserve this for <code>super.*</code> template tags (<a href="https://snyk.io/redirect/github/liuxingbaoyu">@ liuxingbaoyu</a>)</li> </ul> </li> </ul> <h4><g-emoji class="g-emoji" alias="nail_care" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f485.png">💅</g-emoji> Polish</h4> <ul> <li><code>babel-generator</code>, <code>babel-plugin-transform-flow-comments</code> <ul> <li><a href="https://snyk.io/redirect/github/babel/babel/pull/15037" data-hovercard-type="pull_request" data-hovercard-url="/babel/babel/pull/15037/hovercard">#15037</a> Improve generation of comments without location (<a href="https://snyk.io/redirect/github/liuxingbaoyu">@ liuxingbaoyu</a>)</li> </ul> </li> </ul> <h4><g-emoji class="g-emoji" alias="memo" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f4dd.png">📝</g-emoji> Documentation</h4> <ul> <li><code>babel-standalone</code> <ul> <li><a href="https://snyk.io/redirect/github/babel/babel/pull/15055" data-hovercard-type="pull_request" data-hovercard-url="/babel/babel/pull/15055/hovercard">#15055</a> Fix missing <code>transformSync</code> function name (<a href="https://snyk.io/redirect/github/lomirus">@ lomirus</a>)</li> </ul> </li> </ul> <h4><g-emoji class="g-emoji" alias="house" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f3e0.png">🏠</g-emoji> Internal</h4> <ul> <li><code>babel-parser</code> <ul> <li><a href="https://snyk.io/redirect/github/babel/babel/pull/15056" data-hovercard-type="pull_request" data-hovercard-url="/babel/babel/pull/15056/hovercard">#15056</a> Use <code>startLoc.index</code> instead of carrying around <code>start</code> (<a href="https://snyk.io/redirect/github/nicolo-ribaudo">@ nicolo-ribaudo</a>)</li> </ul> </li> <li>Other <ul> <li><a href="https://snyk.io/redirect/github/babel/babel/pull/15035" data-hovercard-type="pull_request" data-hovercard-url="/babel/babel/pull/15035/hovercard">#15035</a> chore: Update yarn 3.2.4 (<a href="https://snyk.io/redirect/github/liuxingbaoyu">@ liuxingbaoyu</a>)</li> </ul> </li> </ul> <h4><g-emoji class="g-emoji" alias="running_woman" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f3c3-2640.png">🏃♀️</g-emoji> Performance</h4> <ul> <li><code>babel-core</code>, <code>babel-standalone</code> <ul> <li><a href="https://snyk.io/redirect/github/babel/babel/pull/15023" data-hovercard-type="pull_request" data-hovercard-url="/babel/babel/pull/15023/hovercard">#15023</a> Don't bundle unnecessary plugins in <code>@ babel/standalone</code> (<a href="https://snyk.io/redirect/github/nicolo-ribaudo">@ nicolo-ribaudo</a>)</li> </ul> </li> </ul> <h4>Committers: 4</h4> <ul> <li>Huáng Jùnliàng (<a href="https://snyk.io/redirect/github/JLHwung">@ JLHwung</a>)</li> <li>Lomírus (<a href="https://snyk.io/redirect/github/lomirus">@ lomirus</a>)</li> <li>Nicolò Ribaudo (<a href="https://snyk.io/redirect/github/nicolo-ribaudo">@ nicolo-ribaudo</a>)</li> <li><a href="https://snyk.io/redirect/github/liuxingbaoyu">@ liuxingbaoyu</a></li> </ul> </li> </ul> from <a href="https://snyk.io/redirect/github/babel/babel/releases">@babel/core GitHub release notes</a> </details> <details> <summary>Package name: <b>@babel/preset-env</b></summary> <ul> <li> <b>7.20.2</b> - <a href="https://snyk.io/redirect/github/babel/babel/releases/tag/v7.20.2">2022-11-04</a></br><h2>v7.20.2 (2022-11-04)</h2> <h4><g-emoji class="g-emoji" alias="bug" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f41b.png">🐛</g-emoji> Bug Fix</h4> <ul> <li><code>babel-core</code>, <code>babel-helper-create-class-features-plugin</code>, <code>babel-helper-module-transforms</code>, <code>babel-helper-plugin-utils</code>, <code>babel-helper-simple-access</code>, <code>babel-node</code>, <code>babel-plugin-transform-block-scoping</code>, <code>babel-plugin-transform-classes</code>, <code>babel-plugin-transform-react-constant-elements</code>, <code>babel-preset-env</code>, <code>babel-standalone</code>, <code>babel-types</code> <ul> <li><a href="https://snyk.io/redirect/github/babel/babel/pull/15124" data-hovercard-type="pull_request" data-hovercard-url="/babel/babel/pull/15124/hovercard">#15124</a> fix: <code>@ babel/node</code> repl and enable <code>no-use-before-define</code> rule (<a href="https://snyk.io/redirect/github/liuxingbaoyu">@ liuxingbaoyu</a>)</li> </ul> </li> <li><code>babel-plugin-transform-typescript</code> <ul> <li><a href="https://snyk.io/redirect/github/babel/babel/pull/15121" data-hovercard-type="pull_request" data-hovercard-url="/babel/babel/pull/15121/hovercard">#15121</a> fix: <code>tsSatisfiesExpression</code> check with different duplicated <code>@ babel/types</code> versions (<a href="https://snyk.io/redirect/github/liuxingbaoyu">@ liuxingbaoyu</a>)</li> </ul> </li> <li><code>babel-parser</code> <ul> <li><a href="https://snyk.io/redirect/github/babel/babel/pull/15094" data-hovercard-type="pull_request" data-hovercard-url="/babel/babel/pull/15094/hovercard">#15094</a> fix: <code>parser</code> typings for plugins (<a href="https://snyk.io/redirect/github/liuxingbaoyu">@ liuxingbaoyu</a>)</li> </ul> </li> <li><code>babel-generator</code> <ul> <li><a href="https://snyk.io/redirect/github/babel/babel/pull/15118" data-hovercard-type="pull_request" data-hovercard-url="/babel/babel/pull/15118/hovercard">#15118</a> Improve printing of [no LineTerminator here] with comments (<a href="https://snyk.io/redirect/github/nicolo-ribaudo">@ nicolo-ribaudo</a>)</li> </ul> </li> <li><code>babel-plugin-proposal-decorators</code>, <code>babel-plugin-proposal-object-rest-spread</code>, <code>babel-plugin-transform-jscript</code> <ul> <li><a href="https://snyk.io/redirect/github/babel/babel/pull/15113" data-hovercard-type="pull_request" data-hovercard-url="/babel/babel/pull/15113/hovercard">#15113</a> fix: wrap anonymous class expression within statement (<a href="https://snyk.io/redirect/github/JLHwung">@ JLHwung</a>)</li> </ul> </li> <li><code>babel-plugin-transform-destructuring</code> <ul> <li><a href="https://snyk.io/redirect/github/babel/babel/pull/15104" data-hovercard-type="pull_request" data-hovercard-url="/babel/babel/pull/15104/hovercard">#15104</a> fix: Destructuring exceptions <code>for ( let { } = 0 ; 0 ; ) </code> (<a href="https://snyk.io/redirect/github/liuxingbaoyu">@ liuxingbaoyu</a>)</li> </ul> </li> </ul> <h4>Committers: 3</h4> <ul> <li>Huáng Jùnliàng (<a href="https://snyk.io/redirect/github/JLHwung">@ JLHwung</a>)</li> <li>Nicolò Ribaudo (<a href="https://snyk.io/redirect/github/nicolo-ribaudo">@ nicolo-ribaudo</a>)</li> <li><a href="https://snyk.io/redirect/github/liuxingbaoyu">@ liuxingbaoyu</a></li> </ul> </li> <li> <b>7.19.4</b> - <a href="https://snyk.io/redirect/github/babel/babel/releases/tag/v7.19.4">2022-10-10</a></br><h2>v7.19.4 (2022-10-10)</h2> <h4><g-emoji class="g-emoji" alias="eyeglasses" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f453.png">👓</g-emoji> Spec Compliance</h4> <ul> <li><code>babel-plugin-transform-block-scoping</code> <ul> <li><a href="https://snyk.io/redirect/github/babel/babel/pull/15019" data-hovercard-type="pull_request" data-hovercard-url="/babel/babel/pull/15019/hovercard">#15019</a> fix: check constant violation inside loops (<a href="https://snyk.io/redirect/github/nicolo-ribaudo">@ nicolo-ribaudo</a>)</li> </ul> </li> <li><code>babel-helpers</code>, <code>babel-plugin-proposal-destructuring-private</code>, <code>babel-plugin-proposal-object-rest-spread</code>, <code>babel-plugin-transform-destructuring</code> <ul> <li><a href="https://snyk.io/redirect/github/babel/babel/pull/14985" data-hovercard-type="pull_request" data-hovercard-url="/babel/babel/pull/14985/hovercard">#14985</a> Disallow rest object destructuring of null/undefined (<a href="https://snyk.io/redirect/github/nicolo-ribaudo">@ nicolo-ribaudo</a>)</li> </ul> </li> </ul> <h4><g-emoji class="g-emoji" alias="bug" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f41b.png">🐛</g-emoji> Bug Fix</h4> <ul> <li><code>babel-plugin-transform-react-jsx-development</code>, <code>babel-plugin-transform-typescript</code>, <code>babel-types</code> <ul> <li><a href="https://snyk.io/redirect/github/babel/babel/pull/14109" data-hovercard-type="pull_request" data-hovercard-url="/babel/babel/pull/14109/hovercard">#14109</a> Fix: properly scope variables in TSModuleBlock (<a href="https://snyk.io/redirect/github/The-x-Theorist">@ The-x-Theorist</a>)</li> </ul> </li> <li><code>babel-plugin-transform-destructuring</code>, <code>babel-plugin-transform-react-constant-elements</code>, <code>babel-traverse</code> <ul> <li><a href="https://snyk.io/redirect/github/babel/babel/pull/15027" data-hovercard-type="pull_request" data-hovercard-url="/babel/babel/pull/15027/hovercard">#15027</a> fix: mark <code>var</code> declarations in loops as not constant (<a href="https://snyk.io/redirect/github/nicolo-ribaudo">@ nicolo-ribaudo</a>)</li> </ul> </li> <li><code>babel-helper-string-parser</code>, <code>babel-parser</code>, <code>babel-types</code> <ul> <li><a href="https://snyk.io/redirect/github/babel/babel/pull/14964" data-hovercard-type="pull_request" data-hovercard-url="/babel/babel/pull/14964/hovercard">#14964</a> Never throw for invalid escapes in tagged templates (<a href="https://snyk.io/redirect/github/nicolo-ribaudo">@ nicolo-ribaudo</a>)</li> </ul> </li> <li><code>babel-generator</code>, <code>babel-parser</code> <ul> <li><a href="https://snyk.io/redirect/github/babel/babel/pull/14980" data-hovercard-type="pull_request" data-hovercard-url="/babel/babel/pull/14980/hovercard">#14980</a> Improve module expression parsing/printing (<a href="https://snyk.io/redirect/github/JLHwung">@ JLHwung</a>)</li> </ul> </li> <li><code>babel-plugin-transform-destructuring</code> <ul> <li><a href="https://snyk.io/redirect/github/babel/babel/pull/14984" data-hovercard-type="pull_request" data-hovercard-url="/babel/babel/pull/14984/hovercard">#14984</a> Fix holes handling in optimized array destructuring (<a href="https://snyk.io/redirect/github/nicolo-ribaudo">@ nicolo-ribaudo</a>)</li> </ul> </li> </ul> <h4><g-emoji class="g-emoji" alias="nail_care" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f485.png">💅</g-emoji> Polish</h4> <ul> <li><code>babel-cli</code>, <code>babel-core</code>, <code>babel-generator</code>, <code>babel-helper-create-class-features-plugin</code>, <code>babel-helper-fixtures</code>, <code>babel-helper-simple-access</code>, <code>babel-helper-transform-fixture-test-runner</code>, <code>babel-helpers</code>, <code>babel-plugin-bugfix-safari-id-destructuring-collision-in-function-expression</code>, <code>babel-plugin-bugfix-v8-spread-parameters-in-optional-chaining</code>, <code>babel-plugin-external-helpers</code>, <code>babel-plugin-proposal-async-do-expressions</code>, <code>babel-plugin-proposal-async-generator-functions</code>, <code>babel-plugin-proposal-class-properties</code>, <code>babel-plugin-proposal-class-static-block</code>, <code>babel-plugin-proposal-decorators</code>, <code>babel-plugin-proposal-destructuring-private</code>, <code>babel-plugin-proposal-do-expressions</code>, <code>babel-plugin-proposal-duplicate-named-capturing-groups-regex</code>, <code>babel-plugin-proposal-dynamic-import</code>, <code>babel-plugin-proposal-function-bind</code>, <code>babel-plugin-proposal-function-sent</code>, <code>babel-plugin-proposal-json-strings</code>, <code>babel-plugin-proposal-logical-assignment-operators</code>, <code>babel-plugin-proposal-nullish-coalescing-operator</code>, <code>babel-plugin-proposal-object-rest-spread</code>, <code>babel-plugin-proposal-optional-chaining</code>, <code>babel-plugin-proposal-partial-application</code>, <code>babel-plugin-proposal-pipeline-operator</code>, <code>babel-plugin-proposal-private-methods</code>, <code>babel-plugin-proposal-private-property-in-object</code>, <code>babel-plugin-proposal-record-and-tuple</code>, <code>babel-plugin-syntax-typescript</code>, <code>babel-plugin-transform-arrow-functions</code>, <code>babel-plugin-transform-async-to-generator</code>, <code>babel-plugin-transform-block-scoping</code>, <code>babel-plugin-transform-classes</code>, <code>babel-plugin-transform-computed-properties</code>, <code>babel-plugin-transform-destructuring</code>, <code>babel-plugin-transform-duplicate-keys</code>, <code>babel-plugin-transform-exponentiation-operator</code>, <code>babel-plugin-transform-flow-comments</code>, <code>babel-plugin-transform-flow-strip-types</code>, <code>babel-plugin-transform-for-of</code>, <code>babel-plugin-transform-function-name</code>, <code>babel-plugin-transform-jscript</code>, <code>babel-plugin-transform-modules-amd</code>, <code>babel-plugin-transform-modules-commonjs</code>, <code>babel-plugin-transform-modules-systemjs</code>, <code>babel-plugin-transform-modules-umd</code>, <code>babel-plugin-transform-new-target</code>, <code>babel-plugin-transform-object-super</code>, <code>babel-plugin-transform-parameters</code>, <code>babel-plugin-transform-proto-to-assign</code>, <code>babel-plugin-transform-react-constant-elements</code>, <code>babel-plugin-transform-react-inline-elements</code>, <code>babel-plugin-transform-react-jsx-development</code>, <code>babel-plugin-transform-react-jsx-self</code>, <code>babel-plugin-transform-react-jsx</code>, <code>babel-plugin-transform-react-pure-annotations</code>, <code>babel-plugin-transform-regenerator</code>, <code>babel-plugin-transform-runtime</code>, <code>babel-plugin-transform-shorthand-properties</code>, <code>babel-plugin-transform-spread</code>, <code>babel-plugin-transform-strict-mode</code>, <code>babel-plugin-transform-template-literals</code>, <code>babel-plugin-transform-typeof-symbol</code>, <code>babel-plugin-transform-typescript</code>, <code>babel-plugin-transform-unicode-escapes</code>, <code>babel-preset-env</code>, <code>babel-preset-react</code>, <code>babel-preset-typescript</code>, <code>babel-runtime-corejs2</code>, <code>babel-runtime-corejs3</code>, <code>babel-runtime</code>, <code>babel-traverse</code> <ul> <li><a href="https://snyk.io/redirect/github/babel/babel/pull/14979" data-hovercard-type="pull_request" data-hovercard-url="/babel/babel/pull/14979/hovercard">#14979</a> Improve comments generation (<a href="https://snyk.io/redirect/github/liuxingbaoyu">@ liuxingbaoyu</a>)</li> </ul> </li> <li><code>babel-cli</code>, <code>babel-core</code>, <code>babel-generator</code>, <code>babel-helper-fixtures</code>, <code>babel-helper-transform-fixture-test-runner</code>, <code>babel-plugin-transform-destructuring</code>, <code>babel-plugin-transform-modules-commonjs</code>, <code>babel-traverse</code> <ul> <li><a href="https://snyk.io/redirect/github/babel/babel/pull/14967" data-hovercard-type="pull_request" data-hovercard-url="/babel/babel/pull/14967/hovercard">#14967</a> Improve source map generation (<a href="https://snyk.io/redirect/github/liuxingbaoyu">@ liuxingbaoyu</a>)</li> </ul> </li> </ul> <h4><g-emoji class="g-emoji" alias="house" fallback-src="https://github.githubassets.com/images/icons/emoji/unicode/1f3e0.png">🏠</g-emoji> Internal</h4> <ul> <li>Other <ul> <li><a href="https://snyk.io/redirect/github/babel/babel/pull/15001" data-hovercard-type="pull_request" data-hovercard-url="/babel/babel/pull/15001/hovercard">#15001</a> Run test262 again (<a href="https://snyk.io/redirect/github/nicolo-ribaudo">@ nicolo-ribaudo</a>)</li> </ul> </li> <li><code>babel-compat-data</code>, <code>babel-preset-env</code> <ul> <li><a href="https://snyk.io/redirect/github/babel/babel/pull/14976" data-hovercard-type="pull_request" data-hovercard-url="/babel/babel/pull/14976/hovercard">#14976</a> Internally rename <code>proposal-*</code> to <code>transform-*</code> in preset-env (<a href="https://snyk.io/redirect/github/nicolo-ribaudo">@ nicolo-ribaudo</a>)</li> </ul> </li> </ul> <h4>Committers: 5</h4> <ul> <li>Babel Bot (<a href="https://snyk.io/redirect/github/babel-bot">@ babel-bot</a>)</li> <li>Huáng Jùnliàng (<a href="https://snyk.io/redirect/github/JLHwung">@ JLHwung</a>)</li> <li>Nicolò Ribaudo (<a href="https://snyk.io/redirect/github/nicolo-ribaudo">@ nicolo-ribaudo</a>)</li> <li>Sneh Khatri (<a href="https://snyk.io/redirect/github/The-x-Theorist">@ The-x-Theorist</a>)</li> <li><a href="https://snyk.io/redirect/github/liuxingbaoyu">@ liuxingbaoyu</a></li> </ul> </li> </ul> from <a href="https://snyk.io/redirect/github/babel/babel/releases">@babel/preset-env GitHub release notes</a> </details> </details> <hr/> **Note:** *You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.* For more information: <img src="https://api.segment.io/v1/pixel/track?data=eyJ3cml0ZUtleSI6InJyWmxZcEdHY2RyTHZsb0lYd0dUcVg4WkFRTnNCOUEwIiwiYW5vbnltb3VzSWQiOiJlMmVmY2U2Zi04MDVjLTQwNzMtOWIyMS0wYWIzOGU2NzYzNWUiLCJldmVudCI6IlBSIHZpZXdlZCIsInByb3BlcnRpZXMiOnsicHJJZCI6ImUyZWZjZTZmLTgwNWMtNDA3My05YjIxLTBhYjM4ZTY3NjM1ZSJ9fQ==" width="0" height="0"/> 🧐 [View latest project report](https://app.snyk.io/org/sandbox-2ba/project/852e6e4f-be96-45c8-b370-1060f5ebee55?utm_source=github&utm_medium=referral&page=upgrade-pr) 🛠 [Adjust upgrade PR settings](https://app.snyk.io/org/sandbox-2ba/project/852e6e4f-be96-45c8-b370-1060f5ebee55/settings/integration?utm_source=github&utm_medium=referral&page=upgrade-pr) 🔕 [Ignore this dependency or unsubscribe from future upgrade PRs](https://app.snyk.io/org/sandbox-2ba/project/852e6e4f-be96-45c8-b370-1060f5ebee55/settings/integration?pkg=@babel/core&pkg=@babel/preset-env&utm_source=github&utm_medium=referral&page=upgrade-pr#auto-dep-upgrades) <!--- (snyk:metadata:{"prId":"e2efce6f-805c-4073-9b21-0ab38e67635e","prPublicId":"e2efce6f-805c-4073-9b21-0ab38e67635e","dependencies":[{"name":"@babel/core","from":"7.19.6","to":"7.20.2"},{"name":"@babel/preset-env","from":"7.19.4","to":"7.20.2"}],"packageManager":"npm","type":"auto","projectUrl":"https://app.snyk.io/org/sandbox-2ba/project/852e6e4f-be96-45c8-b370-1060f5ebee55?utm_source=github&utm_medium=referral&page=upgrade-pr","projectPublicId":"852e6e4f-be96-45c8-b370-1060f5ebee55","env":"prod","prType":"upgrade","vulns":[],"issuesToFix":[],"upgrade":[],"upgradeInfo":{"versionsDiff":1,"publishedDate":"2022-11-04T18:51:11.563Z"},"templateVariants":[],"hasFixes":false,"isMajorUpgrade":false,"isBreakingChange":false,"priorityScoreList":[]}) ---> Co-authored-by: snyk-bot <snyk-bot@snyk.io>
This PR fixes several module expression related parsing / printing issues
}
, instead it should end before}
because}
is not part of the embedded programmodule
and{
module
and{