@idlizer/arktscgen 2.1.10-arktscgen-4 → 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/libarkts-copy/generator/options.json5 +24 -47
- package/build/libarkts-copy/native/meson.build +26 -10
- package/build/libarkts-copy/native/meson_options.txt +9 -3
- package/build/libarkts-copy/native/mingw.cross +2 -0
- package/build/libarkts-copy/native/src/bridges.cc +55 -159
- package/build/libarkts-copy/native/src/common.cc +316 -97
- package/build/libarkts-copy/native/src/common.h +22 -22
- package/build/libarkts-copy/native/src/memoryTracker.cc +5 -5
- package/build/libarkts-copy/native/src/memoryTracker.h +5 -5
- package/build/libarkts-copy/package.json +31 -25
- package/build/libarkts-copy/src/Es2pandaNativeModule.ts +139 -116
- package/build/libarkts-copy/src/InteropNativeModule.ts +18 -15
- package/build/libarkts-copy/src/arkts-api/AbstractVisitor.ts +24 -19
- package/build/libarkts-copy/src/arkts-api/ImportStorage.ts +30 -31
- package/build/libarkts-copy/src/arkts-api/ProgramProvider.ts +30 -18
- package/build/libarkts-copy/src/arkts-api/class-by-peer.ts +30 -12
- package/build/libarkts-copy/src/arkts-api/factory/nodeFactory.ts +38 -29
- package/build/libarkts-copy/src/arkts-api/index.ts +23 -24
- package/build/libarkts-copy/src/arkts-api/node-cache.ts +22 -13
- package/build/libarkts-copy/src/arkts-api/node-utilities/ArkTsConfig.ts +8 -8
- package/build/libarkts-copy/src/arkts-api/node-utilities/ArrayExpression.ts +9 -21
- package/build/libarkts-copy/src/arkts-api/node-utilities/AssignmentExpression.ts +12 -14
- package/build/libarkts-copy/src/arkts-api/node-utilities/BlockStatement.ts +5 -5
- package/build/libarkts-copy/src/arkts-api/node-utilities/CallExpression.ts +26 -24
- package/build/libarkts-copy/src/arkts-api/node-utilities/ClassDefinition.ts +62 -32
- package/build/libarkts-copy/src/arkts-api/node-utilities/ClassProperty.ts +14 -13
- package/build/libarkts-copy/src/arkts-api/node-utilities/ETSFunctionType.ts +24 -21
- package/build/libarkts-copy/src/arkts-api/node-utilities/ETSImportDeclaration.ts +10 -12
- package/build/libarkts-copy/src/arkts-api/node-utilities/ETSModule.ts +14 -18
- package/build/libarkts-copy/src/arkts-api/node-utilities/ETSParameterExpression.ts +15 -16
- package/build/libarkts-copy/src/arkts-api/node-utilities/ETSStructDeclaration.ts +5 -8
- package/build/libarkts-copy/src/arkts-api/node-utilities/ETSTuple.ts +6 -12
- package/build/libarkts-copy/src/arkts-api/node-utilities/MemberExpression.ts +12 -11
- package/build/libarkts-copy/src/arkts-api/node-utilities/MethodDefinition.ts +14 -33
- package/build/libarkts-copy/src/arkts-api/node-utilities/NumberLiteral.ts +12 -23
- package/build/libarkts-copy/src/arkts-api/node-utilities/ObjectExpression.ts +17 -21
- package/build/libarkts-copy/src/arkts-api/node-utilities/OpaqueTypeNode.ts +9 -8
- package/build/libarkts-copy/src/arkts-api/node-utilities/Program.ts +21 -16
- package/build/libarkts-copy/src/arkts-api/node-utilities/ScriptFunction.ts +52 -53
- package/build/libarkts-copy/src/arkts-api/node-utilities/TSInterfaceDeclaration.ts +22 -32
- package/build/libarkts-copy/src/arkts-api/node-utilities/TSTypeParameter.ts +12 -14
- package/build/libarkts-copy/src/arkts-api/node-utilities/TSTypeReferencePart.ts +10 -12
- package/build/libarkts-copy/src/arkts-api/node-utilities/TryStatement.ts +10 -9
- package/build/libarkts-copy/src/arkts-api/node-utilities/VariableDeclarator.ts +10 -12
- package/build/libarkts-copy/src/arkts-api/peers/ArktsObject.ts +8 -8
- package/build/libarkts-copy/src/arkts-api/peers/AstNode.ts +53 -65
- package/build/libarkts-copy/src/arkts-api/peers/Config.ts +18 -25
- package/build/libarkts-copy/src/arkts-api/peers/Context.ts +35 -42
- package/build/libarkts-copy/src/arkts-api/peers/ExternalSource.ts +9 -9
- package/build/libarkts-copy/src/arkts-api/peers/ImportPathManager.ts +6 -8
- package/build/libarkts-copy/src/arkts-api/peers/Options.ts +8 -8
- package/build/libarkts-copy/src/arkts-api/plugins.ts +205 -32
- package/build/libarkts-copy/src/arkts-api/static/global.ts +35 -36
- package/build/libarkts-copy/src/arkts-api/static/globalUtils.ts +5 -5
- package/build/libarkts-copy/src/arkts-api/static/profiler.ts +107 -91
- package/build/libarkts-copy/src/arkts-api/utilities/extensions.ts +54 -37
- package/build/libarkts-copy/src/arkts-api/utilities/nativePtrDecoder.ts +86 -69
- package/build/libarkts-copy/src/arkts-api/utilities/performance.ts +41 -24
- package/build/libarkts-copy/src/arkts-api/utilities/private.ts +69 -62
- package/build/libarkts-copy/src/arkts-api/utilities/public.ts +254 -175
- package/build/libarkts-copy/src/arkts-api/visitor.ts +599 -756
- package/build/libarkts-copy/src/arkts-api/wrapper-compat.ts +8 -8
- package/build/libarkts-copy/src/checkSdk.ts +15 -18
- package/build/libarkts-copy/src/index.ts +29 -29
- package/build/libarkts-copy/src/memo-node-cache.ts +143 -0
- package/build/libarkts-copy/src/plugin-utils.ts +64 -45
- package/build/libarkts-copy/src/reexport-for-generated.ts +13 -10
- package/build/libarkts-copy/src/tracer.ts +76 -70
- package/build/libarkts-copy/src/ts-api/factory/nodeFactory.ts +134 -274
- package/build/libarkts-copy/src/ts-api/factory/nodeTests.ts +23 -23
- package/build/libarkts-copy/src/ts-api/index.ts +27 -35
- package/build/libarkts-copy/src/ts-api/static/enums.ts +3 -3
- package/build/libarkts-copy/src/ts-api/types.ts +535 -395
- package/build/libarkts-copy/src/ts-api/utilities/private.ts +116 -113
- package/build/libarkts-copy/src/ts-api/utilities/public.ts +18 -18
- package/build/libarkts-copy/src/ts-api/visitor/visitor.ts +33 -49
- package/build/libarkts-copy/src/utils.ts +103 -80
- package/build/libarkts-copy/tsconfig.json +3 -2
- package/lib/index.js +2713 -7729
- package/package.json +53 -52
- package/templates/Es2pandaNativeModule.ts +1 -0
- package/templates/peer.ts +1 -0
- package/build/libarkts-copy/native/src/generated/bridges.cc +0 -16375
- package/build/libarkts-copy/src/arkts-api/peers/DiagnosticKind.ts +0 -24
- package/build/libarkts-copy/src/generated/Es2pandaEnums.ts +0 -1344
- package/build/libarkts-copy/src/generated/Es2pandaNativeModule.ts +0 -5192
- package/build/libarkts-copy/src/generated/factory.ts +0 -1285
- package/build/libarkts-copy/src/generated/index.ts +0 -222
- package/build/libarkts-copy/src/generated/peers/AnnotatedAstNode.ts +0 -44
- package/build/libarkts-copy/src/generated/peers/AnnotatedExpression.ts +0 -54
- package/build/libarkts-copy/src/generated/peers/AnnotatedStatement.ts +0 -45
- package/build/libarkts-copy/src/generated/peers/AnnotationDeclaration.ts +0 -165
- package/build/libarkts-copy/src/generated/peers/AnnotationUsage.ts +0 -84
- package/build/libarkts-copy/src/generated/peers/ArkTsConfig.ts +0 -73
- package/build/libarkts-copy/src/generated/peers/ArrayExpression.ts +0 -109
- package/build/libarkts-copy/src/generated/peers/ArrowFunctionExpression.ts +0 -119
- package/build/libarkts-copy/src/generated/peers/AssertStatement.ts +0 -65
- package/build/libarkts-copy/src/generated/peers/AssignmentExpression.ts +0 -111
- package/build/libarkts-copy/src/generated/peers/AstDumper.ts +0 -49
- package/build/libarkts-copy/src/generated/peers/AstVerifier.ts +0 -40
- package/build/libarkts-copy/src/generated/peers/AstVisitor.ts +0 -40
- package/build/libarkts-copy/src/generated/peers/AwaitExpression.ts +0 -61
- package/build/libarkts-copy/src/generated/peers/BigIntLiteral.ts +0 -61
- package/build/libarkts-copy/src/generated/peers/BinaryExpression.ts +0 -110
- package/build/libarkts-copy/src/generated/peers/BindingProps.ts +0 -40
- package/build/libarkts-copy/src/generated/peers/BlockExpression.ts +0 -72
- package/build/libarkts-copy/src/generated/peers/BlockStatement.ts +0 -94
- package/build/libarkts-copy/src/generated/peers/BooleanLiteral.ts +0 -61
- package/build/libarkts-copy/src/generated/peers/BreakStatement.ts +0 -78
- package/build/libarkts-copy/src/generated/peers/CallExpression.ts +0 -129
- package/build/libarkts-copy/src/generated/peers/CatchClause.ts +0 -74
- package/build/libarkts-copy/src/generated/peers/ChainExpression.ts +0 -68
- package/build/libarkts-copy/src/generated/peers/CharLiteral.ts +0 -58
- package/build/libarkts-copy/src/generated/peers/ClassDeclaration.ts +0 -76
- package/build/libarkts-copy/src/generated/peers/ClassDefinition.ts +0 -365
- package/build/libarkts-copy/src/generated/peers/ClassElement.ts +0 -76
- package/build/libarkts-copy/src/generated/peers/ClassExpression.ts +0 -62
- package/build/libarkts-copy/src/generated/peers/ClassProperty.ts +0 -137
- package/build/libarkts-copy/src/generated/peers/ClassStaticBlock.ts +0 -66
- package/build/libarkts-copy/src/generated/peers/CodeGen.ts +0 -40
- package/build/libarkts-copy/src/generated/peers/ConditionalExpression.ts +0 -82
- package/build/libarkts-copy/src/generated/peers/ContinueStatement.ts +0 -78
- package/build/libarkts-copy/src/generated/peers/DebuggerStatement.ts +0 -58
- package/build/libarkts-copy/src/generated/peers/Declaration.ts +0 -40
- package/build/libarkts-copy/src/generated/peers/Decorator.ts +0 -62
- package/build/libarkts-copy/src/generated/peers/DiagnosticInfo.ts +0 -40
- package/build/libarkts-copy/src/generated/peers/DirectEvalExpression.ts +0 -60
- package/build/libarkts-copy/src/generated/peers/DoWhileStatement.ts +0 -66
- package/build/libarkts-copy/src/generated/peers/DynamicImportData.ts +0 -40
- package/build/libarkts-copy/src/generated/peers/ETSClassLiteral.ts +0 -62
- package/build/libarkts-copy/src/generated/peers/ETSFunctionType.ts +0 -102
- package/build/libarkts-copy/src/generated/peers/ETSImportDeclaration.ts +0 -90
- package/build/libarkts-copy/src/generated/peers/ETSIntrinsicNode.ts +0 -69
- package/build/libarkts-copy/src/generated/peers/ETSKeyofType.ts +0 -61
- package/build/libarkts-copy/src/generated/peers/ETSModule.ts +0 -129
- package/build/libarkts-copy/src/generated/peers/ETSNewArrayInstanceExpression.ts +0 -75
- package/build/libarkts-copy/src/generated/peers/ETSNewClassInstanceExpression.ts +0 -79
- package/build/libarkts-copy/src/generated/peers/ETSNewMultiDimArrayInstanceExpression.ts +0 -75
- package/build/libarkts-copy/src/generated/peers/ETSNullType.ts +0 -58
- package/build/libarkts-copy/src/generated/peers/ETSPackageDeclaration.ts +0 -59
- package/build/libarkts-copy/src/generated/peers/ETSParameterExpression.ts +0 -189
- package/build/libarkts-copy/src/generated/peers/ETSPrimitiveType.ts +0 -62
- package/build/libarkts-copy/src/generated/peers/ETSReExportDeclaration.ts +0 -55
- package/build/libarkts-copy/src/generated/peers/ETSStringLiteralType.ts +0 -58
- package/build/libarkts-copy/src/generated/peers/ETSStructDeclaration.ts +0 -59
- package/build/libarkts-copy/src/generated/peers/ETSTuple.ts +0 -89
- package/build/libarkts-copy/src/generated/peers/ETSTypeReference.ts +0 -66
- package/build/libarkts-copy/src/generated/peers/ETSTypeReferencePart.ts +0 -78
- package/build/libarkts-copy/src/generated/peers/ETSUndefinedType.ts +0 -58
- package/build/libarkts-copy/src/generated/peers/ETSUnionType.ts +0 -75
- package/build/libarkts-copy/src/generated/peers/ETSWildcardType.ts +0 -63
- package/build/libarkts-copy/src/generated/peers/EmptyStatement.ts +0 -66
- package/build/libarkts-copy/src/generated/peers/ErrorLogger.ts +0 -40
- package/build/libarkts-copy/src/generated/peers/ExportAllDeclaration.ts +0 -66
- package/build/libarkts-copy/src/generated/peers/ExportDefaultDeclaration.ts +0 -64
- package/build/libarkts-copy/src/generated/peers/ExportNamedDeclaration.ts +0 -94
- package/build/libarkts-copy/src/generated/peers/ExportSpecifier.ts +0 -82
- package/build/libarkts-copy/src/generated/peers/Expression.ts +0 -84
- package/build/libarkts-copy/src/generated/peers/ExpressionStatement.ts +0 -67
- package/build/libarkts-copy/src/generated/peers/ForInStatement.ts +0 -69
- package/build/libarkts-copy/src/generated/peers/ForOfStatement.ts +0 -72
- package/build/libarkts-copy/src/generated/peers/ForUpdateStatement.ts +0 -67
- package/build/libarkts-copy/src/generated/peers/FunctionDeclaration.ts +0 -106
- package/build/libarkts-copy/src/generated/peers/FunctionExpression.ts +0 -74
- package/build/libarkts-copy/src/generated/peers/FunctionSignature.ts +0 -70
- package/build/libarkts-copy/src/generated/peers/IRNode.ts +0 -40
- package/build/libarkts-copy/src/generated/peers/Identifier.ts +0 -162
- package/build/libarkts-copy/src/generated/peers/IfStatement.ts +0 -78
- package/build/libarkts-copy/src/generated/peers/ImportDeclaration.ts +0 -87
- package/build/libarkts-copy/src/generated/peers/ImportDefaultSpecifier.ts +0 -62
- package/build/libarkts-copy/src/generated/peers/ImportExpression.ts +0 -61
- package/build/libarkts-copy/src/generated/peers/ImportNamespaceSpecifier.ts +0 -62
- package/build/libarkts-copy/src/generated/peers/ImportSource.ts +0 -40
- package/build/libarkts-copy/src/generated/peers/ImportSpecifier.ts +0 -73
- package/build/libarkts-copy/src/generated/peers/IndexInfo.ts +0 -40
- package/build/libarkts-copy/src/generated/peers/LabelPair.ts +0 -40
- package/build/libarkts-copy/src/generated/peers/LabelledStatement.ts +0 -68
- package/build/libarkts-copy/src/generated/peers/Literal.ts +0 -53
- package/build/libarkts-copy/src/generated/peers/LoopStatement.ts +0 -45
- package/build/libarkts-copy/src/generated/peers/MaybeOptionalExpression.ts +0 -53
- package/build/libarkts-copy/src/generated/peers/MemberExpression.ts +0 -115
- package/build/libarkts-copy/src/generated/peers/MetaProperty.ts +0 -62
- package/build/libarkts-copy/src/generated/peers/MethodDefinition.ts +0 -152
- package/build/libarkts-copy/src/generated/peers/NamedType.ts +0 -84
- package/build/libarkts-copy/src/generated/peers/NewExpression.ts +0 -64
- package/build/libarkts-copy/src/generated/peers/NullLiteral.ts +0 -58
- package/build/libarkts-copy/src/generated/peers/NumberLiteral.ts +0 -78
- package/build/libarkts-copy/src/generated/peers/ObjectDescriptor.ts +0 -40
- package/build/libarkts-copy/src/generated/peers/ObjectExpression.ts +0 -94
- package/build/libarkts-copy/src/generated/peers/OmittedExpression.ts +0 -58
- package/build/libarkts-copy/src/generated/peers/OpaqueTypeNode.ts +0 -58
- package/build/libarkts-copy/src/generated/peers/OverloadDeclaration.ts +0 -101
- package/build/libarkts-copy/src/generated/peers/PrefixAssertionExpression.ts +0 -65
- package/build/libarkts-copy/src/generated/peers/Program.ts +0 -206
- package/build/libarkts-copy/src/generated/peers/Property.ts +0 -92
- package/build/libarkts-copy/src/generated/peers/RegExpLiteral.ts +0 -65
- package/build/libarkts-copy/src/generated/peers/ReturnStatement.ts +0 -75
- package/build/libarkts-copy/src/generated/peers/ScopeFindResult.ts +0 -40
- package/build/libarkts-copy/src/generated/peers/ScriptFunction.ts +0 -310
- package/build/libarkts-copy/src/generated/peers/ScriptFunctionData.ts +0 -40
- package/build/libarkts-copy/src/generated/peers/SequenceExpression.ts +0 -61
- package/build/libarkts-copy/src/generated/peers/SignatureInfo.ts +0 -40
- package/build/libarkts-copy/src/generated/peers/SourcePosition.ts +0 -48
- package/build/libarkts-copy/src/generated/peers/SourceRange.ts +0 -40
- package/build/libarkts-copy/src/generated/peers/SpreadElement.ts +0 -83
- package/build/libarkts-copy/src/generated/peers/SrcDumper.ts +0 -120
- package/build/libarkts-copy/src/generated/peers/Statement.ts +0 -44
- package/build/libarkts-copy/src/generated/peers/StringLiteral.ts +0 -66
- package/build/libarkts-copy/src/generated/peers/SuggestionInfo.ts +0 -40
- package/build/libarkts-copy/src/generated/peers/SuperExpression.ts +0 -58
- package/build/libarkts-copy/src/generated/peers/SwitchCaseStatement.ts +0 -70
- package/build/libarkts-copy/src/generated/peers/SwitchStatement.ts +0 -71
- package/build/libarkts-copy/src/generated/peers/TSAnyKeyword.ts +0 -58
- package/build/libarkts-copy/src/generated/peers/TSArrayType.ts +0 -61
- package/build/libarkts-copy/src/generated/peers/TSAsExpression.ts +0 -84
- package/build/libarkts-copy/src/generated/peers/TSBigintKeyword.ts +0 -58
- package/build/libarkts-copy/src/generated/peers/TSBooleanKeyword.ts +0 -58
- package/build/libarkts-copy/src/generated/peers/TSClassImplements.ts +0 -70
- package/build/libarkts-copy/src/generated/peers/TSConditionalType.ts +0 -71
- package/build/libarkts-copy/src/generated/peers/TSConstructorType.ts +0 -73
- package/build/libarkts-copy/src/generated/peers/TSEnumDeclaration.ts +0 -112
- package/build/libarkts-copy/src/generated/peers/TSEnumMember.ts +0 -76
- package/build/libarkts-copy/src/generated/peers/TSExternalModuleReference.ts +0 -61
- package/build/libarkts-copy/src/generated/peers/TSFunctionType.ts +0 -75
- package/build/libarkts-copy/src/generated/peers/TSImportEqualsDeclaration.ts +0 -69
- package/build/libarkts-copy/src/generated/peers/TSImportType.ts +0 -72
- package/build/libarkts-copy/src/generated/peers/TSIndexSignature.ts +0 -73
- package/build/libarkts-copy/src/generated/peers/TSIndexedAccessType.ts +0 -64
- package/build/libarkts-copy/src/generated/peers/TSInferType.ts +0 -62
- package/build/libarkts-copy/src/generated/peers/TSInterfaceBody.ts +0 -61
- package/build/libarkts-copy/src/generated/peers/TSInterfaceDeclaration.ts +0 -160
- package/build/libarkts-copy/src/generated/peers/TSInterfaceHeritage.ts +0 -62
- package/build/libarkts-copy/src/generated/peers/TSIntersectionType.ts +0 -62
- package/build/libarkts-copy/src/generated/peers/TSLiteralType.ts +0 -62
- package/build/libarkts-copy/src/generated/peers/TSMappedType.ts +0 -72
- package/build/libarkts-copy/src/generated/peers/TSMethodSignature.ts +0 -79
- package/build/libarkts-copy/src/generated/peers/TSModuleBlock.ts +0 -61
- package/build/libarkts-copy/src/generated/peers/TSModuleDeclaration.ts +0 -71
- package/build/libarkts-copy/src/generated/peers/TSNamedTupleMember.ts +0 -68
- package/build/libarkts-copy/src/generated/peers/TSNeverKeyword.ts +0 -58
- package/build/libarkts-copy/src/generated/peers/TSNonNullExpression.ts +0 -66
- package/build/libarkts-copy/src/generated/peers/TSNullKeyword.ts +0 -58
- package/build/libarkts-copy/src/generated/peers/TSNumberKeyword.ts +0 -58
- package/build/libarkts-copy/src/generated/peers/TSObjectKeyword.ts +0 -58
- package/build/libarkts-copy/src/generated/peers/TSParameterProperty.ts +0 -74
- package/build/libarkts-copy/src/generated/peers/TSParenthesizedType.ts +0 -62
- package/build/libarkts-copy/src/generated/peers/TSPropertySignature.ts +0 -80
- package/build/libarkts-copy/src/generated/peers/TSQualifiedName.ts +0 -71
- package/build/libarkts-copy/src/generated/peers/TSSignatureDeclaration.ts +0 -75
- package/build/libarkts-copy/src/generated/peers/TSStringKeyword.ts +0 -58
- package/build/libarkts-copy/src/generated/peers/TSThisType.ts +0 -58
- package/build/libarkts-copy/src/generated/peers/TSTupleType.ts +0 -61
- package/build/libarkts-copy/src/generated/peers/TSTypeAliasDeclaration.ts +0 -151
- package/build/libarkts-copy/src/generated/peers/TSTypeAssertion.ts +0 -71
- package/build/libarkts-copy/src/generated/peers/TSTypeLiteral.ts +0 -61
- package/build/libarkts-copy/src/generated/peers/TSTypeOperator.ts +0 -71
- package/build/libarkts-copy/src/generated/peers/TSTypeParameter.ts +0 -121
- package/build/libarkts-copy/src/generated/peers/TSTypeParameterDeclaration.ts +0 -75
- package/build/libarkts-copy/src/generated/peers/TSTypeParameterInstantiation.ts +0 -62
- package/build/libarkts-copy/src/generated/peers/TSTypePredicate.ts +0 -68
- package/build/libarkts-copy/src/generated/peers/TSTypeQuery.ts +0 -62
- package/build/libarkts-copy/src/generated/peers/TSTypeReference.ts +0 -70
- package/build/libarkts-copy/src/generated/peers/TSUndefinedKeyword.ts +0 -58
- package/build/libarkts-copy/src/generated/peers/TSUnionType.ts +0 -61
- package/build/libarkts-copy/src/generated/peers/TSUnknownKeyword.ts +0 -58
- package/build/libarkts-copy/src/generated/peers/TSVoidKeyword.ts +0 -58
- package/build/libarkts-copy/src/generated/peers/TaggedTemplateExpression.ts +0 -69
- package/build/libarkts-copy/src/generated/peers/TemplateElement.ts +0 -69
- package/build/libarkts-copy/src/generated/peers/TemplateLiteral.ts +0 -68
- package/build/libarkts-copy/src/generated/peers/ThisExpression.ts +0 -58
- package/build/libarkts-copy/src/generated/peers/ThrowStatement.ts +0 -62
- package/build/libarkts-copy/src/generated/peers/TryStatement.ts +0 -89
- package/build/libarkts-copy/src/generated/peers/TypeNode.ts +0 -81
- package/build/libarkts-copy/src/generated/peers/TypedAstNode.ts +0 -44
- package/build/libarkts-copy/src/generated/peers/TypedStatement.ts +0 -45
- package/build/libarkts-copy/src/generated/peers/TypeofExpression.ts +0 -61
- package/build/libarkts-copy/src/generated/peers/UnaryExpression.ts +0 -70
- package/build/libarkts-copy/src/generated/peers/UndefinedLiteral.ts +0 -58
- package/build/libarkts-copy/src/generated/peers/UpdateExpression.ts +0 -68
- package/build/libarkts-copy/src/generated/peers/VReg.ts +0 -40
- package/build/libarkts-copy/src/generated/peers/ValidationInfo.ts +0 -50
- package/build/libarkts-copy/src/generated/peers/VariableDeclaration.ts +0 -113
- package/build/libarkts-copy/src/generated/peers/VariableDeclarator.ts +0 -79
- package/build/libarkts-copy/src/generated/peers/VerificationContext.ts +0 -40
- package/build/libarkts-copy/src/generated/peers/VerifierMessage.ts +0 -40
- package/build/libarkts-copy/src/generated/peers/WhileStatement.ts +0 -71
- package/build/libarkts-copy/src/generated/peers/YieldExpression.ts +0 -64
|
@@ -13,19 +13,19 @@
|
|
|
13
13
|
* limitations under the License.
|
|
14
14
|
*/
|
|
15
15
|
|
|
16
|
-
import * as fs from
|
|
17
|
-
import * as path from
|
|
18
|
-
import { Es2pandaContextState } from
|
|
19
|
-
import { global } from
|
|
16
|
+
import * as fs from 'fs';
|
|
17
|
+
import * as path from 'path';
|
|
18
|
+
import { Es2pandaContextState } from '../../../generated/Es2pandaEnums';
|
|
19
|
+
import { global } from './global';
|
|
20
20
|
|
|
21
|
-
const PERFORMANCE_DATA_DIR =
|
|
21
|
+
const PERFORMANCE_DATA_DIR = './performance-results/';
|
|
22
22
|
|
|
23
23
|
interface PluginData {
|
|
24
|
-
transformTime: number
|
|
25
|
-
transformTimeDeps: number
|
|
26
|
-
visitedNodes: number
|
|
27
|
-
createdNodes: number
|
|
28
|
-
contextState?: Es2pandaContextState
|
|
24
|
+
transformTime: number;
|
|
25
|
+
transformTimeDeps: number;
|
|
26
|
+
visitedNodes: number;
|
|
27
|
+
createdNodes: number;
|
|
28
|
+
contextState?: Es2pandaContextState;
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
function emptyPluginData(contextState?: Es2pandaContextState): PluginData {
|
|
@@ -34,156 +34,172 @@ function emptyPluginData(contextState?: Es2pandaContextState): PluginData {
|
|
|
34
34
|
transformTimeDeps: 0,
|
|
35
35
|
visitedNodes: 0,
|
|
36
36
|
createdNodes: 0,
|
|
37
|
-
contextState: contextState
|
|
38
|
-
}
|
|
37
|
+
contextState: contextState,
|
|
38
|
+
};
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
interface PerformanceData {
|
|
42
|
-
filePath: string
|
|
42
|
+
filePath: string;
|
|
43
43
|
|
|
44
|
-
visitedNodes: number
|
|
45
|
-
createdNodes: number
|
|
46
|
-
proceedTime: number
|
|
47
|
-
totalTime: number
|
|
44
|
+
visitedNodes: number;
|
|
45
|
+
createdNodes: number;
|
|
46
|
+
proceedTime: number;
|
|
47
|
+
totalTime: number;
|
|
48
48
|
|
|
49
|
-
pluginsByName: Record<string, PluginData
|
|
49
|
+
pluginsByName: Record<string, PluginData>;
|
|
50
50
|
}
|
|
51
51
|
|
|
52
52
|
interface PerformanceDataFile {
|
|
53
|
-
data: PerformanceData[]
|
|
54
|
-
summary?: PerformanceData
|
|
53
|
+
data: PerformanceData[];
|
|
54
|
+
summary?: PerformanceData;
|
|
55
55
|
}
|
|
56
56
|
|
|
57
57
|
function parseFile(performanceFile: string): PerformanceDataFile | undefined {
|
|
58
|
-
if (!fs.existsSync(performanceFile)) return undefined
|
|
58
|
+
if (!fs.existsSync(performanceFile)) return undefined;
|
|
59
59
|
|
|
60
|
-
const data = fs.readFileSync(path.resolve(performanceFile)).toString()
|
|
61
|
-
if (!data.length) return undefined
|
|
62
|
-
return JSON.parse(data) as PerformanceDataFile
|
|
60
|
+
const data = fs.readFileSync(path.resolve(performanceFile)).toString();
|
|
61
|
+
if (!data.length) return undefined;
|
|
62
|
+
return JSON.parse(data) as PerformanceDataFile;
|
|
63
63
|
}
|
|
64
64
|
|
|
65
65
|
export class Profiler implements PerformanceData {
|
|
66
|
-
filePath: string =
|
|
67
|
-
visitedNodes: number = 0
|
|
68
|
-
createdNodes: number = 0
|
|
69
|
-
proceedTime: number = 0
|
|
70
|
-
totalTime: number = 0
|
|
71
|
-
pluginsByName: Record<string, PluginData> = {}
|
|
66
|
+
filePath: string = '';
|
|
67
|
+
visitedNodes: number = 0;
|
|
68
|
+
createdNodes: number = 0;
|
|
69
|
+
proceedTime: number = 0;
|
|
70
|
+
totalTime: number = 0;
|
|
71
|
+
pluginsByName: Record<string, PluginData> = {};
|
|
72
72
|
|
|
73
|
-
curPlugin: string =
|
|
74
|
-
curContextState?: Es2pandaContextState
|
|
73
|
+
curPlugin: string = '';
|
|
74
|
+
curContextState?: Es2pandaContextState;
|
|
75
75
|
|
|
76
76
|
private getPluginData(pluginName: string, contextState?: Es2pandaContextState): PluginData {
|
|
77
77
|
if (!(pluginName in this.pluginsByName)) {
|
|
78
|
-
this.pluginsByName[pluginName] = emptyPluginData(contextState)
|
|
78
|
+
this.pluginsByName[pluginName] = emptyPluginData(contextState);
|
|
79
79
|
}
|
|
80
|
-
return this.pluginsByName[pluginName]
|
|
80
|
+
return this.pluginsByName[pluginName];
|
|
81
81
|
}
|
|
82
82
|
|
|
83
|
-
disableReport =
|
|
83
|
+
disableReport = true;
|
|
84
84
|
|
|
85
85
|
nodeCreated() {
|
|
86
|
-
this.createdNodes
|
|
87
|
-
if (this.curPlugin) this.getPluginData(this.curPlugin, this.curContextState).createdNodes
|
|
86
|
+
this.createdNodes++;
|
|
87
|
+
if (this.curPlugin) this.getPluginData(this.curPlugin, this.curContextState).createdNodes++;
|
|
88
88
|
}
|
|
89
89
|
|
|
90
90
|
nodeVisited() {
|
|
91
|
-
this.visitedNodes
|
|
92
|
-
if (this.curPlugin) this.getPluginData(this.curPlugin, this.curContextState).visitedNodes
|
|
91
|
+
this.visitedNodes++;
|
|
92
|
+
if (this.curPlugin) this.getPluginData(this.curPlugin, this.curContextState).visitedNodes++;
|
|
93
93
|
}
|
|
94
94
|
|
|
95
|
-
private transformStartTime = 0
|
|
96
|
-
transformStarted() {
|
|
97
|
-
this.transformStartTime = Date.now()
|
|
95
|
+
private transformStartTime = 0;
|
|
96
|
+
transformStarted(): void {
|
|
97
|
+
this.transformStartTime = Date.now();
|
|
98
98
|
}
|
|
99
|
-
private transformDepStartTime = 0
|
|
100
|
-
transformDepStarted() {
|
|
101
|
-
this.transformDepStartTime = Date.now()
|
|
99
|
+
private transformDepStartTime = 0;
|
|
100
|
+
transformDepStarted(): void {
|
|
101
|
+
this.transformDepStartTime = Date.now();
|
|
102
102
|
}
|
|
103
103
|
|
|
104
|
-
transformEnded(state: Es2pandaContextState, pluginName: string) {
|
|
105
|
-
const transformEndTime = Date.now()
|
|
106
|
-
const consumedTime = transformEndTime - this.transformStartTime
|
|
107
|
-
this.getPluginData(pluginName, state).transformTime += consumedTime
|
|
104
|
+
transformEnded(state: Es2pandaContextState, pluginName: string): void {
|
|
105
|
+
const transformEndTime = Date.now();
|
|
106
|
+
const consumedTime = transformEndTime - this.transformStartTime;
|
|
107
|
+
this.getPluginData(pluginName, state).transformTime += consumedTime;
|
|
108
108
|
}
|
|
109
109
|
|
|
110
|
-
transformDepEnded(state: Es2pandaContextState, pluginName: string) {
|
|
111
|
-
const transformEndTime = Date.now()
|
|
112
|
-
const consumedTime = transformEndTime - this.transformDepStartTime
|
|
113
|
-
this.getPluginData(pluginName, state).transformTimeDeps += consumedTime
|
|
110
|
+
transformDepEnded(state: Es2pandaContextState, pluginName: string): void {
|
|
111
|
+
const transformEndTime = Date.now();
|
|
112
|
+
const consumedTime = transformEndTime - this.transformDepStartTime;
|
|
113
|
+
this.getPluginData(pluginName, state).transformTimeDeps += consumedTime;
|
|
114
114
|
}
|
|
115
115
|
|
|
116
116
|
proceededToState(consumedTime: number) {
|
|
117
|
-
this.proceedTime += consumedTime
|
|
117
|
+
this.proceedTime += consumedTime;
|
|
118
118
|
}
|
|
119
119
|
|
|
120
|
-
private compilationStartTime = 0
|
|
120
|
+
private compilationStartTime = 0;
|
|
121
121
|
compilationStarted(filePath: string) {
|
|
122
|
-
this.filePath = filePath
|
|
122
|
+
this.filePath = filePath;
|
|
123
123
|
|
|
124
|
-
this.visitedNodes = 0
|
|
125
|
-
this.createdNodes = 0
|
|
126
|
-
this.proceedTime = 0
|
|
127
|
-
this.totalTime = 0
|
|
128
|
-
this.pluginsByName = {}
|
|
124
|
+
this.visitedNodes = 0;
|
|
125
|
+
this.createdNodes = 0;
|
|
126
|
+
this.proceedTime = 0;
|
|
127
|
+
this.totalTime = 0;
|
|
128
|
+
this.pluginsByName = {};
|
|
129
129
|
|
|
130
|
-
this.curPlugin =
|
|
131
|
-
this.compilationStartTime = Date.now()
|
|
130
|
+
this.curPlugin = '';
|
|
131
|
+
this.compilationStartTime = Date.now();
|
|
132
132
|
}
|
|
133
133
|
|
|
134
134
|
compilationEnded() {
|
|
135
|
-
const consumedTime: number = Date.now() - this.compilationStartTime
|
|
136
|
-
this.totalTime = consumedTime
|
|
135
|
+
const consumedTime: number = Date.now() - this.compilationStartTime;
|
|
136
|
+
this.totalTime = consumedTime;
|
|
137
137
|
}
|
|
138
138
|
|
|
139
139
|
report() {
|
|
140
140
|
Object.entries(this.pluginsByName).forEach((data, key) => {
|
|
141
|
-
console.log(data[0],
|
|
142
|
-
console.log(data[0],
|
|
143
|
-
})
|
|
141
|
+
console.log(data[0], 'totalTransformTime =', data[1].transformTime, 'ms');
|
|
142
|
+
console.log(data[0], 'totalDepsTransformTime =', data[1].transformTimeDeps, 'ms');
|
|
143
|
+
});
|
|
144
144
|
}
|
|
145
145
|
|
|
146
146
|
reportToFile(withSummary: boolean = false) {
|
|
147
|
-
if (this.disableReport) return
|
|
148
|
-
const outDir = path.resolve(global.arktsconfig!.outDir, PERFORMANCE_DATA_DIR)
|
|
149
|
-
fs.mkdirSync(outDir, { recursive: true })
|
|
150
|
-
const outFilePath = path.resolve(outDir, path.basename(this.filePath)) +
|
|
151
|
-
|
|
152
|
-
const data: PerformanceDataFile = { data: [this as PerformanceData] }
|
|
147
|
+
if (this.disableReport) return;
|
|
148
|
+
const outDir = path.resolve(global.arktsconfig!.outDir, PERFORMANCE_DATA_DIR);
|
|
149
|
+
fs.mkdirSync(outDir, { recursive: true });
|
|
150
|
+
const outFilePath = path.resolve(outDir, path.basename(this.filePath)) + '.json';
|
|
151
|
+
|
|
152
|
+
const data: PerformanceDataFile = { data: [this as PerformanceData] };
|
|
153
153
|
if (!fs.existsSync(outFilePath)) {
|
|
154
|
-
fs.writeFileSync(outFilePath, JSON.stringify(data))
|
|
154
|
+
fs.writeFileSync(outFilePath, JSON.stringify(data));
|
|
155
155
|
} else {
|
|
156
|
-
const savedData: PerformanceDataFile | undefined = parseFile(outFilePath) ?? data
|
|
157
|
-
savedData.data.push(this as PerformanceData)
|
|
156
|
+
const savedData: PerformanceDataFile | undefined = parseFile(outFilePath) ?? data;
|
|
157
|
+
savedData.data.push(this as PerformanceData);
|
|
158
158
|
|
|
159
159
|
if (withSummary) {
|
|
160
160
|
const summary: PerformanceData = {
|
|
161
161
|
filePath: this.filePath,
|
|
162
|
-
visitedNodes: savedData.data.map(it => it.visitedNodes).reduce((sum, it) => sum + it),
|
|
163
|
-
createdNodes: savedData.data.map(it => it.createdNodes).reduce((sum, it) => sum + it),
|
|
164
|
-
proceedTime: savedData.data.map(it => it.proceedTime).reduce((sum, it) => sum + it),
|
|
165
|
-
totalTime: savedData.data.map(it => it.totalTime).reduce((sum, it) => sum + it),
|
|
166
|
-
pluginsByName: {}
|
|
167
|
-
}
|
|
168
|
-
const pluginNames = new Set(savedData.data.flatMap(it => Object.keys(it.pluginsByName)))
|
|
162
|
+
visitedNodes: savedData.data.map((it) => it.visitedNodes).reduce((sum, it) => sum + it),
|
|
163
|
+
createdNodes: savedData.data.map((it) => it.createdNodes).reduce((sum, it) => sum + it),
|
|
164
|
+
proceedTime: savedData.data.map((it) => it.proceedTime).reduce((sum, it) => sum + it),
|
|
165
|
+
totalTime: savedData.data.map((it) => it.totalTime).reduce((sum, it) => sum + it),
|
|
166
|
+
pluginsByName: {},
|
|
167
|
+
};
|
|
168
|
+
const pluginNames = new Set(savedData.data.flatMap((it) => Object.keys(it.pluginsByName)));
|
|
169
169
|
for (const pluginName of pluginNames) {
|
|
170
|
-
const sumTransformTime = savedData.data
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
170
|
+
const sumTransformTime = savedData.data
|
|
171
|
+
.map((it) => it.pluginsByName)
|
|
172
|
+
.filter((it) => !!it[pluginName])
|
|
173
|
+
.map((it) => it[pluginName].transformTime)
|
|
174
|
+
.reduce((sum, it) => sum + it);
|
|
175
|
+
const sumTransformTimeDeps = savedData.data
|
|
176
|
+
.map((it) => it.pluginsByName)
|
|
177
|
+
.filter((it) => !!it[pluginName])
|
|
178
|
+
.map((it) => it[pluginName].transformTimeDeps)
|
|
179
|
+
.reduce((sum, it) => sum + it);
|
|
180
|
+
const sumCreatedNodes = savedData.data
|
|
181
|
+
.map((it) => it.pluginsByName)
|
|
182
|
+
.filter((it) => !!it[pluginName])
|
|
183
|
+
.map((it) => it[pluginName].createdNodes)
|
|
184
|
+
.reduce((sum, it) => sum + it);
|
|
185
|
+
const sumVisitedNodes = savedData.data
|
|
186
|
+
.map((it) => it.pluginsByName)
|
|
187
|
+
.filter((it) => !!it[pluginName])
|
|
188
|
+
.map((it) => it[pluginName].visitedNodes)
|
|
189
|
+
.reduce((sum, it) => sum + it);
|
|
174
190
|
|
|
175
191
|
summary.pluginsByName[pluginName] = {
|
|
176
192
|
transformTime: sumTransformTime,
|
|
177
193
|
transformTimeDeps: sumTransformTimeDeps,
|
|
178
194
|
createdNodes: sumCreatedNodes,
|
|
179
195
|
visitedNodes: sumVisitedNodes,
|
|
180
|
-
}
|
|
196
|
+
};
|
|
181
197
|
}
|
|
182
198
|
|
|
183
|
-
savedData.summary = summary
|
|
199
|
+
savedData.summary = summary;
|
|
184
200
|
}
|
|
185
201
|
|
|
186
|
-
fs.writeFileSync(outFilePath, JSON.stringify(savedData))
|
|
202
|
+
fs.writeFileSync(outFilePath, JSON.stringify(savedData));
|
|
187
203
|
}
|
|
188
204
|
}
|
|
189
205
|
}
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* limitations under the License.
|
|
14
14
|
*/
|
|
15
15
|
|
|
16
|
-
import {
|
|
16
|
+
import { KNativePointer, KUInt } from '@koalaui/interop';
|
|
17
17
|
import type {
|
|
18
18
|
ClassDefinition,
|
|
19
19
|
ETSFunctionType,
|
|
@@ -25,113 +25,130 @@ import type {
|
|
|
25
25
|
Program,
|
|
26
26
|
ScriptFunction,
|
|
27
27
|
SourcePosition,
|
|
28
|
-
} from
|
|
29
|
-
import { ExternalSource } from
|
|
30
|
-
import { Es2pandaAstNodeType, Es2pandaModuleFlag } from
|
|
31
|
-
import { global } from
|
|
32
|
-
import { acceptNativeObjectArrayResult, passNodeArray, unpackNodeArray, unpackNonNullableNode } from
|
|
33
|
-
import type { AstNode } from
|
|
28
|
+
} from '../../../generated';
|
|
29
|
+
import { ExternalSource } from '../peers/ExternalSource';
|
|
30
|
+
import { Es2pandaAstNodeType, Es2pandaModuleFlag } from '../../../generated/Es2pandaEnums';
|
|
31
|
+
import { global } from '../static/global';
|
|
32
|
+
import { acceptNativeObjectArrayResult, passNodeArray, unpackNodeArray, unpackNonNullableNode } from './private';
|
|
33
|
+
import type { AstNode } from '../peers/AstNode';
|
|
34
34
|
|
|
35
35
|
export function extension_ETSModuleGetNamespaceFlag(this: ETSModule): Es2pandaModuleFlag {
|
|
36
|
-
return (
|
|
37
|
-
|
|
38
|
-
|
|
36
|
+
return (
|
|
37
|
+
(this.isETSScript ? Es2pandaModuleFlag.MODULE_FLAG_ETSSCRIPT : 0) +
|
|
38
|
+
(this.isNamespace ? Es2pandaModuleFlag.MODULE_FLAG_NAMESPACE : 0) +
|
|
39
|
+
(this.isNamespaceChainLastNode ? Es2pandaModuleFlag.MODULE_FLAG_NAMESPACE_CHAIN_LAST_NODE : 0)
|
|
40
|
+
);
|
|
39
41
|
}
|
|
40
42
|
|
|
41
43
|
// this is a workaround for overloads not included in children list
|
|
42
44
|
export function extension_MethodDefinitionSetChildrenParentPtr(this: MethodDefinition) {
|
|
43
|
-
global.es2panda._AstNodeSetChildrenParentPtr(global.context, this.peer)
|
|
44
|
-
const overloads = this.overloads
|
|
45
|
+
global.es2panda._AstNodeSetChildrenParentPtr(global.context, this.peer);
|
|
46
|
+
const overloads = this.overloads;
|
|
45
47
|
for (const overload of overloads) {
|
|
46
|
-
overload.setBaseOverloadMethod(this)
|
|
47
|
-
overload.parent = this // overloads are not listed as children in native
|
|
48
|
+
overload.setBaseOverloadMethod(this);
|
|
49
|
+
overload.parent = this; // overloads are not listed as children in native
|
|
48
50
|
}
|
|
49
51
|
}
|
|
50
52
|
|
|
51
53
|
export function extension_MethodDefinitionOnUpdate(this: MethodDefinition, original: MethodDefinition): void {
|
|
52
|
-
this.setChildrenParentPtr()
|
|
53
|
-
global.es2panda._AstNodeOnUpdate(global.context, this.peer, original.peer)
|
|
54
|
-
const originalBase = original.baseOverloadMethod
|
|
54
|
+
this.setChildrenParentPtr();
|
|
55
|
+
global.es2panda._AstNodeOnUpdate(global.context, this.peer, original.peer);
|
|
56
|
+
const originalBase = original.baseOverloadMethod;
|
|
55
57
|
if (originalBase) {
|
|
56
|
-
this.setBaseOverloadMethod(originalBase)
|
|
58
|
+
this.setBaseOverloadMethod(originalBase);
|
|
57
59
|
}
|
|
58
60
|
}
|
|
59
61
|
|
|
60
62
|
// Improve: generate checker related stuff
|
|
61
63
|
export function extension_ScriptFunctionGetSignaturePointer(this: ScriptFunction): KNativePointer {
|
|
62
|
-
return global.es2panda._Checker_ScriptFunctionSignature(global.context, this.peer)
|
|
64
|
+
return global.es2panda._Checker_ScriptFunctionSignature(global.context, this.peer);
|
|
63
65
|
}
|
|
64
66
|
|
|
65
|
-
export function extension_ScriptFunctionSetSignaturePointer(
|
|
66
|
-
|
|
67
|
+
export function extension_ScriptFunctionSetSignaturePointer(
|
|
68
|
+
this: ScriptFunction,
|
|
69
|
+
signaturePointer: KNativePointer
|
|
70
|
+
): void {
|
|
71
|
+
global.es2panda._Checker_ScriptFunctionSetSignature(global.context, this.peer, signaturePointer);
|
|
67
72
|
}
|
|
68
73
|
|
|
69
74
|
// Improve: weird API
|
|
70
75
|
export function extension_ScriptFunctionGetParamsCasted(this: ScriptFunction): readonly ETSParameterExpression[] {
|
|
71
|
-
return unpackNodeArray<ETSParameterExpression>(
|
|
76
|
+
return unpackNodeArray<ETSParameterExpression>(
|
|
77
|
+
global.generatedEs2panda._ScriptFunctionParams(global.context, this.peer),
|
|
78
|
+
Es2pandaAstNodeType.AST_NODE_TYPE_ETS_PARAMETER_EXPRESSION
|
|
79
|
+
);
|
|
72
80
|
}
|
|
73
81
|
|
|
74
82
|
// Improve: perhaps "preferredReturnType" stuff can be removed later if "signature" is always enough
|
|
75
83
|
export function extension_ScriptFunctionGetPreferredReturnTypePointer(this: ScriptFunction): KNativePointer {
|
|
76
|
-
return global.es2panda._Checker_ScriptFunctionGetPreferredReturnType(global.context, this.peer)
|
|
84
|
+
return global.es2panda._Checker_ScriptFunctionGetPreferredReturnType(global.context, this.peer);
|
|
77
85
|
}
|
|
78
86
|
|
|
79
|
-
export function extension_ScriptFunctionSetPreferredReturnTypePointer(
|
|
80
|
-
|
|
87
|
+
export function extension_ScriptFunctionSetPreferredReturnTypePointer(
|
|
88
|
+
this: ScriptFunction,
|
|
89
|
+
typePointer: KNativePointer
|
|
90
|
+
): void {
|
|
91
|
+
global.es2panda._Checker_ScriptFunctionSetPreferredReturnType(global.context, this.peer, typePointer);
|
|
81
92
|
}
|
|
82
93
|
|
|
83
94
|
// Improve: generate checker related stuff
|
|
84
95
|
export function extension_ExpressionGetPreferredTypePointer(this: Expression): KNativePointer {
|
|
85
|
-
return global.es2panda._Checker_ExpressionGetPreferredType(global.context, this.peer)
|
|
96
|
+
return global.es2panda._Checker_ExpressionGetPreferredType(global.context, this.peer);
|
|
86
97
|
}
|
|
87
98
|
|
|
88
99
|
export function extension_ExpressionSetPreferredTypePointer(this: Expression, typePointer: KNativePointer): void {
|
|
89
|
-
global.es2panda._Checker_ExpressionSetPreferredType(global.context, this.peer, typePointer)
|
|
100
|
+
global.es2panda._Checker_ExpressionSetPreferredType(global.context, this.peer, typePointer);
|
|
90
101
|
}
|
|
91
102
|
|
|
92
103
|
// Improve: weird API
|
|
93
104
|
export function extension_ProgramGetAstCasted(this: Program): ETSModule {
|
|
94
|
-
return unpackNonNullableNode<ETSModule>(
|
|
105
|
+
return unpackNonNullableNode<ETSModule>(
|
|
106
|
+
global.generatedEs2panda._ProgramAst(global.context, this.peer),
|
|
107
|
+
Es2pandaAstNodeType.AST_NODE_TYPE_ETS_MODULE
|
|
108
|
+
);
|
|
95
109
|
}
|
|
96
110
|
|
|
97
111
|
// Improve: generate methods with string[] args or return type
|
|
98
112
|
export function extension_ProgramGetExternalSources(this: Program): ExternalSource[] {
|
|
99
113
|
return acceptNativeObjectArrayResult<ExternalSource>(
|
|
100
114
|
global.es2panda._ProgramExternalSources(global.context, this.peer),
|
|
101
|
-
ExternalSource.instantiate
|
|
102
|
-
)
|
|
115
|
+
ExternalSource.instantiate
|
|
116
|
+
);
|
|
103
117
|
}
|
|
104
118
|
|
|
105
119
|
// Improve: SourcePositionLine is global in idl
|
|
106
120
|
export function extension_SourcePositionGetLine(this: SourcePosition): KUInt {
|
|
107
|
-
return global.generatedEs2panda._SourcePositionLine(global.context, this.peer)
|
|
121
|
+
return global.generatedEs2panda._SourcePositionLine(global.context, this.peer);
|
|
108
122
|
}
|
|
109
123
|
|
|
110
124
|
// Improve: SourcePositionCol is not described in idl
|
|
111
125
|
export function extension_SourcePositionGetCol(this: SourcePosition): KUInt {
|
|
112
|
-
return global.es2panda._SourcePositionCol(global.context, this.peer)
|
|
126
|
+
return global.es2panda._SourcePositionCol(global.context, this.peer);
|
|
113
127
|
}
|
|
114
128
|
|
|
115
129
|
// Improve: SourcePositionIndex is global in idl
|
|
116
130
|
export function extension_SourcePositionGetIndex(this: SourcePosition): KUInt {
|
|
117
|
-
return global.generatedEs2panda._SourcePositionIndex(global.context, this.peer)
|
|
131
|
+
return global.generatedEs2panda._SourcePositionIndex(global.context, this.peer);
|
|
118
132
|
}
|
|
119
133
|
|
|
120
134
|
export function extension_SourcePositionToString(this: SourcePosition): string {
|
|
121
|
-
return `:${this.getLine() + 1}:${this.getCol()}
|
|
135
|
+
return `:${this.getLine() + 1}:${this.getCol()}`;
|
|
122
136
|
}
|
|
123
137
|
|
|
124
138
|
// Improve: weird API
|
|
125
139
|
export function extension_NumberLiteralValue(this: NumberLiteral): number {
|
|
126
|
-
return +this.dumpSrc()
|
|
140
|
+
return +this.dumpSrc();
|
|
127
141
|
}
|
|
128
142
|
|
|
129
143
|
// Improve: weird API
|
|
130
144
|
export function extension_ClassDefinitionSetBody(this: ClassDefinition, body: readonly AstNode[]): void {
|
|
131
|
-
global.es2panda._ClassDefinitionSetBody(global.context, this.peer, passNodeArray(body), body.length)
|
|
145
|
+
global.es2panda._ClassDefinitionSetBody(global.context, this.peer, passNodeArray(body), body.length);
|
|
132
146
|
}
|
|
133
147
|
|
|
134
148
|
// Improve: weird API
|
|
135
149
|
export function extension_ETSFunctionTypeGetParamsCasted(this: ETSFunctionType): readonly ETSParameterExpression[] {
|
|
136
|
-
return unpackNodeArray<ETSParameterExpression>(
|
|
150
|
+
return unpackNodeArray<ETSParameterExpression>(
|
|
151
|
+
global.generatedEs2panda._ETSFunctionTypeParamsConst(global.context, this.peer),
|
|
152
|
+
Es2pandaAstNodeType.AST_NODE_TYPE_ETS_PARAMETER_EXPRESSION
|
|
153
|
+
);
|
|
137
154
|
}
|
|
@@ -1,69 +1,86 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2022-2023 Huawei Device Co., Ltd.
|
|
3
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
* you may not use this file except in compliance with the License.
|
|
5
|
-
* You may obtain a copy of the License at
|
|
6
|
-
*
|
|
7
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
*
|
|
9
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
* See the License for the specific language governing permissions and
|
|
13
|
-
* limitations under the License.
|
|
14
|
-
*/
|
|
15
|
-
|
|
16
|
-
import { int32 } from
|
|
17
|
-
import {
|
|
18
|
-
Access,
|
|
19
|
-
ArrayDecoder,
|
|
20
|
-
CallbackRegistry,
|
|
21
|
-
NativeStringBase,
|
|
22
|
-
nullptr,
|
|
23
|
-
pointer,
|
|
24
|
-
providePlatformDefinedData,
|
|
25
|
-
withByteArray
|
|
26
|
-
} from
|
|
27
|
-
import { global } from
|
|
28
|
-
|
|
29
|
-
class NativeString extends NativeStringBase {
|
|
30
|
-
constructor(ptr: pointer) {
|
|
31
|
-
super(ptr)
|
|
32
|
-
}
|
|
33
|
-
protected bytesLength(): int32 {
|
|
34
|
-
return global.interop._StringLength(this.ptr)
|
|
35
|
-
}
|
|
36
|
-
protected getData(data: Uint8Array): void {
|
|
37
|
-
withByteArray(data, Access.WRITE, (dataPtr: pointer) => {
|
|
38
|
-
global.interop._StringData(this.ptr, dataPtr, data.length)
|
|
39
|
-
})
|
|
40
|
-
}
|
|
41
|
-
close(): void {
|
|
42
|
-
global.interop._InvokeFinalizer(this.ptr, global.interop._GetStringFinalizer())
|
|
43
|
-
this.ptr = nullptr
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
providePlatformDefinedData({
|
|
48
|
-
nativeString(ptr: pointer): NativeStringBase {
|
|
49
|
-
return new NativeString(ptr)
|
|
50
|
-
},
|
|
51
|
-
nativeStringArrayDecoder(): ArrayDecoder<NativeStringBase> {
|
|
52
|
-
throw new Error(
|
|
53
|
-
},
|
|
54
|
-
callbackRegistry(): CallbackRegistry | undefined {
|
|
55
|
-
return undefined
|
|
56
|
-
}
|
|
57
|
-
})
|
|
58
|
-
|
|
59
|
-
export class NativePtrDecoder extends ArrayDecoder<pointer> {
|
|
60
|
-
getArraySize(blob: pointer) {
|
|
61
|
-
return global.interop._GetPtrVectorSize(blob)
|
|
62
|
-
}
|
|
63
|
-
disposeArray(blob: pointer): void {
|
|
64
|
-
// Improve:
|
|
65
|
-
}
|
|
66
|
-
getArrayElement(blob: pointer, index: int32): pointer {
|
|
67
|
-
return global.interop._GetPtrVectorElement(blob, index)
|
|
68
|
-
}
|
|
69
|
-
}
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2022-2023 Huawei Device Co., Ltd.
|
|
3
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
* you may not use this file except in compliance with the License.
|
|
5
|
+
* You may obtain a copy of the License at
|
|
6
|
+
*
|
|
7
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
*
|
|
9
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
* See the License for the specific language governing permissions and
|
|
13
|
+
* limitations under the License.
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
import { int32 } from '@koalaui/common';
|
|
17
|
+
import {
|
|
18
|
+
Access,
|
|
19
|
+
ArrayDecoder,
|
|
20
|
+
CallbackRegistry,
|
|
21
|
+
NativeStringBase,
|
|
22
|
+
nullptr,
|
|
23
|
+
pointer,
|
|
24
|
+
providePlatformDefinedData,
|
|
25
|
+
withByteArray,
|
|
26
|
+
} from '@koalaui/interop';
|
|
27
|
+
import { global } from '../static/global';
|
|
28
|
+
|
|
29
|
+
class NativeString extends NativeStringBase {
|
|
30
|
+
constructor(ptr: pointer) {
|
|
31
|
+
super(ptr);
|
|
32
|
+
}
|
|
33
|
+
protected bytesLength(): int32 {
|
|
34
|
+
return global.interop._StringLength(this.ptr);
|
|
35
|
+
}
|
|
36
|
+
protected getData(data: Uint8Array): void {
|
|
37
|
+
withByteArray(data, Access.WRITE, (dataPtr: pointer) => {
|
|
38
|
+
global.interop._StringData(this.ptr, dataPtr, data.length);
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
close(): void {
|
|
42
|
+
global.interop._InvokeFinalizer(this.ptr, global.interop._GetStringFinalizer());
|
|
43
|
+
this.ptr = nullptr;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
providePlatformDefinedData({
|
|
48
|
+
nativeString(ptr: pointer): NativeStringBase {
|
|
49
|
+
return new NativeString(ptr);
|
|
50
|
+
},
|
|
51
|
+
nativeStringArrayDecoder(): ArrayDecoder<NativeStringBase> {
|
|
52
|
+
throw new Error('Not yet implemented');
|
|
53
|
+
},
|
|
54
|
+
callbackRegistry(): CallbackRegistry | undefined {
|
|
55
|
+
return undefined;
|
|
56
|
+
},
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
export class NativePtrDecoder extends ArrayDecoder<pointer> {
|
|
60
|
+
getArraySize(blob: pointer) {
|
|
61
|
+
return global.interop._GetPtrVectorSize(blob);
|
|
62
|
+
}
|
|
63
|
+
disposeArray(blob: pointer): void {
|
|
64
|
+
// Improve:
|
|
65
|
+
}
|
|
66
|
+
getArrayElement(blob: pointer, index: int32): pointer {
|
|
67
|
+
return global.interop._GetPtrVectorElement(blob, index);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
// This decoder uses a napi's external buffer and
|
|
72
|
+
// it is not efficient for small arraya(guessing, less than 10)
|
|
73
|
+
export class OptimizedNativePtrDecoder {
|
|
74
|
+
disposeArray(blob: pointer): void {
|
|
75
|
+
// Improve:
|
|
76
|
+
}
|
|
77
|
+
decode(blob: pointer): BigUint64Array {
|
|
78
|
+
return global.interop._GetPtrVector(blob);
|
|
79
|
+
}
|
|
80
|
+
decodeAndCopy(blob: pointer): Array<pointer> {
|
|
81
|
+
const data = global.interop._GetPtrVector(blob);
|
|
82
|
+
const result = Array.from(data);
|
|
83
|
+
this.disposeArray(blob);
|
|
84
|
+
return result;
|
|
85
|
+
}
|
|
86
|
+
}
|