From 6b14bdcdcdf353fa09cd83c6f9213a15cf48e447 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Ribaudo?= Date: Thu, 22 Apr 2021 22:23:13 +0200 Subject: [PATCH] Also for brand checks --- .../package.json | 2 +- .../src/index.js | 6 +++++- .../test/fixtures/to-native-fields/accessor/output.js | 2 +- .../class-expression-in-default-param/output.js | 2 +- .../to-native-fields/class-expression-instance/output.js | 2 +- .../to-native-fields/class-expression-static/output.js | 2 +- .../test/fixtures/to-native-fields/field/output.js | 2 +- .../to-native-fields/half-constructed-instance/output.js | 6 +++--- .../to-native-fields/half-constructed-static/output.js | 4 ++-- .../test/fixtures/to-native-fields/method/output.js | 2 +- .../fixtures/to-native-fields/multiple-checks/output.js | 4 ++-- .../nested-class-other-redeclared/output.js | 6 +++--- .../to-native-fields/nested-class-redeclared/output.js | 4 ++-- .../test/fixtures/to-native-fields/nested-class/output.js | 2 +- .../test/fixtures/to-native-fields/static-field/output.js | 2 +- .../to-native-fields/static-shadowed-binding/output.js | 2 +- .../new-class-features-chrome-90/output.js | 2 +- yarn.lock | 4 ++-- 18 files changed, 30 insertions(+), 26 deletions(-) diff --git a/packages/babel-plugin-proposal-private-property-in-object/package.json b/packages/babel-plugin-proposal-private-property-in-object/package.json index 464b0c27620d..2200348fa6c0 100644 --- a/packages/babel-plugin-proposal-private-property-in-object/package.json +++ b/packages/babel-plugin-proposal-private-property-in-object/package.json @@ -17,7 +17,7 @@ "babel-plugin" ], "dependencies": { - "@babel/helper-compilation-targets": "workspace:^7.12.17", + "@babel/helper-annotate-as-pure": "workspace:^7.12.13", "@babel/helper-create-class-features-plugin": "workspace:^7.13.0", "@babel/helper-plugin-utils": "workspace:^7.13.0", "@babel/plugin-syntax-private-property-in-object": "workspace:^7.13.0" diff --git a/packages/babel-plugin-proposal-private-property-in-object/src/index.js b/packages/babel-plugin-proposal-private-property-in-object/src/index.js index 2beb98dae688..9d7d31a2942b 100644 --- a/packages/babel-plugin-proposal-private-property-in-object/src/index.js +++ b/packages/babel-plugin-proposal-private-property-in-object/src/index.js @@ -5,6 +5,7 @@ import { FEATURES, injectInitialization as injectConstructorInit, } from "@babel/helper-create-class-features-plugin"; +import annotateAsPure from "@babel/helper-annotate-as-pure"; export default declare(({ assertVersion, types: t, template }, { loose }) => { assertVersion(7); @@ -72,7 +73,10 @@ export default declare(({ assertVersion, types: t, template }, { loose }) => { inject(reference, template.expression.ast`${t.cloneNode(id)}.add(this)`); - outerClass.insertBefore(template.ast`var ${id} = new WeakSet()`); + const newExpr = t.newExpression(t.identifier("WeakSet"), []); + annotateAsPure(newExpr); + + outerClass.insertBefore(template.ast`var ${id} = ${newExpr}`); } return t.cloneNode(id); diff --git a/packages/babel-plugin-proposal-private-property-in-object/test/fixtures/to-native-fields/accessor/output.js b/packages/babel-plugin-proposal-private-property-in-object/test/fixtures/to-native-fields/accessor/output.js index 7a64679f5a1a..f7a2a1df365c 100644 --- a/packages/babel-plugin-proposal-private-property-in-object/test/fixtures/to-native-fields/accessor/output.js +++ b/packages/babel-plugin-proposal-private-property-in-object/test/fixtures/to-native-fields/accessor/output.js @@ -1,4 +1,4 @@ -var _FooBrandCheck = new WeakSet(); +var _FooBrandCheck = /*#__PURE__*/new WeakSet(); class Foo { constructor() { diff --git a/packages/babel-plugin-proposal-private-property-in-object/test/fixtures/to-native-fields/class-expression-in-default-param/output.js b/packages/babel-plugin-proposal-private-property-in-object/test/fixtures/to-native-fields/class-expression-in-default-param/output.js index 5289f0c5e834..79443544a14d 100644 --- a/packages/babel-plugin-proposal-private-property-in-object/test/fixtures/to-native-fields/class-expression-in-default-param/output.js +++ b/packages/babel-plugin-proposal-private-property-in-object/test/fixtures/to-native-fields/class-expression-in-default-param/output.js @@ -1,7 +1,7 @@ (x = (() => { var _fooBrandCheck; - return _fooBrandCheck = new WeakSet(), class { + return _fooBrandCheck = /*#__PURE__*/new WeakSet(), class { #foo = void _fooBrandCheck.add(this); test(other) { diff --git a/packages/babel-plugin-proposal-private-property-in-object/test/fixtures/to-native-fields/class-expression-instance/output.js b/packages/babel-plugin-proposal-private-property-in-object/test/fixtures/to-native-fields/class-expression-instance/output.js index 495153fae073..164117087063 100644 --- a/packages/babel-plugin-proposal-private-property-in-object/test/fixtures/to-native-fields/class-expression-instance/output.js +++ b/packages/babel-plugin-proposal-private-property-in-object/test/fixtures/to-native-fields/class-expression-instance/output.js @@ -1,7 +1,7 @@ function fn() { var _privBrandCheck; - return new (_privBrandCheck = new WeakSet(), class { + return new (_privBrandCheck = /*#__PURE__*/new WeakSet(), class { #priv = void _privBrandCheck.add(this); method(obj) { diff --git a/packages/babel-plugin-proposal-private-property-in-object/test/fixtures/to-native-fields/class-expression-static/output.js b/packages/babel-plugin-proposal-private-property-in-object/test/fixtures/to-native-fields/class-expression-static/output.js index 39716aed530a..ff0e5b1a6548 100644 --- a/packages/babel-plugin-proposal-private-property-in-object/test/fixtures/to-native-fields/class-expression-static/output.js +++ b/packages/babel-plugin-proposal-private-property-in-object/test/fixtures/to-native-fields/class-expression-static/output.js @@ -1,7 +1,7 @@ function fn() { var _privBrandCheck; - return new (_privBrandCheck = new WeakSet(), class { + return new (_privBrandCheck = /*#__PURE__*/new WeakSet(), class { static #priv = void _privBrandCheck.add(this); method(obj) { diff --git a/packages/babel-plugin-proposal-private-property-in-object/test/fixtures/to-native-fields/field/output.js b/packages/babel-plugin-proposal-private-property-in-object/test/fixtures/to-native-fields/field/output.js index 7ff1de3959f6..c0ea2596a758 100644 --- a/packages/babel-plugin-proposal-private-property-in-object/test/fixtures/to-native-fields/field/output.js +++ b/packages/babel-plugin-proposal-private-property-in-object/test/fixtures/to-native-fields/field/output.js @@ -1,6 +1,6 @@ var _temp; -var _fooBrandCheck = new WeakSet(); +var _fooBrandCheck = /*#__PURE__*/new WeakSet(); class Foo { #foo = (_temp = 1, _fooBrandCheck.add(this), _temp); diff --git a/packages/babel-plugin-proposal-private-property-in-object/test/fixtures/to-native-fields/half-constructed-instance/output.js b/packages/babel-plugin-proposal-private-property-in-object/test/fixtures/to-native-fields/half-constructed-instance/output.js index 4d8bbd2a8b80..6a6068c69d7a 100644 --- a/packages/babel-plugin-proposal-private-property-in-object/test/fixtures/to-native-fields/half-constructed-instance/output.js +++ b/packages/babel-plugin-proposal-private-property-in-object/test/fixtures/to-native-fields/half-constructed-instance/output.js @@ -1,10 +1,10 @@ var _temp, _temp2; -var _FBrandCheck = new WeakSet(); +var _FBrandCheck = /*#__PURE__*/new WeakSet(); -var _xBrandCheck = new WeakSet(); +var _xBrandCheck = /*#__PURE__*/new WeakSet(); -var _yBrandCheck = new WeakSet(); +var _yBrandCheck = /*#__PURE__*/new WeakSet(); class F { m() { diff --git a/packages/babel-plugin-proposal-private-property-in-object/test/fixtures/to-native-fields/half-constructed-static/output.js b/packages/babel-plugin-proposal-private-property-in-object/test/fixtures/to-native-fields/half-constructed-static/output.js index e0ebbc3e2758..5a318b582285 100644 --- a/packages/babel-plugin-proposal-private-property-in-object/test/fixtures/to-native-fields/half-constructed-static/output.js +++ b/packages/babel-plugin-proposal-private-property-in-object/test/fixtures/to-native-fields/half-constructed-static/output.js @@ -1,8 +1,8 @@ var _temp, _temp2; -var _xBrandCheck = new WeakSet(); +var _xBrandCheck = /*#__PURE__*/new WeakSet(); -var _yBrandCheck = new WeakSet(); +var _yBrandCheck = /*#__PURE__*/new WeakSet(); class F { static m() { diff --git a/packages/babel-plugin-proposal-private-property-in-object/test/fixtures/to-native-fields/method/output.js b/packages/babel-plugin-proposal-private-property-in-object/test/fixtures/to-native-fields/method/output.js index 59a6fb1062f8..71e16edbe93f 100644 --- a/packages/babel-plugin-proposal-private-property-in-object/test/fixtures/to-native-fields/method/output.js +++ b/packages/babel-plugin-proposal-private-property-in-object/test/fixtures/to-native-fields/method/output.js @@ -1,4 +1,4 @@ -var _FooBrandCheck = new WeakSet(); +var _FooBrandCheck = /*#__PURE__*/new WeakSet(); class Foo { constructor() { diff --git a/packages/babel-plugin-proposal-private-property-in-object/test/fixtures/to-native-fields/multiple-checks/output.js b/packages/babel-plugin-proposal-private-property-in-object/test/fixtures/to-native-fields/multiple-checks/output.js index 98dc5cd7d891..da055a4bc10b 100644 --- a/packages/babel-plugin-proposal-private-property-in-object/test/fixtures/to-native-fields/multiple-checks/output.js +++ b/packages/babel-plugin-proposal-private-property-in-object/test/fixtures/to-native-fields/multiple-checks/output.js @@ -1,6 +1,6 @@ -var _xBrandCheck = new WeakSet(); +var _xBrandCheck = /*#__PURE__*/new WeakSet(); -var _ABrandCheck = new WeakSet(); +var _ABrandCheck = /*#__PURE__*/new WeakSet(); class A { #x = (_ABrandCheck.add(this), void _xBrandCheck.add(this)); diff --git a/packages/babel-plugin-proposal-private-property-in-object/test/fixtures/to-native-fields/nested-class-other-redeclared/output.js b/packages/babel-plugin-proposal-private-property-in-object/test/fixtures/to-native-fields/nested-class-other-redeclared/output.js index 2f11e248f111..9048d000144f 100644 --- a/packages/babel-plugin-proposal-private-property-in-object/test/fixtures/to-native-fields/nested-class-other-redeclared/output.js +++ b/packages/babel-plugin-proposal-private-property-in-object/test/fixtures/to-native-fields/nested-class-other-redeclared/output.js @@ -1,8 +1,8 @@ var _temp, _temp3; -var _fooBrandCheck = new WeakSet(); +var _fooBrandCheck = /*#__PURE__*/new WeakSet(); -var _barBrandCheck2 = new WeakSet(); +var _barBrandCheck2 = /*#__PURE__*/new WeakSet(); class Foo { #foo = (_temp = 1, _fooBrandCheck.add(this), _temp); @@ -11,7 +11,7 @@ class Foo { test() { var _temp2; - var _barBrandCheck = new WeakSet(); + var _barBrandCheck = /*#__PURE__*/new WeakSet(); class Nested { #bar = (_temp2 = 2, _barBrandCheck.add(this), _temp2); diff --git a/packages/babel-plugin-proposal-private-property-in-object/test/fixtures/to-native-fields/nested-class-redeclared/output.js b/packages/babel-plugin-proposal-private-property-in-object/test/fixtures/to-native-fields/nested-class-redeclared/output.js index 87094388d2ab..279f759f6f6d 100644 --- a/packages/babel-plugin-proposal-private-property-in-object/test/fixtures/to-native-fields/nested-class-redeclared/output.js +++ b/packages/babel-plugin-proposal-private-property-in-object/test/fixtures/to-native-fields/nested-class-redeclared/output.js @@ -1,6 +1,6 @@ var _temp2; -var _fooBrandCheck2 = new WeakSet(); +var _fooBrandCheck2 = /*#__PURE__*/new WeakSet(); class Foo { #foo = (_temp2 = 1, _fooBrandCheck2.add(this), _temp2); @@ -8,7 +8,7 @@ class Foo { test() { var _temp; - var _fooBrandCheck = new WeakSet(); + var _fooBrandCheck = /*#__PURE__*/new WeakSet(); class Nested { #foo = (_temp = 2, _fooBrandCheck.add(this), _temp); diff --git a/packages/babel-plugin-proposal-private-property-in-object/test/fixtures/to-native-fields/nested-class/output.js b/packages/babel-plugin-proposal-private-property-in-object/test/fixtures/to-native-fields/nested-class/output.js index c897b8d6c8e1..ff28dc79027c 100644 --- a/packages/babel-plugin-proposal-private-property-in-object/test/fixtures/to-native-fields/nested-class/output.js +++ b/packages/babel-plugin-proposal-private-property-in-object/test/fixtures/to-native-fields/nested-class/output.js @@ -1,6 +1,6 @@ var _temp; -var _fooBrandCheck = new WeakSet(); +var _fooBrandCheck = /*#__PURE__*/new WeakSet(); class Foo { #foo = (_temp = 1, _fooBrandCheck.add(this), _temp); diff --git a/packages/babel-plugin-proposal-private-property-in-object/test/fixtures/to-native-fields/static-field/output.js b/packages/babel-plugin-proposal-private-property-in-object/test/fixtures/to-native-fields/static-field/output.js index ceadc64ac495..588b3ad0b3c9 100644 --- a/packages/babel-plugin-proposal-private-property-in-object/test/fixtures/to-native-fields/static-field/output.js +++ b/packages/babel-plugin-proposal-private-property-in-object/test/fixtures/to-native-fields/static-field/output.js @@ -1,6 +1,6 @@ var _temp; -var _fooBrandCheck = new WeakSet(); +var _fooBrandCheck = /*#__PURE__*/new WeakSet(); class Foo { static #foo = (_temp = 1, _fooBrandCheck.add(this), _temp); diff --git a/packages/babel-plugin-proposal-private-property-in-object/test/fixtures/to-native-fields/static-shadowed-binding/output.js b/packages/babel-plugin-proposal-private-property-in-object/test/fixtures/to-native-fields/static-shadowed-binding/output.js index b89f6ea5a3cb..9b87e5b5b41d 100644 --- a/packages/babel-plugin-proposal-private-property-in-object/test/fixtures/to-native-fields/static-shadowed-binding/output.js +++ b/packages/babel-plugin-proposal-private-property-in-object/test/fixtures/to-native-fields/static-shadowed-binding/output.js @@ -1,4 +1,4 @@ -var _fooBrandCheck = new WeakSet(); +var _fooBrandCheck = /*#__PURE__*/new WeakSet(); class A { static #foo = void _fooBrandCheck.add(this); diff --git a/packages/babel-preset-env/test/fixtures/shipped-proposals/new-class-features-chrome-90/output.js b/packages/babel-preset-env/test/fixtures/shipped-proposals/new-class-features-chrome-90/output.js index ce3182dcfd26..cb0872d19585 100644 --- a/packages/babel-preset-env/test/fixtures/shipped-proposals/new-class-features-chrome-90/output.js +++ b/packages/babel-preset-env/test/fixtures/shipped-proposals/new-class-features-chrome-90/output.js @@ -1,4 +1,4 @@ -var _fooBrandCheck = new WeakSet(); +var _fooBrandCheck = /*#__PURE__*/new WeakSet(); class A { #foo = void _fooBrandCheck.add(this); diff --git a/yarn.lock b/yarn.lock index 86c91e160d5d..3ed645532b51 100644 --- a/yarn.lock +++ b/yarn.lock @@ -393,7 +393,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-compilation-targets@workspace:^7.12.17, @babel/helper-compilation-targets@workspace:^7.13.13, @babel/helper-compilation-targets@workspace:^7.13.16, @babel/helper-compilation-targets@workspace:^7.13.8, @babel/helper-compilation-targets@workspace:packages/babel-helper-compilation-targets": +"@babel/helper-compilation-targets@workspace:^7.13.13, @babel/helper-compilation-targets@workspace:^7.13.16, @babel/helper-compilation-targets@workspace:^7.13.8, @babel/helper-compilation-targets@workspace:packages/babel-helper-compilation-targets": version: 0.0.0-use.local resolution: "@babel/helper-compilation-targets@workspace:packages/babel-helper-compilation-targets" dependencies: @@ -1440,7 +1440,7 @@ __metadata: resolution: "@babel/plugin-proposal-private-property-in-object@workspace:packages/babel-plugin-proposal-private-property-in-object" dependencies: "@babel/core": "workspace:*" - "@babel/helper-compilation-targets": "workspace:^7.12.17" + "@babel/helper-annotate-as-pure": "workspace:^7.12.13" "@babel/helper-create-class-features-plugin": "workspace:^7.13.0" "@babel/helper-plugin-test-runner": "workspace:*" "@babel/helper-plugin-utils": "workspace:^7.13.0"