@@ -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,93 @@ 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
+ return propertyDescriptor.value;
1002
+ };`
1003
+ } ;
1004
+
1005
+ export const classStaticPrivateFieldSetHelper : UnscopedEmitHelper = {
1006
+ name : "typescript:classStaticPrivateFieldSet" ,
1007
+ importName : "__classStaticPrivateFieldSet" ,
1008
+ scoped : false ,
1009
+ text : `
1010
+ var __classStaticPrivateFieldSet = (this && this.__classStaticPrivateFieldSet) || function (receiver, classConstructor, propertyDescriptor, value) {
1011
+ if (receiver !== classConstructor) {
1012
+ throw new TypeError("Private static access of wrong provenance");
1013
+ }
1014
+ propertyDescriptor.value = value;
1015
+ return value;
1016
+ };`
1017
+ } ;
1018
+
1019
+ export const classStaticPrivateMethodGetHelper : UnscopedEmitHelper = {
1020
+ name : "typescript:classStaticPrivateMethodGet" ,
1021
+ importName : "__classStaticPrivateMethodGet" ,
1022
+ scoped : false ,
1023
+ text : `
1024
+ var __classStaticPrivateMethodGet = (this && this.__classStaticPrivateMethodGet) || function (receiver, classConstructor, fn) {
1025
+ if (receiver !== classConstructor) {
1026
+ throw new TypeError("Private static access of wrong provenance");
1027
+ }
1028
+ return fn;
1029
+ };`
1030
+ } ;
1031
+
1032
+ export const classStaticPrivateReadonlyHelper : UnscopedEmitHelper = {
1033
+ name : "typescript:classStaticPrivateReadonly" ,
1034
+ importName : "__classStaticPrivateReadonly" ,
1035
+ scoped : false ,
1036
+ text : `
1037
+ var __classStaticPrivateReadonly = (this && this.__classStaticPrivateReadonly) || function () {
1038
+ throw new TypeError("Private static element is not writable");
1039
+ };`
1040
+ } ;
1041
+
1042
+ export const classStaticPrivateWriteonlyHelper : UnscopedEmitHelper = {
1043
+ name : "typescript:classStaticPrivateWriteonly" ,
1044
+ importName : "__classStaticPrivateWriteonly" ,
1045
+ scoped : false ,
1046
+ text : `
1047
+ var __classStaticPrivateWriteonly = (this && this.__classStaticPrivateWriteonly) || function () {
1048
+ throw new TypeError("Private static element is not readable");
1049
+ };`
1050
+ } ;
1051
+
1052
+ export const classStaticPrivateAccessorGetHelper : UnscopedEmitHelper = {
1053
+ name : "typescript:classStaticPrivateAccessorGet" ,
1054
+ importName : "__classStaticPrivateAccessorGet" ,
1055
+ scoped : false ,
1056
+ text : `
1057
+ var __classStaticPrivateAccessorGet = (this && this.__classStaticPrivateAccessorGet) || function (receiver, classConstructor, fn) {
1058
+ if (receiver !== classConstructor) {
1059
+ throw new TypeError("Private static access of wrong provenance");
1060
+ }
1061
+ return fn.call(receiver);
1062
+ };`
1063
+ } ;
1064
+
1065
+ export const classStaticPrivateAccessorSetHelper : UnscopedEmitHelper = {
1066
+ name : "typescript:classStaticPrivateAccessorSet" ,
1067
+ importName : "__classStaticPrivateAccessorSet" ,
1068
+ scoped : false ,
1069
+ text : `
1070
+ var __classStaticPrivateAccessorSet = (this && this.__classStaticPrivateAccessorSet) || function (receiver, classConstructor, fn, value) {
1071
+ if (receiver !== classConstructor) {
1072
+ throw new TypeError("Private static access of wrong provenance");
1073
+ }
1074
+ fn.call(receiver, value);
1075
+ return value;
1076
+ };`
1077
+ } ;
1078
+
942
1079
let allUnscopedEmitHelpers : ReadonlyESMap < string , UnscopedEmitHelper > | undefined ;
943
1080
944
1081
export function getAllUnscopedEmitHelpers ( ) {
0 commit comments