@@ -39,6 +39,14 @@ namespace ts {
39
39
createClassPrivateWriteonlyHelper ( receiver : Expression ) : Expression ;
40
40
createClassPrivateAccessorGetHelper ( receiver : Expression , instances : Identifier , fn : Identifier ) : Expression ;
41
41
createClassPrivateAccessorSetHelper ( receiver : Expression , instances : Identifier , fn : Identifier , value : Expression ) : Expression ;
42
+ // Class Static Private Helpers
43
+ createClassStaticPrivateFieldGetHelper ( receiver : Expression , classConstructor : Identifier , privateField : Identifier ) : Expression ;
44
+ createClassStaticPrivateFieldSetHelper ( receiver : Expression , classConstructor : Identifier , privateField : Identifier , value : Expression ) : Expression ;
45
+ createClassStaticPrivateMethodGetHelper ( receiver : Expression , classConstructor : Identifier , fn : Identifier ) : Expression ;
46
+ createClassStaticPrivateReadonlyHelper ( receiver : Expression , value : Expression ) : Expression ;
47
+ createClassStaticPrivateWriteonlyHelper ( receiver : Expression ) : Expression ;
48
+ createClassStaticPrivateAccessorGetHelper ( receiver : Expression , classConstructor : Identifier , fn : Identifier ) : Expression ;
49
+ createClassStaticPrivateAccessorSetHelper ( receiver : Expression , classConstructor : Identifier , fn : Identifier , value : Expression ) : Expression ;
42
50
}
43
51
44
52
export function createEmitHelperFactory ( context : TransformationContext ) : EmitHelperFactory {
@@ -82,6 +90,13 @@ namespace ts {
82
90
createClassPrivateWriteonlyHelper,
83
91
createClassPrivateAccessorGetHelper,
84
92
createClassPrivateAccessorSetHelper,
93
+ createClassStaticPrivateFieldGetHelper,
94
+ createClassStaticPrivateFieldSetHelper,
95
+ createClassStaticPrivateMethodGetHelper,
96
+ createClassStaticPrivateReadonlyHelper,
97
+ createClassStaticPrivateWriteonlyHelper,
98
+ createClassStaticPrivateAccessorGetHelper,
99
+ createClassStaticPrivateAccessorSetHelper,
85
100
} ;
86
101
87
102
/**
@@ -412,6 +427,41 @@ namespace ts {
412
427
context . requestEmitHelper ( classPrivateAccessorSetHelper ) ;
413
428
return factory . createCallExpression ( getUnscopedHelperName ( "__classPrivateAccessorSet" ) , /*typeArguments*/ undefined , [ receiver , instances , fn , value ] ) ;
414
429
}
430
+ // Class Private Static Helpers
431
+ function createClassStaticPrivateFieldGetHelper ( receiver : Expression , classConstructor : Identifier , privateField : Identifier ) {
432
+ context . requestEmitHelper ( classStaticPrivateFieldGetHelper ) ;
433
+ return factory . createCallExpression ( getUnscopedHelperName ( "__classStaticPrivateFieldGet" ) , /*typeArguments*/ undefined , [ receiver , classConstructor , privateField ] ) ;
434
+ }
435
+
436
+ function createClassStaticPrivateFieldSetHelper ( receiver : Expression , classConstructor : Identifier , privateField : Identifier , value : Expression ) {
437
+ context . requestEmitHelper ( classStaticPrivateFieldSetHelper ) ;
438
+ return factory . createCallExpression ( getUnscopedHelperName ( "__classStaticPrivateFieldSet" ) , /*typeArguments*/ undefined , [ receiver , classConstructor , privateField , value ] ) ;
439
+ }
440
+
441
+ function createClassStaticPrivateMethodGetHelper ( receiver : Expression , classConstructor : Identifier , fn : Identifier ) {
442
+ context . requestEmitHelper ( classStaticPrivateMethodGetHelper ) ;
443
+ return factory . createCallExpression ( getUnscopedHelperName ( "__classStaticPrivateMethodGet" ) , /*typeArguments*/ undefined , [ receiver , classConstructor , fn ] ) ;
444
+ }
445
+
446
+ function createClassStaticPrivateReadonlyHelper ( receiver : Expression , value : Expression ) {
447
+ context . requestEmitHelper ( classStaticPrivateReadonlyHelper ) ;
448
+ return factory . createCallExpression ( getUnscopedHelperName ( "__classStaticPrivateReadonly" ) , /*typeArguments*/ undefined , [ receiver , value ] ) ;
449
+ }
450
+
451
+ function createClassStaticPrivateWriteonlyHelper ( receiver : Expression ) {
452
+ context . requestEmitHelper ( classStaticPrivateWriteonlyHelper ) ;
453
+ return factory . createCallExpression ( getUnscopedHelperName ( "__classStaticPrivateWriteonly" ) , /*typeArguments*/ undefined , [ receiver ] ) ;
454
+ }
455
+
456
+ function createClassStaticPrivateAccessorGetHelper ( receiver : Expression , classConstructor : Identifier , fn : Identifier ) {
457
+ context . requestEmitHelper ( classStaticPrivateAccessorGetHelper ) ;
458
+ return factory . createCallExpression ( getUnscopedHelperName ( "__classStaticPrivateAccessorGet" ) , /*typeArguments*/ undefined , [ receiver , classConstructor , fn ] ) ;
459
+ }
460
+
461
+ function createClassStaticPrivateAccessorSetHelper ( receiver : Expression , classConstructor : Identifier , fn : Identifier , value : Expression ) {
462
+ context . requestEmitHelper ( classStaticPrivateAccessorSetHelper ) ;
463
+ return factory . createCallExpression ( getUnscopedHelperName ( "__classStaticPrivateAccessorSet" ) , /*typeArguments*/ undefined , [ receiver , classConstructor , fn , value ] ) ;
464
+ }
415
465
}
416
466
417
467
/* @internal */
@@ -939,6 +989,99 @@ namespace ts {
939
989
};`
940
990
} ;
941
991
992
+ export const classStaticPrivateFieldGetHelper : UnscopedEmitHelper = {
993
+ name : "typescript:classStaticPrivateFieldGet" ,
994
+ importName : "__classStaticPrivateFieldGet" ,
995
+ scoped : false ,
996
+ text : `
997
+ var __classStaticPrivateFieldGet = (this && this.__classStaticPrivateFieldGet) || function (receiver, classConstructor, propertyDescriptor) {
998
+ if (receiver !== classConstructor) {
999
+ throw new TypeError("Private static access of wrong provenance");
1000
+ }
1001
+ if (propertyDescriptor === undefined) {
1002
+ throw new TypeError("Private static field was accessed before its declaration.");
1003
+ }
1004
+ return propertyDescriptor.value;
1005
+ };`
1006
+ } ;
1007
+
1008
+ export const classStaticPrivateFieldSetHelper : UnscopedEmitHelper = {
1009
+ name : "typescript:classStaticPrivateFieldSet" ,
1010
+ importName : "__classStaticPrivateFieldSet" ,
1011
+ scoped : false ,
1012
+ text : `
1013
+ var __classStaticPrivateFieldSet = (this && this.__classStaticPrivateFieldSet) || function (receiver, classConstructor, propertyDescriptor, value) {
1014
+ if (receiver !== classConstructor) {
1015
+ throw new TypeError("Private static access of wrong provenance");
1016
+ }
1017
+ if (propertyDescriptor === undefined) {
1018
+ throw new TypeError("Private static field was accessed before its declaration.");
1019
+ }
1020
+ propertyDescriptor.value = value;
1021
+ return value;
1022
+ };`
1023
+ } ;
1024
+
1025
+ export const classStaticPrivateMethodGetHelper : UnscopedEmitHelper = {
1026
+ name : "typescript:classStaticPrivateMethodGet" ,
1027
+ importName : "__classStaticPrivateMethodGet" ,
1028
+ scoped : false ,
1029
+ text : `
1030
+ var __classStaticPrivateMethodGet = (this && this.__classStaticPrivateMethodGet) || function (receiver, classConstructor, fn) {
1031
+ if (receiver !== classConstructor) {
1032
+ throw new TypeError("Private static access of wrong provenance");
1033
+ }
1034
+ return fn;
1035
+ };`
1036
+ } ;
1037
+
1038
+ export const classStaticPrivateReadonlyHelper : UnscopedEmitHelper = {
1039
+ name : "typescript:classStaticPrivateReadonly" ,
1040
+ importName : "__classStaticPrivateReadonly" ,
1041
+ scoped : false ,
1042
+ text : `
1043
+ var __classStaticPrivateReadonly = (this && this.__classStaticPrivateReadonly) || function () {
1044
+ throw new TypeError("Private static element is not writable");
1045
+ };`
1046
+ } ;
1047
+
1048
+ export const classStaticPrivateWriteonlyHelper : UnscopedEmitHelper = {
1049
+ name : "typescript:classStaticPrivateWriteonly" ,
1050
+ importName : "__classStaticPrivateWriteonly" ,
1051
+ scoped : false ,
1052
+ text : `
1053
+ var __classStaticPrivateWriteonly = (this && this.__classStaticPrivateWriteonly) || function () {
1054
+ throw new TypeError("Private static element is not readable");
1055
+ };`
1056
+ } ;
1057
+
1058
+ export const classStaticPrivateAccessorGetHelper : UnscopedEmitHelper = {
1059
+ name : "typescript:classStaticPrivateAccessorGet" ,
1060
+ importName : "__classStaticPrivateAccessorGet" ,
1061
+ scoped : false ,
1062
+ text : `
1063
+ var __classStaticPrivateAccessorGet = (this && this.__classStaticPrivateAccessorGet) || function (receiver, classConstructor, fn) {
1064
+ if (receiver !== classConstructor) {
1065
+ throw new TypeError("Private static access of wrong provenance");
1066
+ }
1067
+ return fn.call(receiver);
1068
+ };`
1069
+ } ;
1070
+
1071
+ export const classStaticPrivateAccessorSetHelper : UnscopedEmitHelper = {
1072
+ name : "typescript:classStaticPrivateAccessorSet" ,
1073
+ importName : "__classStaticPrivateAccessorSet" ,
1074
+ scoped : false ,
1075
+ text : `
1076
+ var __classStaticPrivateAccessorSet = (this && this.__classStaticPrivateAccessorSet) || function (receiver, classConstructor, fn, value) {
1077
+ if (receiver !== classConstructor) {
1078
+ throw new TypeError("Private static access of wrong provenance");
1079
+ }
1080
+ fn.call(receiver, value);
1081
+ return value;
1082
+ };`
1083
+ } ;
1084
+
942
1085
let allUnscopedEmitHelpers : ReadonlyESMap < string , UnscopedEmitHelper > | undefined ;
943
1086
944
1087
export function getAllUnscopedEmitHelpers ( ) {
0 commit comments