Skip to content

Commit

Permalink
fix(es/helpers): Fix syntax context of helpers (#4900)
Browse files Browse the repository at this point in the history
  • Loading branch information
kdy1 committed Jun 7, 2022
1 parent dce3a89 commit 4e3a878
Show file tree
Hide file tree
Showing 4 changed files with 55 additions and 1 deletion.
18 changes: 18 additions & 0 deletions crates/swc/tests/fixture/issues-4xxx/4891/input/.swcrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"jsc": {
"parser": {
"syntax": "typescript",
"tsx": false
},
"target": "es2017",
"loose": true,
"minify": {
"compress": false,
"mangle": false
}
},
"module": {
"type": "es6"
},
"minify": false
}
12 changes: 12 additions & 0 deletions crates/swc/tests/fixture/issues-4xxx/4891/input/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
export class LocalStorageChannel {
readonly #channelName: string;
#listeners: MessageListener[];

constructor(channelName: string) {
this.#channelName = channelName;
this.#listeners = [];
window.addEventListener("storage", (event) =>
this.onStorageEvent(event)
);
}
}
18 changes: 18 additions & 0 deletions crates/swc/tests/fixture/issues-4xxx/4891/output/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import _class_private_field_loose_base from "@swc/helpers/lib/_class_private_field_loose_base.js";
import _class_private_field_loose_key from "@swc/helpers/lib/_class_private_field_loose_key.js";
var _channelName = _class_private_field_loose_key("_channelName"), _listeners = _class_private_field_loose_key("_listeners");
export class LocalStorageChannel {
constructor(channelName){
Object.defineProperty(this, _channelName, {
writable: true,
value: void 0
});
Object.defineProperty(this, _listeners, {
writable: true,
value: void 0
});
_class_private_field_loose_base(this, _channelName)[_channelName] = channelName;
_class_private_field_loose_base(this, _listeners)[_listeners] = [];
window.addEventListener("storage", (event)=>this.onStorageEvent(event));
}
}
8 changes: 7 additions & 1 deletion crates/swc_ecma_transforms_base/src/helpers/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -479,7 +479,13 @@ impl VisitMut for Marker {
}

fn visit_mut_var_declarator(&mut self, v: &mut VarDeclarator) {
if let Pat::Ident(i) = &v.name {
if let Pat::Ident(i) = &mut v.name {
if &*i.id.sym == "id" {
i.id.span.ctxt = self.base;
self.decls.insert(i.id.sym.clone(), self.base);
return;
}

if &*i.id.sym != "_typeof" && !i.id.sym.starts_with("__") {
self.decls.insert(i.id.sym.clone(), self.decl_ctxt);
}
Expand Down

1 comment on commit 4e3a878

@github-actions
Copy link

Choose a reason for hiding this comment

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

Benchmark

Benchmark suite Current: 4e3a878 Previous: 70760d2 Ratio
es/full/minify/libraries/antd 1981900781 ns/iter (± 48036631) 2318126886 ns/iter (± 64561632) 0.85
es/full/minify/libraries/d3 483669191 ns/iter (± 14878623) 612575583 ns/iter (± 6676879) 0.79
es/full/minify/libraries/echarts 2398443174 ns/iter (± 17608810) 2812728108 ns/iter (± 14014573) 0.85
es/full/minify/libraries/jquery 105403269 ns/iter (± 823235) 127971555 ns/iter (± 2299685) 0.82
es/full/minify/libraries/lodash 152124303 ns/iter (± 739302) 182397170 ns/iter (± 1079093) 0.83
es/full/minify/libraries/moment 61775507 ns/iter (± 335599) 74949184 ns/iter (± 953699) 0.82
es/full/minify/libraries/react 20066374 ns/iter (± 72119) 23662882 ns/iter (± 296121) 0.85
es/full/minify/libraries/terser 527787452 ns/iter (± 9494635) 639356654 ns/iter (± 6352177) 0.83
es/full/minify/libraries/three 631359119 ns/iter (± 15191116) 809309998 ns/iter (± 8615855) 0.78
es/full/minify/libraries/typescript 4576307705 ns/iter (± 22353294) 5358488490 ns/iter (± 40959647) 0.85
es/full/minify/libraries/victory 834406932 ns/iter (± 12823170) 1085000586 ns/iter (± 31483961) 0.77
es/full/minify/libraries/vue 159649140 ns/iter (± 1465959) 203792523 ns/iter (± 3080517) 0.78
es/full/codegen/es3 34541 ns/iter (± 131) 39982 ns/iter (± 341) 0.86
es/full/codegen/es5 34540 ns/iter (± 160) 39459 ns/iter (± 539) 0.88
es/full/codegen/es2015 34547 ns/iter (± 138) 39777 ns/iter (± 463) 0.87
es/full/codegen/es2016 34546 ns/iter (± 147) 39711 ns/iter (± 694) 0.87
es/full/codegen/es2017 34547 ns/iter (± 146) 39505 ns/iter (± 508) 0.87
es/full/codegen/es2018 34532 ns/iter (± 154) 39843 ns/iter (± 393) 0.87
es/full/codegen/es2019 34489 ns/iter (± 150) 39999 ns/iter (± 293) 0.86
es/full/codegen/es2020 34549 ns/iter (± 171) 39892 ns/iter (± 768) 0.87
es/full/all/es3 193133036 ns/iter (± 760795) 224847120 ns/iter (± 7311109) 0.86
es/full/all/es5 182610896 ns/iter (± 940671) 212966918 ns/iter (± 8601787) 0.86
es/full/all/es2015 145184431 ns/iter (± 852226) 171861073 ns/iter (± 6769295) 0.84
es/full/all/es2016 144781699 ns/iter (± 1014219) 166551624 ns/iter (± 6498915) 0.87
es/full/all/es2017 143664680 ns/iter (± 786159) 166879646 ns/iter (± 5383244) 0.86
es/full/all/es2018 141586849 ns/iter (± 805704) 163635404 ns/iter (± 6796421) 0.87
es/full/all/es2019 141079205 ns/iter (± 1446754) 163413008 ns/iter (± 6759129) 0.86
es/full/all/es2020 136971924 ns/iter (± 1367832) 156375089 ns/iter (± 3065195) 0.88
es/full/parser 587088 ns/iter (± 75650) 674517 ns/iter (± 202753) 0.87
es/full/base/fixer 27312 ns/iter (± 213) 32159 ns/iter (± 466) 0.85
es/full/base/resolver_and_hygiene 141707 ns/iter (± 1745) 163047 ns/iter (± 2796) 0.87
serialization of ast node 182 ns/iter (± 0) 217 ns/iter (± 24) 0.84
serialization of serde 182 ns/iter (± 0) 218 ns/iter (± 3) 0.83

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

Please sign in to comment.