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

fix: wrap anonymous class expression within statement #15113

Merged
merged 2 commits into from Nov 3, 2022

Conversation

JLHwung
Copy link
Contributor

@JLHwung JLHwung commented Nov 1, 2022

Q                       A
Fixed Issues? Fixes #15112
Patch: Bug Fix? Yes
Major: Breaking Change?
Minor: New Feature?
Tests Added + Pass? Yes
Documentation PR Link
Any Dependency Changes?
License MIT

Babel currently throws at decorated anonymous class expression, e.g. @dec class { static {} } because we invoked t.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

const dec = (value, context) => {
  context.name; // <-- should be "A", currently "_class"
  return value;
};

let A;
A = @dec class {}

TypeScript injects __setFunctionName helper call before applying the decorator transform to ensure that context.name is always correct (microsoft/TypeScript#50820 (comment)). I will address this issue in a separate PR.

@JLHwung JLHwung added PR: Bug Fix 🐛 A type of pull request used for our changelog categories Spec: Decorators labels Nov 1, 2022
@babel-bot
Copy link
Collaborator

babel-bot commented Nov 1, 2022

Build successful! You can test your changes in the REPL here: https://babeljs.io/repl/build/53326/

Comment on lines -940 to +945
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),
]),
Copy link
Member

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.

Copy link
Contributor Author

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

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.

Copy link
Member

Choose a reason for hiding this comment

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

liuxingbaoyu@98ca541

Good find, now I think it's fine.

Copy link
Member

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.

@@ -531,7 +531,7 @@ export default declare((api, opts: Options) => {
nodeWithoutSpread.right = t.identifier(refName);
nodes.push(t.expressionStatement(nodeWithoutSpread));
nodes.push(
t.toStatement(
t.expressionStatement(
Copy link
Contributor Author

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.

@nicolo-ribaudo nicolo-ribaudo merged commit dee77fe into babel:main Nov 3, 2022
@nicolo-ribaudo nicolo-ribaudo deleted the fix-15112 branch November 3, 2022 15:13
cbush pushed a commit to mongodb/docs-realm that referenced this pull request Nov 30, 2022
<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&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)

🛠 [Adjust upgrade PR
settings](https://app.snyk.io/org/sandbox-2ba/project/852e6e4f-be96-45c8-b370-1060f5ebee55/settings/integration?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;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&#x3D;@babel/core&amp;pkg&#x3D;@babel/preset-env&amp;utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;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>
@github-actions github-actions bot added the outdated A closed issue/PR that is archived due to age. Recommended to make a new issue label Feb 3, 2023
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Feb 3, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
outdated A closed issue/PR that is archived due to age. Recommended to make a new issue PR: Bug Fix 🐛 A type of pull request used for our changelog categories Spec: Decorators
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Bug]: Babel throws when a decorated class expression contains a static block
4 participants