Skip to content

Commit

Permalink
fix(es/resolver): Hoist namespaces (#4902)
Browse files Browse the repository at this point in the history
  • Loading branch information
kdy1 committed Jun 7, 2022
1 parent f54bc12 commit a9f91dc
Show file tree
Hide file tree
Showing 17 changed files with 317 additions and 263 deletions.
14 changes: 14 additions & 0 deletions crates/swc/tests/fixture/issues-4xxx/4897/input/.swcrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"jsc": {
"parser": {
"syntax": "typescript",
"tsx": false
},
"target": "es2021",
"loose": false
},
"module": {
"type": "amd",
"noInterop": true
}
}
7 changes: 7 additions & 0 deletions crates/swc/tests/fixture/issues-4xxx/4897/input/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
export function boo() {
return Foo.Bar * 2;
}

export namespace Foo {
export const Bar = 1234;
}
19 changes: 19 additions & 0 deletions crates/swc/tests/fixture/issues-4xxx/4897/output/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
define([
"require",
"exports"
], function(require, _exports) {
"use strict";
Object.defineProperty(_exports, "__esModule", {
value: true
});
_exports.boo = boo;
_exports.Foo = void 0;
function boo() {
return Foo1.Bar * 2;
}
var Foo1;
_exports.Foo = Foo1;
(function(Foo) {
var Bar = Foo.Bar = 1234;
})(Foo1 || (_exports.Foo = Foo1 = {}));
});
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,13 @@ var B;
}
B1.D = D;
})(B || (B = {}));
var A1;
(function(A) {
var A;
(function(A1) {
class C {
}
A.C = C;
A1.C = C;
var b = B;
A.b = b;
})(A1 || (A1 = {}));
A1.b = b;
})(A || (A = {}));
var c;
var c = new B.a.C();
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
var B, A1;
var B, A;
!function(B1) {
var a = A;
B1.a = a;
class D extends a.C {
}
B1.D = D;
}(B || (B = {})), function(A) {
A.C = class {
}(B || (B = {})), function(A1) {
A1.C = class {
};
var b = B;
A.b = b;
}(A1 || (A1 = {})), new B.a.C();
A1.b = b;
}(A || (A = {})), new B.a.C();
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,15 @@ var B;
}(a.C);
B1.D = D;
})(B || (B = {}));
var A1;
(function(A) {
var A;
(function(A1) {
var C = function C() {
"use strict";
_class_call_check(this, C);
};
A.C = C;
A1.C = C;
var b = B;
A.b = b;
})(A1 || (A1 = {}));
A1.b = b;
})(A || (A = {}));
var c;
var c = new B.a.C();
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
var B, A1;
var B, A;
import _class_call_check from "@swc/helpers/lib/_class_call_check.js";
import _inherits from "@swc/helpers/lib/_inherits.js";
import _create_super from "@swc/helpers/lib/_create_super.js";
Expand All @@ -15,12 +15,12 @@ import _create_super from "@swc/helpers/lib/_create_super.js";
return D;
}(a.C);
B1.D = D;
}(B || (B = {})), function(A) {
}(B || (B = {})), function(A1) {
var C = function() {
"use strict";
_class_call_check(this, C);
};
A.C = C;
A1.C = C;
var b = B;
A.b = b;
}(A1 || (A1 = {})), new B.a.C();
A1.b = b;
}(A || (A = {})), new B.a.C();
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,15 @@ var M;
}
M1.D = D;
})(M || (M = {}));
var N1;
(function(N) {
var N;
(function(N1) {
class E extends M.D {
}
N.E = E;
})(N1 || (N1 = {}));
N1.E = E;
})(N || (N = {}));
var O;
(function(O) {
class C2 extends Q.E2 {
class C2 extends Q1.E2 {
} // error
let P1;
(function(P) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
var M, N1, O;
var M, N, O;
class C extends N.E {
}
(M || (M = {})).D = class extends C {
}, function(N) {
}, function(N1) {
class E extends M.D {
}
N.E = E;
}(N1 || (N1 = {})), function(O) {
class C2 extends Q.E2 {
N1.E = E;
}(N || (N = {})), function(O) {
class C2 extends Q1.E2 {
}
let P;
(P || (P = {})).D2 = class extends C2 {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ var M;
}(C);
M1.D = D;
})(M || (M = {}));
var _$N;
(function(N) {
var N;
(function(N1) {
var E = /*#__PURE__*/ function(_D) {
"use strict";
_inherits(E, _D);
Expand All @@ -38,8 +38,8 @@ var _$N;
}
return E;
}(M.D);
N.E = E;
})(_$N || (_$N = {}));
N1.E = E;
})(N || (N = {}));
var O;
(function(O) {
var C2 = /*#__PURE__*/ function(_E2) {
Expand All @@ -52,7 +52,7 @@ var O;
}
return C2;
} // error
(Q.E2);
(Q1.E2);
var P1;
(function(P) {
var D2 = /*#__PURE__*/ function(C2) {
Expand All @@ -67,7 +67,7 @@ var O;
}(C2);
P.D2 = D2;
})(P1 || (P1 = {}));
var _$Q;
var Q1;
(function(Q) {
var E2 = /*#__PURE__*/ function(_D2) {
"use strict";
Expand All @@ -80,5 +80,5 @@ var O;
return E2;
}(P1.D2);
Q.E2 = E2;
})(_$Q || (_$Q = {}));
})(Q1 || (Q1 = {}));
})(O || (O = {}));
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import _class_call_check from "@swc/helpers/lib/_class_call_check.js";
import _inherits from "@swc/helpers/lib/_inherits.js";
import _create_super from "@swc/helpers/lib/_create_super.js";
var M, _$N, O, C = function(_E) {
var M, N, O, C = function(_E) {
"use strict";
_inherits(C, _E);
var _super = _create_super(C);
Expand All @@ -21,7 +21,7 @@ var M, _$N, O, C = function(_E) {
return D;
}(C);
M1.D = D;
}(M || (M = {})), function(N) {
}(M || (M = {})), function(N1) {
var E = function(_D) {
"use strict";
_inherits(E, _D);
Expand All @@ -31,9 +31,9 @@ var M, _$N, O, C = function(_E) {
}
return E;
}(M.D);
N.E = E;
}(_$N || (_$N = {})), function(O) {
var P, _$Q, P1, D2, Q1, E2, C2 = function(_E2) {
N1.E = E;
}(N || (N = {})), function(O) {
var P, Q, P1, D2, Q1, E2, C2 = function(_E2) {
"use strict";
_inherits(C2, _E2);
var _super = _create_super(C2);
Expand All @@ -50,7 +50,7 @@ var M, _$N, O, C = function(_E) {
return _class_call_check(this, D2), _super.apply(this, arguments);
}
return D2;
}(C2), P1.D2 = D2, Q1 = _$Q || (_$Q = {}), E2 = function(_D2) {
}(C2), P1.D2 = D2, Q1 = Q || (Q = {}), E2 = function(_D2) {
"use strict";
_inherits(E2, _D2);
var _super = _create_super(E2);
Expand Down

1 comment on commit a9f91dc

@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: a9f91dc Previous: 4e3a878 Ratio
es/full/minify/libraries/antd 2697384751 ns/iter (± 99455141) 1981900781 ns/iter (± 48036631) 1.36
es/full/minify/libraries/d3 573220387 ns/iter (± 25533479) 483669191 ns/iter (± 14878623) 1.19
es/full/minify/libraries/echarts 2927046536 ns/iter (± 30379377) 2398443174 ns/iter (± 17608810) 1.22
es/full/minify/libraries/jquery 121748355 ns/iter (± 3194589) 105403269 ns/iter (± 823235) 1.16
es/full/minify/libraries/lodash 177106155 ns/iter (± 5143078) 152124303 ns/iter (± 739302) 1.16
es/full/minify/libraries/moment 73187760 ns/iter (± 1843908) 61775507 ns/iter (± 335599) 1.18
es/full/minify/libraries/react 24637045 ns/iter (± 598814) 20066374 ns/iter (± 72119) 1.23
es/full/minify/libraries/terser 824503266 ns/iter (± 16164282) 527787452 ns/iter (± 9494635) 1.56
es/full/minify/libraries/three 756894718 ns/iter (± 43819032) 631359119 ns/iter (± 15191116) 1.20
es/full/minify/libraries/typescript 5948783284 ns/iter (± 62131020) 4576307705 ns/iter (± 22353294) 1.30
es/full/minify/libraries/victory 1058740468 ns/iter (± 32952198) 834406932 ns/iter (± 12823170) 1.27
es/full/minify/libraries/vue 191292071 ns/iter (± 3792718) 159649140 ns/iter (± 1465959) 1.20
es/full/codegen/es3 37172 ns/iter (± 2014) 34541 ns/iter (± 131) 1.08
es/full/codegen/es5 38019 ns/iter (± 2479) 34540 ns/iter (± 160) 1.10
es/full/codegen/es2015 38063 ns/iter (± 1698) 34547 ns/iter (± 138) 1.10
es/full/codegen/es2016 37902 ns/iter (± 2457) 34546 ns/iter (± 147) 1.10
es/full/codegen/es2017 37737 ns/iter (± 2652) 34547 ns/iter (± 146) 1.09
es/full/codegen/es2018 38888 ns/iter (± 2623) 34532 ns/iter (± 154) 1.13
es/full/codegen/es2019 40916 ns/iter (± 2393) 34489 ns/iter (± 150) 1.19
es/full/codegen/es2020 40671 ns/iter (± 3360) 34549 ns/iter (± 171) 1.18
es/full/all/es3 239540083 ns/iter (± 6745430) 193133036 ns/iter (± 760795) 1.24
es/full/all/es5 220629347 ns/iter (± 8467463) 182610896 ns/iter (± 940671) 1.21
es/full/all/es2015 175611474 ns/iter (± 4795007) 145184431 ns/iter (± 852226) 1.21
es/full/all/es2016 174099425 ns/iter (± 6589569) 144781699 ns/iter (± 1014219) 1.20
es/full/all/es2017 174440909 ns/iter (± 4888366) 143664680 ns/iter (± 786159) 1.21
es/full/all/es2018 174068159 ns/iter (± 4437207) 141586849 ns/iter (± 805704) 1.23
es/full/all/es2019 172745080 ns/iter (± 5394709) 141079205 ns/iter (± 1446754) 1.22
es/full/all/es2020 163579989 ns/iter (± 4483204) 136971924 ns/iter (± 1367832) 1.19
es/full/parser 774578 ns/iter (± 50942) 587088 ns/iter (± 75650) 1.32
es/full/base/fixer 38044 ns/iter (± 2033) 27312 ns/iter (± 213) 1.39
es/full/base/resolver_and_hygiene 186464 ns/iter (± 9500) 141707 ns/iter (± 1745) 1.32
serialization of ast node 209 ns/iter (± 9) 182 ns/iter (± 0) 1.15
serialization of serde 194 ns/iter (± 9) 182 ns/iter (± 0) 1.07

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

Please sign in to comment.