@idlizer/arktscgen 2.1.10-arktscgen-2 → 2.1.10-arktscgen-3a
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 +89 -6
- package/build/libarkts-copy/native/meson.build +1 -0
- package/build/libarkts-copy/native/src/bridges.cc +10 -4
- package/build/libarkts-copy/native/src/common.cc +0 -12
- package/build/libarkts-copy/native/src/generated/bridges.cc +416 -723
- package/build/libarkts-copy/native/src/memoryTracker.cc +178 -0
- package/build/libarkts-copy/native/src/memoryTracker.h +52 -0
- package/build/libarkts-copy/package.json +8 -8
- package/build/libarkts-copy/src/Es2pandaNativeModule.ts +14 -2
- package/build/libarkts-copy/src/arkts-api/class-by-peer.ts +2 -2
- package/build/libarkts-copy/src/arkts-api/index.ts +2 -1
- package/build/libarkts-copy/src/arkts-api/node-utilities/ScriptFunction.ts +1 -1
- package/build/libarkts-copy/src/arkts-api/peers/AstNode.ts +4 -1
- package/{templates/node-map.ts → build/libarkts-copy/src/arkts-api/peers/DiagnosticKind.ts} +8 -19
- package/build/libarkts-copy/src/arkts-api/utilities/extensions.ts +26 -9
- package/build/libarkts-copy/src/arkts-api/utilities/performance.ts +309 -0
- package/build/libarkts-copy/src/arkts-api/utilities/private.ts +7 -21
- package/build/libarkts-copy/src/arkts-api/utilities/public.ts +61 -7
- package/build/libarkts-copy/src/arkts-api/visitor.ts +21 -14
- package/build/libarkts-copy/src/generated/Es2pandaEnums.ts +1 -0
- package/build/libarkts-copy/src/generated/Es2pandaNativeModule.ts +88 -172
- package/build/libarkts-copy/src/generated/factory.ts +2 -3
- package/build/libarkts-copy/src/generated/peers/AnnotatedAstNode.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/AnnotatedExpression.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/AnnotatedStatement.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/AnnotationDeclaration.ts +11 -13
- package/build/libarkts-copy/src/generated/peers/AnnotationUsage.ts +1 -2
- package/build/libarkts-copy/src/generated/peers/ArkTsConfig.ts +3 -1
- package/build/libarkts-copy/src/generated/peers/ArrayExpression.ts +0 -5
- package/build/libarkts-copy/src/generated/peers/ArrowFunctionExpression.ts +12 -14
- package/build/libarkts-copy/src/generated/peers/AssertStatement.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/AssignmentExpression.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/AstDumper.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/AstVerifier.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/AstVisitor.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/AwaitExpression.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/BigIntLiteral.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/BinaryExpression.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/BindingProps.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/BlockExpression.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/BlockStatement.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/BooleanLiteral.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/BreakStatement.ts +1 -2
- package/build/libarkts-copy/src/generated/peers/CallExpression.ts +6 -2
- package/build/libarkts-copy/src/generated/peers/CatchClause.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ChainExpression.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/CharLiteral.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ClassDeclaration.ts +1 -24
- package/build/libarkts-copy/src/generated/peers/ClassDefinition.ts +26 -20
- package/build/libarkts-copy/src/generated/peers/ClassElement.ts +2 -30
- package/build/libarkts-copy/src/generated/peers/ClassExpression.ts +1 -2
- package/build/libarkts-copy/src/generated/peers/ClassProperty.ts +10 -12
- package/build/libarkts-copy/src/generated/peers/ClassStaticBlock.ts +1 -2
- package/build/libarkts-copy/src/generated/peers/CodeGen.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ConditionalExpression.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ContinueStatement.ts +1 -2
- package/build/libarkts-copy/src/generated/peers/DebuggerStatement.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/Declaration.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/Decorator.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/DiagnosticInfo.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/DirectEvalExpression.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/DoWhileStatement.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/DynamicImportData.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ETSClassLiteral.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ETSFunctionType.ts +9 -3
- package/build/libarkts-copy/src/generated/peers/ETSImportDeclaration.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ETSIntrinsicNode.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ETSKeyofType.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ETSModule.ts +12 -14
- package/build/libarkts-copy/src/generated/peers/ETSNewArrayInstanceExpression.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ETSNewClassInstanceExpression.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ETSNewMultiDimArrayInstanceExpression.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ETSNullType.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ETSPackageDeclaration.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ETSParameterExpression.ts +13 -15
- package/build/libarkts-copy/src/generated/peers/ETSPrimitiveType.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ETSReExportDeclaration.ts +1 -2
- package/build/libarkts-copy/src/generated/peers/ETSStringLiteralType.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ETSStructDeclaration.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ETSTuple.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ETSTypeReference.ts +2 -3
- package/build/libarkts-copy/src/generated/peers/ETSTypeReferencePart.ts +3 -4
- package/build/libarkts-copy/src/generated/peers/ETSUndefinedType.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ETSUnionType.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ETSWildcardType.ts +1 -2
- package/build/libarkts-copy/src/generated/peers/EmptyStatement.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ErrorLogger.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ExportAllDeclaration.ts +2 -3
- package/build/libarkts-copy/src/generated/peers/ExportDefaultDeclaration.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ExportNamedDeclaration.ts +2 -3
- package/build/libarkts-copy/src/generated/peers/ExportSpecifier.ts +2 -3
- package/build/libarkts-copy/src/generated/peers/Expression.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ExpressionStatement.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ForInStatement.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ForOfStatement.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ForUpdateStatement.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/FunctionDeclaration.ts +10 -16
- package/build/libarkts-copy/src/generated/peers/FunctionExpression.ts +2 -3
- package/build/libarkts-copy/src/generated/peers/FunctionSignature.ts +2 -2
- package/build/libarkts-copy/src/generated/peers/IRNode.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/Identifier.ts +0 -10
- package/build/libarkts-copy/src/generated/peers/IfStatement.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ImportDeclaration.ts +1 -2
- package/build/libarkts-copy/src/generated/peers/ImportDefaultSpecifier.ts +1 -2
- package/build/libarkts-copy/src/generated/peers/ImportExpression.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ImportNamespaceSpecifier.ts +1 -2
- package/build/libarkts-copy/src/generated/peers/ImportSource.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ImportSpecifier.ts +2 -3
- package/build/libarkts-copy/src/generated/peers/IndexInfo.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/LabelPair.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/LabelledStatement.ts +1 -2
- package/build/libarkts-copy/src/generated/peers/Literal.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/LoopStatement.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/MaybeOptionalExpression.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/MemberExpression.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/MetaProperty.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/MethodDefinition.ts +5 -6
- package/build/libarkts-copy/src/generated/peers/NamedType.ts +2 -3
- package/build/libarkts-copy/src/generated/peers/NewExpression.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/NullLiteral.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/NumberLiteral.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ObjectDescriptor.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ObjectExpression.ts +0 -5
- package/build/libarkts-copy/src/generated/peers/OmittedExpression.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/OpaqueTypeNode.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/OverloadDeclaration.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/PrefixAssertionExpression.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/Program.ts +9 -2
- package/build/libarkts-copy/src/generated/peers/Property.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/RegExpLiteral.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ReturnStatement.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ScopeFindResult.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ScriptFunction.ts +22 -19
- package/build/libarkts-copy/src/generated/peers/ScriptFunctionData.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/SequenceExpression.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/SignatureInfo.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/SourcePosition.ts +2 -1
- package/build/libarkts-copy/src/generated/peers/SourceRange.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/SpreadElement.ts +0 -5
- package/build/libarkts-copy/src/generated/peers/SrcDumper.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/Statement.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/StringLiteral.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/SuggestionInfo.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/SuperExpression.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/SwitchCaseStatement.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/SwitchStatement.ts +1 -2
- package/build/libarkts-copy/src/generated/peers/TSAnyKeyword.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSArrayType.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSAsExpression.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSBigintKeyword.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSBooleanKeyword.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSClassImplements.ts +1 -2
- package/build/libarkts-copy/src/generated/peers/TSConditionalType.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSConstructorType.ts +1 -2
- package/build/libarkts-copy/src/generated/peers/TSEnumDeclaration.ts +2 -25
- package/build/libarkts-copy/src/generated/peers/TSEnumMember.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSExternalModuleReference.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSFunctionType.ts +1 -2
- package/build/libarkts-copy/src/generated/peers/TSImportEqualsDeclaration.ts +1 -2
- package/build/libarkts-copy/src/generated/peers/TSImportType.ts +1 -2
- package/build/libarkts-copy/src/generated/peers/TSIndexSignature.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSIndexedAccessType.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSInferType.ts +1 -2
- package/build/libarkts-copy/src/generated/peers/TSInterfaceBody.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSInterfaceDeclaration.ts +14 -38
- package/build/libarkts-copy/src/generated/peers/TSInterfaceHeritage.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSIntersectionType.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSLiteralType.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSMappedType.ts +1 -2
- package/build/libarkts-copy/src/generated/peers/TSMethodSignature.ts +1 -2
- package/build/libarkts-copy/src/generated/peers/TSModuleBlock.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSModuleDeclaration.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSNamedTupleMember.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSNeverKeyword.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSNonNullExpression.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSNullKeyword.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSNumberKeyword.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSObjectKeyword.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSParameterProperty.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSParenthesizedType.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSPropertySignature.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSQualifiedName.ts +2 -3
- package/build/libarkts-copy/src/generated/peers/TSSignatureDeclaration.ts +1 -2
- package/build/libarkts-copy/src/generated/peers/TSStringKeyword.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSThisType.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSTupleType.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSTypeAliasDeclaration.ts +26 -40
- package/build/libarkts-copy/src/generated/peers/TSTypeAssertion.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSTypeLiteral.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSTypeOperator.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSTypeParameter.ts +11 -13
- package/build/libarkts-copy/src/generated/peers/TSTypeParameterDeclaration.ts +1 -2
- package/build/libarkts-copy/src/generated/peers/TSTypeParameterInstantiation.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSTypePredicate.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSTypeQuery.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSTypeReference.ts +2 -3
- package/build/libarkts-copy/src/generated/peers/TSUndefinedKeyword.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSUnionType.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSUnknownKeyword.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TSVoidKeyword.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TaggedTemplateExpression.ts +2 -3
- package/build/libarkts-copy/src/generated/peers/TemplateElement.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TemplateLiteral.ts +1 -2
- package/build/libarkts-copy/src/generated/peers/ThisExpression.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ThrowStatement.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TryStatement.ts +1 -2
- package/build/libarkts-copy/src/generated/peers/TypeNode.ts +10 -12
- package/build/libarkts-copy/src/generated/peers/TypedAstNode.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TypedStatement.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/TypeofExpression.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/UnaryExpression.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/UndefinedLiteral.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/UpdateExpression.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/VReg.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/ValidationInfo.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/VariableDeclaration.ts +11 -20
- package/build/libarkts-copy/src/generated/peers/VariableDeclarator.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/VerificationContext.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/VerifierMessage.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/WhileStatement.ts +0 -1
- package/build/libarkts-copy/src/generated/peers/YieldExpression.ts +0 -1
- package/build/libarkts-copy/src/index.ts +2 -1
- package/build/libarkts-copy/src/plugin-utils.ts +0 -10
- package/build/libarkts-copy/src/reexport-for-generated.ts +1 -20
- package/lib/index.js +115 -38
- package/package.json +4 -3
- package/templates/factory.ts +0 -1
- package/templates/peer.ts +0 -1
- package/build/libarkts-copy/src/arkts-api/ChainExpressionFilter.ts +0 -79
|
@@ -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.
|
|
3
|
+
"version": "1.7.10+devel",
|
|
4
4
|
"bin": "./lib/es2panda",
|
|
5
5
|
"typesVersions": {
|
|
6
6
|
"*": {
|
|
@@ -28,13 +28,13 @@
|
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
30
|
"@koalaui/ets-tsc": "4.9.5-r6",
|
|
31
|
-
"@koalaui/build-common": "1.7.
|
|
32
|
-
"@koalaui/compat": "1.7.
|
|
33
|
-
"@koalaui/common": "1.7.
|
|
34
|
-
"@koalaui/harness": "1.7.
|
|
35
|
-
"@koalaui/interop": "1.7.
|
|
36
|
-
"@koalaui/fast-arktsc": "1.7.
|
|
37
|
-
"@idlizer/arktscgen": "2.1.10-arktscgen-
|
|
31
|
+
"@koalaui/build-common": "1.7.10+devel",
|
|
32
|
+
"@koalaui/compat": "1.7.10+devel",
|
|
33
|
+
"@koalaui/common": "1.7.10+devel",
|
|
34
|
+
"@koalaui/harness": "1.7.10+devel",
|
|
35
|
+
"@koalaui/interop": "1.7.10+devel",
|
|
36
|
+
"@koalaui/fast-arktsc": "1.7.10+devel",
|
|
37
|
+
"@idlizer/arktscgen": "2.1.10-arktscgen-3",
|
|
38
38
|
"@types/mocha": "^9.1.0",
|
|
39
39
|
"mocha": "^9.2.2",
|
|
40
40
|
"node-addon-api": "8.0.0",
|
|
@@ -129,7 +129,7 @@ export class Es2pandaNativeModule {
|
|
|
129
129
|
_ETSParserGetImportPathManager(context: KNativePointer): KPtr {
|
|
130
130
|
throw new Error("Not implemented");
|
|
131
131
|
}
|
|
132
|
-
_SourcePositionCol(context: KNativePointer, instance: KNativePointer):
|
|
132
|
+
_SourcePositionCol(context: KNativePointer, instance: KNativePointer): KUInt {
|
|
133
133
|
throw new Error("Not implemented");
|
|
134
134
|
}
|
|
135
135
|
_ConfigGetOptions(config: KNativePointer): KNativePointer {
|
|
@@ -192,7 +192,7 @@ export class Es2pandaNativeModule {
|
|
|
192
192
|
throw new Error("Not implemented")
|
|
193
193
|
}
|
|
194
194
|
_CreateSuggestionInfo(context: KNativePointer, kind: KNativePointer, args: string[],
|
|
195
|
-
argc: number, substitutionCode: string, range: KNativePointer): KNativePointer {
|
|
195
|
+
argc: number, substitutionCode: string, title: string, range: KNativePointer): KNativePointer {
|
|
196
196
|
throw new Error("Not implemented")
|
|
197
197
|
}
|
|
198
198
|
_LogDiagnostic(context: KNativePointer, kind: KNativePointer, argv: string[], argc: number, pos: KNativePointer): void {
|
|
@@ -227,6 +227,18 @@ export class Es2pandaNativeModule {
|
|
|
227
227
|
_CreateTypeNodeFromTsType(context: KNativePointer, classInstance: KNativePointer): KNativePointer {
|
|
228
228
|
throw new Error('Not implemented');
|
|
229
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
|
+
}
|
|
230
242
|
}
|
|
231
243
|
|
|
232
244
|
export function findNativeModule(): string {
|
|
@@ -22,12 +22,12 @@ import { NodeCache } from "./node-cache"
|
|
|
22
22
|
|
|
23
23
|
export const nodeByType = new Map<Es2pandaAstNodeType, (peer: KNativePointer) => AstNode>([])
|
|
24
24
|
|
|
25
|
-
export function nodeFrom<T extends AstNode>(peer: KNativePointer): T {
|
|
25
|
+
export function nodeFrom<T extends AstNode>(peer: KNativePointer, typeHint?: Es2pandaAstNodeType): T {
|
|
26
26
|
const fromCache = NodeCache.get<T>(peer)
|
|
27
27
|
if (fromCache) {
|
|
28
28
|
return fromCache
|
|
29
29
|
}
|
|
30
|
-
const type = global.generatedEs2panda._AstNodeTypeConst(global.context, peer)
|
|
30
|
+
const type = typeHint ?? global.generatedEs2panda._AstNodeTypeConst(global.context, peer)
|
|
31
31
|
const create = nodeByType.get(type) ?? throwError(`unknown node type: ${type}`)
|
|
32
32
|
return create(peer) as T
|
|
33
33
|
}
|
|
@@ -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"
|
|
@@ -32,7 +32,6 @@ export abstract class AstNode extends ArktsObject {
|
|
|
32
32
|
}
|
|
33
33
|
super(peer)
|
|
34
34
|
this.astNodeType = astNodeType
|
|
35
|
-
this.setChildrenParentPtr()
|
|
36
35
|
NodeCache.addToCache(peer, this)
|
|
37
36
|
}
|
|
38
37
|
|
|
@@ -49,6 +48,10 @@ export abstract class AstNode extends ArktsObject {
|
|
|
49
48
|
global.generatedEs2panda._AstNodeSetOriginalNode(global.context, this.peer, peer)
|
|
50
49
|
}
|
|
51
50
|
|
|
51
|
+
public get original(): this {
|
|
52
|
+
return unpackNonNullableNode(this.originalPeer)
|
|
53
|
+
}
|
|
54
|
+
|
|
52
55
|
public getChildren(): readonly AstNode[] {
|
|
53
56
|
return unpackNodeArray(global.es2panda._AstNodeChildren(global.context, this.peer))
|
|
54
57
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright (c)
|
|
2
|
+
* Copyright (c) 2025 Huawei Device Co., Ltd.
|
|
3
3
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
4
|
* you may not use this file except in compliance with the License.
|
|
5
5
|
* You may obtain a copy of the License at
|
|
@@ -13,23 +13,12 @@
|
|
|
13
13
|
* limitations under the License.
|
|
14
14
|
*/
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
*/
|
|
19
|
-
|
|
20
|
-
import {
|
|
21
|
-
global,
|
|
22
|
-
passNode,
|
|
23
|
-
unpackNonNullableNode,
|
|
24
|
-
Es2pandaMemberExpressionKind,
|
|
25
|
-
assertValidPeer,
|
|
26
|
-
AstNode,
|
|
27
|
-
Es2pandaAstNodeType,
|
|
28
|
-
KNativePointer
|
|
29
|
-
} from "../reexport-for-generated"
|
|
16
|
+
import { KNativePointer } from "@koalaui/interop";
|
|
17
|
+
import { ArktsObject } from "./ArktsObject"
|
|
30
18
|
|
|
31
|
-
import * as peers from "./index"
|
|
32
19
|
|
|
33
|
-
export
|
|
34
|
-
|
|
35
|
-
|
|
20
|
+
export class DiagnosticKind extends ArktsObject {
|
|
21
|
+
constructor(peer: KNativePointer) {
|
|
22
|
+
super(peer);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -13,10 +13,12 @@
|
|
|
13
13
|
* limitations under the License.
|
|
14
14
|
*/
|
|
15
15
|
|
|
16
|
-
import { KInt, KNativePointer } from "@koalaui/interop"
|
|
16
|
+
import { KInt, KNativePointer, KUInt } from "@koalaui/interop"
|
|
17
17
|
import type {
|
|
18
18
|
ClassDefinition,
|
|
19
|
+
ETSFunctionType,
|
|
19
20
|
ETSModule,
|
|
21
|
+
ETSParameterExpression,
|
|
20
22
|
Expression,
|
|
21
23
|
MethodDefinition,
|
|
22
24
|
NumberLiteral,
|
|
@@ -25,9 +27,9 @@ import type {
|
|
|
25
27
|
SourcePosition,
|
|
26
28
|
} from "../../generated"
|
|
27
29
|
import { ExternalSource } from "../peers/ExternalSource"
|
|
28
|
-
import { Es2pandaModuleFlag } from "../../generated/Es2pandaEnums"
|
|
30
|
+
import { Es2pandaAstNodeType, Es2pandaModuleFlag } from "../../generated/Es2pandaEnums"
|
|
29
31
|
import { global } from "../static/global"
|
|
30
|
-
import { acceptNativeObjectArrayResult, passNodeArray } from "./private"
|
|
32
|
+
import { acceptNativeObjectArrayResult, passNodeArray, unpackNodeArray, unpackNonNullableNode } from "./private"
|
|
31
33
|
import type { AstNode } from "../peers/AstNode"
|
|
32
34
|
|
|
33
35
|
export function extension_ETSModuleGetNamespaceFlag(this: ETSModule): Es2pandaModuleFlag {
|
|
@@ -64,6 +66,11 @@ export function extension_ScriptFunctionSetSignaturePointer(this: ScriptFunction
|
|
|
64
66
|
global.es2panda._Checker_ScriptFunctionSetSignature(global.context, this.peer, signaturePointer)
|
|
65
67
|
}
|
|
66
68
|
|
|
69
|
+
// Improve: weird API
|
|
70
|
+
export function extension_ScriptFunctionGetParamsCasted(this: ScriptFunction): readonly ETSParameterExpression[] {
|
|
71
|
+
return unpackNodeArray<ETSParameterExpression>(global.generatedEs2panda._ScriptFunctionParams(global.context, this.peer), Es2pandaAstNodeType.AST_NODE_TYPE_ETS_PARAMETER_EXPRESSION)
|
|
72
|
+
}
|
|
73
|
+
|
|
67
74
|
// Improve: perhaps "preferredReturnType" stuff can be removed later if "signature" is always enough
|
|
68
75
|
export function extension_ScriptFunctionGetPreferredReturnTypePointer(this: ScriptFunction): KNativePointer {
|
|
69
76
|
return global.es2panda._Checker_ScriptFunctionGetPreferredReturnType(global.context, this.peer)
|
|
@@ -82,6 +89,11 @@ export function extension_ExpressionSetPreferredTypePointer(this: Expression, ty
|
|
|
82
89
|
global.es2panda._Checker_ExpressionSetPreferredType(global.context, this.peer, typePointer)
|
|
83
90
|
}
|
|
84
91
|
|
|
92
|
+
// Improve: weird API
|
|
93
|
+
export function extension_ProgramGetAstCasted(this: Program): ETSModule {
|
|
94
|
+
return unpackNonNullableNode<ETSModule>(global.generatedEs2panda._ProgramAst(global.context, this.peer), Es2pandaAstNodeType.AST_NODE_TYPE_ETS_MODULE)
|
|
95
|
+
}
|
|
96
|
+
|
|
85
97
|
// Improve: generate methods with string[] args or return type
|
|
86
98
|
export function extension_ProgramGetExternalSources(this: Program): ExternalSource[] {
|
|
87
99
|
return acceptNativeObjectArrayResult<ExternalSource>(
|
|
@@ -91,15 +103,20 @@ export function extension_ProgramGetExternalSources(this: Program): ExternalSour
|
|
|
91
103
|
}
|
|
92
104
|
|
|
93
105
|
// Improve: SourcePositionLine is global in idl
|
|
94
|
-
export function extension_SourcePositionGetLine(this: SourcePosition):
|
|
106
|
+
export function extension_SourcePositionGetLine(this: SourcePosition): KUInt {
|
|
95
107
|
return global.generatedEs2panda._SourcePositionLine(global.context, this.peer)
|
|
96
108
|
}
|
|
97
109
|
|
|
98
110
|
// Improve: SourcePositionCol is not described in idl
|
|
99
|
-
export function extension_SourcePositionGetCol(this: SourcePosition):
|
|
111
|
+
export function extension_SourcePositionGetCol(this: SourcePosition): KUInt {
|
|
100
112
|
return global.es2panda._SourcePositionCol(global.context, this.peer)
|
|
101
113
|
}
|
|
102
114
|
|
|
115
|
+
// Improve: SourcePositionIndex is global in idl
|
|
116
|
+
export function extension_SourcePositionGetIndex(this: SourcePosition): KUInt {
|
|
117
|
+
return global.generatedEs2panda._SourcePositionIndex(global.context, this.peer)
|
|
118
|
+
}
|
|
119
|
+
|
|
103
120
|
export function extension_SourcePositionToString(this: SourcePosition): string {
|
|
104
121
|
return `:${this.getLine() + 1}:${this.getCol()}`
|
|
105
122
|
}
|
|
@@ -110,11 +127,11 @@ export function extension_NumberLiteralValue(this: NumberLiteral): number {
|
|
|
110
127
|
}
|
|
111
128
|
|
|
112
129
|
// Improve: weird API
|
|
113
|
-
export function
|
|
114
|
-
global.es2panda.
|
|
130
|
+
export function extension_ClassDefinitionSetBody(this: ClassDefinition, body: readonly AstNode[]): void {
|
|
131
|
+
global.es2panda._ClassDefinitionSetBody(global.context, this.peer, passNodeArray(body), body.length)
|
|
115
132
|
}
|
|
116
133
|
|
|
117
134
|
// Improve: weird API
|
|
118
|
-
export function
|
|
119
|
-
global.
|
|
135
|
+
export function extension_ETSFunctionTypeGetParamsCasted(this: ETSFunctionType): readonly ETSParameterExpression[] {
|
|
136
|
+
return unpackNodeArray<ETSParameterExpression>(global.generatedEs2panda._ETSFunctionTypeParamsConst(global.context, this.peer), Es2pandaAstNodeType.AST_NODE_TYPE_ETS_PARAMETER_EXPRESSION)
|
|
120
137
|
}
|