Skip to content

Commit 145fdc0

Browse files
authored
update private class element helpers (#2) (#146)
1 parent 54a056a commit 145fdc0

File tree

3 files changed

+110
-24
lines changed

3 files changed

+110
-24
lines changed

tslib.d.ts

+92-2
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,96 @@ export declare function __asyncValues(o: any): any;
3535
export declare function __makeTemplateObject(cooked: string[], raw: string[]): TemplateStringsArray;
3636
export declare function __importStar<T>(mod: T): T;
3737
export declare function __importDefault<T>(mod: T): T | { default: T };
38-
export declare function __classPrivateFieldGet<T extends object, V>(receiver: T, privateMap: { has(o: T): boolean, get(o: T): V | undefined }): V;
39-
export declare function __classPrivateFieldSet<T extends object, V>(receiver: T, privateMap: { has(o: T): boolean, set(o: T, value: V): any }, value: V): V;
38+
/**
39+
* Reading from a private instance field
40+
*/
41+
export declare function __classPrivateFieldGet<T extends object, V>(
42+
receiver: T,
43+
state: { has(o: T): boolean, get(o: T): V | undefined },
44+
kind?: "f"
45+
): V;
46+
/**
47+
* Reading from a private static field
48+
*/
49+
export declare function __classPrivateFieldGet<T extends new (...args: any[]) => unknown, V>(
50+
receiver: T,
51+
state: T,
52+
kind: "f",
53+
f: { value: V }
54+
): V;
55+
/**
56+
* Reading from a private instance get accessor
57+
*/
58+
export declare function __classPrivateFieldGet<T extends object, V>(
59+
receiver: T,
60+
state: { has(o: T): boolean },
61+
kind: "a",
62+
f: () => V
63+
): V;
64+
/**
65+
* Reading from a private static get accessor
66+
*/
67+
export declare function __classPrivateFieldGet<T extends new (...args: any[]) => unknown, V>(
68+
receiver: T,
69+
state: T,
70+
kind: "a",
71+
f: () => V
72+
): V;
73+
/**
74+
* Reading from a private instance method
75+
*/
76+
export declare function __classPrivateFieldGet<T extends object, V extends (...args: any[]) => unknown>(
77+
receiver: T,
78+
state: { has(o: T): boolean },
79+
kind: "m",
80+
f: V
81+
): V;
82+
/**
83+
* Reading from a private static method
84+
*/
85+
export declare function __classPrivateFieldGet<T extends new (...args: any[]) => unknown, V extends (...args: any[]) => unknown>(
86+
receiver: T,
87+
state: T,
88+
kind: "m",
89+
f: V
90+
): V;
91+
/**
92+
* Writing to a private instance field
93+
*/
94+
export declare function __classPrivateFieldSet<T extends object, V>(
95+
receiver: T,
96+
state: { has(o: T): boolean, set(o: T, value: V): unknown },
97+
value: V,
98+
kind?: "f"
99+
): V;
100+
/**
101+
* Writing to a private static field
102+
*/
103+
export declare function __classPrivateFieldSet<T extends new (...args: any[]) => unknown, V>(
104+
receiver: T,
105+
state: T,
106+
value: V,
107+
kind: "f",
108+
f: { value: V }
109+
): V;
110+
/**
111+
* Writing to a private instance set accessor
112+
*/
113+
export declare function __classPrivateFieldSet<T extends object, V>(
114+
receiver: T,
115+
state: { has(o: T): boolean },
116+
value: V,
117+
kind: "a",
118+
f: (v: V) => void
119+
): V;
120+
/**
121+
* Writing to a private static set accessor
122+
*/
123+
export declare function __classPrivateFieldSet<T extends new (...args: any[]) => unknown, V>(
124+
receiver: T,
125+
state: T,
126+
value: V,
127+
kind: "a",
128+
f: (v: V) => void
129+
): V;
40130
export declare function __createBinding(object: object, target: object, key: PropertyKey, objectKey?: PropertyKey): void;

tslib.es6.js

+9-11
Original file line numberDiff line numberDiff line change
@@ -221,17 +221,15 @@ export function __importDefault(mod) {
221221
return (mod && mod.__esModule) ? mod : { default: mod };
222222
}
223223

224-
export function __classPrivateFieldGet(receiver, privateMap) {
225-
if (!privateMap.has(receiver)) {
226-
throw new TypeError("attempted to get private field on non-instance");
227-
}
228-
return privateMap.get(receiver);
224+
export function __classPrivateFieldGet(receiver, state, kind, f) {
225+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
226+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
227+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
229228
}
230229

231-
export function __classPrivateFieldSet(receiver, privateMap, value) {
232-
if (!privateMap.has(receiver)) {
233-
throw new TypeError("attempted to set private field on non-instance");
234-
}
235-
privateMap.set(receiver, value);
236-
return value;
230+
export function __classPrivateFieldSet(receiver, state, value, kind, f) {
231+
if (kind === "m") throw new TypeError("Private method is not writable");
232+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
233+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
234+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
237235
}

tslib.js

+9-11
Original file line numberDiff line numberDiff line change
@@ -262,19 +262,17 @@ var __createBinding;
262262
return (mod && mod.__esModule) ? mod : { "default": mod };
263263
};
264264

265-
__classPrivateFieldGet = function (receiver, privateMap) {
266-
if (!privateMap.has(receiver)) {
267-
throw new TypeError("attempted to get private field on non-instance");
268-
}
269-
return privateMap.get(receiver);
265+
__classPrivateFieldGet = function (receiver, state, kind, f) {
266+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
267+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
268+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
270269
};
271270

272-
__classPrivateFieldSet = function (receiver, privateMap, value) {
273-
if (!privateMap.has(receiver)) {
274-
throw new TypeError("attempted to set private field on non-instance");
275-
}
276-
privateMap.set(receiver, value);
277-
return value;
271+
__classPrivateFieldSet = function (receiver, state, value, kind, f) {
272+
if (kind === "m") throw new TypeError("Private method is not writable");
273+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
274+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
275+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
278276
};
279277

280278
exporter("__extends", __extends);

0 commit comments

Comments
 (0)