-
-
Notifications
You must be signed in to change notification settings - Fork 5.8k
fix: wrap anonymous class expression within statement #15113
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
Conversation
|
Build successful! You can test your changes in the REPL here: https://babeljs.io/repl/build/53326/ |
| t.staticBlock([t.toStatement(path.node, false)]), | ||
| t.staticBlock([ | ||
| t.toStatement(originalClass, true) || | ||
| // If toStatement returns false, originalClass must be an anonymous ClassExpression, | ||
| // because `export default @dec ...` has been handled in the export visitor before. | ||
| t.expressionStatement(originalClass as t.ClassExpression), | ||
| ]), |
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.
Would it be better to fix in t.toStatement?
Also unrelated to this PR, the type definition and implementation of t.toStatement seem inconsistent.
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.
Would it be better to fix in t.toStatement?
I don't know much context here but it seems that we intentionally fail toStatement for anonymous class expression
babel/packages/babel-types/test/converters.js
Lines 131 to 138 in 53185ea
| it("fail if class expression has no id", function () { | |
| const node = t.classExpression(null, null, t.classBody([]), []); | |
| expect(function () { | |
| t.toStatement(node); | |
| }).toThrow(Error); | |
| expect(t.toStatement(node, /* ignore = */ true)).toBe(false); | |
| t.assertClassExpression(node); | |
| }); |
/cc @nicolo-ribaudo if you can shred some light here.
If we decided to overturn this behaviour, we still need the patch here until Babel 8 because the plugin does not depend on @babel/types.
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.
Good find, now I think it's fine.
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.
I believe the reason is that t.toStatement of a ClassExpression should return a ClassDeclaration, but converting a class expression without an ID is generally not safe.
| nodes.push(t.expressionStatement(nodeWithoutSpread)); | ||
| nodes.push( | ||
| t.toStatement( | ||
| t.expressionStatement( |
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.
toStatement wraps assignment expression within expression statement.
<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 <[email protected]>
Babel currently throws at decorated anonymous class expression, e.g.
@dec class { static {} }because we invokedt.toStatement. Here we wrap the class expression within an expression statement so that it can be fit in the static block that we used for class decorators.Before develop this issue I realize that Babel doesn't support the named evaluation for decorated class expression, for example
TypeScript injects
__setFunctionNamehelper call before applying the decorator transform to ensure thatcontext.nameis always correct (microsoft/TypeScript#50820 (comment)). I will address this issue in a separate PR.