@idlizer/arktscgen 2.1.9-arktscgen-9 → 2.1.10-arktscgen-3

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.
Files changed (296) hide show
  1. package/build/libarkts-copy/generator/options.json5 +199 -4
  2. package/build/libarkts-copy/native/meson.build +1 -0
  3. package/build/libarkts-copy/native/mingw.cross +13 -0
  4. package/build/libarkts-copy/native/src/bridges.cc +66 -229
  5. package/build/libarkts-copy/native/src/common.cc +37 -8
  6. package/build/libarkts-copy/native/src/generated/bridges.cc +2047 -766
  7. package/build/libarkts-copy/native/src/memoryTracker.cc +178 -0
  8. package/build/libarkts-copy/native/src/memoryTracker.h +52 -0
  9. package/build/libarkts-copy/package.json +11 -14
  10. package/build/libarkts-copy/src/Es2pandaNativeModule.ts +41 -52
  11. package/build/libarkts-copy/src/arkts-api/ImportStorage.ts +1 -1
  12. package/build/libarkts-copy/src/arkts-api/class-by-peer.ts +7 -6
  13. package/build/libarkts-copy/src/arkts-api/factory/nodeFactory.ts +5 -2
  14. package/build/libarkts-copy/src/arkts-api/index.ts +2 -1
  15. package/build/libarkts-copy/src/arkts-api/node-cache.ts +9 -9
  16. package/build/libarkts-copy/src/arkts-api/node-utilities/ArkTsConfig.ts +7 -6
  17. package/build/libarkts-copy/src/arkts-api/node-utilities/NumberLiteral.ts +3 -1
  18. package/build/libarkts-copy/src/arkts-api/node-utilities/ObjectExpression.ts +25 -6
  19. package/build/libarkts-copy/src/{wrapper-compat/arkts-api/peers/ImportPathManager.ts → arkts-api/node-utilities/OpaqueTypeNode.ts} +8 -17
  20. package/build/libarkts-copy/src/arkts-api/node-utilities/Program.ts +11 -10
  21. package/build/libarkts-copy/src/arkts-api/node-utilities/ScriptFunction.ts +1 -1
  22. package/build/libarkts-copy/src/arkts-api/peers/AstNode.ts +12 -7
  23. package/build/libarkts-copy/src/arkts-api/peers/Config.ts +6 -0
  24. package/build/libarkts-copy/src/arkts-api/peers/Context.ts +3 -15
  25. package/build/libarkts-copy/src/{wrapper-compat/arkts-api/peers/AstNode.ts → arkts-api/peers/DiagnosticKind.ts} +6 -8
  26. package/build/libarkts-copy/src/arkts-api/static/global.ts +28 -1
  27. package/build/libarkts-copy/src/arkts-api/utilities/extensions.ts +64 -7
  28. package/build/libarkts-copy/src/{wrapper-compat/arkts-api → arkts-api}/utilities/performance.ts +122 -3
  29. package/build/libarkts-copy/src/arkts-api/utilities/private.ts +8 -22
  30. package/build/libarkts-copy/src/arkts-api/utilities/public.ts +95 -93
  31. package/build/libarkts-copy/src/arkts-api/visitor.ts +971 -364
  32. package/build/libarkts-copy/src/generated/Es2pandaEnums.ts +6 -0
  33. package/build/libarkts-copy/src/generated/Es2pandaNativeModule.ts +686 -185
  34. package/build/libarkts-copy/src/generated/factory.ts +2 -3
  35. package/build/libarkts-copy/src/generated/index.ts +3 -2
  36. package/build/libarkts-copy/src/generated/peers/AnnotatedAstNode.ts +3 -3
  37. package/build/libarkts-copy/src/generated/peers/AnnotatedExpression.ts +3 -3
  38. package/build/libarkts-copy/src/generated/peers/AnnotatedStatement.ts +3 -3
  39. package/build/libarkts-copy/src/generated/peers/AnnotationDeclaration.ts +17 -20
  40. package/build/libarkts-copy/src/generated/peers/AnnotationUsage.ts +7 -9
  41. package/build/libarkts-copy/src/generated/peers/ArkTsConfig.ts +4 -1
  42. package/build/libarkts-copy/src/generated/peers/ArrayExpression.ts +6 -12
  43. package/build/libarkts-copy/src/generated/peers/ArrowFunctionExpression.ts +18 -21
  44. package/build/libarkts-copy/src/generated/peers/AssertStatement.ts +5 -7
  45. package/build/libarkts-copy/src/generated/peers/AssignmentExpression.ts +6 -8
  46. package/build/libarkts-copy/src/generated/peers/AstDumper.ts +3 -1
  47. package/build/libarkts-copy/src/generated/peers/AstVerifier.ts +0 -1
  48. package/build/libarkts-copy/src/generated/peers/AstVisitor.ts +0 -1
  49. package/build/libarkts-copy/src/generated/peers/AwaitExpression.ts +5 -7
  50. package/build/libarkts-copy/src/generated/peers/BigIntLiteral.ts +5 -7
  51. package/build/libarkts-copy/src/generated/peers/BinaryExpression.ts +5 -7
  52. package/build/libarkts-copy/src/generated/peers/BindingProps.ts +0 -1
  53. package/build/libarkts-copy/src/generated/peers/BlockExpression.ts +5 -7
  54. package/build/libarkts-copy/src/generated/peers/BlockStatement.ts +5 -7
  55. package/build/libarkts-copy/src/generated/peers/BooleanLiteral.ts +5 -7
  56. package/build/libarkts-copy/src/generated/peers/BreakStatement.ts +7 -9
  57. package/build/libarkts-copy/src/generated/peers/CallExpression.ts +11 -8
  58. package/build/libarkts-copy/src/generated/peers/CatchClause.ts +6 -8
  59. package/build/libarkts-copy/src/generated/peers/ChainExpression.ts +5 -7
  60. package/build/libarkts-copy/src/generated/peers/CharLiteral.ts +5 -7
  61. package/build/libarkts-copy/src/generated/peers/ClassDeclaration.ts +6 -30
  62. package/build/libarkts-copy/src/generated/peers/ClassDefinition.ts +35 -28
  63. package/build/libarkts-copy/src/generated/peers/ClassElement.ts +5 -32
  64. package/build/libarkts-copy/src/generated/peers/ClassExpression.ts +6 -8
  65. package/build/libarkts-copy/src/generated/peers/ClassProperty.ts +25 -20
  66. package/build/libarkts-copy/src/generated/peers/ClassStaticBlock.ts +6 -8
  67. package/build/libarkts-copy/src/generated/peers/CodeGen.ts +0 -1
  68. package/build/libarkts-copy/src/generated/peers/ConditionalExpression.ts +5 -7
  69. package/build/libarkts-copy/src/generated/peers/ContinueStatement.ts +7 -9
  70. package/build/libarkts-copy/src/generated/peers/DebuggerStatement.ts +5 -7
  71. package/build/libarkts-copy/src/generated/peers/Declaration.ts +0 -1
  72. package/build/libarkts-copy/src/generated/peers/Decorator.ts +5 -7
  73. package/build/libarkts-copy/src/generated/peers/DiagnosticInfo.ts +0 -1
  74. package/build/libarkts-copy/src/generated/peers/DirectEvalExpression.ts +5 -7
  75. package/build/libarkts-copy/src/generated/peers/DoWhileStatement.ts +5 -7
  76. package/build/libarkts-copy/src/generated/peers/DynamicImportData.ts +0 -1
  77. package/build/libarkts-copy/src/generated/peers/ETSClassLiteral.ts +5 -7
  78. package/build/libarkts-copy/src/generated/peers/ETSFunctionType.ts +14 -9
  79. package/build/libarkts-copy/src/generated/peers/ETSImportDeclaration.ts +5 -7
  80. package/build/libarkts-copy/src/generated/peers/ETSIntrinsicNode.ts +7 -9
  81. package/build/libarkts-copy/src/generated/peers/ETSKeyofType.ts +5 -7
  82. package/build/libarkts-copy/src/generated/peers/ETSModule.ts +17 -20
  83. package/build/libarkts-copy/src/generated/peers/ETSNewArrayInstanceExpression.ts +5 -7
  84. package/build/libarkts-copy/src/generated/peers/ETSNewClassInstanceExpression.ts +6 -8
  85. package/build/libarkts-copy/src/generated/peers/ETSNewMultiDimArrayInstanceExpression.ts +6 -8
  86. package/build/libarkts-copy/src/generated/peers/ETSNullType.ts +5 -7
  87. package/build/libarkts-copy/src/generated/peers/ETSPackageDeclaration.ts +5 -7
  88. package/build/libarkts-copy/src/generated/peers/ETSParameterExpression.ts +20 -23
  89. package/build/libarkts-copy/src/generated/peers/ETSPrimitiveType.ts +5 -7
  90. package/build/libarkts-copy/src/generated/peers/ETSReExportDeclaration.ts +4 -6
  91. package/build/libarkts-copy/src/generated/peers/ETSStringLiteralType.ts +5 -7
  92. package/build/libarkts-copy/src/generated/peers/ETSStructDeclaration.ts +5 -7
  93. package/build/libarkts-copy/src/generated/peers/ETSTuple.ts +9 -11
  94. package/build/libarkts-copy/src/generated/peers/ETSTypeReference.ts +7 -9
  95. package/build/libarkts-copy/src/generated/peers/ETSTypeReferencePart.ts +9 -11
  96. package/build/libarkts-copy/src/generated/peers/ETSUndefinedType.ts +5 -7
  97. package/build/libarkts-copy/src/generated/peers/ETSUnionType.ts +5 -7
  98. package/build/libarkts-copy/src/generated/peers/ETSWildcardType.ts +6 -8
  99. package/build/libarkts-copy/src/generated/peers/EmptyStatement.ts +6 -8
  100. package/build/libarkts-copy/src/generated/peers/ErrorLogger.ts +0 -1
  101. package/build/libarkts-copy/src/generated/peers/ExportAllDeclaration.ts +7 -9
  102. package/build/libarkts-copy/src/generated/peers/ExportDefaultDeclaration.ts +5 -7
  103. package/build/libarkts-copy/src/generated/peers/ExportNamedDeclaration.ts +11 -13
  104. package/build/libarkts-copy/src/generated/peers/ExportSpecifier.ts +7 -9
  105. package/build/libarkts-copy/src/generated/peers/Expression.ts +7 -3
  106. package/build/libarkts-copy/src/generated/peers/ExpressionStatement.ts +5 -7
  107. package/build/libarkts-copy/src/generated/peers/ForInStatement.ts +5 -7
  108. package/build/libarkts-copy/src/generated/peers/ForOfStatement.ts +5 -7
  109. package/build/libarkts-copy/src/generated/peers/ForUpdateStatement.ts +4 -6
  110. package/build/libarkts-copy/src/generated/peers/FunctionDeclaration.ts +16 -23
  111. package/build/libarkts-copy/src/generated/peers/FunctionExpression.ts +8 -10
  112. package/build/libarkts-copy/src/generated/peers/FunctionSignature.ts +5 -2
  113. package/build/libarkts-copy/src/generated/peers/IRNode.ts +0 -1
  114. package/build/libarkts-copy/src/generated/peers/Identifier.ts +7 -18
  115. package/build/libarkts-copy/src/generated/peers/IfStatement.ts +5 -7
  116. package/build/libarkts-copy/src/generated/peers/ImportDeclaration.ts +6 -8
  117. package/build/libarkts-copy/src/generated/peers/ImportDefaultSpecifier.ts +6 -8
  118. package/build/libarkts-copy/src/generated/peers/ImportExpression.ts +5 -7
  119. package/build/libarkts-copy/src/generated/peers/ImportNamespaceSpecifier.ts +6 -8
  120. package/build/libarkts-copy/src/generated/peers/ImportSource.ts +0 -1
  121. package/build/libarkts-copy/src/generated/peers/ImportSpecifier.ts +7 -9
  122. package/build/libarkts-copy/src/generated/peers/IndexInfo.ts +0 -1
  123. package/build/libarkts-copy/src/generated/peers/LabelPair.ts +0 -1
  124. package/build/libarkts-copy/src/generated/peers/LabelledStatement.ts +6 -8
  125. package/build/libarkts-copy/src/generated/peers/Literal.ts +3 -3
  126. package/build/libarkts-copy/src/generated/peers/LoopStatement.ts +3 -3
  127. package/build/libarkts-copy/src/generated/peers/MaybeOptionalExpression.ts +3 -3
  128. package/build/libarkts-copy/src/generated/peers/MemberExpression.ts +5 -11
  129. package/build/libarkts-copy/src/generated/peers/MetaProperty.ts +5 -7
  130. package/build/libarkts-copy/src/generated/peers/MethodDefinition.ts +10 -12
  131. package/build/libarkts-copy/src/generated/peers/NamedType.ts +7 -9
  132. package/build/libarkts-copy/src/generated/peers/NewExpression.ts +5 -7
  133. package/build/libarkts-copy/src/generated/peers/NullLiteral.ts +5 -7
  134. package/build/libarkts-copy/src/generated/peers/NumberLiteral.ts +10 -10
  135. package/build/libarkts-copy/src/generated/peers/ObjectDescriptor.ts +0 -1
  136. package/build/libarkts-copy/src/generated/peers/ObjectExpression.ts +5 -11
  137. package/build/libarkts-copy/src/generated/peers/OmittedExpression.ts +5 -7
  138. package/build/libarkts-copy/src/generated/peers/OpaqueTypeNode.ts +5 -7
  139. package/build/libarkts-copy/src/generated/peers/OverloadDeclaration.ts +5 -7
  140. package/build/libarkts-copy/src/generated/peers/PrefixAssertionExpression.ts +5 -7
  141. package/build/libarkts-copy/src/generated/peers/Program.ts +9 -2
  142. package/build/libarkts-copy/src/generated/peers/Property.ts +6 -8
  143. package/build/libarkts-copy/src/generated/peers/RegExpLiteral.ts +5 -7
  144. package/build/libarkts-copy/src/generated/peers/ReturnStatement.ts +6 -8
  145. package/build/libarkts-copy/src/generated/peers/ScopeFindResult.ts +0 -1
  146. package/build/libarkts-copy/src/generated/peers/ScriptFunction.ts +27 -23
  147. package/build/libarkts-copy/src/generated/peers/ScriptFunctionData.ts +0 -1
  148. package/build/libarkts-copy/src/generated/peers/SequenceExpression.ts +5 -7
  149. package/build/libarkts-copy/src/generated/peers/SignatureInfo.ts +0 -1
  150. package/build/libarkts-copy/src/generated/peers/SourcePosition.ts +8 -1
  151. package/build/libarkts-copy/src/generated/peers/SourceRange.ts +0 -1
  152. package/build/libarkts-copy/src/generated/peers/SpreadElement.ts +5 -11
  153. package/build/libarkts-copy/src/generated/peers/SrcDumper.ts +3 -1
  154. package/build/libarkts-copy/src/generated/peers/Statement.ts +3 -3
  155. package/build/libarkts-copy/src/generated/peers/StringLiteral.ts +6 -8
  156. package/build/libarkts-copy/src/generated/peers/SuggestionInfo.ts +0 -1
  157. package/build/libarkts-copy/src/generated/peers/SuperExpression.ts +5 -7
  158. package/build/libarkts-copy/src/generated/peers/SwitchCaseStatement.ts +5 -7
  159. package/build/libarkts-copy/src/generated/peers/SwitchStatement.ts +6 -8
  160. package/build/libarkts-copy/src/generated/peers/TSAnyKeyword.ts +5 -7
  161. package/build/libarkts-copy/src/generated/peers/TSArrayType.ts +5 -7
  162. package/build/libarkts-copy/src/generated/peers/TSAsExpression.ts +5 -7
  163. package/build/libarkts-copy/src/generated/peers/TSBigintKeyword.ts +5 -7
  164. package/build/libarkts-copy/src/generated/peers/TSBooleanKeyword.ts +5 -7
  165. package/build/libarkts-copy/src/generated/peers/TSClassImplements.ts +7 -9
  166. package/build/libarkts-copy/src/generated/peers/TSConditionalType.ts +5 -7
  167. package/build/libarkts-copy/src/generated/peers/TSConstructorType.ts +6 -8
  168. package/build/libarkts-copy/src/generated/peers/TSEnumDeclaration.ts +8 -32
  169. package/build/libarkts-copy/src/generated/peers/TSEnumMember.ts +6 -8
  170. package/build/libarkts-copy/src/generated/peers/TSExternalModuleReference.ts +5 -7
  171. package/build/libarkts-copy/src/generated/peers/TSFunctionType.ts +6 -8
  172. package/build/libarkts-copy/src/generated/peers/TSImportEqualsDeclaration.ts +6 -8
  173. package/build/libarkts-copy/src/generated/peers/TSImportType.ts +6 -8
  174. package/build/libarkts-copy/src/generated/peers/TSIndexSignature.ts +5 -7
  175. package/build/libarkts-copy/src/generated/peers/TSIndexedAccessType.ts +5 -7
  176. package/build/libarkts-copy/src/generated/peers/TSInferType.ts +6 -8
  177. package/build/libarkts-copy/src/generated/peers/TSInterfaceBody.ts +5 -7
  178. package/build/libarkts-copy/src/generated/peers/TSInterfaceDeclaration.ts +19 -44
  179. package/build/libarkts-copy/src/generated/peers/TSInterfaceHeritage.ts +5 -7
  180. package/build/libarkts-copy/src/generated/peers/TSIntersectionType.ts +5 -7
  181. package/build/libarkts-copy/src/generated/peers/TSLiteralType.ts +5 -7
  182. package/build/libarkts-copy/src/generated/peers/TSMappedType.ts +6 -8
  183. package/build/libarkts-copy/src/generated/peers/TSMethodSignature.ts +6 -8
  184. package/build/libarkts-copy/src/generated/peers/TSModuleBlock.ts +5 -7
  185. package/build/libarkts-copy/src/generated/peers/TSModuleDeclaration.ts +5 -7
  186. package/build/libarkts-copy/src/generated/peers/TSNamedTupleMember.ts +5 -7
  187. package/build/libarkts-copy/src/generated/peers/TSNeverKeyword.ts +5 -7
  188. package/build/libarkts-copy/src/generated/peers/TSNonNullExpression.ts +5 -7
  189. package/build/libarkts-copy/src/generated/peers/TSNullKeyword.ts +5 -7
  190. package/build/libarkts-copy/src/generated/peers/TSNumberKeyword.ts +5 -7
  191. package/build/libarkts-copy/src/generated/peers/TSObjectKeyword.ts +5 -7
  192. package/build/libarkts-copy/src/generated/peers/TSParameterProperty.ts +5 -7
  193. package/build/libarkts-copy/src/generated/peers/TSParenthesizedType.ts +5 -7
  194. package/build/libarkts-copy/src/generated/peers/TSPropertySignature.ts +5 -7
  195. package/build/libarkts-copy/src/generated/peers/TSQualifiedName.ts +7 -9
  196. package/build/libarkts-copy/src/generated/peers/TSSignatureDeclaration.ts +6 -8
  197. package/build/libarkts-copy/src/generated/peers/TSStringKeyword.ts +5 -7
  198. package/build/libarkts-copy/src/generated/peers/TSThisType.ts +5 -7
  199. package/build/libarkts-copy/src/generated/peers/TSTupleType.ts +5 -7
  200. package/build/libarkts-copy/src/generated/peers/TSTypeAliasDeclaration.ts +32 -47
  201. package/build/libarkts-copy/src/generated/peers/TSTypeAssertion.ts +5 -7
  202. package/build/libarkts-copy/src/generated/peers/TSTypeLiteral.ts +5 -7
  203. package/build/libarkts-copy/src/generated/peers/TSTypeOperator.ts +5 -7
  204. package/build/libarkts-copy/src/generated/peers/TSTypeParameter.ts +17 -20
  205. package/build/libarkts-copy/src/generated/peers/TSTypeParameterDeclaration.ts +6 -8
  206. package/build/libarkts-copy/src/generated/peers/TSTypeParameterInstantiation.ts +5 -7
  207. package/build/libarkts-copy/src/generated/peers/TSTypePredicate.ts +5 -7
  208. package/build/libarkts-copy/src/generated/peers/TSTypeQuery.ts +5 -7
  209. package/build/libarkts-copy/src/generated/peers/TSTypeReference.ts +7 -9
  210. package/build/libarkts-copy/src/generated/peers/TSUndefinedKeyword.ts +5 -7
  211. package/build/libarkts-copy/src/generated/peers/TSUnionType.ts +5 -7
  212. package/build/libarkts-copy/src/generated/peers/TSUnknownKeyword.ts +5 -7
  213. package/build/libarkts-copy/src/generated/peers/TSVoidKeyword.ts +5 -7
  214. package/build/libarkts-copy/src/generated/peers/TaggedTemplateExpression.ts +7 -9
  215. package/build/libarkts-copy/src/generated/peers/TemplateElement.ts +6 -8
  216. package/build/libarkts-copy/src/generated/peers/TemplateLiteral.ts +6 -8
  217. package/build/libarkts-copy/src/generated/peers/ThisExpression.ts +5 -7
  218. package/build/libarkts-copy/src/generated/peers/ThrowStatement.ts +5 -7
  219. package/build/libarkts-copy/src/generated/peers/TryStatement.ts +7 -9
  220. package/build/libarkts-copy/src/generated/peers/TypeNode.ts +13 -14
  221. package/build/libarkts-copy/src/generated/peers/TypedAstNode.ts +3 -3
  222. package/build/libarkts-copy/src/generated/peers/TypedStatement.ts +3 -3
  223. package/build/libarkts-copy/src/generated/peers/TypeofExpression.ts +5 -7
  224. package/build/libarkts-copy/src/generated/peers/UnaryExpression.ts +5 -7
  225. package/build/libarkts-copy/src/generated/peers/UndefinedLiteral.ts +5 -7
  226. package/build/libarkts-copy/src/generated/peers/UpdateExpression.ts +5 -7
  227. package/build/libarkts-copy/src/generated/peers/VReg.ts +0 -1
  228. package/build/libarkts-copy/src/generated/peers/ValidationInfo.ts +3 -1
  229. package/build/libarkts-copy/src/generated/peers/VariableDeclaration.ts +16 -26
  230. package/build/libarkts-copy/src/generated/peers/VariableDeclarator.ts +6 -8
  231. package/build/libarkts-copy/src/generated/peers/VerificationContext.ts +0 -1
  232. package/build/libarkts-copy/src/generated/peers/VerifierMessage.ts +0 -1
  233. package/build/libarkts-copy/src/generated/peers/WhileStatement.ts +5 -7
  234. package/build/libarkts-copy/src/generated/peers/YieldExpression.ts +5 -7
  235. package/build/libarkts-copy/src/index.ts +4 -1
  236. package/build/libarkts-copy/src/plugin-utils.ts +8 -11
  237. package/build/libarkts-copy/src/reexport-for-generated.ts +1 -12
  238. package/build/libarkts-copy/src/tracer.ts +172 -0
  239. package/build/libarkts-copy/src/utils.ts +3 -0
  240. package/lib/index.js +1403 -544
  241. package/package.json +4 -3
  242. package/templates/factory.ts +0 -1
  243. package/templates/peer.ts +0 -1
  244. package/build/libarkts-copy/src/arkts-api/ChainExpressionFilter.ts +0 -79
  245. package/build/libarkts-copy/src/arkts-api/peers/SourcePosition.ts +0 -38
  246. package/build/libarkts-copy/src/generated/peers/FunctionDecl.ts +0 -45
  247. package/build/libarkts-copy/src/generated/peers/InterfaceDecl.ts +0 -45
  248. package/build/libarkts-copy/src/wrapper-compat/README.md +0 -20
  249. package/build/libarkts-copy/src/wrapper-compat/arkts-api/class-by-peer.ts +0 -46
  250. package/build/libarkts-copy/src/wrapper-compat/arkts-api/factory/nodeFactory.ts +0 -454
  251. package/build/libarkts-copy/src/wrapper-compat/arkts-api/factory/nodeTests.ts +0 -99
  252. package/build/libarkts-copy/src/wrapper-compat/arkts-api/index.ts +0 -88
  253. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ArrayExpression.ts +0 -38
  254. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ArrowFunctionExpression.ts +0 -35
  255. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/AssignmentExpression.ts +0 -38
  256. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/BlockStatement.ts +0 -27
  257. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/CallExpression.ts +0 -45
  258. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ClassDeclaration.ts +0 -27
  259. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ClassDefinition.ts +0 -73
  260. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ClassProperty.ts +0 -51
  261. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ETSFunctionType.ts +0 -42
  262. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ETSImportDeclaration.ts +0 -39
  263. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ETSParameterExpression.ts +0 -43
  264. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ExpressionStatement.ts +0 -28
  265. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/FunctionDeclaration.ts +0 -37
  266. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/FunctionExpression.ts +0 -28
  267. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/IfStatement.ts +0 -37
  268. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/MemberExpression.ts +0 -42
  269. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/MethodDefinition.ts +0 -46
  270. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/NumberLiteral.ts +0 -30
  271. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ObjectExpression.ts +0 -37
  272. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/Property.ts +0 -27
  273. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/ScriptFunction.ts +0 -46
  274. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/StructDeclaration.ts +0 -28
  275. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/TSInterfaceDeclaration.ts +0 -47
  276. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/TSTypeAliasDeclaration.ts +0 -40
  277. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/TSTypeParameter.ts +0 -36
  278. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/TryStatement.ts +0 -41
  279. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/VariableDeclaration.ts +0 -42
  280. package/build/libarkts-copy/src/wrapper-compat/arkts-api/node-utilities/VariableDeclarator.ts +0 -39
  281. package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/Diagnostic.ts +0 -38
  282. package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/DiagnosticInfo.ts +0 -34
  283. package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/DiagnosticKind.ts +0 -33
  284. package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/Program.ts +0 -105
  285. package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/SourcePosition.ts +0 -38
  286. package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/SourceRange.ts +0 -38
  287. package/build/libarkts-copy/src/wrapper-compat/arkts-api/peers/SuggestionInfo.ts +0 -34
  288. package/build/libarkts-copy/src/wrapper-compat/arkts-api/static/global.ts +0 -16
  289. package/build/libarkts-copy/src/wrapper-compat/arkts-api/to-be-generated/MemberExpression.ts +0 -108
  290. package/build/libarkts-copy/src/wrapper-compat/arkts-api/types.ts +0 -889
  291. package/build/libarkts-copy/src/wrapper-compat/arkts-api/utilities/nativePtrDecoder.ts +0 -69
  292. package/build/libarkts-copy/src/wrapper-compat/arkts-api/utilities/private.ts +0 -198
  293. package/build/libarkts-copy/src/wrapper-compat/arkts-api/utilities/public.ts +0 -327
  294. package/build/libarkts-copy/src/wrapper-compat/arkts-api/visitor.ts +0 -421
  295. package/build/libarkts-copy/src/wrapper-compat/index.ts +0 -20
  296. package/templates/node-map.ts +0 -35
@@ -0,0 +1,178 @@
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
+
16
+ #include "memoryTracker.h"
17
+
18
+ #include <cstdint>
19
+ #include <fstream>
20
+ #include <iostream>
21
+ #include <sstream>
22
+ #include <system_error>
23
+ #include <vector>
24
+ #include <regex>
25
+
26
+ #ifdef _WIN32
27
+ #include <windows.h>
28
+ #include <psapi.h>
29
+ #elif defined(__APPLE__)
30
+ #include <mach/mach.h>
31
+ #include <sys/resource.h>
32
+ #elif defined(__linux__)
33
+ #include <sys/resource.h>
34
+ #include <unistd.h>
35
+ #endif
36
+
37
+ constexpr const char* UNIT_K = "kB";
38
+ constexpr size_t BYTES_PER_KB = 1024;
39
+ constexpr const char* MEMORY_STATUS_FILE = "/proc/self/status";
40
+ const std::regex VM_RSS_REGEX(R"#(VmRSS:\s*(\d+)\s*([kKmMgG]?B))#",
41
+ std::regex_constants::ECMAScript | std::regex_constants::icase);
42
+ const std::regex VM_SIZE_REGEX(R"#(VmSize:\s*(\d+)\s*([kKmMgG]?B))#",
43
+ std::regex_constants::ECMAScript | std::regex_constants::icase);
44
+
45
+ constexpr int MATCH_GROUP_VALUE = 1;
46
+ constexpr int MATCH_GROUP_UNIT = 2;
47
+ constexpr int MATCH_GROUP_SIZE = 3;
48
+
49
+ #if defined(_WIN32)
50
+ MemoryStats GetMemoryStats()
51
+ {
52
+ MemoryStats stats = {0, 0, 0, 0, 0};
53
+ PROCESS_MEMORY_COUNTERS_EX pmc;
54
+ if (GetProcessMemoryInfo(GetCurrentProcess(),
55
+ reinterpret_cast<PROCESS_MEMORY_COUNTERS*>(&pmc), sizeof(pmc))) {
56
+ stats.currentRss = pmc.WorkingSetSize;
57
+ stats.peakRss = pmc.PeakWorkingSetSize;
58
+ stats.currentVss = pmc.PrivateUsage; // 私有内存使用量
59
+ stats.pageFaultsMinor = pmc.PageFaultCount;
60
+ // Windows API不直接提供主缺页错误计数
61
+ stats.pageFaultsMajor = 0;
62
+ }
63
+ return stats;
64
+ }
65
+
66
+ #elif defined(__APPLE__)
67
+ MemoryStats GetMemoryStats()
68
+ {
69
+ MemoryStats stats = {0, 0, 0, 0, 0};
70
+ struct rusage ru;
71
+ if (getrusage(RUSAGE_SELF, &ru) == 0) {
72
+ stats.currentRss = 0; // macOS需要专用API获取当前内存
73
+ stats.peakRss = ru.ru_maxrss; // macOS返回字节
74
+ stats.pageFaultsMinor = ru.ru_minflt;
75
+ stats.pageFaultsMajor = ru.ru_majflt;
76
+
77
+ // 获取当前内存使用 (macOS专用API)
78
+ task_basic_info info;
79
+ mach_msg_type_number_t count = TASK_BASIC_INFO_64_COUNT;
80
+ if (task_info(mach_task_self(), TASK_BASIC_INFO_64,
81
+ (task_info_t)&info, &count) == KERN_SUCCESS) {
82
+ stats.currentRss = info.resident_size; // 物理内存使用量
83
+ stats.currentVss = info.virtual_size; // 虚拟内存总量
84
+ }
85
+ }
86
+ return stats;
87
+ }
88
+
89
+ #elif defined(__linux__)
90
+ MemoryStats GetMemoryStats()
91
+ {
92
+ MemoryStats stats = {0, 0, 0, 0, 0};
93
+ struct rusage ru;
94
+ if (getrusage(RUSAGE_SELF, &ru) == 0) {
95
+ stats.peakRss = static_cast<size_t>(ru.ru_maxrss) * BYTES_PER_KB; // KB -> 字节
96
+ stats.pageFaultsMinor = ru.ru_minflt;
97
+ stats.pageFaultsMajor = ru.ru_majflt;
98
+ }
99
+ std::ifstream statusFile(MEMORY_STATUS_FILE);
100
+ if (!statusFile) {
101
+ return stats;
102
+ }
103
+ std::string line;
104
+ std::smatch matches;
105
+ while (std::getline(statusFile, line)) {
106
+ if (std::regex_match(line, matches, VM_RSS_REGEX) && matches.size() >= MATCH_GROUP_SIZE) {
107
+ stats.currentRss = std::stoull(matches[MATCH_GROUP_VALUE].str());
108
+ std::string unit = matches[MATCH_GROUP_UNIT].str();
109
+ if (unit == UNIT_K) {
110
+ stats.currentRss *= BYTES_PER_KB;
111
+ }
112
+ } else if (std::regex_match(line, matches, VM_SIZE_REGEX) && matches.size() >= MATCH_GROUP_SIZE) {
113
+ stats.currentVss = std::stoull(matches[MATCH_GROUP_VALUE].str());
114
+ std::string unit = matches[MATCH_GROUP_UNIT].str();
115
+ if (unit == UNIT_K) {
116
+ stats.currentVss *= BYTES_PER_KB;
117
+ }
118
+ }
119
+ }
120
+ return stats;
121
+ }
122
+ #endif
123
+
124
+ void MemoryTracker::Reset()
125
+ {
126
+ baseline = GetMemoryStats();
127
+ }
128
+
129
+ MemoryStats MemoryTracker::GetDelta()
130
+ {
131
+ MemoryStats current = GetMemoryStats();
132
+ MemoryStats delta = {
133
+ current.currentRss - baseline.currentRss,
134
+ current.peakRss - baseline.peakRss,
135
+ current.currentVss - baseline.currentVss,
136
+ current.pageFaultsMinor - baseline.pageFaultsMinor,
137
+ current.pageFaultsMajor - baseline.pageFaultsMajor
138
+ };
139
+ return delta;
140
+ }
141
+
142
+ template<typename Func>
143
+ MemoryStats MemoryTracker::MeasureMemory(Func&& func)
144
+ {
145
+ Reset();
146
+ auto preStats = GetMemoryStats();
147
+ func();
148
+ auto postStats = GetMemoryStats();
149
+
150
+ return {
151
+ postStats.currentRss - preStats.currentRss,
152
+ postStats.peakRss - preStats.peakRss,
153
+ postStats.currentVss - preStats.currentVss,
154
+ postStats.pageFaultsMinor - preStats.pageFaultsMinor,
155
+ postStats.pageFaultsMajor - preStats.pageFaultsMajor
156
+ };
157
+ }
158
+
159
+ void MemoryTracker::Report(MemoryStats stats)
160
+ {
161
+ auto formatBytes = [](size_t bytes) -> std::string {
162
+ const double kb = BYTES_PER_KB;
163
+ const double mb = kb * BYTES_PER_KB;
164
+ const double gb = mb * BYTES_PER_KB;
165
+
166
+ if (bytes > gb) return std::to_string(bytes / gb) + " GB";
167
+ if (bytes > mb) return std::to_string(bytes / mb) + " MB";
168
+ if (bytes > kb) return std::to_string(bytes / kb) + " KB";
169
+ return std::to_string(bytes) + " B";
170
+ };
171
+
172
+ std::cout << "Current RSS: " << formatBytes(stats.currentRss) << "\n";
173
+ std::cout << "Peak RSS : " << formatBytes(stats.peakRss) << "\n";
174
+ std::cout << "VSS : " << formatBytes(stats.currentVss) << "\n";
175
+ std::cout << "FaultsMinor: " << stats.pageFaultsMinor << "\n";
176
+ std::cout << "FaultsMajor: " << stats.pageFaultsMajor << "\n";
177
+ return;
178
+ }
@@ -0,0 +1,52 @@
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
+
16
+ #ifndef KOALA_MEMORY_TRACKER
17
+ #define KOALA_MEMORY_TRACKER
18
+
19
+ #include <cstddef>
20
+ #include <string>
21
+
22
+ // 内存统计结构体
23
+ struct MemoryStats {
24
+ size_t currentRss = 0; // 当前驻留集大小 (字节)
25
+ size_t peakRss = 0; // 峰值驻留集大小 (字节)
26
+ size_t currentVss = 0; // 当前虚拟内存大小 (字节)
27
+ size_t pageFaultsMinor = 0; // 小页错误次数
28
+ size_t pageFaultsMajor = 0; // 大页错误次数
29
+ };
30
+
31
+ class MemoryTracker {
32
+ public:
33
+ MemoryTracker()
34
+ {
35
+ Reset();
36
+ }
37
+
38
+ void Reset();
39
+ MemoryStats GetDelta();
40
+
41
+ template<typename Func>
42
+ MemoryStats MeasureMemory(Func&& func);
43
+
44
+ void Report(MemoryStats stats);
45
+
46
+ private:
47
+ MemoryStats baseline;
48
+ };
49
+
50
+ MemoryStats GetMemoryStats();
51
+
52
+ #endif
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@koalaui/libarkts",
3
- "version": "1.7.6+devel",
3
+ "version": "1.7.9+devel",
4
4
  "bin": "./lib/es2panda",
5
5
  "typesVersions": {
6
6
  "*": {
@@ -23,19 +23,18 @@
23
23
  "./plugins/build/src/**/*"
24
24
  ],
25
25
  "config": {
26
- "gen_version": "2.1.9-arktscgen-8",
27
26
  "panda_sdk_path": "../../incremental/tools/panda/node_modules/@panda/sdk",
28
- "ohos_panda_sdk_path": "../build/sdk",
29
27
  "panda_sdk_version": "next"
30
28
  },
31
29
  "dependencies": {
32
30
  "@koalaui/ets-tsc": "4.9.5-r6",
33
- "@koalaui/build-common": "1.7.6+devel",
34
- "@koalaui/compat": "1.7.6+devel",
35
- "@koalaui/common": "1.7.6+devel",
36
- "@koalaui/harness": "1.7.6+devel",
37
- "@koalaui/interop": "1.7.6+devel",
38
- "@koalaui/fast-arktsc": "file:../fast-arktsc",
31
+ "@koalaui/build-common": "1.7.9+devel",
32
+ "@koalaui/compat": "1.7.9+devel",
33
+ "@koalaui/common": "1.7.9+devel",
34
+ "@koalaui/harness": "1.7.9+devel",
35
+ "@koalaui/interop": "1.7.9+devel",
36
+ "@koalaui/fast-arktsc": "1.7.9+devel",
37
+ "@idlizer/arktscgen": "2.1.10-arktscgen-2",
39
38
  "@types/mocha": "^9.1.0",
40
39
  "mocha": "^9.2.2",
41
40
  "node-addon-api": "8.0.0",
@@ -70,18 +69,16 @@
70
69
  "run:memo": "npm run compile && npm run compile:plugins && npm run compile --prefix ../memo-plugin && npm run memo",
71
70
  "run:abc": "$npm_package_config_panda_sdk_path/linux_host_tools/bin/ark --load-runtimes=ets --boot-panda-files=$npm_package_config_panda_sdk_path/ets/etsstdlib.abc ./main.abc main.ETSGLOBAL::main",
72
71
  "mocha": "PANDA_SDK_PATH=${PANDA_SDK_PATH:=$npm_package_config_panda_sdk_path} TS_NODE_PROJECT=./test/tsconfig.json mocha -r tsconfig-paths/register --reporter-option maxDiffSize=0",
73
- "mocha:ohos": "PANDA_SDK_PATH=${PANDA_SDK_PATH:=$npm_package_config_ohos_panda_sdk_path} TS_NODE_PROJECT=./test/tsconfig.json mocha -r tsconfig-paths/register --reporter-option maxDiffSize=0",
74
72
  "test:light": "npm run mocha",
75
73
  "test": "npm run compile:native && npm run test:light",
76
74
  "test:golden": "npm run compile:native && TEST_GOLDEN=1 npm run test:light",
77
75
  "compile:playground": "cd playground && meson setup build && meson compile -C build",
78
- "run:playground": "npm run compile:playground && ./playground/build/playground.out",
76
+ "run:playground": "npm run compile:playground && mkdir -p build && ./playground/build/playground _ --extension ets --stdlib ../../incremental/tools/panda/node_modules/@panda/sdk/ets/stdlib --output build/playground.abc ./playground/src/main.ets",
79
77
  "panda:sdk:clean": "cd ../../incremental/tools/panda && rimraf node_modules",
80
78
  "panda:sdk:install": "cd ../../incremental/tools/panda && echo \"Installing panda sdk $npm_package_config_panda_sdk_version\" && PANDA_SDK_VERSION=$npm_package_config_panda_sdk_version npm run panda:sdk:install",
81
79
  "panda:sdk:reinstall": "npm run panda:sdk:clean && npm run panda:sdk:install",
82
80
  "regenerate:current": "rimraf -rf src/generated && npm run compile -C ../../../arktscgen && node ../../../arktscgen --panda-sdk-path $npm_package_config_panda_sdk_path --output-dir ../ --options-file ./generator/options.json5 --no-initialize --debug",
83
- "regenerate": "rimraf -rf src/generated && npx --yes @idlizer/arktscgen@$npm_package_config_gen_version --panda-sdk-path $npm_package_config_panda_sdk_path --output-dir ../ --options-file ./generator/options.json5 --no-initialize",
84
- "regenerate:ohos": "npx --yes @idlizer/arktscgen@$npm_package_config_gen_version --panda-sdk-path ${PANDA_SDK_PATH:=$npm_package_config_ohos_panda_sdk_path} --output-dir ../ --options-file ./generator/options.json5 --no-initialize",
81
+ "regenerate": "rimraf -rf src/generated && arktscgen --panda-sdk-path ${PANDA_SDK_PATH:=$npm_package_config_panda_sdk_path} --output-dir ../ --options-file ./generator/options.json5 --no-initialize",
85
82
  "reinstall:regenerate": "npm run panda:sdk:reinstall && npm run regenerate && git diff --shortstat"
86
83
  }
87
- }
84
+ }
@@ -39,18 +39,9 @@ export class Es2pandaNativeModule {
39
39
  _AstNodeRebind(context: KPtr, node: KPtr): void {
40
40
  throw new Error("Not implemented")
41
41
  }
42
- _AstNodeRecheck(context: KPtr, node: KPtr): void {
43
- throw new Error("Not implemented")
44
- }
45
42
  _ContextState(context: KPtr): KInt {
46
43
  throw new Error("Not implemented")
47
44
  }
48
- _ContextErrorMessage(context: KPtr): KPtr {
49
- throw new Error("Not implemented")
50
- }
51
- _GetAllErrorMessages(context: KPtr): KPtr {
52
- throw new Error("Not implemented")
53
- }
54
45
  _AstNodeChildren(context: KPtr, node: KPtr): KPtr {
55
46
  throw new Error("Not implemented")
56
47
  }
@@ -90,12 +81,6 @@ export class Es2pandaNativeModule {
90
81
  _ProceedToState(context: KPtr, state: number): void {
91
82
  throw new Error("Not implemented")
92
83
  }
93
- _ContextProgram(context: KPtr): KPtr {
94
- throw new Error("Not implemented")
95
- }
96
- _ProgramAst(context: KPtr, program: KPtr): KPtr {
97
- throw new Error("Not implemented")
98
- }
99
84
  _CheckerStartChecker(context: KPtr): KBoolean {
100
85
  throw new Error("Not implemented")
101
86
  }
@@ -108,6 +93,9 @@ export class Es2pandaNativeModule {
108
93
  _AstNodeSetChildrenParentPtr(context: KPtr, node: KPtr): void {
109
94
  throw new Error("Not implemented")
110
95
  }
96
+ _AstNodeOnUpdate(context: KPtr, newNode: KPtr, replacedNode: KPtr): void {
97
+ throw new Error("Not implemented")
98
+ }
111
99
  _AstNodeUpdateAll(context: KPtr, node: KPtr): void {
112
100
  throw new Error("Not implemented")
113
101
  }
@@ -117,9 +105,6 @@ export class Es2pandaNativeModule {
117
105
  _DeclNode(context: KPtr, decl: KPtr): KPtr {
118
106
  throw new Error("Not implemented")
119
107
  }
120
- _DeclarationFromIdentifier(context: KPtr, identifier: KPtr): KPtr {
121
- throw new Error("Not implemented")
122
- }
123
108
  _ProgramSourceFilePath(context: KNativePointer, instance: KNativePointer): KNativePointer {
124
109
  throw new Error("Not implemented");
125
110
  }
@@ -138,22 +123,13 @@ export class Es2pandaNativeModule {
138
123
  _ETSParserBuildImportDeclaration(context: KNativePointer, importKinds: KInt, specifiers: KNativePointerArray, specifiersSequenceLength: KUInt, source: KNativePointer, program: KNativePointer, flags: KInt): KNativePointer {
139
124
  throw new Error("Not implemented");
140
125
  }
141
- _InsertETSImportDeclarationAndParse(context: KNativePointer, program: KNativePointer, importDeclaration: KNativePointer): void {
142
- throw new Error("Not implemented");
143
- }
144
126
  _ImportPathManagerResolvePathConst(context: KNativePointer, importPathManager: KNativePointer, currentModulePath: String, importPath: String, sourcePosition: KNativePointer): KNativePointer {
145
127
  throw new Error("Not implemented");
146
128
  }
147
129
  _ETSParserGetImportPathManager(context: KNativePointer): KPtr {
148
130
  throw new Error("Not implemented");
149
131
  }
150
- _CreateSourcePosition(context: KNativePointer, index: KInt, line: KInt): KNativePointer {
151
- throw new Error("Not implemented");
152
- }
153
- _SourcePositionIndex(context: KNativePointer, instance: KNativePointer): KInt {
154
- throw new Error("Not implemented");
155
- }
156
- _SourcePositionLine(context: KNativePointer, instance: KNativePointer): KInt {
132
+ _SourcePositionCol(context: KNativePointer, instance: KNativePointer): KUInt {
157
133
  throw new Error("Not implemented");
158
134
  }
159
135
  _ConfigGetOptions(config: KNativePointer): KNativePointer {
@@ -162,6 +138,9 @@ export class Es2pandaNativeModule {
162
138
  _OptionsArkTsConfig(context: KNativePointer, options: KNativePointer): KNativePointer {
163
139
  throw new Error("Not implemented");
164
140
  }
141
+ _Checker_CreateOpaqueTypeNode(context: KNativePointer, type: KNativePointer): KNativePointer {
142
+ throw new Error("Not implemented");
143
+ }
165
144
  _Checker_ScriptFunctionSignature(context: KNativePointer, node: KNativePointer): KNativePointer {
166
145
  throw new Error("Not implemented");
167
146
  }
@@ -177,33 +156,30 @@ export class Es2pandaNativeModule {
177
156
  _Checker_ScriptFunctionSetPreferredReturnType(context: KNativePointer, node: KNativePointer, type: KNativePointer): void {
178
157
  throw new Error("Not implemented");
179
158
  }
180
- _Checker_TypeToString(context: KNativePointer, type: KNativePointer): KNativePointer {
159
+ _Checker_ExpressionGetPreferredType(context: KNativePointer, node: KNativePointer): KNativePointer {
181
160
  throw new Error("Not implemented");
182
161
  }
183
- _Checker_TypeNodeGetType(context: KNativePointer, node: KNativePointer): KNativePointer {
162
+ _Checker_ExpressionSetPreferredType(context: KNativePointer, node: KNativePointer, type: KNativePointer): void {
184
163
  throw new Error("Not implemented");
185
164
  }
186
- _JsdocStringFromDeclaration(context: KPtr, node: KPtr): KPtr {
187
- throw new Error("Not implemented")
188
- }
189
-
190
- // From koala-wrapper
191
- _ClassVariableDeclaration(context: KNativePointer, classInstance: KNativePointer): KNativePointer {
192
- throw new Error("Not implemented")
165
+ _Checker_TypeToString(context: KNativePointer, type: KNativePointer): KNativePointer {
166
+ throw new Error("Not implemented");
193
167
  }
194
- _IsMethodDefinition(node: KPtr): KBoolean {
195
- throw new Error("Not implemented")
168
+ _Checker_TypeClone(context: KNativePointer, type: KNativePointer): KNativePointer {
169
+ throw new Error("Not implemented");
196
170
  }
197
- _SourceRangeStart(context: KNativePointer, range: KNativePointer): KNativePointer {
198
- throw new Error("Not implemented")
171
+ _Checker_TypeNodeGetType(context: KNativePointer, node: KNativePointer): KNativePointer {
172
+ throw new Error("Not implemented");
199
173
  }
200
- _SourceRangeEnd(context: KNativePointer, range: KNativePointer): KNativePointer {
174
+ _ScriptFunctionSetParams(context: KNativePointer, receiver: KNativePointer, paramsList: BigUint64Array, paramsListLength: KUInt): void {
201
175
  throw new Error("Not implemented")
202
176
  }
203
- _CreateSourceRange(context: KNativePointer, start: KNativePointer, end: KNativePointer): KNativePointer {
177
+ _ClassDefinitionSetBody(context: KNativePointer, receiver: KNativePointer, body: BigUint64Array, bodyLength: KUInt): void {
204
178
  throw new Error("Not implemented")
205
179
  }
206
- _IsArrayExpression(node: KPtr): KBoolean {
180
+
181
+ // From koala-wrapper
182
+ _ClassVariableDeclaration(context: KNativePointer, classInstance: KNativePointer): KNativePointer {
207
183
  throw new Error("Not implemented")
208
184
  }
209
185
  _ETSParserGetGlobalProgramAbsName(context: KNativePointer): KNativePointer {
@@ -216,16 +192,12 @@ export class Es2pandaNativeModule {
216
192
  throw new Error("Not implemented")
217
193
  }
218
194
  _CreateSuggestionInfo(context: KNativePointer, kind: KNativePointer, args: string[],
219
- argc: number, substitutionCode: string, range: KNativePointer): KNativePointer {
195
+ argc: number, substitutionCode: string, title: string, range: KNativePointer): KNativePointer {
220
196
  throw new Error("Not implemented")
221
197
  }
222
198
  _LogDiagnostic(context: KNativePointer, kind: KNativePointer, argv: string[], argc: number, pos: KNativePointer): void {
223
199
  throw new Error("Not implemented")
224
200
  }
225
- _LogDiagnosticWithSuggestion(context: KNativePointer, diagnosticInfo: KNativePointer,
226
- suggestionInfo?: KNativePointer): void {
227
- throw new Error("Not implemented")
228
- }
229
201
  _SetUpSoPath(soPath: string): void {
230
202
  throw new Error("Not implemented")
231
203
  }
@@ -241,15 +213,32 @@ export class Es2pandaNativeModule {
241
213
  _GenerateTsDeclarationsFromContext(config: KPtr, outputDeclEts: String, outputEts: String, exportAll: KBoolean, isolated: KBoolean, recordFile: String): KPtr {
242
214
  throw new Error("Not implemented")
243
215
  }
244
- _GenerateStaticDeclarationsFromContext(config: KPtr, outputPath: String): KPtr {
245
- throw new Error("Not implemented")
246
- }
247
216
  _AstNodeProgram(context: KNativePointer, instance: KNativePointer): KNativePointer {
248
217
  throw new Error("Not implemented")
249
218
  }
250
219
  _CreateContextGenerateAbcForExternalSourceFiles(config: KPtr, fileCount: KInt, filenames: string[]): KPtr {
251
220
  throw new Error('Not implemented');
252
221
  }
222
+
223
+ _GetCompilationMode(config: KNativePointer): KInt {
224
+ throw new Error('Not implemented');
225
+ }
226
+
227
+ _CreateTypeNodeFromTsType(context: KNativePointer, classInstance: KNativePointer): KNativePointer {
228
+ throw new Error('Not implemented');
229
+ }
230
+
231
+ _MemoryTrackerReset(context: KNativePointer): void {
232
+ throw new Error('Not implemented');
233
+ }
234
+
235
+ _MemoryTrackerGetDelta(context: KNativePointer): void {
236
+ throw new Error('Not implemented');
237
+ }
238
+
239
+ _MemoryTrackerPrintCurrent(context: KNativePointer): void {
240
+ throw new Error('Not implemented');
241
+ }
253
242
  }
254
243
 
255
244
  export function findNativeModule(): string {
@@ -62,7 +62,7 @@ export class ImportStorage {
62
62
  Es2pandaImportFlags.IMPORT_FLAGS_NONE, // Improve: where to get it?
63
63
  )
64
64
  )
65
- global.es2panda._InsertETSImportDeclarationAndParse(global.context, this.program.peer, importDeclaration.peer)
65
+ global.generatedEs2panda._InsertETSImportDeclarationAndParse(global.context, this.program.peer, importDeclaration.peer)
66
66
  newStatements.push(importDeclaration)
67
67
  } else {
68
68
  newStatements.push(statement)
@@ -16,17 +16,18 @@
16
16
  import { Es2pandaAstNodeType } from "../generated/Es2pandaEnums"
17
17
  import { throwError } from "../utils"
18
18
  import { global } from "./static/global"
19
- import { KNativePointer, nullptr } from "@koalaui/interop"
19
+ import { KNativePointer } from "@koalaui/interop"
20
20
  import { AstNode } from "./peers/AstNode"
21
21
  import { NodeCache } from "./node-cache"
22
22
 
23
23
  export const nodeByType = new Map<Es2pandaAstNodeType, (peer: KNativePointer) => AstNode>([])
24
24
 
25
- export function classByPeer<T extends AstNode>(peer: KNativePointer): T {
26
- if (peer === nullptr) {
27
- throwError('classByPeer: peer is NULLPTR')
25
+ export function nodeFrom<T extends AstNode>(peer: KNativePointer, typeHint?: Es2pandaAstNodeType): T {
26
+ const fromCache = NodeCache.get<T>(peer)
27
+ if (fromCache) {
28
+ return fromCache
28
29
  }
29
- const type = global.generatedEs2panda._AstNodeTypeConst(global.context, peer)
30
+ const type = typeHint ?? global.generatedEs2panda._AstNodeTypeConst(global.context, peer)
30
31
  const create = nodeByType.get(type) ?? throwError(`unknown node type: ${type}`)
31
- return NodeCache.cached(peer, create)
32
+ return create(peer) as T
32
33
  }
@@ -47,11 +47,12 @@ import { createMethodDefinition, updateMethodDefinition } from "../node-utilitie
47
47
  import { createTSInterfaceDeclaration, updateTSInterfaceDeclaration } from "../node-utilities/TSInterfaceDeclaration"
48
48
  import { updateTryStatement } from "../node-utilities/TryStatement"
49
49
  import { createAssignmentExpression, updateAssignmentExpression } from "../node-utilities/AssignmentExpression"
50
- import { updateObjectExpression } from "../node-utilities/ObjectExpression"
50
+ import { createObjectExpression, updateObjectExpression } from "../node-utilities/ObjectExpression"
51
51
  import { updateETSTuple } from "../node-utilities/ETSTuple"
52
52
  import { createArrayExpression, updateArrayExpression } from "../node-utilities/ArrayExpression"
53
53
  import { updateBlockStatement } from "../node-utilities/BlockStatement"
54
54
  import { updateETSModule } from "../node-utilities/ETSModule"
55
+ import { createOpaqueTypeNode } from "../node-utilities/OpaqueTypeNode"
55
56
 
56
57
  export const factory = {
57
58
  ...generatedFactory,
@@ -110,7 +111,7 @@ export const factory = {
110
111
  createAssignmentExpression,
111
112
  updateAssignmentExpression,
112
113
 
113
- createObjectExpression: ObjectExpression.createObjectExpression,
114
+ createObjectExpression,
114
115
  updateObjectExpression,
115
116
 
116
117
  createETSTuple: ETSTuple.create2ETSTuple,
@@ -123,4 +124,6 @@ export const factory = {
123
124
  updateBlockStatement,
124
125
 
125
126
  updateInterfaceBody : generatedFactory.updateTSInterfaceBody,
127
+
128
+ createOpaqueTypeNode,
126
129
  }
@@ -16,12 +16,12 @@
16
16
  export * from "../generated/Es2pandaEnums"
17
17
  export * from "../generated"
18
18
 
19
+ export * from "./utilities/performance"
19
20
  export * from "./utilities/private"
20
21
  export * from "./utilities/public"
21
22
  export * from "./factory/nodeFactory"
22
23
  export * from "./visitor"
23
24
  export * from "./AbstractVisitor"
24
- export * from "./ChainExpressionFilter"
25
25
  export * from "./plugins"
26
26
  export * from "./ImportStorage"
27
27
  export * from "./ProgramProvider"
@@ -32,6 +32,7 @@ export * from "./peers/Context"
32
32
  export { GlobalContext } from "./peers/Context"
33
33
  export * from "./peers/ExternalSource"
34
34
  export * from "./peers/Options"
35
+ export * from "./peers/DiagnosticKind"
35
36
  export * from "./node-utilities/ArkTsConfig"
36
37
  export * from "./node-utilities/Program"
37
38
  export * from "./peers/ImportPathManager"
@@ -15,25 +15,25 @@
15
15
 
16
16
  import { KNativePointer } from "@koalaui/interop"
17
17
  import { AstNode } from "./peers/AstNode"
18
+ import { Es2pandaAstNodeType } from "src/generated/Es2pandaEnums"
18
19
 
19
20
  export class NodeCache {
20
21
  private static cache = new Map<KNativePointer, AstNode>()
21
22
 
22
- static cached<T extends AstNode>(pointer: KNativePointer, factory: (pointer: KNativePointer) => AstNode): T {
23
- const cached = NodeCache.cache.get(pointer)
24
- if (cached !== undefined) {
25
- return cached as T
26
- }
27
- const node = factory(pointer)
28
- NodeCache.addToCache(pointer, node)
29
- return node as T
23
+ static get<T extends AstNode>(pointer: KNativePointer): T | undefined {
24
+ return NodeCache.cache.get(pointer) as T | undefined
30
25
  }
31
26
 
32
27
  public static addToCache(pointer: KNativePointer, node: AstNode) {
33
- NodeCache.cache.set(pointer, node)
28
+ if (node.astNodeType == Es2pandaAstNodeType.AST_NODE_TYPE_SCRIPT_FUNCTION
29
+ || node.astNodeType == Es2pandaAstNodeType.AST_NODE_TYPE_ETS_FUNCTION_TYPE
30
+ || node.astNodeType == Es2pandaAstNodeType.AST_NODE_TYPE_CALL_EXPRESSION) {
31
+ NodeCache.cache.set(pointer, node)
32
+ }
34
33
  }
35
34
 
36
35
  public static clear(): void {
36
+ console.log("SIZE WAS", NodeCache.cache.size, "ON CLEAR")
37
37
  NodeCache.cache.clear()
38
38
  }
39
39
  }
@@ -14,12 +14,13 @@
14
14
  */
15
15
 
16
16
  import { ArkTsConfig } from "../../generated"
17
+ import { traceGlobal } from "../../tracer"
17
18
 
18
19
  export function dumpArkTsConfigInfo(arkTsConfig: ArkTsConfig) {
19
- console.log(`ArkTsConfig info:`)
20
- console.log(`\tBaseUrl: ${arkTsConfig.baseUrl}`)
21
- console.log(`\tConfigPath: ${arkTsConfig.configPath}`)
22
- console.log(`\tOutDir: ${arkTsConfig.outDir}`)
23
- console.log(`\tPackage: ${arkTsConfig.package}`)
24
- console.log(`\tRootDir: ${arkTsConfig.rootDir}`)
20
+ traceGlobal(() => `ArkTsConfig info:`)
21
+ traceGlobal(() => `\tBaseUrl: ${arkTsConfig.baseUrl}`)
22
+ traceGlobal(() => `\tConfigPath: ${arkTsConfig.configPath}`)
23
+ traceGlobal(() => `\tOutDir: ${arkTsConfig.outDir}`)
24
+ traceGlobal(() => `\tPackage: ${arkTsConfig.package}`)
25
+ traceGlobal(() => `\tRootDir: ${arkTsConfig.rootDir}`)
25
26
  }
@@ -17,6 +17,7 @@ import { global } from "../static/global"
17
17
  import { NumberLiteral } from "../../generated"
18
18
  import { isSameNativeObject } from "../peers/ArktsObject"
19
19
  import { updateNodeByNode } from "../utilities/private"
20
+ import { Es2pandaAstNodeType } from "../../generated/Es2pandaEnums"
20
21
 
21
22
  export function createNumberLiteral(
22
23
  value: number
@@ -25,7 +26,8 @@ export function createNumberLiteral(
25
26
  global.es2panda._CreateNumberLiteral(
26
27
  global.context,
27
28
  value
28
- )
29
+ ),
30
+ Es2pandaAstNodeType.AST_NODE_TYPE_NUMBER_LITERAL,
29
31
  )
30
32
  }
31
33