From 9953bb7ca52b2df0c7217c19662d924b8f2192a4 Mon Sep 17 00:00:00 2001 From: magic-akari Date: Sun, 12 Mar 2023 20:08:18 +0800 Subject: [PATCH 1/2] fix(es/config): respect the value of assumptions --- crates/swc/src/config/mod.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/swc/src/config/mod.rs b/crates/swc/src/config/mod.rs index ad8b84c457ed..12567f86a242 100644 --- a/crates/swc/src/config/mod.rs +++ b/crates/swc/src/config/mod.rs @@ -362,10 +362,10 @@ impl Options { // We do this before creating custom passes, so custom passses can use the // variable management system based on the syntax contexts. if syntax.typescript() { - assumptions.set_class_methods = !transform.use_define_for_class_fields.into_bool(); + assumptions.set_class_methods |= !transform.use_define_for_class_fields.into_bool(); } - assumptions.set_public_class_fields = !transform.use_define_for_class_fields.into_bool(); + assumptions.set_public_class_fields |= !transform.use_define_for_class_fields.into_bool(); program.visit_mut_with(&mut resolver( unresolved_mark, From a3b33eb7b68457389618a06badb29fdcf7fab89a Mon Sep 17 00:00:00 2001 From: magic-akari Date: Sun, 12 Mar 2023 20:46:28 +0800 Subject: [PATCH 2/2] chore: update test cases --- .../swc/tests/fixture/issues-1xxx/1278/output/index.ts | 4 ---- .../fixture/issues-2xxx/2011/no-minify/output/index.js | 5 +++-- .../fixture/issues-2xxx/2011/reduced/output/index.js | 5 ++--- .../swc/tests/fixture/issues-2xxx/2216/output/index.ts | 9 ++------- 4 files changed, 7 insertions(+), 16 deletions(-) diff --git a/crates/swc/tests/fixture/issues-1xxx/1278/output/index.ts b/crates/swc/tests/fixture/issues-1xxx/1278/output/index.ts index ec942df13fbb..8295065ec9df 100644 --- a/crates/swc/tests/fixture/issues-1xxx/1278/output/index.ts +++ b/crates/swc/tests/fixture/issues-1xxx/1278/output/index.ts @@ -2,7 +2,6 @@ Object.defineProperty(exports, "__esModule", { value: true }); -const _defineProperty = require("@swc/helpers/lib/_define_property.js").default; const _tsDecorate = require("@swc/helpers/lib/_ts_decorate.js").default; const _tsMetadata = require("@swc/helpers/lib/_ts_metadata.js").default; function MyDecorator(klass) { @@ -12,9 +11,6 @@ function MyDecorator(klass) { }; } class MyClass { - constructor(){ - _defineProperty(this, "prop", void 0); - } } _tsDecorate([ MyDecorator(MyClass), diff --git a/crates/swc/tests/fixture/issues-2xxx/2011/no-minify/output/index.js b/crates/swc/tests/fixture/issues-2xxx/2011/no-minify/output/index.js index a231389b3606..744fc889e658 100644 --- a/crates/swc/tests/fixture/issues-2xxx/2011/no-minify/output/index.js +++ b/crates/swc/tests/fixture/issues-2xxx/2011/no-minify/output/index.js @@ -1,4 +1,3 @@ -import _define_property from "@swc/helpers/src/_define_property.mjs"; var _ClassB; var ClassA = function ClassA() { "use strict"; @@ -11,4 +10,6 @@ module.exports = (_ClassB = /*#__PURE__*/ function() { this.bb = new ClassB.MyA(); }; return ClassB; -}(), _define_property(_ClassB, "MyA", ClassA), _ClassB); +}(), function() { + _ClassB.MyA = ClassA; +}(), _ClassB); diff --git a/crates/swc/tests/fixture/issues-2xxx/2011/reduced/output/index.js b/crates/swc/tests/fixture/issues-2xxx/2011/reduced/output/index.js index 0fd88a92eb20..d853080ee285 100644 --- a/crates/swc/tests/fixture/issues-2xxx/2011/reduced/output/index.js +++ b/crates/swc/tests/fixture/issues-2xxx/2011/reduced/output/index.js @@ -1,9 +1,8 @@ var t; -import r from "@swc/helpers/src/_define_property.mjs"; -module.exports = (r(t = function() { +module.exports = ((t = function() { "use strict"; function t() {} return t.prototype.it = function() { this.bb = new t.MyA(); }, t; -}(), "MyA", function() {}), t); +}()).MyA = function() {}, t); diff --git a/crates/swc/tests/fixture/issues-2xxx/2216/output/index.ts b/crates/swc/tests/fixture/issues-2xxx/2216/output/index.ts index 5622aa581a56..c8d3c9da185c 100644 --- a/crates/swc/tests/fixture/issues-2xxx/2216/output/index.ts +++ b/crates/swc/tests/fixture/issues-2xxx/2216/output/index.ts @@ -1,12 +1,7 @@ -import _create_class from "@swc/helpers/src/_create_class.mjs"; export var ATestForSwc = /*#__PURE__*/ function() { "use strict"; function ATestForSwc() {} - _create_class(ATestForSwc, [ - { - key: "testMethod", - value: function testMethod() {} - } - ]); + var _proto = ATestForSwc.prototype; + _proto.testMethod = function testMethod() {}; return ATestForSwc; }();