Skip to content

Commit 11d4874

Browse files
authoredMar 13, 2023
fix(es): Respect the value of assumptions (#7065)
1 parent 3da6d18 commit 11d4874

File tree

5 files changed

+9
-18
lines changed

5 files changed

+9
-18
lines changed
 

‎crates/swc/src/config/mod.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -362,10 +362,10 @@ impl Options {
362362
// We do this before creating custom passes, so custom passses can use the
363363
// variable management system based on the syntax contexts.
364364
if syntax.typescript() {
365-
assumptions.set_class_methods = !transform.use_define_for_class_fields.into_bool();
365+
assumptions.set_class_methods |= !transform.use_define_for_class_fields.into_bool();
366366
}
367367

368-
assumptions.set_public_class_fields = !transform.use_define_for_class_fields.into_bool();
368+
assumptions.set_public_class_fields |= !transform.use_define_for_class_fields.into_bool();
369369

370370
program.visit_mut_with(&mut resolver(
371371
unresolved_mark,

‎crates/swc/tests/fixture/issues-1xxx/1278/output/index.ts

-4
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
Object.defineProperty(exports, "__esModule", {
33
value: true
44
});
5-
const _defineProperty = require("@swc/helpers/lib/_define_property.js").default;
65
const _tsDecorate = require("@swc/helpers/lib/_ts_decorate.js").default;
76
const _tsMetadata = require("@swc/helpers/lib/_ts_metadata.js").default;
87
function MyDecorator(klass) {
@@ -12,9 +11,6 @@ function MyDecorator(klass) {
1211
};
1312
}
1413
class MyClass {
15-
constructor(){
16-
_defineProperty(this, "prop", void 0);
17-
}
1814
}
1915
_tsDecorate([
2016
MyDecorator(MyClass),

‎crates/swc/tests/fixture/issues-2xxx/2011/no-minify/output/index.js

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import _define_property from "@swc/helpers/src/_define_property.mjs";
21
var _ClassB;
32
var ClassA = function ClassA() {
43
"use strict";
@@ -11,4 +10,6 @@ module.exports = (_ClassB = /*#__PURE__*/ function() {
1110
this.bb = new ClassB.MyA();
1211
};
1312
return ClassB;
14-
}(), _define_property(_ClassB, "MyA", ClassA), _ClassB);
13+
}(), function() {
14+
_ClassB.MyA = ClassA;
15+
}(), _ClassB);
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
var t;
2-
import r from "@swc/helpers/src/_define_property.mjs";
3-
module.exports = (r(t = function() {
2+
module.exports = ((t = function() {
43
"use strict";
54
function t() {}
65
return t.prototype.it = function() {
76
this.bb = new t.MyA();
87
}, t;
9-
}(), "MyA", function() {}), t);
8+
}()).MyA = function() {}, t);
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,7 @@
1-
import _create_class from "@swc/helpers/src/_create_class.mjs";
21
export var ATestForSwc = /*#__PURE__*/ function() {
32
"use strict";
43
function ATestForSwc() {}
5-
_create_class(ATestForSwc, [
6-
{
7-
key: "testMethod",
8-
value: function testMethod() {}
9-
}
10-
]);
4+
var _proto = ATestForSwc.prototype;
5+
_proto.testMethod = function testMethod() {};
116
return ATestForSwc;
127
}();

1 commit comments

Comments
 (1)

github-actions[bot] commented on Mar 13, 2023

@github-actions[bot]

Benchmark

Benchmark suite Current: 11d4874 Previous: 97945d0 Ratio
es/full/bugs-1 311882 ns/iter (± 5390) 307732 ns/iter (± 13465) 1.01
es/full/minify/libraries/antd 1676125955 ns/iter (± 28199276) 1626065146 ns/iter (± 28978042) 1.03
es/full/minify/libraries/d3 310312819 ns/iter (± 6997234) 297522304 ns/iter (± 7703417) 1.04
es/full/minify/libraries/echarts 1261496650 ns/iter (± 15514273) 1210525260 ns/iter (± 11929177) 1.04
es/full/minify/libraries/jquery 92240018 ns/iter (± 1100088) 89619775 ns/iter (± 738576) 1.03
es/full/minify/libraries/lodash 105904743 ns/iter (± 1210531) 105589187 ns/iter (± 1426564) 1.00
es/full/minify/libraries/moment 52442047 ns/iter (± 591676) 52837512 ns/iter (± 575781) 0.99
es/full/minify/libraries/react 19031883 ns/iter (± 183286) 18998206 ns/iter (± 270206) 1.00
es/full/minify/libraries/terser 245803998 ns/iter (± 4324879) 244826168 ns/iter (± 4802947) 1.00
es/full/minify/libraries/three 444357105 ns/iter (± 6968596) 429826437 ns/iter (± 5997395) 1.03
es/full/minify/libraries/typescript 3061958376 ns/iter (± 25372413) 3054362774 ns/iter (± 24449276) 1.00
es/full/minify/libraries/victory 657696825 ns/iter (± 13818352) 662221329 ns/iter (± 8608921) 0.99
es/full/minify/libraries/vue 129925983 ns/iter (± 1311388) 129813542 ns/iter (± 1124296) 1.00
es/full/codegen/es3 26420 ns/iter (± 282) 26101 ns/iter (± 54) 1.01
es/full/codegen/es5 26507 ns/iter (± 157) 26310 ns/iter (± 71) 1.01
es/full/codegen/es2015 26492 ns/iter (± 85) 26260 ns/iter (± 49) 1.01
es/full/codegen/es2016 26512 ns/iter (± 77) 26209 ns/iter (± 48) 1.01
es/full/codegen/es2017 26590 ns/iter (± 50) 26216 ns/iter (± 66) 1.01
es/full/codegen/es2018 26589 ns/iter (± 123) 26217 ns/iter (± 51) 1.01
es/full/codegen/es2019 26506 ns/iter (± 52) 26266 ns/iter (± 56) 1.01
es/full/codegen/es2020 26491 ns/iter (± 62) 26204 ns/iter (± 53) 1.01
es/full/all/es3 180926987 ns/iter (± 2985911) 182118939 ns/iter (± 4395826) 0.99
es/full/all/es5 173212713 ns/iter (± 3258910) 173153943 ns/iter (± 2533095) 1.00
es/full/all/es2015 135932165 ns/iter (± 1085418) 131529213 ns/iter (± 1877953) 1.03
es/full/all/es2016 134014489 ns/iter (± 2431510) 129487343 ns/iter (± 2301366) 1.03
es/full/all/es2017 131675577 ns/iter (± 2043211) 131755581 ns/iter (± 2542642) 1.00
es/full/all/es2018 128537029 ns/iter (± 2284060) 125058826 ns/iter (± 2054705) 1.03
es/full/all/es2019 125026460 ns/iter (± 1660441) 124583856 ns/iter (± 1818713) 1.00
es/full/all/es2020 118460641 ns/iter (± 788665) 117402772 ns/iter (± 787173) 1.01
es/full/parser 537212 ns/iter (± 8157) 524539 ns/iter (± 7570) 1.02
es/full/base/fixer 22348 ns/iter (± 29) 22255 ns/iter (± 61) 1.00
es/full/base/resolver_and_hygiene 82189 ns/iter (± 176) 81919 ns/iter (± 336) 1.00
serialization of ast node 125 ns/iter (± 0) 124 ns/iter (± 0) 1.01
serialization of serde 127 ns/iter (± 0) 126 ns/iter (± 0) 1.01
css/minify/libraries/bootstrap 28468297 ns/iter (± 214616) 28155451 ns/iter (± 156577) 1.01
css/visitor/compare/clone 2095838 ns/iter (± 17677) 2093994 ns/iter (± 23110) 1.00
css/visitor/compare/visit_mut_span 2257958 ns/iter (± 50065) 2291048 ns/iter (± 5467) 0.99
css/visitor/compare/visit_mut_span_panic 2332797 ns/iter (± 5178) 2324925 ns/iter (± 6988) 1.00
css/visitor/compare/fold_span 3032901 ns/iter (± 24048) 3066896 ns/iter (± 16553) 0.99
css/visitor/compare/fold_span_panic 3218762 ns/iter (± 28690) 3190702 ns/iter (± 13638) 1.01
css/lexer/bootstrap_5_1_3 5145481 ns/iter (± 13142) 5172232 ns/iter (± 14214) 0.99
css/lexer/foundation_6_7_4 4341172 ns/iter (± 4114) 4356712 ns/iter (± 6646) 1.00
css/lexer/tailwind_3_1_1 823524 ns/iter (± 539) 824249 ns/iter (± 386) 1.00
css/parser/bootstrap_5_1_3 21960790 ns/iter (± 81135) 21546895 ns/iter (± 39277) 1.02
css/parser/foundation_6_7_4 17597065 ns/iter (± 108897) 17192054 ns/iter (± 18474) 1.02
css/parser/tailwind_3_1_1 3337868 ns/iter (± 2897) 3308537 ns/iter (± 3965) 1.01
es/codegen/colors 330272 ns/iter (± 186667) 329226 ns/iter (± 184407) 1.00
es/codegen/large 1230730 ns/iter (± 643705) 1186122 ns/iter (± 604787) 1.04
es/codegen/with-parser/colors 47005 ns/iter (± 287) 47380 ns/iter (± 414) 0.99
es/codegen/with-parser/large 519859 ns/iter (± 1099) 516843 ns/iter (± 966) 1.01
es/minify/libraries/antd 1418795322 ns/iter (± 8023977) 1359716034 ns/iter (± 33795727) 1.04
es/minify/libraries/d3 249947576 ns/iter (± 2587571) 246356652 ns/iter (± 2716475) 1.01
es/minify/libraries/echarts 1088201657 ns/iter (± 21325234) 1040925609 ns/iter (± 9984370) 1.05
es/minify/libraries/jquery 78586964 ns/iter (± 893411) 78132926 ns/iter (± 309337) 1.01
es/minify/libraries/lodash 94549853 ns/iter (± 1406714) 93877585 ns/iter (± 1207508) 1.01
es/minify/libraries/moment 45408642 ns/iter (± 293413) 45121426 ns/iter (± 472522) 1.01
es/minify/libraries/react 16915967 ns/iter (± 110931) 16827198 ns/iter (± 106280) 1.01
es/minify/libraries/terser 208958891 ns/iter (± 2685676) 206213010 ns/iter (± 2716610) 1.01
es/minify/libraries/three 364015445 ns/iter (± 4507882) 347516455 ns/iter (± 6179951) 1.05
es/minify/libraries/typescript 2601891341 ns/iter (± 17268816) 2591465992 ns/iter (± 21805418) 1.00
es/minify/libraries/victory 543972776 ns/iter (± 7283181) 554906893 ns/iter (± 14015021) 0.98
es/minify/libraries/vue 116260963 ns/iter (± 1047385) 114512370 ns/iter (± 748650) 1.02
es/visitor/compare/clone 2363822 ns/iter (± 9662) 2315234 ns/iter (± 4007) 1.02
es/visitor/compare/visit_mut_span 2722947 ns/iter (± 6237) 2701186 ns/iter (± 4990) 1.01
es/visitor/compare/visit_mut_span_panic 2777810 ns/iter (± 5652) 2722146 ns/iter (± 5585) 1.02
es/visitor/compare/fold_span 3850058 ns/iter (± 19245) 3790572 ns/iter (± 2891) 1.02
es/visitor/compare/fold_span_panic 3994215 ns/iter (± 11402) 3935834 ns/iter (± 6368) 1.01
es/lexer/colors 15117 ns/iter (± 32) 15015 ns/iter (± 10) 1.01
es/lexer/angular 7367328 ns/iter (± 6762) 7369800 ns/iter (± 6162) 1.00
es/lexer/backbone 988536 ns/iter (± 1223) 987139 ns/iter (± 341) 1.00
es/lexer/jquery 5509121 ns/iter (± 3815) 5500108 ns/iter (± 1266) 1.00
es/lexer/jquery mobile 8494005 ns/iter (± 9114) 8479893 ns/iter (± 4542) 1.00
es/lexer/mootools 4353318 ns/iter (± 2557) 4349887 ns/iter (± 1097) 1.00
es/lexer/underscore 827178 ns/iter (± 249) 826631 ns/iter (± 345) 1.00
es/lexer/three 25772931 ns/iter (± 20752) 25668040 ns/iter (± 45407) 1.00
es/lexer/yui 4602086 ns/iter (± 1994) 4589708 ns/iter (± 4354) 1.00
es/parser/colors 29785 ns/iter (± 103) 29249 ns/iter (± 59) 1.02
es/parser/angular 15479082 ns/iter (± 191160) 14961264 ns/iter (± 88975) 1.03
es/parser/backbone 2253915 ns/iter (± 14684) 2230304 ns/iter (± 12488) 1.01
es/parser/jquery 12325004 ns/iter (± 154262) 12096442 ns/iter (± 95701) 1.02
es/parser/jquery mobile 19674821 ns/iter (± 485728) 18812371 ns/iter (± 283603) 1.05
es/parser/mootools 9301967 ns/iter (± 49418) 9250663 ns/iter (± 21442) 1.01
es/parser/underscore 1904529 ns/iter (± 10898) 1896886 ns/iter (± 10901) 1.00
es/parser/three 56320967 ns/iter (± 1369436) 54755638 ns/iter (± 991942) 1.03
es/parser/yui 9290268 ns/iter (± 53548) 9202253 ns/iter (± 65163) 1.01
es/preset-env/usage/builtin_type 142862 ns/iter (± 34536) 144199 ns/iter (± 35717) 0.99
es/preset-env/usage/property 20750 ns/iter (± 18) 20221 ns/iter (± 67) 1.03
es/resolver/typescript 114212512 ns/iter (± 1560753) 111774807 ns/iter (± 2359380) 1.02
es/fixer/typescript 85227025 ns/iter (± 613225) 84307972 ns/iter (± 658521) 1.01
es/hygiene/typescript 181278146 ns/iter (± 1391232) 179346487 ns/iter (± 1542237) 1.01
es/resolver_with_hygiene/typescript 328369692 ns/iter (± 2196592) 313275003 ns/iter (± 5201533) 1.05
es/visitor/base-perf/module_clone 79258 ns/iter (± 1278) 79390 ns/iter (± 1105) 1.00
es/visitor/base-perf/fold_empty 89808 ns/iter (± 1313) 88790 ns/iter (± 1363) 1.01
es/visitor/base-perf/fold_noop_impl_all 91084 ns/iter (± 1275) 89189 ns/iter (± 1538) 1.02
es/visitor/base-perf/fold_noop_impl_vec 91568 ns/iter (± 783) 89828 ns/iter (± 1428) 1.02
es/visitor/base-perf/boxing_boxed_clone 56 ns/iter (± 0) 57 ns/iter (± 0) 0.98
es/visitor/base-perf/boxing_unboxed_clone 54 ns/iter (± 0) 60 ns/iter (± 0) 0.90
es/visitor/base-perf/boxing_boxed 104 ns/iter (± 0) 101 ns/iter (± 0) 1.03
es/visitor/base-perf/boxing_unboxed 98 ns/iter (± 0) 98 ns/iter (± 0) 1
es/visitor/base-perf/visit_contains_this 3495 ns/iter (± 56) 3534 ns/iter (± 43) 0.99
es/base/parallel/resolver/typescript 5484842320 ns/iter (± 473209810) 5580125237 ns/iter (± 543414760) 0.98
es/base/parallel/hygiene/typescript 2152710308 ns/iter (± 22805801) 2150488631 ns/iter (± 25314924) 1.00
misc/visitors/time-complexity/time 5 101 ns/iter (± 0) 98 ns/iter (± 0) 1.03
misc/visitors/time-complexity/time 10 352 ns/iter (± 0) 334 ns/iter (± 2) 1.05
misc/visitors/time-complexity/time 15 700 ns/iter (± 3) 695 ns/iter (± 14) 1.01
misc/visitors/time-complexity/time 20 1335 ns/iter (± 8) 1266 ns/iter (± 1) 1.05
misc/visitors/time-complexity/time 40 6865 ns/iter (± 23) 6753 ns/iter (± 67) 1.02
misc/visitors/time-complexity/time 60 17392 ns/iter (± 24) 17273 ns/iter (± 31) 1.01
es/full-target/es2016 250003 ns/iter (± 628) 249682 ns/iter (± 408) 1.00
es/full-target/es2017 240888 ns/iter (± 439) 242130 ns/iter (± 328) 0.99
es/full-target/es2018 230369 ns/iter (± 858) 231300 ns/iter (± 325) 1.00
es2020_nullish_coalescing 90777 ns/iter (± 561) 90720 ns/iter (± 601) 1.00
es2020_optional_chaining 122089 ns/iter (± 789) 123995 ns/iter (± 492) 0.98
es2022_class_properties 145375 ns/iter (± 655) 146162 ns/iter (± 308) 0.99
es2018_object_rest_spread 93408 ns/iter (± 495) 94388 ns/iter (± 243) 0.99
es2019_optional_catch_binding 82784 ns/iter (± 454) 84057 ns/iter (± 163) 0.98
es2017_async_to_generator 83718 ns/iter (± 543) 84239 ns/iter (± 186) 0.99
es2016_exponentiation 87999 ns/iter (± 305) 88154 ns/iter (± 266) 1.00
es2015_arrow 92721 ns/iter (± 583) 92599 ns/iter (± 310) 1.00
es2015_block_scoped_fn 89597 ns/iter (± 584) 89968 ns/iter (± 210) 1.00
es2015_block_scoping 167169 ns/iter (± 1079) 167975 ns/iter (± 384) 1.00

This comment was automatically generated by workflow using github-action-benchmark.

Please sign in to comment.