@idlizer/core 2.1.10-arktscgen-5 → 2.1.10-arktscgen-6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/lib/src/Language.js +1 -1
- package/build/lib/src/LanguageWriters/ArgConvertors.d.ts +16 -6
- package/build/lib/src/LanguageWriters/ArgConvertors.js +80 -92
- package/build/lib/src/LanguageWriters/LanguageWriter.d.ts +8 -6
- package/build/lib/src/LanguageWriters/LanguageWriter.js +8 -2
- package/build/lib/src/LanguageWriters/common.d.ts +1 -0
- package/build/lib/src/LanguageWriters/common.js +2 -1
- package/build/lib/src/LanguageWriters/convertors/CppConvertors.d.ts +7 -1
- package/build/lib/src/LanguageWriters/convertors/CppConvertors.js +53 -15
- package/build/lib/src/LanguageWriters/convertors/ETSConvertors.d.ts +1 -0
- package/build/lib/src/LanguageWriters/convertors/ETSConvertors.js +10 -8
- package/build/lib/src/LanguageWriters/convertors/InteropConvertors.js +1 -1
- package/build/lib/src/LanguageWriters/convertors/TSConvertors.js +25 -14
- package/build/lib/src/LanguageWriters/index.d.ts +4 -3
- package/build/lib/src/LanguageWriters/index.js +9 -11
- package/build/lib/src/LanguageWriters/nameConvertor.d.ts +2 -0
- package/build/lib/src/LanguageWriters/nameConvertor.js +11 -0
- package/build/lib/src/LanguageWriters/writers/CppLanguageWriter.js +1 -1
- package/build/lib/src/LanguageWriters/writers/ETSLanguageWriter.d.ts +1 -8
- package/build/lib/src/LanguageWriters/writers/ETSLanguageWriter.js +52 -89
- package/build/lib/src/LanguageWriters/writers/TsLanguageWriter.d.ts +3 -0
- package/build/lib/src/LanguageWriters/writers/TsLanguageWriter.js +24 -7
- package/build/lib/src/config.d.ts +2 -1461
- package/build/lib/src/config.js +16 -32
- package/build/lib/src/configMerge.d.ts +3 -0
- package/build/lib/src/configMerge.js +63 -0
- package/build/lib/src/diagnostictypes.d.ts +1 -5
- package/build/lib/src/diagnostictypes.js +1 -27
- package/build/lib/src/from-idl/DtsPrinter.js +12 -5
- package/build/lib/src/from-idl/IDLLinter.d.ts +3 -4
- package/build/lib/src/from-idl/IDLLinter.js +30 -32
- package/build/lib/src/from-idl/deserialize.d.ts +3 -4
- package/build/lib/src/from-idl/deserialize.js +29 -641
- package/build/lib/src/from-idl/parser.d.ts +20 -2
- package/build/lib/src/from-idl/parser.js +97 -29
- package/build/lib/src/idl/builders.d.ts +43 -0
- package/build/lib/src/idl/builders.js +135 -0
- package/build/lib/src/idl/discriminators.d.ts +53 -0
- package/build/lib/src/idl/discriminators.js +232 -0
- package/build/lib/src/idl/dump.d.ts +48 -0
- package/build/lib/src/idl/dump.js +327 -0
- package/build/lib/src/idl/index.d.ts +9 -0
- package/build/lib/src/idl/index.js +23 -0
- package/build/lib/src/idl/keywords.d.ts +2 -0
- package/build/lib/src/{options.js → idl/keywords.js} +7 -3
- package/build/lib/src/idl/node.d.ts +233 -0
- package/build/lib/src/idl/node.js +103 -0
- package/build/lib/src/idl/stdlib.d.ts +34 -0
- package/build/lib/src/idl/stdlib.js +54 -0
- package/build/lib/src/idl/utils.d.ts +44 -0
- package/build/lib/src/idl/utils.js +215 -0
- package/build/lib/src/idl/visitors.d.ts +15 -0
- package/build/lib/src/idl/visitors.js +593 -0
- package/build/lib/src/index.d.ts +4 -2
- package/build/lib/src/index.js +5 -3
- package/build/lib/src/inputPaths.d.ts +11 -0
- package/build/lib/src/inputPaths.js +81 -0
- package/build/lib/src/languageSpecificKeywords.d.ts +0 -1
- package/build/lib/src/languageSpecificKeywords.js +0 -5
- package/build/lib/src/peer-generation/LayoutManager.d.ts +1 -1
- package/build/lib/src/peer-generation/Materialized.d.ts +8 -2
- package/build/lib/src/peer-generation/Materialized.js +24 -12
- package/build/lib/src/peer-generation/PeerLibrary.d.ts +10 -15
- package/build/lib/src/peer-generation/PeerLibrary.js +35 -215
- package/build/lib/src/peer-generation/ReferenceResolver.d.ts +6 -1
- package/build/lib/src/peer-generation/ReferenceResolver.js +93 -2
- package/build/lib/src/peer-generation/idl/common.d.ts +6 -2
- package/build/lib/src/peer-generation/idl/common.js +7 -7
- package/build/lib/src/peer-generation/isMaterialized.js +2 -3
- package/build/lib/src/peer-generation/modules.js +2 -0
- package/build/lib/src/peer-generation/toDeclaration.d.ts +4 -0
- package/build/lib/src/peer-generation/toDeclaration.js +53 -0
- package/build/lib/src/peer-generation/unions.d.ts +1 -1
- package/build/lib/src/peer-generation/unions.js +15 -7
- package/build/lib/src/resolveNamedNode.d.ts +1 -0
- package/build/lib/src/resolveNamedNode.js +7 -0
- package/build/lib/src/transformers/FqnTransformer.d.ts +1 -1
- package/build/lib/src/transformers/FqnTransformer.js +20 -12
- package/build/lib/src/transformers/GenericTransformer.d.ts +4 -3
- package/build/lib/src/transformers/GenericTransformer.js +252 -158
- package/build/lib/src/transformers/IdlTransformer.d.ts +6 -0
- package/build/lib/src/transformers/IdlTransformer.js +7 -0
- package/build/lib/src/transformers/NullTransformer.d.ts +1 -1
- package/build/lib/src/transformers/NullTransformer.js +27 -21
- package/build/lib/src/transformers/OnSerializeTransformer.d.ts +1 -1
- package/build/lib/src/transformers/OnSerializeTransformer.js +28 -13
- package/build/lib/src/util.d.ts +4 -0
- package/build/lib/src/util.js +22 -0
- package/package.json +6 -7
- package/build/lib/src/LanguageWriters/convertors/JavaConvertors.d.ts +0 -37
- package/build/lib/src/LanguageWriters/convertors/JavaConvertors.js +0 -210
- package/build/lib/src/LanguageWriters/writers/JavaLanguageWriter.d.ts +0 -85
- package/build/lib/src/LanguageWriters/writers/JavaLanguageWriter.js +0 -306
- package/build/lib/src/from-idl/webidl2-utils.d.ts +0 -21
- package/build/lib/src/from-idl/webidl2-utils.js +0 -87
- package/build/lib/src/idl.d.ts +0 -444
- package/build/lib/src/idl.js +0 -1385
- package/build/lib/src/idlize.d.ts +0 -25
- package/build/lib/src/idlize.js +0 -198
- package/build/lib/src/options.d.ts +0 -13
- package/build/lib/src/peer-generation/BuilderClass.d.ts +0 -20
- package/build/lib/src/peer-generation/BuilderClass.js +0 -68
- package/webidl2.js/dist/webidl2.js +0 -4622
- package/webidl2.js/package.json +0 -55
|
@@ -17,7 +17,7 @@ import { Language } from '../../Language';
|
|
|
17
17
|
import { isTopLevelConflicted } from '../../peer-generation/ConflictingDeclarations';
|
|
18
18
|
import { isDeclaredInCurrentFile, LayoutNodeRole } from '../../peer-generation/LayoutManager';
|
|
19
19
|
import { maybeRestoreGenerics } from '../../transformers/GenericTransformer';
|
|
20
|
-
import { convertNode, convertType } from '../nameConvertor';
|
|
20
|
+
import { convertNode, convertType, isInsideInstanceof } from '../nameConvertor';
|
|
21
21
|
export class TSTypeNameConvertor {
|
|
22
22
|
constructor(library) {
|
|
23
23
|
this.library = library;
|
|
@@ -50,6 +50,8 @@ export class TSTypeNameConvertor {
|
|
|
50
50
|
}
|
|
51
51
|
convertTypedef(node) {
|
|
52
52
|
var _a;
|
|
53
|
+
if (idl.isSyntheticEntry(node))
|
|
54
|
+
return this.convert(node.type);
|
|
53
55
|
return (_a = this.mangleTopLevel(node)) !== null && _a !== void 0 ? _a : idl.getQualifiedName(node, "namespace.name");
|
|
54
56
|
}
|
|
55
57
|
convertCallback(node) {
|
|
@@ -87,18 +89,13 @@ export class TSTypeNameConvertor {
|
|
|
87
89
|
}
|
|
88
90
|
convertContainer(type) {
|
|
89
91
|
if (idl.IDLContainerUtils.isSequence(type)) {
|
|
90
|
-
|
|
91
|
-
case idl.IDLU8Type: return 'Uint8Array'; // should be changed to Array
|
|
92
|
-
case idl.IDLI32Type: return 'Int32Array'; // should be changed to Array
|
|
93
|
-
case idl.IDLF32Type: return 'KFloat32ArrayPtr'; // should be changed to Array
|
|
94
|
-
default: return `Array<${this.convert(type.elementType[0])}>`;
|
|
95
|
-
}
|
|
92
|
+
return isInsideInstanceof() ? `Array` : `Array<${this.convert(type.elementType[0])}>`;
|
|
96
93
|
}
|
|
97
94
|
if (idl.IDLContainerUtils.isRecord(type)) {
|
|
98
|
-
return `Map<${this.convert(type.elementType[0])}, ${this.convert(type.elementType[1])}>`;
|
|
95
|
+
return isInsideInstanceof() ? `Map` : `Map<${this.convert(type.elementType[0])}, ${this.convert(type.elementType[1])}>`;
|
|
99
96
|
}
|
|
100
97
|
if (idl.IDLContainerUtils.isPromise(type)) {
|
|
101
|
-
return `Promise<${this.convert(type.elementType[0])}>`;
|
|
98
|
+
return isInsideInstanceof() ? `Promise` : `Promise<${this.convert(type.elementType[0])}>`;
|
|
102
99
|
}
|
|
103
100
|
throw new Error(`Unmapped container type ${idl.DebugUtils.debugPrintType(type)}`);
|
|
104
101
|
}
|
|
@@ -108,7 +105,7 @@ export class TSTypeNameConvertor {
|
|
|
108
105
|
}
|
|
109
106
|
convertTypeReferenceAsImport(type, importClause) {
|
|
110
107
|
var _a;
|
|
111
|
-
const maybeTypeArguments = ((_a = type.typeArguments) === null || _a === void 0 ? void 0 : _a.length) ? `<${type.typeArguments.join(', ')}>` : "";
|
|
108
|
+
const maybeTypeArguments = ((_a = type.typeArguments) === null || _a === void 0 ? void 0 : _a.length) && !isInsideInstanceof() ? `<${type.typeArguments.join(', ')}>` : "";
|
|
112
109
|
let decl = this.library.resolveTypeReference(type);
|
|
113
110
|
if (decl)
|
|
114
111
|
return `${decl.name}${maybeTypeArguments}`;
|
|
@@ -122,6 +119,9 @@ export class TSTypeNameConvertor {
|
|
|
122
119
|
if (idl.isCallback(decl)) {
|
|
123
120
|
return this.mapCallback(decl, type.typeArguments);
|
|
124
121
|
}
|
|
122
|
+
if (idl.isTypedef(decl)) {
|
|
123
|
+
return this.convert(decl.type);
|
|
124
|
+
}
|
|
125
125
|
const entity = idl.getExtAttribute(decl, idl.IDLExtendedAttributes.Entity);
|
|
126
126
|
if (entity) {
|
|
127
127
|
const isTuple = entity === idl.IDLEntity.Tuple;
|
|
@@ -141,7 +141,9 @@ export class TSTypeNameConvertor {
|
|
|
141
141
|
decl = this.library.resolveTypeReference(maybeRestoredGeneric);
|
|
142
142
|
}
|
|
143
143
|
let typeSpec = type.name;
|
|
144
|
-
let typeArgs = (
|
|
144
|
+
let typeArgs = !isInsideInstanceof() || decl && idl.isCallback(decl)
|
|
145
|
+
? (_b = (_a = type.typeArguments) === null || _a === void 0 ? void 0 : _a.map(it => this.convert(it))) !== null && _b !== void 0 ? _b : []
|
|
146
|
+
: [];
|
|
145
147
|
if (typeSpec === `Optional`)
|
|
146
148
|
return `${typeArgs} | undefined`;
|
|
147
149
|
if (typeSpec === `Function`)
|
|
@@ -249,7 +251,7 @@ export class TSTypeNameConvertor {
|
|
|
249
251
|
return name;
|
|
250
252
|
}
|
|
251
253
|
mapFunctionType(typeArgs) {
|
|
252
|
-
return `Function${typeArgs.length ? `<${typeArgs.join(",")}>` : ''}`;
|
|
254
|
+
return isInsideInstanceof() ? `Function` : `Function${typeArgs.length ? `<${typeArgs.join(",")}>` : ''}`;
|
|
253
255
|
}
|
|
254
256
|
}
|
|
255
257
|
export class TSInteropArgConvertor {
|
|
@@ -257,6 +259,11 @@ export class TSInteropArgConvertor {
|
|
|
257
259
|
return convertType(this, type);
|
|
258
260
|
}
|
|
259
261
|
convertContainer(type) {
|
|
262
|
+
switch (type.elementType[0]) {
|
|
263
|
+
case idl.IDLU8Type: return 'KUint8ArrayPtr';
|
|
264
|
+
case idl.IDLI32Type: return 'KInt32ArrayPtr';
|
|
265
|
+
case idl.IDLF32Type: return 'KFloat32ArrayPtr';
|
|
266
|
+
}
|
|
260
267
|
throw new Error(`Cannot pass container types through interop`);
|
|
261
268
|
}
|
|
262
269
|
convertImport(type) {
|
|
@@ -276,13 +283,17 @@ export class TSInteropArgConvertor {
|
|
|
276
283
|
case idl.IDLF64Type: return "KDouble";
|
|
277
284
|
case idl.IDLNumberType: return 'number';
|
|
278
285
|
case idl.IDLBigintType: return 'bigint';
|
|
279
|
-
case idl.IDLBooleanType:
|
|
286
|
+
case idl.IDLBooleanType: return 'boolean';
|
|
280
287
|
case idl.IDLFunctionType: return 'KInt';
|
|
281
288
|
case idl.IDLStringType: return 'KStringPtr';
|
|
282
289
|
case idl.IDLBufferType: return 'ArrayBuffer';
|
|
290
|
+
case idl.IDLSerializerBuffer: return 'KSerializerBuffer';
|
|
291
|
+
case idl.IDLInteropReturnBufferType: return `KInteropReturnBuffer`;
|
|
292
|
+
case idl.IDLObjectType: return 'Object';
|
|
293
|
+
case idl.IDLAnyType: return "Object";
|
|
283
294
|
case idl.IDLDate: return 'number';
|
|
295
|
+
case idl.IDLVoidType: return 'void';
|
|
284
296
|
case idl.IDLUndefinedType:
|
|
285
|
-
case idl.IDLVoidType:
|
|
286
297
|
case idl.IDLPointerType: return 'KPointer';
|
|
287
298
|
}
|
|
288
299
|
throw new Error(`Cannot pass primitive type ${type.name} through interop`);
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { Language } from "../Language";
|
|
2
2
|
import { LibraryInterface } from "../LibraryInterface";
|
|
3
|
+
import { PeerLibrary } from "../peer-generation/PeerLibrary";
|
|
3
4
|
import { LanguageWriter } from "./LanguageWriter";
|
|
4
|
-
import {
|
|
5
|
+
import { IdlNameConvertor } from "./nameConvertor";
|
|
5
6
|
export * from "./nameConvertor";
|
|
6
|
-
export declare function createLanguageWriter(language: Language, library: LibraryInterface): LanguageWriter;
|
|
7
|
-
export declare function createInteropArgConvertor(language: Language):
|
|
7
|
+
export declare function createLanguageWriter(language: Language, library: LibraryInterface, nameConvertor?: IdlNameConvertor): LanguageWriter;
|
|
8
|
+
export declare function createInteropArgConvertor(language: Language, library: PeerLibrary): IdlNameConvertor;
|
|
8
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { IndentedPrinter } from "../IndentedPrinter";
|
|
2
2
|
import { Language } from "../Language";
|
|
3
3
|
import { PrimitiveTypesInstance } from "../peer-generation/PrimitiveType";
|
|
4
|
-
import { createEmptyReferenceResolver } from "../peer-generation/ReferenceResolver";
|
|
5
4
|
import { CJIDLTypeToForeignStringConvertor, CJInteropArgConvertor, CJTypeNameConvertor } from "./convertors/CJConvertors";
|
|
6
5
|
import { CppInteropArgConvertor, CppConvertor } from "./convertors/CppConvertors";
|
|
7
6
|
import { ETSInteropArgConvertor, ETSTypeNameConvertor } from "./convertors/ETSConvertors";
|
|
8
|
-
import {
|
|
7
|
+
import { KotlinTypeNameConvertor } from "./convertors/KotlinConvertors";
|
|
9
8
|
import { TSInteropArgConvertor, TSTypeNameConvertor } from "./convertors/TSConvertors";
|
|
10
9
|
import { CJLanguageWriter } from "./writers/CJLanguageWriter";
|
|
11
10
|
import { CppLanguageWriter } from "./writers/CppLanguageWriter";
|
|
@@ -13,26 +12,25 @@ import { ETSLanguageWriter } from "./writers/ETSLanguageWriter";
|
|
|
13
12
|
import { KotlinLanguageWriter } from "./writers/KotlinLanguageWriter";
|
|
14
13
|
import { TSLanguageWriter } from "./writers/TsLanguageWriter";
|
|
15
14
|
export * from "./nameConvertor";
|
|
16
|
-
export function createLanguageWriter(language, library) {
|
|
15
|
+
export function createLanguageWriter(language, library, nameConvertor) {
|
|
17
16
|
const printer = new IndentedPrinter();
|
|
18
17
|
switch (language) {
|
|
19
|
-
case Language.TS: return new TSLanguageWriter(printer, library, new TSTypeNameConvertor(library));
|
|
20
|
-
case Language.ARKTS: return new ETSLanguageWriter(printer, library, new ETSTypeNameConvertor(library), new CppConvertor(library));
|
|
21
|
-
case Language.CPP: return new CppLanguageWriter(printer, library, new CppConvertor(library), PrimitiveTypesInstance);
|
|
22
|
-
case Language.CJ: return new CJLanguageWriter(printer, library, new CJTypeNameConvertor(library), new CJIDLTypeToForeignStringConvertor(library));
|
|
23
|
-
case Language.KOTLIN: return new KotlinLanguageWriter(printer, library, new KotlinTypeNameConvertor(library));
|
|
18
|
+
case Language.TS: return new TSLanguageWriter(printer, library, nameConvertor !== null && nameConvertor !== void 0 ? nameConvertor : new TSTypeNameConvertor(library));
|
|
19
|
+
case Language.ARKTS: return new ETSLanguageWriter(printer, library, nameConvertor !== null && nameConvertor !== void 0 ? nameConvertor : new ETSTypeNameConvertor(library), new CppConvertor(library));
|
|
20
|
+
case Language.CPP: return new CppLanguageWriter(printer, library, nameConvertor !== null && nameConvertor !== void 0 ? nameConvertor : new CppConvertor(library), PrimitiveTypesInstance);
|
|
21
|
+
case Language.CJ: return new CJLanguageWriter(printer, library, nameConvertor !== null && nameConvertor !== void 0 ? nameConvertor : new CJTypeNameConvertor(library), new CJIDLTypeToForeignStringConvertor(library));
|
|
22
|
+
case Language.KOTLIN: return new KotlinLanguageWriter(printer, library, nameConvertor !== null && nameConvertor !== void 0 ? nameConvertor : new KotlinTypeNameConvertor(library));
|
|
24
23
|
default: throw new Error(`Language ${language.toString()} is not supported`);
|
|
25
24
|
}
|
|
26
25
|
}
|
|
27
|
-
export function createInteropArgConvertor(language) {
|
|
26
|
+
export function createInteropArgConvertor(language, library) {
|
|
28
27
|
switch (language) {
|
|
29
28
|
case Language.TS: return new TSInteropArgConvertor();
|
|
30
29
|
case Language.ARKTS: return new ETSInteropArgConvertor();
|
|
31
30
|
case Language.CPP: return CppInteropArgConvertor.INSTANCE;
|
|
32
31
|
case Language.CJ: return new CJInteropArgConvertor();
|
|
33
|
-
case Language.KOTLIN: return new
|
|
32
|
+
case Language.KOTLIN: return new KotlinTypeNameConvertor(library);
|
|
34
33
|
}
|
|
35
34
|
throw new Error(`InteropArgConvertor for language ${language} not implemented`);
|
|
36
35
|
}
|
|
37
|
-
const EmptyReferenceResolver = createEmptyReferenceResolver();
|
|
38
36
|
//# sourceMappingURL=index.js.map
|
|
@@ -27,4 +27,6 @@ export declare function convertDeclaration<T>(convertor: DeclarationConvertor<T>
|
|
|
27
27
|
export interface NodeConvertor<T> extends TypeConvertor<T>, DeclarationConvertor<T> {
|
|
28
28
|
}
|
|
29
29
|
export declare function convertNode<T>(convertor: NodeConvertor<T>, node: idl.IDLNode): T;
|
|
30
|
+
export declare function isInsideInstanceof(): boolean;
|
|
31
|
+
export declare function withInsideInstanceof<T>(isInsideInstanceof: boolean, op: () => T): T;
|
|
30
32
|
//# sourceMappingURL=nameConvertor.d.ts.map
|
|
@@ -62,4 +62,15 @@ export function convertNode(convertor, node) {
|
|
|
62
62
|
return convertType(convertor, node);
|
|
63
63
|
throw new Error(`Unknown node type ${idl.IDLKind[node.kind]}`);
|
|
64
64
|
}
|
|
65
|
+
let _isInsideInstanceof = false;
|
|
66
|
+
export function isInsideInstanceof() {
|
|
67
|
+
return _isInsideInstanceof;
|
|
68
|
+
}
|
|
69
|
+
export function withInsideInstanceof(isInsideInstanceof, op) {
|
|
70
|
+
const prevIsInsideInstanceof = _isInsideInstanceof;
|
|
71
|
+
_isInsideInstanceof = isInsideInstanceof;
|
|
72
|
+
const result = op();
|
|
73
|
+
_isInsideInstanceof = prevIsInsideInstanceof;
|
|
74
|
+
return result;
|
|
75
|
+
}
|
|
65
76
|
//# sourceMappingURL=nameConvertor.js.map
|
|
@@ -386,7 +386,7 @@ export class CppLanguageWriter extends CLikeLanguageWriter {
|
|
|
386
386
|
return createReferenceType('Tag');
|
|
387
387
|
}
|
|
388
388
|
getRuntimeType() {
|
|
389
|
-
return createReferenceType(`RuntimeType`);
|
|
389
|
+
return createReferenceType(`idlize.stdlib.RuntimeType`);
|
|
390
390
|
}
|
|
391
391
|
makeTupleAssign(receiver, tupleFields) {
|
|
392
392
|
const statements = tupleFields.map((field, index) => {
|
|
@@ -38,10 +38,8 @@ export declare class ETSLambdaExpression extends LambdaExpression {
|
|
|
38
38
|
protected get statementHasSemicolon(): boolean;
|
|
39
39
|
asString(): string;
|
|
40
40
|
}
|
|
41
|
-
export declare function generateTypeCheckerName(typeName: string): string;
|
|
42
41
|
export declare function generateEnumToNumericName(entry: idl.IDLEntry): string;
|
|
43
42
|
export declare function generateEnumFromNumericName(entry: idl.IDLEntry): string;
|
|
44
|
-
export declare function makeArrayTypeCheckCall(valueAccessor: string, typeName: string, writer: LanguageWriter): LanguageExpression;
|
|
45
43
|
export declare class ETSLanguageWriter extends TSLanguageWriter {
|
|
46
44
|
private arrayConvertor;
|
|
47
45
|
constructor(printer: IndentedPrinter, resolver: ReferenceResolver, typeConvertor: IdlNameConvertor, arrayConvertor: IdlNameConvertor);
|
|
@@ -74,12 +72,7 @@ export declare class ETSLanguageWriter extends TSLanguageWriter {
|
|
|
74
72
|
discriminate(value: string, index: number, type: idl.IDLType, runtimeTypes: RuntimeType[]): string;
|
|
75
73
|
castToInt(value: string, bitness: 8 | 32): string;
|
|
76
74
|
castToBoolean(value: string): string;
|
|
77
|
-
typeInstanceOf(type: idl.IDLEntry, value: string, members?: string[]): LanguageExpression;
|
|
78
|
-
makeTypeCast(value: LanguageExpression, type: idl.IDLType, options?: MakeCastOptions): LanguageExpression;
|
|
79
75
|
makeCast(value: LanguageExpression, node: idl.IDLNode, options?: MakeCastOptions): LanguageExpression;
|
|
80
|
-
|
|
81
|
-
static get isUseTypeChecker(): boolean;
|
|
82
|
-
static useTypeChecker<T>(isUseTypeChecker: boolean, op: () => T): T;
|
|
76
|
+
instanceOf(value: string, type: idl.IDLType): LanguageExpression;
|
|
83
77
|
}
|
|
84
|
-
export declare function makeEnumTypeCheckerCall(valueAccessor: string, enumName: string, writer: LanguageWriter): LanguageExpression;
|
|
85
78
|
//# sourceMappingURL=ETSLanguageWriter.d.ts.map
|
|
@@ -18,7 +18,7 @@ import { TSCastExpression, TSLanguageWriter } from "./TsLanguageWriter";
|
|
|
18
18
|
import { getExtAttribute, IDLThisType } from '../../idl';
|
|
19
19
|
import { AggregateConvertor, CustomTypeConvertor, InterfaceConvertor, MaterializedClassConvertor } from "../ArgConvertors";
|
|
20
20
|
import * as idl from '../../idl';
|
|
21
|
-
import { convertDeclaration } from "../nameConvertor";
|
|
21
|
+
import { convertDeclaration, withInsideInstanceof } from "../nameConvertor";
|
|
22
22
|
import { createDeclarationNameConvertor } from "../../peer-generation/idl/IdlNameConvertor";
|
|
23
23
|
import { Language } from "../../Language";
|
|
24
24
|
////////////////////////////////////////////////////////////////
|
|
@@ -56,7 +56,7 @@ export class EtsAssignStatement {
|
|
|
56
56
|
const typeClause = this.type !== undefined ? `: ${writer.getNodeName(this.type)}` : '';
|
|
57
57
|
const maybeAssign = this.expression !== undefined ? " = " : "";
|
|
58
58
|
const initValue = this.expression !== undefined ? this.expression : writer.makeString("");
|
|
59
|
-
writer.print(`${this.isConst ? "const" : "let"} ${this.variableName}
|
|
59
|
+
writer.print(`${this.isConst ? "const" : "let"} ${this.variableName}${typeClause}${maybeAssign}${initValue.asString()}`);
|
|
60
60
|
}
|
|
61
61
|
else {
|
|
62
62
|
const receiver = (_a = this.options) === null || _a === void 0 ? void 0 : _a.receiver;
|
|
@@ -90,35 +90,30 @@ export class ArkTSEnumEntityStatement {
|
|
|
90
90
|
write(writer) {
|
|
91
91
|
let enumName = convertDeclaration(createDeclarationNameConvertor(Language.ARKTS), this.enumEntity);
|
|
92
92
|
enumName = enumName.split('.').at(-1);
|
|
93
|
-
const
|
|
94
|
-
|
|
93
|
+
const correctStyleNames = [];
|
|
94
|
+
const originalStyleNames = [];
|
|
95
|
+
this.enumEntity.elements.forEach((member, index) => {
|
|
95
96
|
var _a;
|
|
96
97
|
const initText = (_a = member.initializer) !== null && _a !== void 0 ? _a : index;
|
|
97
98
|
const isTypeString = typeof initText !== "number";
|
|
98
99
|
const originalName = getExtAttribute(member, idl.IDLExtendedAttributes.OriginalEnumMemberName);
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
});
|
|
112
|
-
//TODO: enums do not support member aliases
|
|
113
|
-
// res.push({
|
|
114
|
-
// name: originalName,
|
|
115
|
-
// alias: member.name,
|
|
116
|
-
// stringId: undefined,
|
|
117
|
-
// numberId: initText as number
|
|
118
|
-
// })
|
|
119
|
-
}
|
|
120
|
-
return res;
|
|
100
|
+
correctStyleNames.push({
|
|
101
|
+
name: originalName ? member.name : `${member.name}_DUMMY`,
|
|
102
|
+
alias: undefined,
|
|
103
|
+
stringId: isTypeString ? initText : undefined,
|
|
104
|
+
numberId: initText
|
|
105
|
+
});
|
|
106
|
+
originalStyleNames.push({
|
|
107
|
+
name: originalName !== null && originalName !== void 0 ? originalName : member.name,
|
|
108
|
+
alias: undefined,
|
|
109
|
+
stringId: isTypeString ? initText : undefined,
|
|
110
|
+
numberId: initText
|
|
111
|
+
});
|
|
121
112
|
});
|
|
113
|
+
let members = originalStyleNames;
|
|
114
|
+
if (this.enumEntity.elements.some(it => idl.hasExtAttribute(it, idl.IDLExtendedAttributes.OriginalEnumMemberName))) {
|
|
115
|
+
members = members.concat(correctStyleNames);
|
|
116
|
+
}
|
|
122
117
|
writer.writeEnum(enumName, members, { isExport: this.options.isExport, isDeclare: this.options.isDeclare });
|
|
123
118
|
}
|
|
124
119
|
}
|
|
@@ -149,12 +144,6 @@ export class ETSLambdaExpression extends LambdaExpression {
|
|
|
149
144
|
////////////////////////////////////////////////////////////////
|
|
150
145
|
// UTILS //
|
|
151
146
|
////////////////////////////////////////////////////////////////
|
|
152
|
-
export function generateTypeCheckerName(typeName) {
|
|
153
|
-
return "is" + typeName
|
|
154
|
-
.replaceAll('[]', 'BracketsArray')
|
|
155
|
-
.replaceAll(/<.*$/g, '') // delete type arguments
|
|
156
|
-
.replaceAll('.', '_');
|
|
157
|
-
}
|
|
158
147
|
export function generateEnumToNumericName(entry) {
|
|
159
148
|
const typeName = idl.getQualifiedName(entry, "namespace.name").split('.').join('_');
|
|
160
149
|
return `${typeName}_ToNumeric`;
|
|
@@ -163,10 +152,6 @@ export function generateEnumFromNumericName(entry) {
|
|
|
163
152
|
const typeName = idl.getQualifiedName(entry, "namespace.name").split('.').join('_');
|
|
164
153
|
return `${typeName}_FromNumeric`;
|
|
165
154
|
}
|
|
166
|
-
export function makeArrayTypeCheckCall(valueAccessor, typeName, writer) {
|
|
167
|
-
return writer.makeMethodCall("TypeChecker", generateTypeCheckerName(typeName), [writer.makeString(valueAccessor)
|
|
168
|
-
]);
|
|
169
|
-
}
|
|
170
155
|
////////////////////////////////////////////////////////////////
|
|
171
156
|
// WRITER //
|
|
172
157
|
////////////////////////////////////////////////////////////////
|
|
@@ -204,18 +189,22 @@ export class ETSLanguageWriter extends TSLanguageWriter {
|
|
|
204
189
|
return this.makeString(`${value} as ${type}`);
|
|
205
190
|
}
|
|
206
191
|
i32FromEnum(value, enumEntry) {
|
|
207
|
-
if (
|
|
208
|
-
|
|
192
|
+
if (idl.isStringEnum(enumEntry)) {
|
|
193
|
+
let extractorStatement = this.makeMethodCall(value.asString(), 'getOrdinal', []);
|
|
194
|
+
if (enumEntry.elements.some(it => idl.hasExtAttribute(it, idl.IDLExtendedAttributes.OriginalEnumMemberName))) {
|
|
195
|
+
extractorStatement = this.makeNaryOp('%', [
|
|
196
|
+
extractorStatement,
|
|
197
|
+
this.makeString(enumEntry.elements.length.toString())
|
|
198
|
+
]);
|
|
199
|
+
}
|
|
200
|
+
return extractorStatement;
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
return this.makeMethodCall(value.asString(), 'valueOf', []);
|
|
209
204
|
}
|
|
210
|
-
return idl.isStringEnum(enumEntry)
|
|
211
|
-
? this.makeMethodCall(value.asString(), 'getOrdinal', [])
|
|
212
|
-
: this.makeMethodCall(value.asString(), 'valueOf', []);
|
|
213
205
|
}
|
|
214
206
|
enumFromI32(value, enumEntry) {
|
|
215
207
|
const enumName = this.getNodeName(enumEntry);
|
|
216
|
-
if (ETSLanguageWriter.isUseTypeChecker) {
|
|
217
|
-
return this.makeMethodCall('TypeChecker', generateEnumFromNumericName(enumEntry), [value]);
|
|
218
|
-
}
|
|
219
208
|
return idl.isStringEnum(enumEntry)
|
|
220
209
|
? this.makeString(`${enumName}.values()[${value.asString()}]`)
|
|
221
210
|
: this.makeMethodCall(enumName, 'fromValue', [value]);
|
|
@@ -227,7 +216,7 @@ export class ETSLanguageWriter extends TSLanguageWriter {
|
|
|
227
216
|
|| convertor instanceof CustomTypeConvertor) {
|
|
228
217
|
return this.instanceOf(value, convertor.idlType);
|
|
229
218
|
}
|
|
230
|
-
return this.makeString(`${value} instanceof ${convertor.targetType(this)}`);
|
|
219
|
+
return this.makeString(`${value} instanceof ${withInsideInstanceof(true, () => convertor.targetType(this))}`);
|
|
231
220
|
}
|
|
232
221
|
makeValueFromOption(value, destinationConvertor) {
|
|
233
222
|
if (idl.isEnum(this.resolver.toDeclaration(destinationConvertor.nativeType()))) {
|
|
@@ -266,15 +255,16 @@ export class ETSLanguageWriter extends TSLanguageWriter {
|
|
|
266
255
|
return super.makeNaryOp('==', args);
|
|
267
256
|
}
|
|
268
257
|
discriminate(value, index, type, runtimeTypes) {
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
258
|
+
return `${value} instanceof ${withInsideInstanceof(true, () => {
|
|
259
|
+
let typeName = this.getNodeName(type);
|
|
260
|
+
if (idl.isReferenceType(type)) {
|
|
261
|
+
const decl = this.resolver.resolveTypeReference(type);
|
|
262
|
+
if (decl && idl.isInterface(decl) && decl.subkind == idl.IDLInterfaceSubkind.Tuple) {
|
|
263
|
+
typeName = "Tuple";
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
return typeName;
|
|
267
|
+
})}`;
|
|
278
268
|
}
|
|
279
269
|
castToInt(value, bitness) {
|
|
280
270
|
// This fix is used to avoid unnecessary writeInt8(value as int32) call, which is generated if value is already an int32
|
|
@@ -284,50 +274,23 @@ export class ETSLanguageWriter extends TSLanguageWriter {
|
|
|
284
274
|
return `(${value}).toChar()`;
|
|
285
275
|
return `(${value}).toInt()`; // FIXME: is there int8 in ARKTS?
|
|
286
276
|
}
|
|
287
|
-
castToBoolean(value) { return `${value} ?
|
|
288
|
-
typeInstanceOf(type, value, members) {
|
|
289
|
-
if (!members || members.length === 0) {
|
|
290
|
-
throw new Error("At least one member needs to provided to pass it to TypeChecker!");
|
|
291
|
-
}
|
|
292
|
-
const prop = members[0];
|
|
293
|
-
// Use the same typeInstanceOf<T>(...) method to compile the ETS code by two compilers ArkTS and TS
|
|
294
|
-
return this.makeString(`TypeChecker.typeInstanceOf<${this.getNodeName(type)}>(value, "${prop}")`);
|
|
295
|
-
}
|
|
296
|
-
makeTypeCast(value, type, options) {
|
|
297
|
-
return this.makeString(`TypeChecker.typeCast<${this.getNodeName(type)}>(value)`);
|
|
298
|
-
}
|
|
277
|
+
castToBoolean(value) { return `${value} ? true : false`; }
|
|
299
278
|
makeCast(value, node, options) {
|
|
300
279
|
var _a;
|
|
301
280
|
if (node === idl.IDLI64Type)
|
|
302
|
-
return this.makeMethodCall(value.asString(), `toLong`, []);
|
|
281
|
+
return this.makeMethodCall(value.asString() + '!', `toLong`, []);
|
|
303
282
|
if (node === idl.IDLI32Type)
|
|
304
|
-
return this.makeMethodCall(value.asString(), `toInt`, []);
|
|
283
|
+
return this.makeMethodCall(value.asString() + '!', `toInt`, []);
|
|
305
284
|
if (node === idl.IDLI8Type)
|
|
306
|
-
return this.makeMethodCall(value.asString(), `toByte`, []);
|
|
285
|
+
return this.makeMethodCall(value.asString() + '!', `toByte`, []);
|
|
307
286
|
if (node === idl.IDLF64Type)
|
|
308
|
-
return this.makeMethodCall(value.asString(), `toDouble`, []);
|
|
287
|
+
return this.makeMethodCall(value.asString() + '!', `toDouble`, []);
|
|
309
288
|
if (node === idl.IDLF32Type)
|
|
310
|
-
return this.makeMethodCall(value.asString(), `toFloat`, []);
|
|
289
|
+
return this.makeMethodCall(value.asString() + '!', `toFloat`, []);
|
|
311
290
|
return new TSCastExpression(value, `${this.getNodeName(node)}`, (_a = options === null || options === void 0 ? void 0 : options.unsafe) !== null && _a !== void 0 ? _a : false);
|
|
312
291
|
}
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
const prevIsUse = this.isReferenceRelativeToNamespaces;
|
|
316
|
-
this._isUseTypeChecker = isUseTypeChecker;
|
|
317
|
-
const result = op();
|
|
318
|
-
this._isUseTypeChecker = prevIsUse;
|
|
319
|
-
return result;
|
|
292
|
+
instanceOf(value, type) {
|
|
293
|
+
return this.makeString(this.discriminate(value, -1, type, []));
|
|
320
294
|
}
|
|
321
295
|
}
|
|
322
|
-
ETSLanguageWriter._isUseTypeChecker = true;
|
|
323
|
-
function makeInterfaceTypeCheckerCall(valueAccessor, interfaceName, allFields, duplicates, writer) {
|
|
324
|
-
return writer.makeMethodCall("TypeChecker", generateTypeCheckerName(interfaceName), [writer.makeString(valueAccessor),
|
|
325
|
-
...allFields.map(it => {
|
|
326
|
-
return writer.makeString(duplicates.has(it) ? "true" : "false");
|
|
327
|
-
})
|
|
328
|
-
]);
|
|
329
|
-
}
|
|
330
|
-
export function makeEnumTypeCheckerCall(valueAccessor, enumName, writer) {
|
|
331
|
-
return writer.makeMethodCall("TypeChecker", generateTypeCheckerName(enumName), [writer.makeString(valueAccessor)]);
|
|
332
|
-
}
|
|
333
296
|
//# sourceMappingURL=ETSLanguageWriter.js.map
|
|
@@ -78,6 +78,7 @@ export declare class TSLanguageWriter extends LanguageWriter {
|
|
|
78
78
|
makeMapForEach(map: string, key: string, value: string, body: LanguageStatement[]): LanguageStatement;
|
|
79
79
|
writePrintLog(message: string): void;
|
|
80
80
|
makeCast(value: LanguageExpression, node: idl.IDLNode, options?: MakeCastOptions): LanguageExpression;
|
|
81
|
+
instanceOf(value: string, type: idl.IDLType): LanguageExpression;
|
|
81
82
|
typeInstanceOf(type: idl.IDLEntry, value: string, members?: string[]): LanguageExpression;
|
|
82
83
|
getObjectAccessor(convertor: ArgConvertor, value: string, args?: ObjectArgs): string;
|
|
83
84
|
makeUndefined(): LanguageExpression;
|
|
@@ -100,5 +101,7 @@ export declare class TSLanguageWriter extends LanguageWriter {
|
|
|
100
101
|
makeCallIsObject(value: string): LanguageExpression;
|
|
101
102
|
escapeKeyword(keyword: string): string;
|
|
102
103
|
discriminate(value: string, index: number, type: idl.IDLType, runtimeTypes: RuntimeType[]): string;
|
|
104
|
+
private writingClassBody;
|
|
105
|
+
classOp(op: () => void): void;
|
|
103
106
|
}
|
|
104
107
|
//# sourceMappingURL=TsLanguageWriter.d.ts.map
|
|
@@ -16,7 +16,7 @@ import * as idl from '../../idl';
|
|
|
16
16
|
import { isOptionalType } from '../../idl';
|
|
17
17
|
import { Language } from '../../Language';
|
|
18
18
|
import { IndentedPrinter } from "../../IndentedPrinter";
|
|
19
|
-
import { AssignStatement, BlockStatement, DelegationType, ExpressionStatement, FieldModifier, IfStatement, LambdaExpression, LanguageWriter, Method, MethodModifier, MethodSignature, NamedMethodSignature, NaryOpExpression, ReturnStatement, StringExpression } from "../LanguageWriter";
|
|
19
|
+
import { ACCESS_MODIFIERS_SET, AssignStatement, BlockStatement, DelegationType, ExpressionStatement, FieldModifier, IfStatement, LambdaExpression, LanguageWriter, Method, MethodModifier, MethodSignature, NamedMethodSignature, NaryOpExpression, ReturnStatement, StringExpression } from "../LanguageWriter";
|
|
20
20
|
import { RuntimeType } from "../common";
|
|
21
21
|
import { rightmostIndexOf } from "../../util";
|
|
22
22
|
import { TSKeywords } from '../../languageSpecificKeywords';
|
|
@@ -67,7 +67,7 @@ class TSThrowErrorStatement {
|
|
|
67
67
|
this.message = message;
|
|
68
68
|
}
|
|
69
69
|
write(writer) {
|
|
70
|
-
writer.print(`throw new Error(
|
|
70
|
+
writer.print(`throw new Error('${this.message}')`);
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
73
|
export class TSReturnStatement extends ReturnStatement {
|
|
@@ -121,6 +121,7 @@ export class TsTupleAllocStatement {
|
|
|
121
121
|
export class TSLanguageWriter extends LanguageWriter {
|
|
122
122
|
constructor(printer, resolver, typeConvertor, language = Language.TS) {
|
|
123
123
|
super(printer, resolver, language);
|
|
124
|
+
this.writingClassBody = false;
|
|
124
125
|
this.typeConvertor = typeConvertor;
|
|
125
126
|
}
|
|
126
127
|
maybeSemicolon() { return ""; }
|
|
@@ -159,7 +160,7 @@ export class TSLanguageWriter extends LanguageWriter {
|
|
|
159
160
|
let abstractClause = isAbstract ? ` abstract` : '';
|
|
160
161
|
this.printer.print(`export${declaredClause}${abstractClause} class ${name}${genericsClause}${extendsClause}${implementsClause} {`);
|
|
161
162
|
this.pushIndent();
|
|
162
|
-
op(this);
|
|
163
|
+
this.classOp(() => op(this));
|
|
163
164
|
this.popIndent();
|
|
164
165
|
this.printer.print(`}`);
|
|
165
166
|
}
|
|
@@ -201,7 +202,7 @@ export class TSLanguageWriter extends LanguageWriter {
|
|
|
201
202
|
value = member.alias;
|
|
202
203
|
}
|
|
203
204
|
else {
|
|
204
|
-
value = `${member.stringId != undefined ? `
|
|
205
|
+
value = `${member.stringId != undefined ? `'${member.stringId}'` : `${member.numberId}`}`;
|
|
205
206
|
}
|
|
206
207
|
const maybeComma = index < members.length - 1 ? "," : "";
|
|
207
208
|
this.printer.print(`${member.name} = ${value}${maybeComma}`);
|
|
@@ -210,6 +211,11 @@ export class TSLanguageWriter extends LanguageWriter {
|
|
|
210
211
|
this.printer.print("}");
|
|
211
212
|
}
|
|
212
213
|
writeFieldDeclaration(name, type, modifiers, optional, initExpr) {
|
|
214
|
+
var _a;
|
|
215
|
+
if (this.writingClassBody && !(modifiers === null || modifiers === void 0 ? void 0 : modifiers.some(m => ACCESS_MODIFIERS_SET.has(m)))) {
|
|
216
|
+
modifiers = (_a = modifiers === null || modifiers === void 0 ? void 0 : modifiers.slice()) !== null && _a !== void 0 ? _a : [];
|
|
217
|
+
modifiers.unshift(FieldModifier.PUBLIC);
|
|
218
|
+
}
|
|
213
219
|
let prefix = this.makeFieldModifiersList(modifiers);
|
|
214
220
|
if (prefix)
|
|
215
221
|
prefix += " ";
|
|
@@ -300,7 +306,7 @@ export class TSLanguageWriter extends LanguageWriter {
|
|
|
300
306
|
for (let i = 0; i < importedFeatures.length; i++) {
|
|
301
307
|
importNodes.push(importedFeatures[i] + (aliases[i] ? ` as ${aliases[i]}` : ``));
|
|
302
308
|
}
|
|
303
|
-
this.writeExpressionStatement(this.makeString(`import { ${importNodes.join(', ')} } from
|
|
309
|
+
this.writeExpressionStatement(this.makeString(`import { ${importNodes.join(', ')} } from '${moduleName}'`));
|
|
304
310
|
}
|
|
305
311
|
writeDeclaration(name, signature, needReturn, needBracket, modifiers, generics) {
|
|
306
312
|
let prefix = !modifiers ? undefined : this.supportedModifiers
|
|
@@ -354,6 +360,11 @@ export class TSLanguageWriter extends LanguageWriter {
|
|
|
354
360
|
var _a;
|
|
355
361
|
return new TSCastExpression(value, this.getNodeName(node), (_a = options === null || options === void 0 ? void 0 : options.unsafe) !== null && _a !== void 0 ? _a : false);
|
|
356
362
|
}
|
|
363
|
+
instanceOf(value, type) {
|
|
364
|
+
return idl.IDLContainerUtils.isSequence(type)
|
|
365
|
+
? this.makeString(`Array.isArray(${value})`)
|
|
366
|
+
: super.instanceOf(value, type);
|
|
367
|
+
}
|
|
357
368
|
typeInstanceOf(type, value, members) {
|
|
358
369
|
if (idl.isInterface(type)) {
|
|
359
370
|
if (idl.isInterfaceSubkind(type)) {
|
|
@@ -440,16 +451,22 @@ export class TSLanguageWriter extends LanguageWriter {
|
|
|
440
451
|
}
|
|
441
452
|
return this.makeString(`${value.asString()}.valueOf()`);
|
|
442
453
|
}
|
|
443
|
-
castToBoolean(value) { return
|
|
454
|
+
castToBoolean(value) { return `!!${value}`; }
|
|
444
455
|
makeCallIsObject(value) {
|
|
445
456
|
return this.makeString(`${value} instanceof Object`);
|
|
446
457
|
}
|
|
447
458
|
escapeKeyword(keyword) {
|
|
448
|
-
return TSKeywords.has(keyword) ? keyword + "
|
|
459
|
+
return TSKeywords.has(keyword) ? keyword + "Val" : keyword;
|
|
449
460
|
}
|
|
450
461
|
discriminate(value, index, type, runtimeTypes) {
|
|
451
462
|
const runtimeTypeList = runtimeTypes.map(ty => "RuntimeType." + RuntimeType[ty]).join(", ");
|
|
452
463
|
return `[${runtimeTypeList}].includes(runtimeType(${value}))`;
|
|
453
464
|
}
|
|
465
|
+
classOp(op) {
|
|
466
|
+
const old = this.writingClassBody;
|
|
467
|
+
this.writingClassBody = true;
|
|
468
|
+
op();
|
|
469
|
+
this.writingClassBody = old;
|
|
470
|
+
}
|
|
454
471
|
}
|
|
455
472
|
//# sourceMappingURL=TsLanguageWriter.js.map
|