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

Rewrite transform-block-scoping plugin #15200

Merged
merged 11 commits into from Dec 14, 2022

Conversation

nicolo-ribaudo
Copy link
Member

@nicolo-ribaudo nicolo-ribaudo commented Nov 16, 2022

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

This PR rewrites the transform-block-scoping plugin, to:

  • make it easier to follow what's going on, avoiding the stateful BlockScoping class and just relying on plain visitors
  • clearly separate Annex B.3.3 behavior
  • make the transform-block-scoping behavior consistent regardless of the context (function scope vs global scope; for vs while; loop scope vs block scope inside loop)

Lets see if it breaks any test262 tests

@nicolo-ribaudo nicolo-ribaudo added the PR: Internal 🏠 A type of pull request used for our changelog categories label Nov 16, 2022
@babel-bot
Copy link
Collaborator

babel-bot commented Nov 16, 2022

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

case "end":
return _context.stop();
}
while (1) switch (_context.prev = _context.next) {
Copy link
Member Author

Choose a reason for hiding this comment

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

We now only insert the {...} if the block-scoping plugins needs to inject new nodes, so there are a lot of changes like this one where we don't inject the block.

@@ -0,0 +1,36 @@
function* a() {
Copy link
Member Author

Choose a reason for hiding this comment

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

This test already passes with the old plugin, but it was untested (I accidentally broke it and all the tests were still passing).

@@ -1,21 +1,21 @@
for (var a of [1]) {
var _loop = function () {
Copy link
Member Author

Choose a reason for hiding this comment

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

The old plugins sometimes injected a hoisted _loop function that is reused for every iteration, and other times it injected an IIFE. Not it always injects a single hoisted function.

var l = i;
setTimeout(function () {
console.log(l);
}, 1);
};
for (var i = 0; i < 5; i++) {
_loop(i);
_loop();
Copy link
Member Author

Choose a reason for hiding this comment

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

i isn't captured by a closure, so we don't need to pass it as a parameter.

@@ -1,9 +1,8 @@
var _loop = function (_result) {
_result = otherValue;
var _loop = function (result) {
Copy link
Member Author

Choose a reason for hiding this comment

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

No need to rename result to _result, since it doesn't conflict.

});
result = _result;
Copy link
Member Author

Choose a reason for hiding this comment

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

This is removed (and it was unnecessary) because now the loop block-scoped variable is transformed before transforming for-of.

@@ -0,0 +1,33 @@
function callNow(f) {
Copy link
Member Author

Choose a reason for hiding this comment

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

This test is failing with the old plugin, because the const checks and the tdz checks didn't interact well with each other. Now they are handled together in validation.ts.

@@ -4,7 +4,7 @@ import { foo } from "somewhere";
// foo might call "bar"
foo();
babelHelpers.tdz("a");
a = void 0;
var a = void 0;
Copy link
Member Author

Choose a reason for hiding this comment

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

The plugin now always keeps var, because we cannot safely remove it anyway. For example:

maybeCall(() => a);
let { a, b } = c;

becomes

var a = babelHelpers.temporalUndefined;
maybeCall(() => _tdzCheck(a));
var { a, b } = c;

We can easily remove var from var a = babelHelpers.temporalUndefined; I didn't do it in this PR to avoid diffs in every file.

Copy link
Member

Choose a reason for hiding this comment

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

I agree with this particular scenario: it's safer when scope tracking isn't 100% reliable.

@@ -3,5 +3,4 @@ function f() {
babelHelpers.temporalRef(x, "x");
}
maybeCall(f);
x = void 0;
void 0;
Copy link
Member Author

Choose a reason for hiding this comment

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

I don't know why we had a second void 0

var x = babelHelpers.temporalUndefined;
maybeCallLater(function () {
babelHelpers.temporalRef(x, "x");
2, babelHelpers.readOnlyError("x");
Copy link
Member

Choose a reason for hiding this comment

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

Unrelated to this PR: here it seems numbers can be safely removed.

Copy link
Member Author

Choose a reason for hiding this comment

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

Yeah we can check if the initializer is without side effects.

Comment on lines 1 to +15
function fn() {
var _loop = function () {
switch (true) {
default:
var foo = 4;
if (true) {
var bar = function () {
return foo;
};
console.log(bar());
}
}
};
while (true) {
(function () {
switch (true) {
default:
var foo = 4;
if (true) {
var bar = function () {
return foo;
};
console.log(bar());
}
}
})();
_loop();
Copy link
Member

Choose a reason for hiding this comment

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

I'm not sure if putting the function declaration inside the loop is better in this case, maybe a little bit of a performance hit, but it improves readability. (especially when there is a complex loop body)
Of course the new behavior is better for me than the old one anyway.

Copy link
Member Author

Choose a reason for hiding this comment

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

@nicolo-ribaudo
Copy link
Member Author

nicolo-ribaudo commented Nov 16, 2022

TODO: fix this

let a = 1;

function f() {
  { console.log(a); }
  { let a = 2; }
}

EDIT: done

@nicolo-ribaudo
Copy link
Member Author

CI finally green, all the regressions caught by test262 have been fixed!

Copy link
Contributor

@JLHwung JLHwung left a comment

Choose a reason for hiding this comment

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

Awesome job! Will do a second round later.


if (headPath?.isVariableDeclaration<t.Node>()) {
// If we wrap the loop body, we transform the var
// declaration in the loop head now, to avoid having
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
// declaration in the loop head now, to avoid having
// declaration in the loop head now, to avoid

if (isVar(node.left)) {
self.pushDeclar(node.left);
node.left = node.left.declarations[0].id;
const conflictingFunctionsVisitor: Visitor<{ names: string[] }> = {
Copy link
Contributor

Choose a reason for hiding this comment

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

Since it is visiting scopeable elements, it should be merged with the environment visitor to ensure class keys / decorators are properly excluded from the Scope.

Copy link
Member Author

Choose a reason for hiding this comment

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

Can you give me a code example? Since on Declaration we do path.skip(), this should never visit class keys/decorators.

} = path;

// Annex B.3.3 only applies to plain functions.
if (node.async || node.generator) return;
Copy link
Contributor

Choose a reason for hiding this comment

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

The check can be copied to the start of the outer loop body in transformStatementList.

return scope.path.isFunctionParent() || scope.path.isProgram();
}

function isStrict(path: NodePath) {
Copy link
Contributor

Choose a reason for hiding this comment

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

Should isStrict return true when we see a ClassBody in its ancestry?

packages/babel-plugin-transform-block-scoping/src/loop.ts Outdated Show resolved Hide resolved
Copy link
Member

@liuxingbaoyu liuxingbaoyu left a comment

Choose a reason for hiding this comment

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

Awesome!
I'm feeling good about the changes, just a little concerned about how this will change in the real world.
This PR uses referencePaths, which may be interfered by third-party plugins. (Some plugins completely ignore the scope information, and even cloneNode is not used correctly, these situations exist in the code I originally wrote)
But I think this should continue, this PR itself greatly simplifies and clarifies the plugin logic, while avoiding a lot of complicated edge logic, which will have a very positive impact in the future.
And if traverse itself is problematic, let's improve it.
I don't know how this affects debugging with source maps, but if someone reports this it will be easy to fix.

This fixes a tdz issue, marked as a bug fix?

@nicolo-ribaudo
Copy link
Member Author

I prefer to keep it as "internal" because it's much more significantly a refactor than a bug fix, and refactors are also usually more risky.

@ndelangen
Copy link

I'm afraid this likely caused a regression: #15300

cbush pushed a commit to mongodb/docs-realm that referenced this pull request Jan 13, 2023
<h3>Snyk has created this PR to upgrade @babel/core from 7.20.5 to
7.20.7.</h3>

: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.
<hr/>

- The recommended version is **1 version** ahead of your current
version.
- The recommended version was released **22 days ago**, on 2022-12-22.


<details>
<summary><b>Release notes</b></summary>
<br/>
  <details>
    <summary>Package name: <b>@babel/core</b></summary>
    <ul>
      <li>
<b>7.20.7</b> - <a
href="https://snyk.io/redirect/github/babel/babel/releases/tag/v7.20.7">2022-12-22</a></br><h2>v7.20.7
(2022-12-22)</h2>
<p>Thanks <a class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/wsypower/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://snyk.io/redirect/github/wsypower">@ wsypower</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-helper-member-expression-to-functions</code>,
<code>babel-helper-replace-supers</code>,
<code>babel-plugin-proposal-class-properties</code>,
<code>babel-plugin-transform-classes</code>
<ul>
<li><a href="https://snyk.io/redirect/github/babel/babel/pull/15223"
data-hovercard-type="pull_request"
data-hovercard-url="/babel/babel/pull/15223/hovercard">#15223</a> fix:
Deleting super property should throw (<a
href="https://snyk.io/redirect/github/SuperSodaSea">@
SuperSodaSea</a>)</li>
</ul>
</li>
<li><code>babel-helpers</code>,
<code>babel-plugin-proposal-class-properties</code>,
<code>babel-plugin-transform-classes</code>,
<code>babel-plugin-transform-object-super</code>
<ul>
<li><a href="https://snyk.io/redirect/github/babel/babel/pull/15241"
data-hovercard-type="pull_request"
data-hovercard-url="/babel/babel/pull/15241/hovercard">#15241</a> fix:
Throw correct error types from sed ant class TDZ helpers (<a
href="https://snyk.io/redirect/github/SuperSodaSea">@
SuperSodaSea</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>,
<code>babel-plugin-transform-typescript</code>
<ul>
<li><a href="https://snyk.io/redirect/github/babel/babel/pull/15209"
data-hovercard-type="pull_request"
data-hovercard-url="/babel/babel/pull/15209/hovercard">#15209</a> fix:
Support auto accessors with TypeScript annotations (<a
href="https://snyk.io/redirect/github/liuxingbaoyu">@
liuxingbaoyu</a>)</li>
</ul>
</li>
<li><code>babel-traverse</code>
<ul>
<li><a href="https://snyk.io/redirect/github/babel/babel/pull/15287"
data-hovercard-type="pull_request"
data-hovercard-url="/babel/babel/pull/15287/hovercard">#15287</a> Fix
<code>.parentPath</code> after rename in <code>SwitchCase</code> (<a
href="https://snyk.io/redirect/github/nicolo-ribaudo">@
nicolo-ribaudo</a>)</li>
</ul>
</li>
<li><code>babel-plugin-transform-typescript</code>,
<code>babel-traverse</code>
<ul>
<li><a href="https://snyk.io/redirect/github/babel/babel/pull/15284"
data-hovercard-type="pull_request"
data-hovercard-url="/babel/babel/pull/15284/hovercard">#15284</a> fix:
Ts import type and func with duplicate name (<a
href="https://snyk.io/redirect/github/liuxingbaoyu">@
liuxingbaoyu</a>)</li>
</ul>
</li>
<li><code>babel-plugin-transform-block-scoping</code>
<ul>
<li><a href="https://snyk.io/redirect/github/babel/babel/pull/15278"
data-hovercard-type="pull_request"
data-hovercard-url="/babel/babel/pull/15278/hovercard">#15278</a> Fix
tdz analysis for reassigned captured for bindings (<a
href="https://snyk.io/redirect/github/nicolo-ribaudo">@
nicolo-ribaudo</a>)</li>
</ul>
</li>
<li><code>babel-plugin-proposal-async-generator-functions</code>,
<code>babel-preset-env</code>
<ul>
<li><a href="https://snyk.io/redirect/github/babel/babel/pull/15235"
data-hovercard-type="pull_request"
data-hovercard-url="/babel/babel/pull/15235/hovercard">#15235</a> fix:
Transform <code>for await</code> with shadowed variables (<a
href="https://snyk.io/redirect/github/liuxingbaoyu">@
liuxingbaoyu</a>)</li>
</ul>
</li>
<li><code>babel-generator</code>,
<code>babel-plugin-proposal-optional-chaining</code>
<ul>
<li><a href="https://snyk.io/redirect/github/babel/babel/pull/15258"
data-hovercard-type="pull_request"
data-hovercard-url="/babel/babel/pull/15258/hovercard">#15258</a> fix:
Correctly generate <code>(a ?? b) as T</code> (<a
href="https://snyk.io/redirect/github/liuxingbaoyu">@
liuxingbaoyu</a>)</li>
</ul>
</li>
<li><code>babel-plugin-transform-react-jsx</code>,
<code>babel-types</code>
<ul>
<li><a href="https://snyk.io/redirect/github/babel/babel/pull/15233"
data-hovercard-type="pull_request"
data-hovercard-url="/babel/babel/pull/15233/hovercard">#15233</a> fix:
Emit correct sourcemap ranges for <code>JSXText</code> (<a
href="https://snyk.io/redirect/github/liuxingbaoyu">@
liuxingbaoyu</a>)</li>
</ul>
</li>
<li><code>babel-core</code>, <code>babel-helpers</code>,
<code>babel-plugin-transform-computed-properties</code>,
<code>babel-runtime-corejs2</code>, <code>babel-runtime-corejs3</code>,
<code>babel-runtime</code>
<ul>
<li><a href="https://snyk.io/redirect/github/babel/babel/pull/15232"
data-hovercard-type="pull_request"
data-hovercard-url="/babel/babel/pull/15232/hovercard">#15232</a> fix:
Computed properties should keep original definition order (<a
href="https://snyk.io/redirect/github/SuperSodaSea">@
SuperSodaSea</a>)</li>
</ul>
</li>
<li><code>babel-helper-member-expression-to-functions</code>,
<code>babel-helper-replace-supers</code>,
<code>babel-plugin-proposal-class-properties</code>,
<code>babel-plugin-transform-classes</code>
<ul>
<li><a href="https://snyk.io/redirect/github/babel/babel/pull/15223"
data-hovercard-type="pull_request"
data-hovercard-url="/babel/babel/pull/15223/hovercard">#15223</a> fix:
Deleting super property should throw (<a
href="https://snyk.io/redirect/github/SuperSodaSea">@
SuperSodaSea</a>)</li>
</ul>
</li>
<li><code>babel-generator</code>
<ul>
<li><a href="https://snyk.io/redirect/github/babel/babel/pull/15216"
data-hovercard-type="pull_request"
data-hovercard-url="/babel/babel/pull/15216/hovercard">#15216</a> fix:
Print newlines for leading Comments of <code>TSEnumMember</code> (<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-plugin-transform-block-scoping</code>,
<code>babel-traverse</code>
<ul>
<li><a href="https://snyk.io/redirect/github/babel/babel/pull/15275"
data-hovercard-type="pull_request"
data-hovercard-url="/babel/babel/pull/15275/hovercard">#15275</a>
Improve relative execution tracking in fn exprs (<a
href="https://snyk.io/redirect/github/nicolo-ribaudo">@
nicolo-ribaudo</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-helper-define-map</code>,
<code>babel-plugin-transform-property-mutators</code>
<ul>
<li><a href="https://snyk.io/redirect/github/babel/babel/pull/15274"
data-hovercard-type="pull_request"
data-hovercard-url="/babel/babel/pull/15274/hovercard">#15274</a> Inline
&amp; simplify <code>@ babel/helper-define-map</code> (<a
href="https://snyk.io/redirect/github/nicolo-ribaudo">@
nicolo-ribaudo</a>)</li>
</ul>
</li>
<li><code>babel-core</code>,
<code>babel-plugin-proposal-class-properties</code>,
<code>babel-plugin-transform-block-scoping</code>,
<code>babel-plugin-transform-classes</code>,
<code>babel-plugin-transform-destructuring</code>,
<code>babel-plugin-transform-parameters</code>,
<code>babel-plugin-transform-regenerator</code>,
<code>babel-plugin-transform-runtime</code>,
<code>babel-preset-env</code>, <code>babel-traverse</code>
<ul>
<li><a href="https://snyk.io/redirect/github/babel/babel/pull/15200"
data-hovercard-type="pull_request"
data-hovercard-url="/babel/babel/pull/15200/hovercard">#15200</a>
Rewrite <code>transform-block-scoping</code> plugin (<a
href="https://snyk.io/redirect/github/nicolo-ribaudo">@
nicolo-ribaudo</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-helper-compilation-targets</code>
<ul>
<li><a href="https://snyk.io/redirect/github/babel/babel/pull/15228"
data-hovercard-type="pull_request"
data-hovercard-url="/babel/babel/pull/15228/hovercard">#15228</a> perf:
Speed up <code>getTargets</code> (<a
href="https://snyk.io/redirect/github/liuxingbaoyu">@
liuxingbaoyu</a>)</li>
</ul>
</li>
</ul>
<h4>Committers: 6</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>Tianlan Zhou (<a
href="https://snyk.io/redirect/github/SuperSodaSea">@
SuperSodaSea</a>)</li>
<li><a href="https://snyk.io/redirect/github/liuxingbaoyu">@
liuxingbaoyu</a></li>
<li>魏 (<a href="https://snyk.io/redirect/github/wsypower">@
wsypower</a>)</li>
</ul>
      </li>
      <li>
<b>7.20.5</b> - <a
href="https://snyk.io/redirect/github/babel/babel/releases/tag/v7.20.5">2022-11-28</a></br><h2>v7.20.5
(2022-11-28)</h2>
<p>Thanks <a class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/davydof/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://snyk.io/redirect/github/davydof">@ davydof</a> and <a
class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/SuperSodaSea/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://snyk.io/redirect/github/SuperSodaSea">@ SuperSodaSea</a>
for your first PRs!</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-helpers</code>,
<code>babel-plugin-transform-destructuring</code>,
<code>babel-plugin-transform-modules-commonjs</code>,
<code>babel-preset-env</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/15183"
data-hovercard-type="pull_request"
data-hovercard-url="/babel/babel/pull/15183/hovercard">#15183</a>
Improve array destructuring spec compliance (<a
href="https://snyk.io/redirect/github/SuperSodaSea">@
SuperSodaSea</a>)</li>
</ul>
</li>
<li><code>babel-cli</code>, <code>babel-helpers</code>,
<code>babel-plugin-proposal-class-properties</code>,
<code>babel-plugin-proposal-class-static-block</code>,
<code>babel-plugin-transform-classes</code>,
<code>babel-plugin-transform-runtime</code>,
<code>babel-preset-env</code>
<ul>
<li><a href="https://snyk.io/redirect/github/babel/babel/pull/15182"
data-hovercard-type="pull_request"
data-hovercard-url="/babel/babel/pull/15182/hovercard">#15182</a> fix:
apply toPropertyKey when defining class members (<a
href="https://snyk.io/redirect/github/JLHwung">@ JLHwung</a>)</li>
</ul>
</li>
<li><code>babel-helper-create-class-features-plugin</code>,
<code>babel-helpers</code>,
<code>babel-plugin-proposal-decorators</code>,
<code>babel-plugin-proposal-private-property-in-object</code>,
<code>babel-preset-env</code>, <code>babel-runtime-corejs2</code>,
<code>babel-runtime-corejs3</code>, <code>babel-runtime</code>
<ul>
<li><a href="https://snyk.io/redirect/github/babel/babel/pull/15133"
data-hovercard-type="pull_request"
data-hovercard-url="/babel/babel/pull/15133/hovercard">#15133</a> fix:
validate rhs of <code>in</code> when transpiling <code>#p in C</code>
(<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/15225"
data-hovercard-type="pull_request"
data-hovercard-url="/babel/babel/pull/15225/hovercard">#15225</a> Parse
<code>using[foo]</code> as computed member expression (<a
href="https://snyk.io/redirect/github/JLHwung">@ JLHwung</a>)</li>
<li><a href="https://snyk.io/redirect/github/babel/babel/pull/15207"
data-hovercard-type="pull_request"
data-hovercard-url="/babel/babel/pull/15207/hovercard">#15207</a> Export
<code>ParseResult</code> type (<a
href="https://snyk.io/redirect/github/davydof">@ davydof</a>)</li>
<li><a href="https://snyk.io/redirect/github/babel/babel/pull/15198"
data-hovercard-type="pull_request"
data-hovercard-url="/babel/babel/pull/15198/hovercard">#15198</a> fix:
parse <code>import module, ...</code> (<a
href="https://snyk.io/redirect/github/JLHwung">@ JLHwung</a>)</li>
</ul>
</li>
<li><code>babel-helper-wrap-function</code>,
<code>babel-preset-env</code>, <code>babel-traverse</code>
<ul>
<li><a href="https://snyk.io/redirect/github/babel/babel/pull/15181"
data-hovercard-type="pull_request"
data-hovercard-url="/babel/babel/pull/15181/hovercard">#15181</a> fix:
Edge cases for async functions and <code>noNewArrow</code> assumption
(<a href="https://snyk.io/redirect/github/liuxingbaoyu">@
liuxingbaoyu</a>)</li>
</ul>
</li>
<li><code>babel-plugin-transform-arrow-functions</code>,
<code>babel-plugin-transform-parameters</code>,
<code>babel-traverse</code>
<ul>
<li><a href="https://snyk.io/redirect/github/babel/babel/pull/15163"
data-hovercard-type="pull_request"
data-hovercard-url="/babel/babel/pull/15163/hovercard">#15163</a> fix:
Throw error when compiling <code>super()</code> in arrow functions with
default / rest parameters (<a
href="https://snyk.io/redirect/github/SuperSodaSea">@
SuperSodaSea</a>)</li>
</ul>
</li>
<li><code>babel-helpers</code>, <code>babel-node</code>,
<code>babel-plugin-proposal-async-generator-functions</code>,
<code>babel-plugin-transform-regenerator</code>,
<code>babel-preset-env</code>, <code>babel-runtime-corejs2</code>,
<code>babel-runtime-corejs3</code>, <code>babel-runtime</code>
<ul>
<li><a href="https://snyk.io/redirect/github/babel/babel/pull/15194"
data-hovercard-type="pull_request"
data-hovercard-url="/babel/babel/pull/15194/hovercard">#15194</a> fix:
Bump <code>regenerator</code> and add tests (<a
href="https://snyk.io/redirect/github/SuperSodaSea">@
SuperSodaSea</a>)</li>
</ul>
</li>
<li><code>babel-helper-create-regexp-features-plugin</code>
<ul>
<li><a href="https://snyk.io/redirect/github/babel/babel/pull/15192"
data-hovercard-type="pull_request"
data-hovercard-url="/babel/babel/pull/15192/hovercard">#15192</a> fix:
Update <code>regjsparser</code> for <code>@ babel/standalone</code> (<a
href="https://snyk.io/redirect/github/liuxingbaoyu">@
liuxingbaoyu</a>)</li>
</ul>
</li>
<li><code>babel-parser</code>, <code>babel-types</code>
<ul>
<li><a href="https://snyk.io/redirect/github/babel/babel/pull/15109"
data-hovercard-type="pull_request"
data-hovercard-url="/babel/babel/pull/15109/hovercard">#15109</a> fix:
Babel 8 types (<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/15143"
data-hovercard-type="pull_request"
data-hovercard-url="/babel/babel/pull/15143/hovercard">#15143</a> Don't
print inner comments as leading when wrapping in <code>(``)</code> (<a
href="https://snyk.io/redirect/github/nicolo-ribaudo">@
nicolo-ribaudo</a>)</li>
</ul>
</li>
<li><code>babel-plugin-transform-block-scoping</code>,
<code>babel-traverse</code>
<ul>
<li><a href="https://snyk.io/redirect/github/babel/babel/pull/15167"
data-hovercard-type="pull_request"
data-hovercard-url="/babel/babel/pull/15167/hovercard">#15167</a>
Register <code>switch</code>'s <code>discriminant</code> in the outer
scope (<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-generator</code>
<ul>
<li><a href="https://snyk.io/redirect/github/babel/babel/pull/15173"
data-hovercard-type="pull_request"
data-hovercard-url="/babel/babel/pull/15173/hovercard">#15173</a>
Improve generator behavior when <code>comments:false</code> (<a
href="https://snyk.io/redirect/github/liuxingbaoyu">@
liuxingbaoyu</a>)</li>
</ul>
</li>
<li><code>babel-plugin-transform-block-scoping</code>
<ul>
<li><a href="https://snyk.io/redirect/github/babel/babel/pull/15164"
data-hovercard-type="pull_request"
data-hovercard-url="/babel/babel/pull/15164/hovercard">#15164</a> Only
extract IDs for TDZ checks in assign when necessary (<a
href="https://snyk.io/redirect/github/nicolo-ribaudo">@
nicolo-ribaudo</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-core</code>, <code>babel-parser</code>
<ul>
<li><a href="https://snyk.io/redirect/github/babel/babel/pull/15202"
data-hovercard-type="pull_request"
data-hovercard-url="/babel/babel/pull/15202/hovercard">#15202</a> Bump
typescript to 4.9.3 (<a href="https://snyk.io/redirect/github/JLHwung">@
JLHwung</a>)</li>
</ul>
</li>
</ul>
<h4>Committers: 6</h4>
<ul>
<li>Alexander Davydov (<a
href="https://snyk.io/redirect/github/davydof">@ davydof</a>)</li>
<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>Tianlan Zhou (<a
href="https://snyk.io/redirect/github/SuperSodaSea">@
SuperSodaSea</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>
<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=eyJ3cml0ZUtleSI6InJyWmxZcEdHY2RyTHZsb0lYd0dUcVg4WkFRTnNCOUEwIiwiYW5vbnltb3VzSWQiOiJiMmQyZGFlZi1hOTc4LTRkMTMtOWVlNS05ZjQ4MjA3ZDRlNDkiLCJldmVudCI6IlBSIHZpZXdlZCIsInByb3BlcnRpZXMiOnsicHJJZCI6ImIyZDJkYWVmLWE5NzgtNGQxMy05ZWU1LTlmNDgyMDdkNGU0OSJ9fQ=="
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;utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr#auto-dep-upgrades)

<!---
(snyk:metadata:{"prId":"b2d2daef-a978-4d13-9ee5-9f48207d4e49","prPublicId":"b2d2daef-a978-4d13-9ee5-9f48207d4e49","dependencies":[{"name":"@babel/core","from":"7.20.5","to":"7.20.7"}],"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-12-22T09:45:37.638Z"},"templateVariants":[],"hasFixes":false,"isMajorUpgrade":false,"isBreakingChange":false,"priorityScoreList":[]})
--->

Co-authored-by: snyk-bot <snyk-bot@snyk.io>
cbush pushed a commit to mongodb/docs-realm that referenced this pull request Jan 30, 2023
<h3>Snyk has created this PR to upgrade @babel/core from 7.20.7 to
7.20.12.</h3>

: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.
<hr/>

- The recommended version is **1 version** ahead of your current
version.
- The recommended version was released **21 days ago**, on 2023-01-04.

The recommended version fixes:

Severity | Issue | PriorityScore (*) | Exploit Maturity |

:-------------------------:|:-------------------------|-------------------------|:-------------------------
<img
src="https://res.cloudinary.com/snyk/image/upload/w_20,h_20/v1561977819/icon/m.png"
width="20" height="20" title="medium severity"/> | Prototype
Pollution<br/>
[SNYK-JS-JSON5-3182856](https://snyk.io/vuln/SNYK-JS-JSON5-3182856) |
**427/1000** <br/> **Why?** Proof of Concept exploit, CVSS 6.4 | Proof
of Concept

(*) Note that the real score may have changed since the PR was raised.


<details>
<summary><b>Release notes</b></summary>
<br/>
  <details>
    <summary>Package name: <b>@babel/core</b></summary>
    <ul>
      <li>
<b>7.20.12</b> - <a
href="https://snyk.io/redirect/github/babel/babel/releases/tag/v7.20.12">2023-01-04</a></br><h2>v7.20.12
(2023-01-04)</h2>
<p>Thanks <a class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/cross19xx/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://snyk.io/redirect/github/cross19xx">@ cross19xx</a>, <a
class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/JBYoshi/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://snyk.io/redirect/github/JBYoshi">@ JBYoshi</a> and <a
class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/nmn/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://snyk.io/redirect/github/nmn">@ nmn</a> for your first
PRs!</p>
<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-traverse</code>
<ul>
<li><a href="https://snyk.io/redirect/github/babel/babel/pull/15224"
data-hovercard-type="pull_request"
data-hovercard-url="/babel/babel/pull/15224/hovercard">#15224</a> Fix
<code>TaggedTemplateLiteral</code> evaluation (<a
href="https://snyk.io/redirect/github/nmn">@ nmn</a>)</li>
</ul>
</li>
<li><code>babel-helper-create-class-features-plugin</code>,
<code>babel-plugin-proposal-class-properties</code>
<ul>
<li><a href="https://snyk.io/redirect/github/babel/babel/pull/15312"
data-hovercard-type="pull_request"
data-hovercard-url="/babel/babel/pull/15312/hovercard">#15312</a> fix:
<code>delete this</code> in static class properties initialization (<a
href="https://snyk.io/redirect/github/SuperSodaSea">@
SuperSodaSea</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-traverse</code>
<ul>
<li><a href="https://snyk.io/redirect/github/babel/babel/pull/15313"
data-hovercard-type="pull_request"
data-hovercard-url="/babel/babel/pull/15313/hovercard">#15313</a>
Implement support for evaluating computed properties. (<a
href="https://snyk.io/redirect/github/JBYoshi">@ JBYoshi</a>)</li>
</ul>
</li>
</ul>
<h4>Committers: 5</h4>
<ul>
<li>Jonathan Browne (<a href="https://snyk.io/redirect/github/JBYoshi">@
JBYoshi</a>)</li>
<li>Kenneth Kwakye-Gyamfi (<a
href="https://snyk.io/redirect/github/cross19xx">@ cross19xx</a>)</li>
<li>Naman Goel (<a href="https://snyk.io/redirect/github/nmn">@
nmn</a>)</li>
<li>Nicolò Ribaudo (<a
href="https://snyk.io/redirect/github/nicolo-ribaudo">@
nicolo-ribaudo</a>)</li>
<li>Tianlan Zhou (<a
href="https://snyk.io/redirect/github/SuperSodaSea">@
SuperSodaSea</a>)</li>
</ul>
      </li>
      <li>
<b>7.20.7</b> - <a
href="https://snyk.io/redirect/github/babel/babel/releases/tag/v7.20.7">2022-12-22</a></br><h2>v7.20.7
(2022-12-22)</h2>
<p>Thanks <a class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/wsypower/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://snyk.io/redirect/github/wsypower">@ wsypower</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-helper-member-expression-to-functions</code>,
<code>babel-helper-replace-supers</code>,
<code>babel-plugin-proposal-class-properties</code>,
<code>babel-plugin-transform-classes</code>
<ul>
<li><a href="https://snyk.io/redirect/github/babel/babel/pull/15223"
data-hovercard-type="pull_request"
data-hovercard-url="/babel/babel/pull/15223/hovercard">#15223</a> fix:
Deleting super property should throw (<a
href="https://snyk.io/redirect/github/SuperSodaSea">@
SuperSodaSea</a>)</li>
</ul>
</li>
<li><code>babel-helpers</code>,
<code>babel-plugin-proposal-class-properties</code>,
<code>babel-plugin-transform-classes</code>,
<code>babel-plugin-transform-object-super</code>
<ul>
<li><a href="https://snyk.io/redirect/github/babel/babel/pull/15241"
data-hovercard-type="pull_request"
data-hovercard-url="/babel/babel/pull/15241/hovercard">#15241</a> fix:
Throw correct error types from sed ant class TDZ helpers (<a
href="https://snyk.io/redirect/github/SuperSodaSea">@
SuperSodaSea</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>,
<code>babel-plugin-transform-typescript</code>
<ul>
<li><a href="https://snyk.io/redirect/github/babel/babel/pull/15209"
data-hovercard-type="pull_request"
data-hovercard-url="/babel/babel/pull/15209/hovercard">#15209</a> fix:
Support auto accessors with TypeScript annotations (<a
href="https://snyk.io/redirect/github/liuxingbaoyu">@
liuxingbaoyu</a>)</li>
</ul>
</li>
<li><code>babel-traverse</code>
<ul>
<li><a href="https://snyk.io/redirect/github/babel/babel/pull/15287"
data-hovercard-type="pull_request"
data-hovercard-url="/babel/babel/pull/15287/hovercard">#15287</a> Fix
<code>.parentPath</code> after rename in <code>SwitchCase</code> (<a
href="https://snyk.io/redirect/github/nicolo-ribaudo">@
nicolo-ribaudo</a>)</li>
</ul>
</li>
<li><code>babel-plugin-transform-typescript</code>,
<code>babel-traverse</code>
<ul>
<li><a href="https://snyk.io/redirect/github/babel/babel/pull/15284"
data-hovercard-type="pull_request"
data-hovercard-url="/babel/babel/pull/15284/hovercard">#15284</a> fix:
Ts import type and func with duplicate name (<a
href="https://snyk.io/redirect/github/liuxingbaoyu">@
liuxingbaoyu</a>)</li>
</ul>
</li>
<li><code>babel-plugin-transform-block-scoping</code>
<ul>
<li><a href="https://snyk.io/redirect/github/babel/babel/pull/15278"
data-hovercard-type="pull_request"
data-hovercard-url="/babel/babel/pull/15278/hovercard">#15278</a> Fix
tdz analysis for reassigned captured for bindings (<a
href="https://snyk.io/redirect/github/nicolo-ribaudo">@
nicolo-ribaudo</a>)</li>
</ul>
</li>
<li><code>babel-plugin-proposal-async-generator-functions</code>,
<code>babel-preset-env</code>
<ul>
<li><a href="https://snyk.io/redirect/github/babel/babel/pull/15235"
data-hovercard-type="pull_request"
data-hovercard-url="/babel/babel/pull/15235/hovercard">#15235</a> fix:
Transform <code>for await</code> with shadowed variables (<a
href="https://snyk.io/redirect/github/liuxingbaoyu">@
liuxingbaoyu</a>)</li>
</ul>
</li>
<li><code>babel-generator</code>,
<code>babel-plugin-proposal-optional-chaining</code>
<ul>
<li><a href="https://snyk.io/redirect/github/babel/babel/pull/15258"
data-hovercard-type="pull_request"
data-hovercard-url="/babel/babel/pull/15258/hovercard">#15258</a> fix:
Correctly generate <code>(a ?? b) as T</code> (<a
href="https://snyk.io/redirect/github/liuxingbaoyu">@
liuxingbaoyu</a>)</li>
</ul>
</li>
<li><code>babel-plugin-transform-react-jsx</code>,
<code>babel-types</code>
<ul>
<li><a href="https://snyk.io/redirect/github/babel/babel/pull/15233"
data-hovercard-type="pull_request"
data-hovercard-url="/babel/babel/pull/15233/hovercard">#15233</a> fix:
Emit correct sourcemap ranges for <code>JSXText</code> (<a
href="https://snyk.io/redirect/github/liuxingbaoyu">@
liuxingbaoyu</a>)</li>
</ul>
</li>
<li><code>babel-core</code>, <code>babel-helpers</code>,
<code>babel-plugin-transform-computed-properties</code>,
<code>babel-runtime-corejs2</code>, <code>babel-runtime-corejs3</code>,
<code>babel-runtime</code>
<ul>
<li><a href="https://snyk.io/redirect/github/babel/babel/pull/15232"
data-hovercard-type="pull_request"
data-hovercard-url="/babel/babel/pull/15232/hovercard">#15232</a> fix:
Computed properties should keep original definition order (<a
href="https://snyk.io/redirect/github/SuperSodaSea">@
SuperSodaSea</a>)</li>
</ul>
</li>
<li><code>babel-helper-member-expression-to-functions</code>,
<code>babel-helper-replace-supers</code>,
<code>babel-plugin-proposal-class-properties</code>,
<code>babel-plugin-transform-classes</code>
<ul>
<li><a href="https://snyk.io/redirect/github/babel/babel/pull/15223"
data-hovercard-type="pull_request"
data-hovercard-url="/babel/babel/pull/15223/hovercard">#15223</a> fix:
Deleting super property should throw (<a
href="https://snyk.io/redirect/github/SuperSodaSea">@
SuperSodaSea</a>)</li>
</ul>
</li>
<li><code>babel-generator</code>
<ul>
<li><a href="https://snyk.io/redirect/github/babel/babel/pull/15216"
data-hovercard-type="pull_request"
data-hovercard-url="/babel/babel/pull/15216/hovercard">#15216</a> fix:
Print newlines for leading Comments of <code>TSEnumMember</code> (<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-plugin-transform-block-scoping</code>,
<code>babel-traverse</code>
<ul>
<li><a href="https://snyk.io/redirect/github/babel/babel/pull/15275"
data-hovercard-type="pull_request"
data-hovercard-url="/babel/babel/pull/15275/hovercard">#15275</a>
Improve relative execution tracking in fn exprs (<a
href="https://snyk.io/redirect/github/nicolo-ribaudo">@
nicolo-ribaudo</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-helper-define-map</code>,
<code>babel-plugin-transform-property-mutators</code>
<ul>
<li><a href="https://snyk.io/redirect/github/babel/babel/pull/15274"
data-hovercard-type="pull_request"
data-hovercard-url="/babel/babel/pull/15274/hovercard">#15274</a> Inline
&amp; simplify <code>@ babel/helper-define-map</code> (<a
href="https://snyk.io/redirect/github/nicolo-ribaudo">@
nicolo-ribaudo</a>)</li>
</ul>
</li>
<li><code>babel-core</code>,
<code>babel-plugin-proposal-class-properties</code>,
<code>babel-plugin-transform-block-scoping</code>,
<code>babel-plugin-transform-classes</code>,
<code>babel-plugin-transform-destructuring</code>,
<code>babel-plugin-transform-parameters</code>,
<code>babel-plugin-transform-regenerator</code>,
<code>babel-plugin-transform-runtime</code>,
<code>babel-preset-env</code>, <code>babel-traverse</code>
<ul>
<li><a href="https://snyk.io/redirect/github/babel/babel/pull/15200"
data-hovercard-type="pull_request"
data-hovercard-url="/babel/babel/pull/15200/hovercard">#15200</a>
Rewrite <code>transform-block-scoping</code> plugin (<a
href="https://snyk.io/redirect/github/nicolo-ribaudo">@
nicolo-ribaudo</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-helper-compilation-targets</code>
<ul>
<li><a href="https://snyk.io/redirect/github/babel/babel/pull/15228"
data-hovercard-type="pull_request"
data-hovercard-url="/babel/babel/pull/15228/hovercard">#15228</a> perf:
Speed up <code>getTargets</code> (<a
href="https://snyk.io/redirect/github/liuxingbaoyu">@
liuxingbaoyu</a>)</li>
</ul>
</li>
</ul>
<h4>Committers: 6</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>Tianlan Zhou (<a
href="https://snyk.io/redirect/github/SuperSodaSea">@
SuperSodaSea</a>)</li>
<li><a href="https://snyk.io/redirect/github/liuxingbaoyu">@
liuxingbaoyu</a></li>
<li>魏 (<a href="https://snyk.io/redirect/github/wsypower">@
wsypower</a>)</li>
</ul>
      </li>
    </ul>
from <a
href="https://snyk.io/redirect/github/babel/babel/releases">@babel/core
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=eyJ3cml0ZUtleSI6InJyWmxZcEdHY2RyTHZsb0lYd0dUcVg4WkFRTnNCOUEwIiwiYW5vbnltb3VzSWQiOiIxYjVhZTY0Yi1lYjQxLTRmOTgtYmRkMC1hOTE2ZTM5NDFkMDQiLCJldmVudCI6IlBSIHZpZXdlZCIsInByb3BlcnRpZXMiOnsicHJJZCI6IjFiNWFlNjRiLWViNDEtNGY5OC1iZGQwLWE5MTZlMzk0MWQwNCJ9fQ=="
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;utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr#auto-dep-upgrades)

<!---
(snyk:metadata:{"prId":"1b5ae64b-eb41-4f98-bdd0-a916e3941d04","prPublicId":"1b5ae64b-eb41-4f98-bdd0-a916e3941d04","dependencies":[{"name":"@babel/core","from":"7.20.7","to":"7.20.12"}],"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":["SNYK-JS-JSON5-3182856"],"issuesToFix":[{"issueId":"SNYK-JS-JSON5-3182856","severity":"medium","title":"Prototype
Pollution","exploitMaturity":"proof-of-concept","priorityScore":427,"priorityScoreFactors":[{"type":"exploit","label":"Proof
of
Concept","score":107},{"type":"cvssScore","label":"6.4","score":320}]}],"upgrade":["SNYK-JS-JSON5-3182856"],"upgradeInfo":{"versionsDiff":1,"publishedDate":"2023-01-04T16:02:21.147Z"},"templateVariants":["priorityScore"],"hasFixes":true,"isMajorUpgrade":false,"isBreakingChange":false,"priorityScoreList":[427]})
--->

---------

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 Mar 24, 2023
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Mar 24, 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: Internal 🏠 A type of pull request used for our changelog categories
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Bug]: Assignment to constant variables is not prevented using tdz option
5 participants