@idlizer/arktscgen 2.1.7 → 2.1.9-arktscgen-5
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 +34 -0
- package/build/libarkts-copy/native/meson.build +128 -75
- package/build/libarkts-copy/native/meson_options.txt +6 -0
- package/build/libarkts-copy/native/src/bridges.cc +271 -8
- package/build/libarkts-copy/native/src/common.cc +168 -47
- package/build/libarkts-copy/native/src/common.h +53 -8
- package/build/libarkts-copy/native/src/generated/bridges.cc +2625 -319
- package/build/libarkts-copy/package.json +31 -17
- package/build/libarkts-copy/src/Es2pandaNativeModule.ts +98 -4
- package/build/libarkts-copy/src/arkts-api/AbstractVisitor.ts +1 -1
- package/build/libarkts-copy/src/arkts-api/ChainExpressionFilter.ts +78 -0
- package/build/libarkts-copy/src/arkts-api/CheckedBackFilter.ts +86 -8
- package/build/libarkts-copy/src/arkts-api/CompileWithCache.ts +193 -0
- package/build/libarkts-copy/src/arkts-api/ImportStorage.ts +78 -0
- package/build/libarkts-copy/src/arkts-api/InferVoidReturnType.ts +89 -0
- package/build/libarkts-copy/src/arkts-api/ProgramProvider.ts +50 -0
- package/build/libarkts-copy/src/arkts-api/SetBaseOverloads.ts +10 -17
- package/build/libarkts-copy/src/arkts-api/class-by-peer.ts +2 -3
- package/build/libarkts-copy/src/arkts-api/factory/nodeFactory.ts +18 -6
- package/build/libarkts-copy/src/arkts-api/index.ts +10 -1
- package/build/libarkts-copy/src/arkts-api/node-cache.ts +8 -4
- package/build/libarkts-copy/src/arkts-api/node-utilities/AnnotationUsage.ts +29 -0
- package/build/libarkts-copy/src/arkts-api/node-utilities/ArkTsConfig.ts +25 -0
- package/build/libarkts-copy/src/arkts-api/node-utilities/ArrayExpression.ts +1 -1
- package/build/libarkts-copy/src/arkts-api/node-utilities/BlockStatement.ts +29 -0
- package/build/libarkts-copy/src/arkts-api/node-utilities/CallExpression.ts +2 -2
- package/build/libarkts-copy/src/arkts-api/node-utilities/ClassDeclaration.ts +54 -0
- package/build/libarkts-copy/src/arkts-api/node-utilities/ClassDefinition.ts +1 -1
- package/build/libarkts-copy/src/arkts-api/node-utilities/ClassProperty.ts +3 -3
- package/build/libarkts-copy/src/arkts-api/node-utilities/ETSFunctionType.ts +2 -2
- package/build/libarkts-copy/src/arkts-api/node-utilities/ETSImportDeclaration.ts +3 -33
- package/build/libarkts-copy/src/arkts-api/node-utilities/ETSParameterExpression.ts +3 -9
- package/build/libarkts-copy/src/arkts-api/node-utilities/ETSStructDeclaration.ts +1 -1
- package/build/libarkts-copy/src/arkts-api/node-utilities/ETSTuple.ts +1 -1
- package/build/libarkts-copy/src/arkts-api/node-utilities/MemberExpression.ts +1 -1
- package/build/libarkts-copy/src/arkts-api/node-utilities/MethodDefinition.ts +2 -2
- package/build/libarkts-copy/src/arkts-api/node-utilities/NumberLiteral.ts +2 -2
- package/build/libarkts-copy/src/arkts-api/node-utilities/ObjectExpression.ts +1 -1
- package/build/libarkts-copy/src/arkts-api/node-utilities/Program.ts +40 -0
- package/build/libarkts-copy/src/arkts-api/node-utilities/TSInterfaceDeclaration.ts +2 -2
- package/build/libarkts-copy/src/arkts-api/node-utilities/TSTypeParameter.ts +1 -1
- package/build/libarkts-copy/src/arkts-api/node-utilities/TSTypeReferencePart.ts +1 -1
- package/build/libarkts-copy/src/arkts-api/node-utilities/VariableDeclaration.ts +1 -1
- package/build/libarkts-copy/src/arkts-api/node-utilities/VariableDeclarator.ts +1 -1
- package/build/libarkts-copy/src/arkts-api/peers/ArktsObject.ts +3 -1
- package/build/libarkts-copy/src/arkts-api/peers/AstNode.ts +80 -15
- package/build/libarkts-copy/src/arkts-api/peers/Config.ts +8 -1
- package/build/libarkts-copy/src/arkts-api/peers/Context.ts +71 -4
- package/build/libarkts-copy/src/arkts-api/peers/{Program.ts → ExternalSource.ts} +2 -22
- package/build/libarkts-copy/src/arkts-api/peers/Options.ts +34 -0
- package/build/libarkts-copy/src/arkts-api/plugins.ts +26 -12
- package/build/libarkts-copy/src/arkts-api/static/global.ts +10 -4
- package/build/libarkts-copy/src/arkts-api/static/profiler.ts +180 -23
- package/build/libarkts-copy/src/arkts-api/utilities/private.ts +22 -24
- package/build/libarkts-copy/src/arkts-api/utilities/public.ts +54 -12
- package/build/libarkts-copy/src/arkts-api/visitor.ts +32 -37
- package/build/libarkts-copy/src/arkts-api/wrapper-compat.ts +32 -0
- package/build/libarkts-copy/src/checkSdk.ts +25 -0
- package/build/libarkts-copy/src/generated/Es2pandaEnums.ts +450 -442
- package/build/libarkts-copy/src/generated/Es2pandaNativeModule.ts +769 -63
- package/build/libarkts-copy/src/generated/factory.ts +12 -15
- package/build/libarkts-copy/src/generated/index.ts +10 -3
- package/build/libarkts-copy/src/generated/peers/AnnotatedAstNode.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/AnnotatedExpression.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/AnnotatedStatement.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/AnnotationDeclaration.ts +64 -6
- package/build/libarkts-copy/src/generated/peers/AnnotationUsage.ts +16 -4
- package/build/libarkts-copy/src/generated/peers/ArkTsConfig.ts +67 -0
- package/build/libarkts-copy/src/generated/peers/ArrayExpression.ts +17 -5
- package/build/libarkts-copy/src/generated/peers/ArrowFunctionExpression.ts +46 -6
- package/build/libarkts-copy/src/generated/peers/AssertStatement.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/AssignmentExpression.ts +17 -5
- package/build/libarkts-copy/src/generated/peers/AstDumper.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/AstVerifier.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/AstVisitor.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/AwaitExpression.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/BigIntLiteral.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/BinaryExpression.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/BindingProps.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/BlockExpression.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/BlockStatement.ts +30 -7
- package/build/libarkts-copy/src/generated/peers/BooleanLiteral.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/BreakStatement.ts +16 -4
- package/build/libarkts-copy/src/generated/peers/CallExpression.ts +24 -3
- package/build/libarkts-copy/src/generated/peers/CatchClause.ts +16 -4
- package/build/libarkts-copy/src/generated/peers/ChainExpression.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/CharLiteral.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/ClassDeclaration.ts +37 -4
- package/build/libarkts-copy/src/generated/peers/ClassDefinition.ts +136 -42
- package/build/libarkts-copy/src/generated/peers/ClassElement.ts +28 -4
- package/build/libarkts-copy/src/generated/peers/ClassExpression.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/ClassProperty.ts +43 -5
- package/build/libarkts-copy/src/generated/peers/ClassStaticBlock.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/CodeGen.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/ConditionalExpression.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/ContinueStatement.ts +16 -4
- package/build/libarkts-copy/src/generated/peers/DebuggerStatement.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/Declaration.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/Decorator.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/{OverloadInfo.ts → DiagnosticInfo.ts} +8 -2
- package/build/libarkts-copy/src/generated/peers/DirectEvalExpression.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/DoWhileStatement.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/DynamicImportData.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/ETSClassLiteral.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/ETSFunctionType.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/ETSImportDeclaration.ts +20 -5
- package/build/libarkts-copy/src/generated/peers/ETSKeyofType.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/ETSModule.ts +63 -4
- package/build/libarkts-copy/src/generated/peers/ETSNewArrayInstanceExpression.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/ETSNewClassInstanceExpression.ts +17 -5
- package/build/libarkts-copy/src/generated/peers/ETSNewMultiDimArrayInstanceExpression.ts +17 -5
- package/build/libarkts-copy/src/generated/peers/ETSNullType.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/ETSPackageDeclaration.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/ETSParameterExpression.ts +54 -12
- package/build/libarkts-copy/src/generated/peers/ETSPrimitiveType.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/ETSReExportDeclaration.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/ETSStringLiteralType.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/ETSStructDeclaration.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/ETSTuple.ts +26 -8
- package/build/libarkts-copy/src/generated/peers/ETSTypeReference.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/ETSTypeReferencePart.ts +17 -5
- package/build/libarkts-copy/src/generated/peers/ETSUndefinedType.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/ETSUnionType.ts +19 -4
- package/build/libarkts-copy/src/generated/peers/ETSWildcardType.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/EmptyStatement.ts +22 -4
- package/build/libarkts-copy/src/generated/peers/ErrorLogger.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/ExportAllDeclaration.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/ExportDefaultDeclaration.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/ExportNamedDeclaration.ts +30 -7
- package/build/libarkts-copy/src/generated/peers/ExportSpecifier.ts +30 -3
- package/build/libarkts-copy/src/generated/peers/Expression.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/ExpressionStatement.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/ForInStatement.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/ForOfStatement.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/ForUpdateStatement.ts +10 -2
- package/build/libarkts-copy/src/generated/peers/FunctionDecl.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/FunctionDeclaration.ts +50 -6
- package/build/libarkts-copy/src/generated/peers/FunctionExpression.ts +16 -4
- package/build/libarkts-copy/src/generated/peers/FunctionSignature.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/IRNode.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/Identifier.ts +24 -5
- package/build/libarkts-copy/src/generated/peers/IfStatement.ts +18 -3
- package/build/libarkts-copy/src/generated/peers/ImportDeclaration.ts +32 -4
- package/build/libarkts-copy/src/generated/peers/ImportDefaultSpecifier.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/ImportExpression.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/ImportNamespaceSpecifier.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/ImportSource.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/ImportSpecifier.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/IndexInfo.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/InterfaceDecl.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/LabelPair.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/LabelledStatement.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/Literal.ts +15 -1
- package/build/libarkts-copy/src/generated/peers/LoopStatement.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/MaybeOptionalExpression.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/MemberExpression.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/MetaProperty.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/MethodDefinition.ts +30 -10
- package/build/libarkts-copy/src/generated/peers/NamedType.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/NewExpression.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/NullLiteral.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/NumberLiteral.ts +25 -9
- package/build/libarkts-copy/src/generated/peers/ObjectDescriptor.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/ObjectExpression.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/OmittedExpression.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/OpaqueTypeNode.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/PrefixAssertionExpression.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/Program.ts +189 -0
- package/build/libarkts-copy/src/generated/peers/Property.ts +16 -4
- package/build/libarkts-copy/src/generated/peers/RegExpLiteral.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/ReturnStatement.ts +16 -4
- package/build/libarkts-copy/src/generated/peers/ScopeFindResult.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/ScriptFunction.ts +81 -10
- package/build/libarkts-copy/src/generated/peers/ScriptFunctionData.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/SequenceExpression.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/SignatureInfo.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/SourcePosition.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/SourceRange.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/SpreadElement.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/SrcDumper.ts +46 -9
- package/build/libarkts-copy/src/generated/peers/Statement.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/StringLiteral.ts +16 -4
- package/build/libarkts-copy/src/generated/peers/{ETSDynamicFunctionType.ts → SuggestionInfo.ts} +7 -5
- package/build/libarkts-copy/src/generated/peers/SuperExpression.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/SwitchCaseStatement.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/SwitchStatement.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSAnyKeyword.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSArrayType.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSAsExpression.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSBigintKeyword.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSBooleanKeyword.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSClassImplements.ts +17 -5
- package/build/libarkts-copy/src/generated/peers/TSConditionalType.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSConstructorType.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSEnumDeclaration.ts +52 -6
- package/build/libarkts-copy/src/generated/peers/TSEnumMember.ts +17 -5
- package/build/libarkts-copy/src/generated/peers/TSExternalModuleReference.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSFunctionType.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSImportEqualsDeclaration.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSImportType.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSIndexSignature.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSIndexedAccessType.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSInferType.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSInterfaceBody.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSInterfaceDeclaration.ts +82 -8
- package/build/libarkts-copy/src/generated/peers/TSInterfaceHeritage.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSIntersectionType.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSLiteralType.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSMappedType.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSMethodSignature.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSModuleBlock.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSModuleDeclaration.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSNamedTupleMember.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSNeverKeyword.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSNonNullExpression.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSNullKeyword.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSNumberKeyword.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSObjectKeyword.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSParameterProperty.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSParenthesizedType.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSPropertySignature.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSQualifiedName.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSSignatureDeclaration.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSStringKeyword.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSThisType.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSTupleType.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSTypeAliasDeclaration.ts +59 -6
- package/build/libarkts-copy/src/generated/peers/TSTypeAssertion.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSTypeLiteral.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSTypeOperator.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSTypeParameter.ts +47 -7
- package/build/libarkts-copy/src/generated/peers/TSTypeParameterDeclaration.ts +19 -4
- package/build/libarkts-copy/src/generated/peers/TSTypeParameterInstantiation.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSTypePredicate.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSTypeQuery.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSTypeReference.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSUndefinedKeyword.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSUnionType.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSUnknownKeyword.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TSVoidKeyword.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TaggedTemplateExpression.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TemplateElement.ts +17 -5
- package/build/libarkts-copy/src/generated/peers/TemplateLiteral.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/ThisExpression.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/ThrowStatement.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/TryStatement.ts +17 -5
- package/build/libarkts-copy/src/generated/peers/TypeNode.ts +37 -3
- package/build/libarkts-copy/src/generated/peers/TypedAstNode.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/TypedStatement.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/TypeofExpression.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/UnaryExpression.ts +19 -4
- package/build/libarkts-copy/src/generated/peers/UndefinedLiteral.ts +13 -3
- package/build/libarkts-copy/src/generated/peers/UpdateExpression.ts +14 -4
- package/build/libarkts-copy/src/generated/peers/VReg.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/ValidationInfo.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/VariableDeclaration.ts +52 -8
- package/build/libarkts-copy/src/generated/peers/VariableDeclarator.ts +17 -5
- package/build/libarkts-copy/src/generated/peers/VerificationContext.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/VerifierMessage.ts +7 -1
- package/build/libarkts-copy/src/generated/peers/WhileStatement.ts +19 -4
- package/build/libarkts-copy/src/generated/peers/YieldExpression.ts +14 -4
- package/build/libarkts-copy/src/index.ts +13 -1
- package/build/libarkts-copy/src/plugin-utils.ts +117 -0
- package/build/libarkts-copy/src/utils.ts +17 -28
- package/build/libarkts-copy/src/wrapper-compat/README.md +16 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/class-by-peer.ts +46 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/factory/nodeFactory.ts +454 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/factory/nodeTests.ts +99 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/index.ts +88 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ArrayExpression.ts +38 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ArrowFunctionExpression.ts +35 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/AssignmentExpression.ts +38 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/BlockStatement.ts +27 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/CallExpression.ts +45 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ClassDeclaration.ts +27 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ClassDefinition.ts +73 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ClassProperty.ts +51 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ETSFunctionType.ts +42 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ETSImportDeclaration.ts +39 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ETSParameterExpression.ts +43 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ExpressionStatement.ts +28 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/FunctionDeclaration.ts +37 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/FunctionExpression.ts +28 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/IfStatement.ts +37 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/MemberExpression.ts +42 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/MethodDefinition.ts +46 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/NumberLiteral.ts +30 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ObjectExpression.ts +37 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/Property.ts +27 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ScriptFunction.ts +46 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/StructDeclaration.ts +28 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/TSInterfaceDeclaration.ts +47 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/TSTypeAliasDeclaration.ts +40 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/TSTypeParameter.ts +36 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/TryStatement.ts +41 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/VariableDeclaration.ts +42 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/VariableDeclarator.ts +39 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/ArktsObject.ts +45 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/AstNode.ts +26 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/Config.ts +53 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/Context.ts +60 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/Diagnostic.ts +39 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/DiagnosticInfo.ts +33 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/DiagnosticKind.ts +33 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/ImportPathManager.ts +34 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/Program.ts +105 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/SourcePosition.ts +38 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/SourceRange.ts +38 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/SuggestionInfo.ts +33 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/static/global.ts +16 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/static/globalUtils.ts +27 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/to-be-generated/MemberExpression.ts +108 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/types.ts +907 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/utilities/nativePtrDecoder.ts +69 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/utilities/performance.ts +190 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/utilities/private.ts +198 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/utilities/public.ts +325 -0
- package/build/libarkts-copy/src/wrapper-compat/arkts-api/visitor.ts +421 -0
- package/build/libarkts-copy/src/wrapper-compat/index.ts +20 -0
- package/lib/index.js +330 -149
- package/package.json +2 -2
- package/templates/Es2pandaEnums.ts +4 -0
- package/templates/Es2pandaNativeModule.ts +5 -1
- package/templates/factory.ts +5 -1
- package/templates/index.ts +5 -1
- package/templates/node-map.ts +5 -1
- package/templates/peer.ts +5 -1
- package/build/libarkts-copy/README.md +0 -36
|
@@ -18,20 +18,22 @@
|
|
|
18
18
|
|
|
19
19
|
using std::string, std::cout, std::endl, std::vector;
|
|
20
20
|
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
es2panda_Impl *es2pandaImplementation = nullptr;
|
|
23
22
|
static thread_local StageArena currentArena;
|
|
24
23
|
|
|
25
|
-
StageArena* StageArena::instance()
|
|
24
|
+
StageArena* StageArena::instance()
|
|
25
|
+
{
|
|
26
26
|
return ¤tArena;
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
void StageArena::add(void* pointer)
|
|
29
|
+
void StageArena::add(void* pointer)
|
|
30
|
+
{
|
|
30
31
|
if (pointer)
|
|
31
32
|
allocated.push_back(pointer);
|
|
32
33
|
}
|
|
33
34
|
|
|
34
|
-
void StageArena::cleanup()
|
|
35
|
+
void StageArena::cleanup()
|
|
36
|
+
{
|
|
35
37
|
if (totalSize > 0 && false)
|
|
36
38
|
printf("cleanup %d objects %d bytes\n", (int)allocated.size(), (int)totalSize);
|
|
37
39
|
for (auto it : allocated) {
|
|
@@ -41,15 +43,18 @@ void StageArena::cleanup() {
|
|
|
41
43
|
allocated.clear();
|
|
42
44
|
}
|
|
43
45
|
|
|
44
|
-
StageArena::StageArena()
|
|
46
|
+
StageArena::StageArena()
|
|
47
|
+
{
|
|
45
48
|
totalSize = 0;
|
|
46
49
|
}
|
|
47
50
|
|
|
48
|
-
StageArena::~StageArena()
|
|
51
|
+
StageArena::~StageArena()
|
|
52
|
+
{
|
|
49
53
|
cleanup();
|
|
50
54
|
}
|
|
51
55
|
|
|
52
|
-
char* StageArena::strdup(const char* string)
|
|
56
|
+
char* StageArena::strdup(const char* string)
|
|
57
|
+
{
|
|
53
58
|
auto* arena = StageArena::instance();
|
|
54
59
|
auto size = strlen(string) + 1;
|
|
55
60
|
char* memory = (char*)arena->alloc(size);
|
|
@@ -57,7 +62,8 @@ char* StageArena::strdup(const char* string) {
|
|
|
57
62
|
return memory;
|
|
58
63
|
}
|
|
59
64
|
|
|
60
|
-
void* StageArena::alloc(size_t size)
|
|
65
|
+
void* StageArena::alloc(size_t size)
|
|
66
|
+
{
|
|
61
67
|
void* result = malloc(size);
|
|
62
68
|
totalSize += size;
|
|
63
69
|
add(result);
|
|
@@ -67,11 +73,11 @@ void* StageArena::alloc(size_t size) {
|
|
|
67
73
|
#ifdef KOALA_WINDOWS
|
|
68
74
|
#include <windows.h>
|
|
69
75
|
#define PLUGIN_DIR "windows_host_tools"
|
|
70
|
-
#define LIB_PREFIX ""
|
|
76
|
+
#define LIB_PREFIX "lib"
|
|
71
77
|
#define LIB_SUFFIX ".dll"
|
|
72
78
|
#endif
|
|
73
79
|
|
|
74
|
-
#
|
|
80
|
+
#if defined(KOALA_LINUX) || defined(KOALA_MACOS)
|
|
75
81
|
#include <dlfcn.h>
|
|
76
82
|
|
|
77
83
|
#ifdef __x86_64__
|
|
@@ -87,23 +93,89 @@ void* StageArena::alloc(size_t size) {
|
|
|
87
93
|
const char* DEFAULT_SDK_PATH = "../../../incremental/tools/panda/node_modules/@panda/sdk" ;
|
|
88
94
|
const char* NAME = LIB_PREFIX "es2panda-public" LIB_SUFFIX;
|
|
89
95
|
|
|
96
|
+
const char* LIB_ES2PANDA_PUBLIC = LIB_PREFIX "es2panda_public" LIB_SUFFIX;
|
|
97
|
+
const char* IS_UI_FLAG = "IS_UI_FLAG";
|
|
98
|
+
const char* NOT_UI_FLAG = "NOT_UI_FLAG";
|
|
99
|
+
const string MODULE_SUFFIX = ".d.ets";
|
|
100
|
+
const string ARKUI = "arkui";
|
|
101
|
+
|
|
102
|
+
#ifdef KOALA_WINDOWS
|
|
103
|
+
const char *SEPARATOR = "\\";
|
|
104
|
+
#else
|
|
105
|
+
const char *SEPARATOR = "/";
|
|
106
|
+
#endif
|
|
107
|
+
const char *LIB_DIR = "lib";
|
|
108
|
+
|
|
109
|
+
static std::string ES2PANDA_LIB_PATH = "";
|
|
110
|
+
|
|
111
|
+
std::string joinPath(vector<string> &paths)
|
|
112
|
+
{
|
|
113
|
+
std::string res;
|
|
114
|
+
for (std::size_t i = 0; i < paths.size(); ++i) {
|
|
115
|
+
if (i == 0) {
|
|
116
|
+
res = paths[i];
|
|
117
|
+
} else {
|
|
118
|
+
res += SEPARATOR + paths[i];
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
return res;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
void impl_SetUpSoPath(KStringPtr &soPath)
|
|
125
|
+
{
|
|
126
|
+
ES2PANDA_LIB_PATH = std::string(soPath.c_str());
|
|
127
|
+
}
|
|
128
|
+
KOALA_INTEROP_V1(SetUpSoPath, KStringPtr);
|
|
129
|
+
|
|
130
|
+
// todo: simplify this
|
|
90
131
|
void* FindLibrary() {
|
|
132
|
+
void *res = NULL;
|
|
133
|
+
std::vector<std::string> pathArray;
|
|
134
|
+
|
|
135
|
+
// find by SetUpSoPath
|
|
136
|
+
if (!ES2PANDA_LIB_PATH.empty()) {
|
|
137
|
+
pathArray = {ES2PANDA_LIB_PATH, LIB_DIR, LIB_ES2PANDA_PUBLIC};
|
|
138
|
+
res = loadLibrary(joinPath(pathArray));
|
|
139
|
+
if (res) {
|
|
140
|
+
return res;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
// find by set PANDA_SDK_PATH
|
|
91
145
|
char* envValue = getenv("PANDA_SDK_PATH");
|
|
92
|
-
if (
|
|
93
|
-
|
|
146
|
+
if (envValue) {
|
|
147
|
+
pathArray = {envValue, PLUGIN_DIR, LIB_DIR, NAME};
|
|
148
|
+
res = loadLibrary(joinPath(pathArray));
|
|
149
|
+
if (res) {
|
|
150
|
+
return res;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
// find by set LD_LIBRARY_PATH
|
|
155
|
+
pathArray = {LIB_ES2PANDA_PUBLIC};
|
|
156
|
+
res = loadLibrary(joinPath(pathArray));
|
|
157
|
+
if (res) {
|
|
158
|
+
return res;
|
|
94
159
|
}
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
160
|
+
|
|
161
|
+
// find by DEFAULT_SDK_PATH
|
|
162
|
+
pathArray = {DEFAULT_SDK_PATH, PLUGIN_DIR, LIB_DIR, NAME};
|
|
163
|
+
res = loadLibrary(joinPath(pathArray));
|
|
164
|
+
if (res) {
|
|
165
|
+
return res;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
return NULL;
|
|
98
169
|
}
|
|
99
170
|
|
|
100
|
-
es2panda_Impl *
|
|
101
|
-
|
|
102
|
-
|
|
171
|
+
es2panda_Impl *GetImplSlow()
|
|
172
|
+
{
|
|
173
|
+
if (es2pandaImplementation) {
|
|
174
|
+
return es2pandaImplementation;
|
|
103
175
|
}
|
|
104
176
|
auto library = FindLibrary();
|
|
105
177
|
if (!library) {
|
|
106
|
-
printf("No library (es2panda_lib.cc)");
|
|
178
|
+
printf("No library (es2panda_lib.cc)");
|
|
107
179
|
abort();
|
|
108
180
|
}
|
|
109
181
|
auto symbol = findSymbol(library, "es2panda_GetImpl");
|
|
@@ -111,8 +183,8 @@ es2panda_Impl *GetImpl() {
|
|
|
111
183
|
printf("no entry point");
|
|
112
184
|
abort();
|
|
113
185
|
}
|
|
114
|
-
|
|
115
|
-
return
|
|
186
|
+
es2pandaImplementation = reinterpret_cast<es2panda_Impl *(*)(int)>(symbol)(ES2PANDA_LIB_VERSION);
|
|
187
|
+
return es2pandaImplementation;
|
|
116
188
|
}
|
|
117
189
|
|
|
118
190
|
es2panda_ContextState intToState(KInt state)
|
|
@@ -120,31 +192,16 @@ es2panda_ContextState intToState(KInt state)
|
|
|
120
192
|
return es2panda_ContextState(state);
|
|
121
193
|
}
|
|
122
194
|
|
|
123
|
-
string getString(KStringPtr ptr)
|
|
195
|
+
string getString(KStringPtr ptr)
|
|
196
|
+
{
|
|
124
197
|
return ptr.data();
|
|
125
198
|
}
|
|
126
199
|
|
|
127
|
-
char* getStringCopy(KStringPtr& ptr)
|
|
200
|
+
char* getStringCopy(KStringPtr& ptr)
|
|
201
|
+
{
|
|
128
202
|
return StageArena::strdup(ptr.c_str() ? ptr.c_str() : "");
|
|
129
203
|
}
|
|
130
204
|
|
|
131
|
-
inline KUInt unpackUInt(const KByte* bytes) {
|
|
132
|
-
const KUInt BYTE_0 = 0;
|
|
133
|
-
const KUInt BYTE_1 = 1;
|
|
134
|
-
const KUInt BYTE_2 = 2;
|
|
135
|
-
const KUInt BYTE_3 = 3;
|
|
136
|
-
|
|
137
|
-
const KUInt BYTE_1_SHIFT = 8;
|
|
138
|
-
const KUInt BYTE_2_SHIFT = 16;
|
|
139
|
-
const KUInt BYTE_3_SHIFT = 24;
|
|
140
|
-
return (
|
|
141
|
-
bytes[BYTE_0]
|
|
142
|
-
| (bytes[BYTE_1] << BYTE_1_SHIFT)
|
|
143
|
-
| (bytes[BYTE_2] << BYTE_2_SHIFT)
|
|
144
|
-
| (bytes[BYTE_3] << BYTE_3_SHIFT)
|
|
145
|
-
);
|
|
146
|
-
}
|
|
147
|
-
|
|
148
205
|
KNativePointer impl_CreateConfig(KInt argc, KStringArray argvPtr) {
|
|
149
206
|
const std::size_t headerLen = 4;
|
|
150
207
|
|
|
@@ -168,13 +225,12 @@ KNativePointer impl_DestroyConfig(KNativePointer configPtr) {
|
|
|
168
225
|
}
|
|
169
226
|
KOALA_INTEROP_1(DestroyConfig, KNativePointer, KNativePointer)
|
|
170
227
|
|
|
171
|
-
|
|
228
|
+
void impl_DestroyContext(KNativePointer contextPtr) {
|
|
172
229
|
auto context = reinterpret_cast<es2panda_Context*>(contextPtr);
|
|
173
230
|
GetImpl()->DestroyContext(context);
|
|
174
231
|
StageArena::instance()->cleanup();
|
|
175
|
-
return nullptr;
|
|
176
232
|
}
|
|
177
|
-
|
|
233
|
+
KOALA_INTEROP_V1(DestroyContext, KNativePointer)
|
|
178
234
|
|
|
179
235
|
KNativePointer impl_UpdateCallExpression(
|
|
180
236
|
KNativePointer contextPtr,
|
|
@@ -244,7 +300,7 @@ KNativePointer impl_AstNodeUpdateAll(KNativePointer contextPtr, KNativePointer p
|
|
|
244
300
|
}
|
|
245
301
|
KOALA_INTEROP_2(AstNodeUpdateAll, KNativePointer, KNativePointer, KNativePointer)
|
|
246
302
|
|
|
247
|
-
KNativePointer
|
|
303
|
+
KNativePointer impl_AstNodeSetChildrenParentPtr(KNativePointer contextPtr, KNativePointer nodePtr) {
|
|
248
304
|
auto context = reinterpret_cast<es2panda_Context*>(contextPtr);
|
|
249
305
|
auto node = reinterpret_cast<es2panda_AstNode*>(nodePtr);
|
|
250
306
|
cachedParentNode = node;
|
|
@@ -252,11 +308,12 @@ KNativePointer impl_AstNodeUpdateChildren(KNativePointer contextPtr, KNativePoin
|
|
|
252
308
|
GetImpl()->AstNodeIterateConst(context, node, changeParent);
|
|
253
309
|
return node;
|
|
254
310
|
}
|
|
255
|
-
KOALA_INTEROP_2(
|
|
311
|
+
KOALA_INTEROP_2(AstNodeSetChildrenParentPtr, KNativePointer, KNativePointer, KNativePointer)
|
|
256
312
|
|
|
257
313
|
std::vector<void*> cachedChildren;
|
|
258
314
|
|
|
259
|
-
static void visitChild(es2panda_AstNode *node)
|
|
315
|
+
static void visitChild(es2panda_AstNode *node)
|
|
316
|
+
{
|
|
260
317
|
cachedChildren.emplace_back(node);
|
|
261
318
|
}
|
|
262
319
|
|
|
@@ -277,3 +334,67 @@ KOALA_INTEROP_2(AstNodeChildren, KNativePointer, KNativePointer, KNativePointer)
|
|
|
277
334
|
/*
|
|
278
335
|
-----------------------------------------------------------------------------------------------------------------------------
|
|
279
336
|
*/
|
|
337
|
+
|
|
338
|
+
// From koala-wrapper
|
|
339
|
+
// TODO check if some code should be generated
|
|
340
|
+
|
|
341
|
+
void impl_MemInitialize()
|
|
342
|
+
{
|
|
343
|
+
GetImpl()->MemInitialize();
|
|
344
|
+
}
|
|
345
|
+
KOALA_INTEROP_V0(MemInitialize)
|
|
346
|
+
|
|
347
|
+
void impl_MemFinalize()
|
|
348
|
+
{
|
|
349
|
+
GetImpl()->MemFinalize();
|
|
350
|
+
}
|
|
351
|
+
KOALA_INTEROP_V0(MemFinalize)
|
|
352
|
+
|
|
353
|
+
static bool isUIHeaderFile(es2panda_Context* context, es2panda_Program* program)
|
|
354
|
+
{
|
|
355
|
+
auto result = GetImpl()->ProgramFileNameWithExtensionConst(context, program);
|
|
356
|
+
string fileNameWithExtension(result);
|
|
357
|
+
result = GetImpl()->ProgramModuleNameConst(context, program);
|
|
358
|
+
string moduleName(result);
|
|
359
|
+
|
|
360
|
+
return fileNameWithExtension.length() >= MODULE_SUFFIX.length()
|
|
361
|
+
&& fileNameWithExtension.substr(fileNameWithExtension.length() - MODULE_SUFFIX.length()) == MODULE_SUFFIX
|
|
362
|
+
&& moduleName.find(ARKUI) != std::string::npos;
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
KBoolean impl_ProgramCanSkipPhases(KNativePointer context, KNativePointer program)
|
|
366
|
+
{
|
|
367
|
+
KStringPtr isUiFlag(IS_UI_FLAG);
|
|
368
|
+
KStringPtr notUiFlag(NOT_UI_FLAG);
|
|
369
|
+
const auto _context = reinterpret_cast<es2panda_Context*>(context);
|
|
370
|
+
const auto _program = reinterpret_cast<es2panda_Program*>(program);
|
|
371
|
+
if (isUIHeaderFile(_context, _program)) {
|
|
372
|
+
return false;
|
|
373
|
+
}
|
|
374
|
+
std::size_t sourceLen;
|
|
375
|
+
const auto externalSources = reinterpret_cast<es2panda_ExternalSource **>
|
|
376
|
+
(GetImpl()->ProgramExternalSources(_context, _program, &sourceLen));
|
|
377
|
+
for (std::size_t i = 0; i < sourceLen; ++i) {
|
|
378
|
+
std::size_t programLen;
|
|
379
|
+
auto programs = GetImpl()->ExternalSourcePrograms(externalSources[i], &programLen);
|
|
380
|
+
for (std::size_t j = 0; j < programLen; ++j) {
|
|
381
|
+
if (isUIHeaderFile(_context, programs[j])) {
|
|
382
|
+
return false;
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
return true;
|
|
387
|
+
}
|
|
388
|
+
KOALA_INTEROP_2(ProgramCanSkipPhases, KBoolean, KNativePointer, KNativePointer)
|
|
389
|
+
|
|
390
|
+
KNativePointer impl_AstNodeProgram(KNativePointer contextPtr, KNativePointer instancePtr)
|
|
391
|
+
{
|
|
392
|
+
auto _context = reinterpret_cast<es2panda_Context*>(contextPtr);
|
|
393
|
+
auto _receiver = reinterpret_cast<es2panda_AstNode*>(instancePtr);
|
|
394
|
+
|
|
395
|
+
if (GetImpl()->AstNodeIsProgramConst(_context, _receiver)) {
|
|
396
|
+
return GetImpl()->ETSModuleProgram(_context, _receiver);
|
|
397
|
+
}
|
|
398
|
+
return impl_AstNodeProgram(_context, GetImpl()->AstNodeParent(_context, _receiver));
|
|
399
|
+
}
|
|
400
|
+
KOALA_INTEROP_2(AstNodeProgram, KNativePointer, KNativePointer, KNativePointer)
|
|
@@ -1,3 +1,18 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2025 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
|
+
|
|
1
16
|
#ifndef COMMON_H
|
|
2
17
|
#define COMMON_H
|
|
3
18
|
|
|
@@ -26,13 +41,37 @@
|
|
|
26
41
|
|
|
27
42
|
using std::string, std::cout, std::endl, std::vector;
|
|
28
43
|
|
|
29
|
-
es2panda_Impl *
|
|
44
|
+
extern es2panda_Impl *es2pandaImplementation;
|
|
45
|
+
|
|
46
|
+
es2panda_Impl *GetImplSlow();
|
|
47
|
+
inline es2panda_Impl *GetImpl() {
|
|
48
|
+
if (es2pandaImplementation) {
|
|
49
|
+
return es2pandaImplementation;
|
|
50
|
+
}
|
|
51
|
+
return GetImplSlow();
|
|
52
|
+
}
|
|
30
53
|
|
|
31
54
|
string getString(KStringPtr ptr);
|
|
32
55
|
|
|
33
56
|
char* getStringCopy(KStringPtr& ptr);
|
|
34
57
|
|
|
35
|
-
inline KUInt unpackUInt(const KByte* bytes)
|
|
58
|
+
inline KUInt unpackUInt(const KByte* bytes)
|
|
59
|
+
{
|
|
60
|
+
const KUInt BYTE_0 = 0;
|
|
61
|
+
const KUInt BYTE_1 = 1;
|
|
62
|
+
const KUInt BYTE_2 = 2;
|
|
63
|
+
const KUInt BYTE_3 = 3;
|
|
64
|
+
|
|
65
|
+
const KUInt BYTE_1_SHIFT = 8;
|
|
66
|
+
const KUInt BYTE_2_SHIFT = 16;
|
|
67
|
+
const KUInt BYTE_3_SHIFT = 24;
|
|
68
|
+
return (
|
|
69
|
+
bytes[BYTE_0]
|
|
70
|
+
| (bytes[BYTE_1] << BYTE_1_SHIFT)
|
|
71
|
+
| (bytes[BYTE_2] << BYTE_2_SHIFT)
|
|
72
|
+
| (bytes[BYTE_3] << BYTE_3_SHIFT)
|
|
73
|
+
);
|
|
74
|
+
}
|
|
36
75
|
|
|
37
76
|
es2panda_ContextState intToState(KInt state);
|
|
38
77
|
|
|
@@ -44,38 +83,44 @@ class StageArena {
|
|
|
44
83
|
~StageArena();
|
|
45
84
|
static StageArena* instance();
|
|
46
85
|
template <typename T>
|
|
47
|
-
static T* alloc()
|
|
86
|
+
static T* alloc()
|
|
87
|
+
{
|
|
48
88
|
auto* arena = StageArena::instance();
|
|
49
89
|
void* memory = arena->alloc(sizeof(T));
|
|
50
90
|
return new (memory) T();
|
|
51
91
|
}
|
|
52
92
|
template <class T, class T1>
|
|
53
|
-
static T* alloc(T1 arg1)
|
|
93
|
+
static T* alloc(T1 arg1)
|
|
94
|
+
{
|
|
54
95
|
auto* arena = StageArena::instance();
|
|
55
96
|
void* memory = arena->alloc(sizeof(T));
|
|
56
97
|
return new (memory) T(std::forward(arg1));
|
|
57
98
|
}
|
|
58
99
|
template <class T, class T1, class T2>
|
|
59
|
-
static T* alloc(T1 arg1, T2 arg2)
|
|
100
|
+
static T* alloc(T1 arg1, T2 arg2)
|
|
101
|
+
{
|
|
60
102
|
auto* arena = StageArena::instance();
|
|
61
103
|
void* memory = arena->alloc(sizeof(T));
|
|
62
104
|
return new (memory) T(arg1, arg2);
|
|
63
105
|
}
|
|
64
106
|
template <typename T>
|
|
65
|
-
static T* allocArray(size_t count)
|
|
107
|
+
static T* allocArray(size_t count)
|
|
108
|
+
{
|
|
66
109
|
auto* arena = StageArena::instance();
|
|
67
110
|
// align?
|
|
68
111
|
void* memory = arena->alloc(sizeof(T) * count);
|
|
69
112
|
return new (memory) T();
|
|
70
113
|
}
|
|
71
114
|
template <class T>
|
|
72
|
-
static T* clone(const T& arg)
|
|
115
|
+
static T* clone(const T& arg)
|
|
116
|
+
{
|
|
73
117
|
auto* arena = StageArena::instance();
|
|
74
118
|
void* memory = arena->alloc(sizeof(T));
|
|
75
119
|
return new (memory) T(arg);
|
|
76
120
|
}
|
|
77
121
|
template <class T>
|
|
78
|
-
static std::vector<const void*>* cloneVector(const T* arg, size_t count)
|
|
122
|
+
static std::vector<const void*>* cloneVector(const T* arg, size_t count)
|
|
123
|
+
{
|
|
79
124
|
return alloc<std::vector<const void*>, const T*, const T*>(arg, arg + count);
|
|
80
125
|
}
|
|
81
126
|
void* alloc(size_t size);
|