Skip to content

Commit 3280e43

Browse files
Max Heibermheiber
authored andcommitted
Transform private-named instance methods
Transform private-named instance methods Signed-off-by: Max Heiber <[email protected]>
1 parent 0162db0 commit 3280e43

File tree

50 files changed

+870
-232
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+870
-232
lines changed

src/compiler/transformers/classProperties.ts

Lines changed: 177 additions & 43 deletions
Large diffs are not rendered by default.
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
//// [classConstructorParametersCommentPlacement.ts]
2+
// some comment
3+
class A {
4+
#a = "private hello";
5+
#b = "another private name";
6+
a = "public property";
7+
constructor(private b = "something") { }
8+
}
9+
10+
11+
//// [classConstructorParametersCommentPlacement.js]
12+
var _classPrivateFieldSet = function (receiver, privateMap, value) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to set private field on non-instance"); } privateMap.set(receiver, value); return value; };
13+
var _aWeakMap_1, _bWeakMap_1;
14+
// some comment
15+
var A = /** @class */ (function () {
16+
function A(b) {
17+
if (b === void 0) { b = "something"; }
18+
// some comment
19+
_aWeakMap_1.set(this, void 0);
20+
// some comment
21+
_bWeakMap_1.set(this, void 0);
22+
this.b = b;
23+
_classPrivateFieldSet(this, _aWeakMap_1, "private hello");
24+
_classPrivateFieldSet(this, _bWeakMap_1, "another private name");
25+
this.a = "public property";
26+
}
27+
return A;
28+
}());
29+
_aWeakMap_1 = new WeakMap(), _bWeakMap_1 = new WeakMap();
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
=== tests/cases/conformance/classes/constructorDeclarations/classConstructorParametersCommentPlacement.ts ===
2+
// some comment
3+
class A {
4+
>A : Symbol(A, Decl(classConstructorParametersCommentPlacement.ts, 0, 0))
5+
6+
#a = "private hello";
7+
>#a : Symbol(A.#a, Decl(classConstructorParametersCommentPlacement.ts, 1, 9))
8+
9+
#b = "another private name";
10+
>#b : Symbol(A.#b, Decl(classConstructorParametersCommentPlacement.ts, 2, 25))
11+
12+
a = "public property";
13+
>a : Symbol(A.a, Decl(classConstructorParametersCommentPlacement.ts, 3, 32))
14+
15+
constructor(private b = "something") { }
16+
>b : Symbol(A.b, Decl(classConstructorParametersCommentPlacement.ts, 5, 16))
17+
}
18+
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
=== tests/cases/conformance/classes/constructorDeclarations/classConstructorParametersCommentPlacement.ts ===
2+
// some comment
3+
class A {
4+
>A : A
5+
6+
#a = "private hello";
7+
>#a : string
8+
>"private hello" : "private hello"
9+
10+
#b = "another private name";
11+
>#b : string
12+
>"another private name" : "another private name"
13+
14+
a = "public property";
15+
>a : string
16+
>"public property" : "public property"
17+
18+
constructor(private b = "something") { }
19+
>b : string
20+
>"something" : "something"
21+
}
22+

tests/baselines/reference/privateNameConstructorReserved.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,11 @@ class A {
88

99
//// [privateNameConstructorReserved.js]
1010
// @target es6
11+
var _constructor_1, _constructorWeakSet_1;
1112
var A = /** @class */ (function () {
1213
function A() {
14+
_constructorWeakSet_1.add(this);
1315
}
14-
A.prototype.#constructor = function () { }; // Error: `#constructor` is a reserved word.
1516
return A;
1617
}());
18+
_constructorWeakSet_1 = new WeakSet(), _constructor_1 = function _constructor_1() { };

tests/baselines/reference/privateNameDeclaration.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@ class A {
55

66

77
//// [privateNameDeclaration.js]
8-
var _name;
8+
var _nameWeakMap_1;
99
var A = /** @class */ (function () {
1010
function A() {
11-
_name.set(this, void 0);
11+
_nameWeakMap_1.set(this, void 0);
1212
}
1313
return A;
1414
}());
15-
_name = new WeakMap();
15+
_nameWeakMap_1 = new WeakMap();

tests/baselines/reference/privateNameDuplicateField.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,13 @@ class A {
99

1010
//// [privateNameDuplicateField.js]
1111
// @target es6
12-
var _foo, _foo_1;
12+
var _fooWeakMap_1, _fooWeakMap_2;
1313
"use strict";
1414
var A = /** @class */ (function () {
1515
function A() {
16-
_foo_1.set(this, "foo");
17-
_foo_1.set(this, "foo");
16+
_fooWeakMap_2.set(this, "foo");
17+
_fooWeakMap_2.set(this, "foo");
1818
}
1919
return A;
2020
}());
21-
_foo = new WeakMap(), _foo_1 = new WeakMap();
21+
_fooWeakMap_1 = new WeakMap(), _fooWeakMap_2 = new WeakMap();

tests/baselines/reference/privateNameField.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,13 @@ class A {
1111
//// [privateNameField.js]
1212
// @target es6
1313
var _classPrivateFieldSet = function (receiver, privateMap, value) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to set private field on non-instance"); } privateMap.set(receiver, value); return value; };
14-
var _name;
14+
var _nameWeakMap_1;
1515
"use strict";
1616
var A = /** @class */ (function () {
1717
function A(name) {
18-
_name.set(this, void 0);
19-
_classPrivateFieldSet(this, _name, name);
18+
_nameWeakMap_1.set(this, void 0);
19+
_classPrivateFieldSet(this, _nameWeakMap_1, name);
2020
}
2121
return A;
2222
}());
23-
_name = new WeakMap();
23+
_nameWeakMap_1 = new WeakMap();

tests/baselines/reference/privateNameFieldAccess.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,12 @@ class A {
99

1010
//// [privateNameFieldAccess.js]
1111
var _classPrivateFieldGet = function (receiver, privateMap) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return privateMap.get(receiver); };
12-
var _myField;
12+
var _myFieldWeakMap_1;
1313
var A = /** @class */ (function () {
1414
function A() {
15-
_myField.set(this, "hello world");
16-
console.log(_classPrivateFieldGet(this, _myField));
15+
_myFieldWeakMap_1.set(this, "hello world");
16+
console.log(_classPrivateFieldGet(this, _myFieldWeakMap_1));
1717
}
1818
return A;
1919
}());
20-
_myField = new WeakMap();
20+
_myFieldWeakMap_1 = new WeakMap();

tests/baselines/reference/privateNameFieldAssignment.js

Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -38,41 +38,41 @@ class A {
3838
//// [privateNameFieldAssignment.js]
3939
var _classPrivateFieldSet = function (receiver, privateMap, value) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to set private field on non-instance"); } privateMap.set(receiver, value); return value; };
4040
var _classPrivateFieldGet = function (receiver, privateMap) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return privateMap.get(receiver); };
41-
var _field;
41+
var _fieldWeakMap_1;
4242
var A = /** @class */ (function () {
4343
function A() {
44-
_field.set(this, 0);
44+
_fieldWeakMap_1.set(this, 0);
4545
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
46-
_classPrivateFieldSet(this, _field, 1);
47-
_classPrivateFieldSet(this, _field, _classPrivateFieldGet(this, _field) + 2);
48-
_classPrivateFieldSet(this, _field, _classPrivateFieldGet(this, _field) - 3);
49-
_classPrivateFieldSet(this, _field, _classPrivateFieldGet(this, _field) / 4);
50-
_classPrivateFieldSet(this, _field, _classPrivateFieldGet(this, _field) * 5);
51-
_classPrivateFieldSet(this, _field, Math.pow(_classPrivateFieldGet(this, _field), 6));
52-
_classPrivateFieldSet(this, _field, _classPrivateFieldGet(this, _field) % 7);
53-
_classPrivateFieldSet(this, _field, _classPrivateFieldGet(this, _field) << 8);
54-
_classPrivateFieldSet(this, _field, _classPrivateFieldGet(this, _field) >> 9);
55-
_classPrivateFieldSet(this, _field, _classPrivateFieldGet(this, _field) >>> 10);
56-
_classPrivateFieldSet(this, _field, _classPrivateFieldGet(this, _field) & 11);
57-
_classPrivateFieldSet(this, _field, _classPrivateFieldGet(this, _field) | 12);
58-
_classPrivateFieldSet(this, _field, _classPrivateFieldGet(this, _field) ^ 13);
59-
_classPrivateFieldSet(A.getInstance(), _field, 1);
60-
_classPrivateFieldSet(_a = A.getInstance(), _field, _classPrivateFieldGet(_a, _field) + 2);
61-
_classPrivateFieldSet(_b = A.getInstance(), _field, _classPrivateFieldGet(_b, _field) - 3);
62-
_classPrivateFieldSet(_c = A.getInstance(), _field, _classPrivateFieldGet(_c, _field) / 4);
63-
_classPrivateFieldSet(_d = A.getInstance(), _field, _classPrivateFieldGet(_d, _field) * 5);
64-
_classPrivateFieldSet(_e = A.getInstance(), _field, Math.pow(_classPrivateFieldGet(_e, _field), 6));
65-
_classPrivateFieldSet(_f = A.getInstance(), _field, _classPrivateFieldGet(_f, _field) % 7);
66-
_classPrivateFieldSet(_g = A.getInstance(), _field, _classPrivateFieldGet(_g, _field) << 8);
67-
_classPrivateFieldSet(_h = A.getInstance(), _field, _classPrivateFieldGet(_h, _field) >> 9);
68-
_classPrivateFieldSet(_j = A.getInstance(), _field, _classPrivateFieldGet(_j, _field) >>> 10);
69-
_classPrivateFieldSet(_k = A.getInstance(), _field, _classPrivateFieldGet(_k, _field) & 11);
70-
_classPrivateFieldSet(_l = A.getInstance(), _field, _classPrivateFieldGet(_l, _field) | 12);
71-
_classPrivateFieldSet(_m = A.getInstance(), _field, _classPrivateFieldGet(_m, _field) ^ 13);
46+
_classPrivateFieldSet(this, _fieldWeakMap_1, 1);
47+
_classPrivateFieldSet(this, _fieldWeakMap_1, _classPrivateFieldGet(this, _fieldWeakMap_1) + 2);
48+
_classPrivateFieldSet(this, _fieldWeakMap_1, _classPrivateFieldGet(this, _fieldWeakMap_1) - 3);
49+
_classPrivateFieldSet(this, _fieldWeakMap_1, _classPrivateFieldGet(this, _fieldWeakMap_1) / 4);
50+
_classPrivateFieldSet(this, _fieldWeakMap_1, _classPrivateFieldGet(this, _fieldWeakMap_1) * 5);
51+
_classPrivateFieldSet(this, _fieldWeakMap_1, Math.pow(_classPrivateFieldGet(this, _fieldWeakMap_1), 6));
52+
_classPrivateFieldSet(this, _fieldWeakMap_1, _classPrivateFieldGet(this, _fieldWeakMap_1) % 7);
53+
_classPrivateFieldSet(this, _fieldWeakMap_1, _classPrivateFieldGet(this, _fieldWeakMap_1) << 8);
54+
_classPrivateFieldSet(this, _fieldWeakMap_1, _classPrivateFieldGet(this, _fieldWeakMap_1) >> 9);
55+
_classPrivateFieldSet(this, _fieldWeakMap_1, _classPrivateFieldGet(this, _fieldWeakMap_1) >>> 10);
56+
_classPrivateFieldSet(this, _fieldWeakMap_1, _classPrivateFieldGet(this, _fieldWeakMap_1) & 11);
57+
_classPrivateFieldSet(this, _fieldWeakMap_1, _classPrivateFieldGet(this, _fieldWeakMap_1) | 12);
58+
_classPrivateFieldSet(this, _fieldWeakMap_1, _classPrivateFieldGet(this, _fieldWeakMap_1) ^ 13);
59+
_classPrivateFieldSet(A.getInstance(), _fieldWeakMap_1, 1);
60+
_classPrivateFieldSet(_a = A.getInstance(), _fieldWeakMap_1, _classPrivateFieldGet(_a, _fieldWeakMap_1) + 2);
61+
_classPrivateFieldSet(_b = A.getInstance(), _fieldWeakMap_1, _classPrivateFieldGet(_b, _fieldWeakMap_1) - 3);
62+
_classPrivateFieldSet(_c = A.getInstance(), _fieldWeakMap_1, _classPrivateFieldGet(_c, _fieldWeakMap_1) / 4);
63+
_classPrivateFieldSet(_d = A.getInstance(), _fieldWeakMap_1, _classPrivateFieldGet(_d, _fieldWeakMap_1) * 5);
64+
_classPrivateFieldSet(_e = A.getInstance(), _fieldWeakMap_1, Math.pow(_classPrivateFieldGet(_e, _fieldWeakMap_1), 6));
65+
_classPrivateFieldSet(_f = A.getInstance(), _fieldWeakMap_1, _classPrivateFieldGet(_f, _fieldWeakMap_1) % 7);
66+
_classPrivateFieldSet(_g = A.getInstance(), _fieldWeakMap_1, _classPrivateFieldGet(_g, _fieldWeakMap_1) << 8);
67+
_classPrivateFieldSet(_h = A.getInstance(), _fieldWeakMap_1, _classPrivateFieldGet(_h, _fieldWeakMap_1) >> 9);
68+
_classPrivateFieldSet(_j = A.getInstance(), _fieldWeakMap_1, _classPrivateFieldGet(_j, _fieldWeakMap_1) >>> 10);
69+
_classPrivateFieldSet(_k = A.getInstance(), _fieldWeakMap_1, _classPrivateFieldGet(_k, _fieldWeakMap_1) & 11);
70+
_classPrivateFieldSet(_l = A.getInstance(), _fieldWeakMap_1, _classPrivateFieldGet(_l, _fieldWeakMap_1) | 12);
71+
_classPrivateFieldSet(_m = A.getInstance(), _fieldWeakMap_1, _classPrivateFieldGet(_m, _fieldWeakMap_1) ^ 13);
7272
}
7373
A.getInstance = function () {
7474
return new A();
7575
};
7676
return A;
7777
}());
78-
_field = new WeakMap();
78+
_fieldWeakMap_1 = new WeakMap();

0 commit comments

Comments
 (0)