From c38d244f9143a85e873424eba95b82b5b57b20e7 Mon Sep 17 00:00:00 2001 From: huiqiangdev Date: Mon, 26 May 2025 16:43:11 +0800 Subject: [PATCH 1/3] sync rri Signed-off-by: huiqiangdev Change-Id: Ic6b0469ab8c17d6e05090ab6afc4dcc2a6fc72d8 --- .../demo/localtest/build_config_template.json | 2 +- arkui-plugins/test/localtest_config.js | 4 + koala-wrapper/koalaui/common/src/PerfProbe.ts | 18 +- .../koalaui/interop/src/cpp/common-interop.cc | 10 + koala-wrapper/native/include/common.h | 56 +- koala-wrapper/native/src/bridges.cc | 36 +- koala-wrapper/native/src/common.cc | 78 +- koala-wrapper/native/src/generated/bridges.cc | 957 +++++++++++++++--- koala-wrapper/src/Es2pandaNativeModule.ts | 14 +- koala-wrapper/src/InteropNativeModule.ts | 3 + koala-wrapper/src/arkts-api/node-cache.ts | 35 + .../node-utilities/ETSStructDeclaration.ts | 29 + .../src/arkts-api/node-utilities/ETSTuple.ts | 29 + .../node-utilities/TSTypeReferencePart.ts | 35 + .../arkts-api/node-utilities/TryStatement.ts | 37 + .../src/arkts-api/utilities/private.ts | 19 +- .../src/arkts-api/utilities/public.ts | 17 +- .../src/generated/Es2pandaNativeModule.ts | 246 ++++- koala-wrapper/src/generated/index.ts | 26 +- .../src/generated/peers/AstVerifier.ts | 35 + .../src/generated/peers/AstVisitor.ts | 35 + .../src/generated/peers/BindingProps.ts | 35 + koala-wrapper/src/generated/peers/CodeGen.ts | 35 + .../src/generated/peers/Declaration.ts | 35 + .../src/generated/peers/DynamicImportData.ts | 35 + .../src/generated/peers/ETSKeyofType.ts | 53 + .../generated/peers/ETSStringLiteralType.ts | 49 + .../src/generated/peers/ErrorLogger.ts | 35 + koala-wrapper/src/generated/peers/IRNode.ts | 35 + .../src/generated/peers/IndexInfo.ts | 35 + .../src/generated/peers/LabelPair.ts | 35 + .../src/generated/peers/ObjectDescriptor.ts | 35 + .../src/generated/peers/OverloadInfo.ts | 35 + .../src/generated/peers/ScopeFindResult.ts | 35 + .../src/generated/peers/ScriptFunctionData.ts | 20 + .../src/generated/peers/SignatureInfo.ts | 35 + .../src/generated/peers/SourcePosition.ts | 35 + .../src/generated/peers/SourceRange.ts | 35 + .../src/generated/peers/TryStatement.ts | 10 + koala-wrapper/src/generated/peers/VReg.ts | 35 + .../generated/peers/VerificationContext.ts | 35 + .../src/generated/peers/VerifierMessage.ts | 35 + koala-wrapper/src/reexport-for-generated.ts | 6 +- koala-wrapper/src/utils.ts | 307 +++++- 44 files changed, 2573 insertions(+), 188 deletions(-) create mode 100644 koala-wrapper/src/arkts-api/node-cache.ts create mode 100644 koala-wrapper/src/arkts-api/node-utilities/ETSStructDeclaration.ts create mode 100644 koala-wrapper/src/arkts-api/node-utilities/ETSTuple.ts create mode 100644 koala-wrapper/src/arkts-api/node-utilities/TSTypeReferencePart.ts create mode 100644 koala-wrapper/src/arkts-api/node-utilities/TryStatement.ts create mode 100644 koala-wrapper/src/generated/peers/AstVerifier.ts create mode 100644 koala-wrapper/src/generated/peers/AstVisitor.ts create mode 100644 koala-wrapper/src/generated/peers/BindingProps.ts create mode 100644 koala-wrapper/src/generated/peers/CodeGen.ts create mode 100644 koala-wrapper/src/generated/peers/Declaration.ts create mode 100644 koala-wrapper/src/generated/peers/DynamicImportData.ts create mode 100644 koala-wrapper/src/generated/peers/ETSKeyofType.ts create mode 100644 koala-wrapper/src/generated/peers/ETSStringLiteralType.ts create mode 100644 koala-wrapper/src/generated/peers/ErrorLogger.ts create mode 100644 koala-wrapper/src/generated/peers/IRNode.ts create mode 100644 koala-wrapper/src/generated/peers/IndexInfo.ts create mode 100644 koala-wrapper/src/generated/peers/LabelPair.ts create mode 100644 koala-wrapper/src/generated/peers/ObjectDescriptor.ts create mode 100644 koala-wrapper/src/generated/peers/OverloadInfo.ts create mode 100644 koala-wrapper/src/generated/peers/ScopeFindResult.ts create mode 100644 koala-wrapper/src/generated/peers/ScriptFunctionData.ts create mode 100644 koala-wrapper/src/generated/peers/SignatureInfo.ts create mode 100644 koala-wrapper/src/generated/peers/SourcePosition.ts create mode 100644 koala-wrapper/src/generated/peers/SourceRange.ts create mode 100644 koala-wrapper/src/generated/peers/VReg.ts create mode 100644 koala-wrapper/src/generated/peers/VerificationContext.ts create mode 100644 koala-wrapper/src/generated/peers/VerifierMessage.ts diff --git a/arkui-plugins/test/demo/localtest/build_config_template.json b/arkui-plugins/test/demo/localtest/build_config_template.json index 3855891d1..9d40f1d96 100755 --- a/arkui-plugins/test/demo/localtest/build_config_template.json +++ b/arkui-plugins/test/demo/localtest/build_config_template.json @@ -1,6 +1,6 @@ { "plugins": { - "ui-syntax-plugin": "workspace/out/sdk/ohos-sdk/linux/ets/ets1.2/build-tools/ui-plugins/lib/ui-syntax-plugins/index", + "ui_syntax_plugin": "workspace/out/sdk/ohos-sdk/linux/ets/ets1.2/build-tools/ui-plugins/lib/ui-syntax-plugins/index", "ui_plugin": "workspace/out/sdk/ohos-sdk/linux/ets/ets1.2/build-tools/ui-plugins/lib/ui-plugins/index", "memo_plugin": "workspace/out/sdk/ohos-sdk/linux/ets/ets1.2/build-tools/ui-plugins/lib/memo-plugins/index" }, diff --git a/arkui-plugins/test/localtest_config.js b/arkui-plugins/test/localtest_config.js index 87fd2e7ee..4d75ab628 100644 --- a/arkui-plugins/test/localtest_config.js +++ b/arkui-plugins/test/localtest_config.js @@ -43,6 +43,10 @@ try { if (jsonData.plugins.memo_plugin) { jsonData.plugins.memo_plugin = jsonData.plugins.memo_plugin.replace(/workspace/g, workSpace); } + if (jsonData.plugins.ui_syntax_plugin) { + jsonData.plugins.ui_syntax_plugin = jsonData.plugins.ui_syntax_plugin.replace(/workspace/g, workSpace); + } + // 将修改后的内容写回 JSON 文件 fs.writeFileSync(outJsonFilePath, JSON.stringify(jsonData, null, 2), 'utf8'); diff --git a/koala-wrapper/koalaui/common/src/PerfProbe.ts b/koala-wrapper/koalaui/common/src/PerfProbe.ts index 063d4d590..d043994cd 100644 --- a/koala-wrapper/koalaui/common/src/PerfProbe.ts +++ b/koala-wrapper/koalaui/common/src/PerfProbe.ts @@ -58,7 +58,7 @@ export interface PerfProbe { /** * Cancels measuring the probe and its children probes. */ - cancel(): void + cancel(b?: Boolean): void /** * User-defined data associated with the probe. @@ -154,7 +154,7 @@ class DummyPerfProbe implements MainPerfProbe { get name(): string { return "dummy" } get dummy(): boolean { return true } exit(log: boolean|undefined): void {} - cancel () {} + cancel(b?: Boolean) {} get canceled(): boolean { return false } enterProbe(name: string): PerfProbe { return PerfProbeImpl.DUMMY } exitProbe (name: string): PerfProbe { return PerfProbeImpl.DUMMY } @@ -237,14 +237,18 @@ class PerfProbeImpl implements PerfProbe { if (log) this.log() } - cancel(cancelChildren: boolean = true) { + cancelWithChildren() { + this.cancel() + this.maybeCancelChildren() + } + + cancel(b?: Boolean) { this._canceled = true - if (cancelChildren) this.maybeCancelChildren() } private maybeCancelChildren() { MainPerfProbeImpl.visit(this, false, (probe: PerfProbeImpl, depth: int32) => { - if (probe.performing) probe.cancel(false) + if (probe.performing) probe.cancel() }) } @@ -262,7 +266,7 @@ class PerfProbeImpl implements PerfProbe { const mainProbe = this.main.probes.get(this.main.name)! const percentage = mainProbe.totalTime > 0 ? Math.round((100 / mainProbe.totalTime) * this.totalTime) : 0 - let result = `[${this.name}] call count: ${this.callCount}` + let result = `[${this.name}] call count: ${this.callCount}` + ` | recursive call count: ${this.recursiveCallCount}` + ` | time: ${this.totalTime}ms ${percentage}%` @@ -368,7 +372,7 @@ class MainPerfProbeImpl extends PerfProbeImpl implements MainPerfProbe { this.cancel() } - cancel() { + cancel(b?: Boolean) { MainPerfProbeImpl.mainProbes.delete(this.name) } diff --git a/koala-wrapper/koalaui/interop/src/cpp/common-interop.cc b/koala-wrapper/koalaui/interop/src/cpp/common-interop.cc index ec6572c6d..0400f779b 100644 --- a/koala-wrapper/koalaui/interop/src/cpp/common-interop.cc +++ b/koala-wrapper/koalaui/interop/src/cpp/common-interop.cc @@ -450,6 +450,16 @@ KStringPtr impl_Utf8ToString(KVMContext vmContext, KByte* data, KInt offset, KIn } KOALA_INTEROP_CTX_3(Utf8ToString, KStringPtr, KByte*, KInt, KInt) +#if defined(KOALA_NAPI) || defined(KOALA_ANI) +KStringPtr impl_RawUtf8ToString(KVMContext vmContext, KNativePointer data) { + auto string = (const char*)data; + KStringPtr result(string, strlen(string), false); + return result; +} +KOALA_INTEROP_CTX_1(RawUtf8ToString, KStringPtr, KNativePointer) +#endif + + KStringPtr impl_StdStringToString(KVMContext vmContext, KNativePointer stringPtr) { std::string* string = reinterpret_cast(stringPtr); KStringPtr result(string->c_str(), string->size(), false); diff --git a/koala-wrapper/native/include/common.h b/koala-wrapper/native/include/common.h index 77ed29cf8..f2d8387c3 100644 --- a/koala-wrapper/native/include/common.h +++ b/koala-wrapper/native/include/common.h @@ -13,7 +13,7 @@ * limitations under the License. */ - #ifndef COMMON_H +#ifndef COMMON_H #define COMMON_H #include "dynamic-loader.h" @@ -36,4 +36,58 @@ inline KUInt unpackUInt(const KByte* bytes); es2panda_ContextState intToState(KInt state); +class StageArena { + std::vector allocated; + size_t totalSize; + public: + StageArena(); + ~StageArena(); + static StageArena* instance(); + template + static T* alloc() + { + auto* arena = StageArena::instance(); + void* memory = arena->alloc(sizeof(T)); + return new (memory) T(); + } + template + static T* alloc(T1 arg1) + { + auto* arena = StageArena::instance(); + void* memory = arena->alloc(sizeof(T)); + return new (memory) T(std::forward(arg1)); + } + template + static T* alloc(T1 arg1, T2 arg2) + { + auto* arena = StageArena::instance(); + void* memory = arena->alloc(sizeof(T)); + return new (memory) T(arg1, arg2); + } + template + static T* allocArray(size_t count) + { + auto* arena = StageArena::instance(); + // align? + void* memory = arena->alloc(sizeof(T) * count); + return new (memory) T(); + } + template + static T* clone(const T& arg) + { + auto* arena = StageArena::instance(); + void* memory = arena->alloc(sizeof(T)); + return new (memory) T(arg); + } + template + static std::vector* cloneVector(const T* arg, size_t count) + { + return alloc, const T*, const T*>(arg, arg + count); + } + void* alloc(size_t size); + static char* strdup(const char* original); + void add(void* pointer); + void cleanup(); +}; + #endif // COMMON_H \ No newline at end of file diff --git a/koala-wrapper/native/src/bridges.cc b/koala-wrapper/native/src/bridges.cc index 31984c2dd..2eb382da9 100644 --- a/koala-wrapper/native/src/bridges.cc +++ b/koala-wrapper/native/src/bridges.cc @@ -71,7 +71,7 @@ KNativePointer impl_AnnotationAllowedAnnotations(KNativePointer contextPtr, KNat auto node = reinterpret_cast(nodePtr); std::size_t params_len = 0; auto annotations = GetImpl()->AnnotationAllowedAnnotations(context, node, ¶ms_len); - return new std::vector(annotations, annotations + params_len); + return StageArena::cloneVector(annotations, params_len); } KOALA_INTEROP_3(AnnotationAllowedAnnotations, KNativePointer, KNativePointer, KNativePointer, KNativePointer) @@ -81,7 +81,7 @@ KNativePointer impl_AnnotationAllowedAnnotationsConst(KNativePointer contextPtr, auto node = reinterpret_cast(nodePtr); std::size_t params_len = 0; auto annotations = GetImpl()->AnnotationAllowedAnnotationsConst(context, node, ¶ms_len); - return new std::vector(annotations, annotations + params_len); + return StageArena::cloneVector(annotations, params_len); } KOALA_INTEROP_3(AnnotationAllowedAnnotationsConst, KNativePointer, KNativePointer, KNativePointer, KNativePointer) @@ -178,7 +178,7 @@ KOALA_INTEROP_1(ContextProgram, KNativePointer, KNativePointer) KNativePointer impl_ProgramAst(KNativePointer contextPtr, KNativePointer programPtr) { - auto context = reinterpret_cast(programPtr); + auto context = reinterpret_cast(contextPtr); auto program = reinterpret_cast(programPtr); return GetImpl()->ProgramAst(context, program); } @@ -217,7 +217,7 @@ KNativePointer impl_ContextErrorMessage(KNativePointer contextPtr) { auto context = reinterpret_cast(contextPtr); - return new string(GetImpl()->ContextErrorMessage(context)); + return StageArena::strdup(GetImpl()->ContextErrorMessage(context)); } KOALA_INTEROP_1(ContextErrorMessage, KNativePointer, KNativePointer) @@ -254,15 +254,15 @@ static KNativePointer impl_ProgramExternalSources(KNativePointer contextPtr, KNa auto&& instance = reinterpret_cast(instancePtr); std::size_t source_len = 0; auto external_sources = GetImpl()->ProgramExternalSources(context, instance, &source_len); - return new std::vector(external_sources, external_sources + source_len); + return StageArena::cloneVector(external_sources, source_len); } KOALA_INTEROP_2(ProgramExternalSources, KNativePointer, KNativePointer, KNativePointer); static KNativePointer impl_ExternalSourceName(KNativePointer instance) { auto&& _instance_ = reinterpret_cast(instance); - auto&& _result_ = GetImpl()->ExternalSourceName(_instance_); - return new std::string(_result_); + auto&& result = GetImpl()->ExternalSourceName(_instance_); + return StageArena::strdup(result); } KOALA_INTEROP_1(ExternalSourceName, KNativePointer, KNativePointer); @@ -271,7 +271,7 @@ static KNativePointer impl_ExternalSourcePrograms(KNativePointer instance) auto&& _instance_ = reinterpret_cast(instance); std::size_t program_len = 0; auto programs = GetImpl()->ExternalSourcePrograms(_instance_, &program_len); - return new std::vector(programs, programs + program_len); + return StageArena::cloneVector(programs, program_len); } KOALA_INTEROP_1(ExternalSourcePrograms, KNativePointer, KNativePointer); @@ -296,6 +296,20 @@ KBoolean impl_IsETSFunctionType(KNativePointer nodePtr) } KOALA_INTEROP_1(IsETSFunctionType, KBoolean, KNativePointer) +KNativePointer impl_ETSParserBuildImportDeclaration(KNativePointer context, KInt importKinds, KNativePointerArray specifiers, KUInt specifiersSequenceLength, KNativePointer source, KNativePointer program, KInt importFlag) +{ + const auto _context = reinterpret_cast(context); + const auto _kinds = static_cast(importKinds); + const auto _specifiers = reinterpret_cast(specifiers); + const auto _specifiersSequenceLength = static_cast(specifiersSequenceLength); + const auto _source = reinterpret_cast(source); + const auto _program = reinterpret_cast(program); + const auto _importFlag = static_cast(importFlag); + + return GetImpl()->ETSParserBuildImportDeclaration(_context, _kinds, _specifiers, _specifiersSequenceLength, _source, _program, _importFlag); +} +KOALA_INTEROP_7(ETSParserBuildImportDeclaration, KNativePointer, KNativePointer, KInt, KNativePointerArray, KUInt, KNativePointer, KNativePointer, KInt) + KInt impl_GenerateTsDeclarationsFromContext(KNativePointer contextPtr, KStringPtr &outputDeclEts, KStringPtr &outputEts, KBoolean exportAll) { @@ -367,7 +381,7 @@ KNativePointer impl_ProgramFileNameConst(KNativePointer contextPtr, KNativePoint auto context = reinterpret_cast(contextPtr); auto program = reinterpret_cast(programPtr); auto result = GetImpl()->ProgramFileNameConst(context, program); - return new std::string(result); + return StageArena::strdup(result); } KOALA_INTEROP_2(ProgramFileNameConst, KNativePointer, KNativePointer, KNativePointer) @@ -376,7 +390,7 @@ KNativePointer impl_ProgramFileNameWithExtensionConst(KNativePointer contextPtr, auto context = reinterpret_cast(contextPtr); auto program = reinterpret_cast(programPtr); auto result = GetImpl()->ProgramFileNameWithExtensionConst(context, program); - return new std::string(result); + return StageArena::strdup(result); } KOALA_INTEROP_2(ProgramFileNameWithExtensionConst, KNativePointer, KNativePointer, KNativePointer) @@ -384,7 +398,7 @@ KNativePointer impl_ETSParserGetGlobalProgramAbsName(KNativePointer contextPtr) { auto context = reinterpret_cast(contextPtr); auto result = GetImpl()->ETSParserGetGlobalProgramAbsName(context); - return new std::string(result); + return StageArena::strdup(result); } KOALA_INTEROP_1(ETSParserGetGlobalProgramAbsName, KNativePointer, KNativePointer) diff --git a/koala-wrapper/native/src/common.cc b/koala-wrapper/native/src/common.cc index eb7a6acb5..b22054453 100644 --- a/koala-wrapper/native/src/common.cc +++ b/koala-wrapper/native/src/common.cc @@ -14,11 +14,63 @@ */ #include +#include using std::string, std::cout, std::endl, std::vector; static es2panda_Impl *impl = nullptr; +static thread_local StageArena currentArena; + +StageArena* StageArena::instance() +{ + return ¤tArena; +} + +void StageArena::add(void* pointer) +{ + if (pointer) + allocated.push_back(pointer); +} + +void StageArena::cleanup() +{ + if (totalSize > 0 && false) + printf("cleanup %d objects %d bytes\n", (int)allocated.size(), (int)totalSize); + for (auto it : allocated) { + free(it); + } + totalSize = 0; + allocated.clear(); +} + +StageArena::StageArena() +{ + totalSize = 0; +} + +StageArena::~StageArena() +{ + cleanup(); +} + +char* StageArena::strdup(const char* string) +{ + auto* arena = StageArena::instance(); + auto size = strlen(string) + 1; + char* memory = (char*)arena->alloc(size); + memcpy(memory, string, size); + return memory; +} + +void* StageArena::alloc(size_t size) +{ + void* result = malloc(size); + totalSize += size; + add(result); + return result; +} + #ifdef KOALA_WINDOWS #include #define PLUGIN_DIR "windows_host_tools" @@ -52,7 +104,8 @@ void* FindLibrary() { return loadLibrary(libraryName); } -es2panda_Impl *GetImpl() { +es2panda_Impl *GetImpl() +{ if (impl) { return impl; } @@ -73,15 +126,18 @@ es2panda_ContextState intToState(KInt state) return es2panda_ContextState(state); } -string getString(KStringPtr ptr) { +string getString(KStringPtr ptr) +{ return ptr.data(); } -char* getStringCopy(KStringPtr& ptr) { - return strdup(ptr.c_str()); +char* getStringCopy(KStringPtr& ptr) +{ + return StageArena::strdup(ptr.c_str() ? ptr.c_str() : ""); } -inline KUInt unpackUInt(const KByte* bytes) { +inline KUInt unpackUInt(const KByte* bytes) +{ const KUInt BYTE_0 = 0; const KUInt BYTE_1 = 1; const KUInt BYTE_2 = 2; @@ -101,13 +157,13 @@ inline KUInt unpackUInt(const KByte* bytes) { KNativePointer impl_CreateConfig(KInt argc, KStringArray argvPtr) { const std::size_t headerLen = 4; - const char** argv = new const char*[argc]; + const char** argv = StageArena::allocArray(argc); std::size_t position = headerLen; std::size_t strLen; for (std::size_t i = 0; i < static_cast(argc); ++i) { strLen = unpackUInt(argvPtr + position); position += headerLen; - argv[i] = strdup(std::string(reinterpret_cast(argvPtr + position), strLen).c_str()); + argv[i] = StageArena::strdup(std::string(reinterpret_cast(argvPtr + position), strLen).c_str()); position += strLen; } return GetImpl()->CreateConfig(argc, argv); @@ -124,6 +180,7 @@ KOALA_INTEROP_1(DestroyConfig, KNativePointer, KNativePointer) KNativePointer impl_DestroyContext(KNativePointer contextPtr) { auto context = reinterpret_cast(contextPtr); GetImpl()->DestroyContext(context); + StageArena::instance()->cleanup(); return nullptr; } KOALA_INTEROP_1(DestroyContext, KNativePointer, KNativePointer) @@ -148,7 +205,7 @@ KNativePointer impl_UpdateCallExpression( auto nn = GetImpl()->CreateCallExpression( context, callee, arguments, argumentsLen, typeParams, optional, trailingComma - ); + ); GetImpl()->AstNodeSetOriginalNode(context, nn, node); return nn; } @@ -208,7 +265,8 @@ KOALA_INTEROP_2(AstNodeUpdateChildren, KNativePointer, KNativePointer, KNativePo std::vector cachedChildren; -static void visitChild(es2panda_AstNode *node) { +static void visitChild(es2panda_AstNode *node) +{ cachedChildren.emplace_back(node); } @@ -222,7 +280,7 @@ KNativePointer impl_AstNodeChildren( cachedChildren.clear(); GetImpl()->AstNodeIterateConst(context, node, visitChild); - return new std::vector(cachedChildren); + return StageArena::clone(cachedChildren); } KOALA_INTEROP_2(AstNodeChildren, KNativePointer, KNativePointer, KNativePointer) diff --git a/koala-wrapper/native/src/generated/bridges.cc b/koala-wrapper/native/src/generated/bridges.cc index e1de4b1a1..64ecc28c5 100644 --- a/koala-wrapper/native/src/generated/bridges.cc +++ b/koala-wrapper/native/src/generated/bridges.cc @@ -15,6 +15,82 @@ #include +KNativePointer impl_NumberLiteralStrConst(KNativePointer context, KNativePointer receiver) +{ + const auto _context = reinterpret_cast(context); + const auto _receiver = reinterpret_cast(receiver); + auto result = GetImpl()->NumberLiteralStrConst(_context, _receiver); + return StageArena::strdup(result); +} +KOALA_INTEROP_2(NumberLiteralStrConst, KNativePointer, KNativePointer, KNativePointer); + +KNativePointer impl_CreateNumberLiteral1(KNativePointer context, KLong value) +{ + const auto _context = reinterpret_cast(context); + const auto _value = static_cast(value); + auto result = GetImpl()->CreateNumberLiteral1(_context, _value); + return result; +} +KOALA_INTEROP_2(CreateNumberLiteral1, KNativePointer, KNativePointer, KLong); + +KNativePointer impl_CreateNumberLiteral2(KNativePointer context, KDouble value) +{ + const auto _context = reinterpret_cast(context); + const auto _value = static_cast(value); + auto result = GetImpl()->CreateNumberLiteral2(_context, _value); + return result; +} +KOALA_INTEROP_2(CreateNumberLiteral2, KNativePointer, KNativePointer, KDouble); + +KNativePointer impl_CreateNumberLiteral3(KNativePointer context, KFloat value) +{ + const auto _context = reinterpret_cast(context); + const auto _value = static_cast(value); + auto result = GetImpl()->CreateNumberLiteral3(_context, _value); + return result; +} +KOALA_INTEROP_2(CreateNumberLiteral3, KNativePointer, KNativePointer, KFloat); + +KNativePointer impl_UpdateNumberLiteral(KNativePointer context, KNativePointer original, KInt value) +{ + const auto _context = reinterpret_cast(context); + const auto _original = reinterpret_cast(original); + const auto _value = static_cast(value); + auto result = GetImpl()->UpdateNumberLiteral(_context, _original, _value); + return result; +} +KOALA_INTEROP_3(UpdateNumberLiteral, KNativePointer, KNativePointer, KNativePointer, KInt); + +KNativePointer impl_UpdateNumberLiteral1(KNativePointer context, KNativePointer original, KLong value) +{ + const auto _context = reinterpret_cast(context); + const auto _original = reinterpret_cast(original); + const auto _value = static_cast(value); + auto result = GetImpl()->UpdateNumberLiteral1(_context, _original, _value); + return result; +} +KOALA_INTEROP_3(UpdateNumberLiteral1, KNativePointer, KNativePointer, KNativePointer, KLong); + +KNativePointer impl_UpdateNumberLiteral2(KNativePointer context, KNativePointer original, KDouble value) +{ + const auto _context = reinterpret_cast(context); + const auto _original = reinterpret_cast(original); + const auto _value = static_cast(value); + auto result = GetImpl()->UpdateNumberLiteral2(_context, _original, _value); + return result; +} +KOALA_INTEROP_3(UpdateNumberLiteral2, KNativePointer, KNativePointer, KNativePointer, KDouble); + +KNativePointer impl_UpdateNumberLiteral3(KNativePointer context, KNativePointer original, KFloat value) +{ + const auto _context = reinterpret_cast(context); + const auto _original = reinterpret_cast(original); + const auto _value = static_cast(value); + auto result = GetImpl()->UpdateNumberLiteral3(_context, _original, _value); + return result; +} +KOALA_INTEROP_3(UpdateNumberLiteral3, KNativePointer, KNativePointer, KNativePointer, KFloat); + KNativePointer impl_CreateLabelledStatement(KNativePointer context, KNativePointer ident, KNativePointer body) { const auto _context = reinterpret_cast(context); @@ -36,6 +112,15 @@ KNativePointer impl_UpdateLabelledStatement(KNativePointer context, KNativePoint } KOALA_INTEROP_4(UpdateLabelledStatement, KNativePointer, KNativePointer, KNativePointer, KNativePointer, KNativePointer); +KNativePointer impl_LabelledStatementBody(KNativePointer context, KNativePointer receiver) +{ + const auto _context = reinterpret_cast(context); + const auto _receiver = reinterpret_cast(receiver); + auto result = GetImpl()->LabelledStatementBody(_context, _receiver); + return result; +} +KOALA_INTEROP_2(LabelledStatementBody, KNativePointer, KNativePointer, KNativePointer); + KNativePointer impl_LabelledStatementBodyConst(KNativePointer context, KNativePointer receiver) { const auto _context = reinterpret_cast(context); @@ -127,6 +212,16 @@ KNativePointer impl_UpdateClassProperty(KNativePointer context, KNativePointer o } KOALA_INTEROP_7(UpdateClassProperty, KNativePointer, KNativePointer, KNativePointer, KNativePointer, KNativePointer, KNativePointer, KInt, KBoolean); +void impl_ClassPropertySetDefaultAccessModifier(KNativePointer context, KNativePointer receiver, KBoolean isDefault) +{ + const auto _context = reinterpret_cast(context); + const auto _receiver = reinterpret_cast(receiver); + const auto _isDefault = static_cast(isDefault); + GetImpl()->ClassPropertySetDefaultAccessModifier(_context, _receiver, _isDefault); + return ; +} +KOALA_INTEROP_V3(ClassPropertySetDefaultAccessModifier, KNativePointer, KNativePointer, KBoolean); + KNativePointer impl_ClassPropertyTypeAnnotationConst(KNativePointer context, KNativePointer receiver) { const auto _context = reinterpret_cast(context); @@ -146,13 +241,32 @@ void impl_ClassPropertySetTypeAnnotation(KNativePointer context, KNativePointer } KOALA_INTEROP_V3(ClassPropertySetTypeAnnotation, KNativePointer, KNativePointer, KNativePointer); +KBoolean impl_ClassPropertyNeedInitInStaticBlockConst(KNativePointer context, KNativePointer receiver) +{ + const auto _context = reinterpret_cast(context); + const auto _receiver = reinterpret_cast(receiver); + auto result = GetImpl()->ClassPropertyNeedInitInStaticBlockConst(_context, _receiver); + return result; +} +KOALA_INTEROP_2(ClassPropertyNeedInitInStaticBlockConst, KBoolean, KNativePointer, KNativePointer); + +void impl_ClassPropertySetInitInStaticBlock(KNativePointer context, KNativePointer receiver, KBoolean needInitInStaticBlock) +{ + const auto _context = reinterpret_cast(context); + const auto _receiver = reinterpret_cast(receiver); + const auto _needInitInStaticBlock = static_cast(needInitInStaticBlock); + GetImpl()->ClassPropertySetInitInStaticBlock(_context, _receiver, _needInitInStaticBlock); + return ; +} +KOALA_INTEROP_V3(ClassPropertySetInitInStaticBlock, KNativePointer, KNativePointer, KBoolean); + KNativePointer impl_ClassPropertyAnnotations(KNativePointer context, KNativePointer receiver) { const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ClassPropertyAnnotations(_context, _receiver, &length); - return new std::vector(result, result + length); + return StageArena::cloneVector(result, length); } KOALA_INTEROP_2(ClassPropertyAnnotations, KNativePointer, KNativePointer, KNativePointer); @@ -162,7 +276,7 @@ KNativePointer impl_ClassPropertyAnnotationsConst(KNativePointer context, KNativ const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ClassPropertyAnnotationsConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(ClassPropertyAnnotationsConst, KNativePointer, KNativePointer, KNativePointer); @@ -239,7 +353,7 @@ KNativePointer impl_ETSFunctionTypeIrParamsConst(KNativePointer context, KNative const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ETSFunctionTypeIrParamsConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(ETSFunctionTypeIrParamsConst, KNativePointer, KNativePointer, KNativePointer); @@ -459,6 +573,16 @@ KNativePointer impl_IfStatementAlternateConst(KNativePointer context, KNativePoi } KOALA_INTEROP_2(IfStatementAlternateConst, KNativePointer, KNativePointer, KNativePointer); +void impl_IfStatementSetAlternate(KNativePointer context, KNativePointer receiver, KNativePointer alternate) +{ + const auto _context = reinterpret_cast(context); + const auto _receiver = reinterpret_cast(receiver); + const auto _alternate = reinterpret_cast(alternate); + GetImpl()->IfStatementSetAlternate(_context, _receiver, _alternate); + return ; +} +KOALA_INTEROP_V3(IfStatementSetAlternate, KNativePointer, KNativePointer, KNativePointer); + KNativePointer impl_CreateTSConstructorType(KNativePointer context, KNativePointer signature, KBoolean abstract) { const auto _context = reinterpret_cast(context); @@ -504,7 +628,7 @@ KNativePointer impl_TSConstructorTypeParamsConst(KNativePointer context, KNative const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TSConstructorTypeParamsConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(TSConstructorTypeParamsConst, KNativePointer, KNativePointer, KNativePointer); @@ -616,7 +740,7 @@ KNativePointer impl_TSEnumDeclarationMembersConst(KNativePointer context, KNativ const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TSEnumDeclarationMembersConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(TSEnumDeclarationMembersConst, KNativePointer, KNativePointer, KNativePointer); @@ -625,7 +749,7 @@ KNativePointer impl_TSEnumDeclarationInternalNameConst(KNativePointer context, K const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); auto result = GetImpl()->TSEnumDeclarationInternalNameConst(_context, _receiver); - return new std::string(result); + return StageArena::strdup(result); } KOALA_INTEROP_2(TSEnumDeclarationInternalNameConst, KNativePointer, KNativePointer, KNativePointer); @@ -673,7 +797,7 @@ KNativePointer impl_TSEnumDeclarationDecoratorsConst(KNativePointer context, KNa const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TSEnumDeclarationDecoratorsConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(TSEnumDeclarationDecoratorsConst, KNativePointer, KNativePointer, KNativePointer); @@ -762,7 +886,7 @@ KNativePointer impl_ObjectExpressionPropertiesConst(KNativePointer context, KNat const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ObjectExpressionPropertiesConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(ObjectExpressionPropertiesConst, KNativePointer, KNativePointer, KNativePointer); @@ -790,7 +914,7 @@ KNativePointer impl_ObjectExpressionDecoratorsConst(KNativePointer context, KNat const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ObjectExpressionDecoratorsConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(ObjectExpressionDecoratorsConst, KNativePointer, KNativePointer, KNativePointer); @@ -1099,7 +1223,7 @@ KNativePointer impl_CallExpressionArgumentsConst(KNativePointer context, KNative const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->CallExpressionArgumentsConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(CallExpressionArgumentsConst, KNativePointer, KNativePointer, KNativePointer); @@ -1109,7 +1233,7 @@ KNativePointer impl_CallExpressionArguments(KNativePointer context, KNativePoint const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->CallExpressionArguments(_context, _receiver, &length); - return new std::vector(result, result + length); + return StageArena::cloneVector(result, length); } KOALA_INTEROP_2(CallExpressionArguments, KNativePointer, KNativePointer, KNativePointer); @@ -1212,7 +1336,7 @@ KNativePointer impl_BigIntLiteralStrConst(KNativePointer context, KNativePointer const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); auto result = GetImpl()->BigIntLiteralStrConst(_context, _receiver); - return new std::string(result); + return StageArena::strdup(result); } KOALA_INTEROP_2(BigIntLiteralStrConst, KNativePointer, KNativePointer, KNativePointer); @@ -1280,6 +1404,25 @@ KNativePointer impl_ClassElementValueConst(KNativePointer context, KNativePointe } KOALA_INTEROP_2(ClassElementValueConst, KNativePointer, KNativePointer, KNativePointer); +KNativePointer impl_ClassElementOriginEnumMemberConst(KNativePointer context, KNativePointer receiver) +{ + const auto _context = reinterpret_cast(context); + const auto _receiver = reinterpret_cast(receiver); + auto result = GetImpl()->ClassElementOriginEnumMemberConst(_context, _receiver); + return (void*)result; +} +KOALA_INTEROP_2(ClassElementOriginEnumMemberConst, KNativePointer, KNativePointer, KNativePointer); + +void impl_ClassElementSetOrigEnumMember(KNativePointer context, KNativePointer receiver, KNativePointer enumMember) +{ + const auto _context = reinterpret_cast(context); + const auto _receiver = reinterpret_cast(receiver); + const auto _enumMember = reinterpret_cast(enumMember); + GetImpl()->ClassElementSetOrigEnumMember(_context, _receiver, _enumMember); + return ; +} +KOALA_INTEROP_V3(ClassElementSetOrigEnumMember, KNativePointer, KNativePointer, KNativePointer); + KBoolean impl_ClassElementIsPrivateElementConst(KNativePointer context, KNativePointer receiver) { const auto _context = reinterpret_cast(context); @@ -1295,7 +1438,7 @@ KNativePointer impl_ClassElementDecoratorsConst(KNativePointer context, KNativeP const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ClassElementDecoratorsConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(ClassElementDecoratorsConst, KNativePointer, KNativePointer, KNativePointer); @@ -1518,7 +1661,7 @@ KNativePointer impl_FunctionDeclarationAnnotations(KNativePointer context, KNati const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->FunctionDeclarationAnnotations(_context, _receiver, &length); - return new std::vector(result, result + length); + return StageArena::cloneVector(result, length); } KOALA_INTEROP_2(FunctionDeclarationAnnotations, KNativePointer, KNativePointer, KNativePointer); @@ -1528,7 +1671,7 @@ KNativePointer impl_FunctionDeclarationAnnotationsConst(KNativePointer context, const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->FunctionDeclarationAnnotationsConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(FunctionDeclarationAnnotationsConst, KNativePointer, KNativePointer, KNativePointer); @@ -1756,7 +1899,7 @@ KNativePointer impl_TSFunctionTypeParamsConst(KNativePointer context, KNativePoi const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TSFunctionTypeParamsConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(TSFunctionTypeParamsConst, KNativePointer, KNativePointer, KNativePointer); @@ -1831,7 +1974,7 @@ KNativePointer impl_TemplateElementRawConst(KNativePointer context, KNativePoint const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); auto result = GetImpl()->TemplateElementRawConst(_context, _receiver); - return new std::string(result); + return StageArena::strdup(result); } KOALA_INTEROP_2(TemplateElementRawConst, KNativePointer, KNativePointer, KNativePointer); @@ -1840,7 +1983,7 @@ KNativePointer impl_TemplateElementCookedConst(KNativePointer context, KNativePo const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); auto result = GetImpl()->TemplateElementCookedConst(_context, _receiver); - return new std::string(result); + return StageArena::strdup(result); } KOALA_INTEROP_2(TemplateElementCookedConst, KNativePointer, KNativePointer, KNativePointer); @@ -1916,7 +2059,7 @@ KNativePointer impl_TSInterfaceDeclarationInternalNameConst(KNativePointer conte const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); auto result = GetImpl()->TSInterfaceDeclarationInternalNameConst(_context, _receiver); - return new std::string(result); + return StageArena::strdup(result); } KOALA_INTEROP_2(TSInterfaceDeclarationInternalNameConst, KNativePointer, KNativePointer, KNativePointer); @@ -1972,7 +2115,7 @@ KNativePointer impl_TSInterfaceDeclarationExtends(KNativePointer context, KNativ const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TSInterfaceDeclarationExtends(_context, _receiver, &length); - return new std::vector(result, result + length); + return StageArena::cloneVector(result, length); } KOALA_INTEROP_2(TSInterfaceDeclarationExtends, KNativePointer, KNativePointer, KNativePointer); @@ -1982,7 +2125,7 @@ KNativePointer impl_TSInterfaceDeclarationExtendsConst(KNativePointer context, K const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TSInterfaceDeclarationExtendsConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(TSInterfaceDeclarationExtendsConst, KNativePointer, KNativePointer, KNativePointer); @@ -1992,7 +2135,7 @@ KNativePointer impl_TSInterfaceDeclarationDecoratorsConst(KNativePointer context const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TSInterfaceDeclarationDecoratorsConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(TSInterfaceDeclarationDecoratorsConst, KNativePointer, KNativePointer, KNativePointer); @@ -2030,7 +2173,7 @@ KNativePointer impl_TSInterfaceDeclarationAnnotations(KNativePointer context, KN const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TSInterfaceDeclarationAnnotations(_context, _receiver, &length); - return new std::vector(result, result + length); + return StageArena::cloneVector(result, length); } KOALA_INTEROP_2(TSInterfaceDeclarationAnnotations, KNativePointer, KNativePointer, KNativePointer); @@ -2040,7 +2183,7 @@ KNativePointer impl_TSInterfaceDeclarationAnnotationsConst(KNativePointer contex const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TSInterfaceDeclarationAnnotationsConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(TSInterfaceDeclarationAnnotationsConst, KNativePointer, KNativePointer, KNativePointer); @@ -2084,7 +2227,7 @@ KNativePointer impl_VariableDeclarationDeclaratorsConst(KNativePointer context, const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->VariableDeclarationDeclaratorsConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(VariableDeclarationDeclaratorsConst, KNativePointer, KNativePointer, KNativePointer); @@ -2103,7 +2246,7 @@ KNativePointer impl_VariableDeclarationDecoratorsConst(KNativePointer context, K const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->VariableDeclarationDecoratorsConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(VariableDeclarationDecoratorsConst, KNativePointer, KNativePointer, KNativePointer); @@ -2123,7 +2266,7 @@ KNativePointer impl_VariableDeclarationAnnotations(KNativePointer context, KNati const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->VariableDeclarationAnnotations(_context, _receiver, &length); - return new std::vector(result, result + length); + return StageArena::cloneVector(result, length); } KOALA_INTEROP_2(VariableDeclarationAnnotations, KNativePointer, KNativePointer, KNativePointer); @@ -2133,7 +2276,7 @@ KNativePointer impl_VariableDeclarationAnnotationsConst(KNativePointer context, const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->VariableDeclarationAnnotationsConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(VariableDeclarationAnnotationsConst, KNativePointer, KNativePointer, KNativePointer); @@ -2296,6 +2439,15 @@ void impl_MemberExpressionRemoveMemberKind(KNativePointer context, KNativePointe } KOALA_INTEROP_V3(MemberExpressionRemoveMemberKind, KNativePointer, KNativePointer, KInt); +KNativePointer impl_MemberExpressionExtensionAccessorTypeConst(KNativePointer context, KNativePointer receiver) +{ + const auto _context = reinterpret_cast(context); + const auto _receiver = reinterpret_cast(receiver); + auto result = GetImpl()->MemberExpressionExtensionAccessorTypeConst(_context, _receiver); + return (void*)result; +} +KOALA_INTEROP_2(MemberExpressionExtensionAccessorTypeConst, KNativePointer, KNativePointer, KNativePointer); + KBoolean impl_MemberExpressionIsIgnoreBoxConst(KNativePointer context, KNativePointer receiver) { const auto _context = reinterpret_cast(context); @@ -2323,6 +2475,29 @@ KBoolean impl_MemberExpressionIsPrivateReferenceConst(KNativePointer context, KN } KOALA_INTEROP_2(MemberExpressionIsPrivateReferenceConst, KBoolean, KNativePointer, KNativePointer); +void impl_MemberExpressionCompileToRegConst(KNativePointer context, KNativePointer receiver, KNativePointer pg, KNativePointer objReg) +{ + const auto _context = reinterpret_cast(context); + const auto _receiver = reinterpret_cast(receiver); + const auto _pg = reinterpret_cast(pg); + const auto _objReg = reinterpret_cast(objReg); + GetImpl()->MemberExpressionCompileToRegConst(_context, _receiver, _pg, _objReg); + return ; +} +KOALA_INTEROP_V4(MemberExpressionCompileToRegConst, KNativePointer, KNativePointer, KNativePointer, KNativePointer); + +void impl_MemberExpressionCompileToRegsConst(KNativePointer context, KNativePointer receiver, KNativePointer pg, KNativePointer object_arg, KNativePointer property) +{ + const auto _context = reinterpret_cast(context); + const auto _receiver = reinterpret_cast(receiver); + const auto _pg = reinterpret_cast(pg); + const auto _object_arg = reinterpret_cast(object_arg); + const auto _property = reinterpret_cast(property); + GetImpl()->MemberExpressionCompileToRegsConst(_context, _receiver, _pg, _object_arg, _property); + return ; +} +KOALA_INTEROP_V5(MemberExpressionCompileToRegsConst, KNativePointer, KNativePointer, KNativePointer, KNativePointer, KNativePointer); + KNativePointer impl_CreateTSClassImplements(KNativePointer context, KNativePointer expression, KNativePointer typeParameters) { const auto _context = reinterpret_cast(context); @@ -2434,9 +2609,36 @@ KNativePointer impl_ETSUnionTypeIrTypesConst(KNativePointer context, KNativePoin const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ETSUnionTypeIrTypesConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(ETSUnionTypeIrTypesConst, KNativePointer, KNativePointer, KNativePointer); +KNativePointer impl_CreateETSKeyofType(KNativePointer context, KNativePointer type) +{ + const auto _context = reinterpret_cast(context); + const auto _type = reinterpret_cast(type); + auto result = GetImpl()->CreateETSKeyofType(_context, _type); + return result; +} +KOALA_INTEROP_2(CreateETSKeyofType, KNativePointer, KNativePointer, KNativePointer); + +KNativePointer impl_UpdateETSKeyofType(KNativePointer context, KNativePointer original, KNativePointer type) +{ + const auto _context = reinterpret_cast(context); + const auto _original = reinterpret_cast(original); + const auto _type = reinterpret_cast(type); + auto result = GetImpl()->UpdateETSKeyofType(_context, _original, _type); + return result; +} +KOALA_INTEROP_3(UpdateETSKeyofType, KNativePointer, KNativePointer, KNativePointer, KNativePointer); + +KNativePointer impl_ETSKeyofTypeGetTypeRefConst(KNativePointer context, KNativePointer receiver) +{ + const auto _context = reinterpret_cast(context); + const auto _receiver = reinterpret_cast(receiver); + auto result = GetImpl()->ETSKeyofTypeGetTypeRefConst(_context, _receiver); + return (void*)result; +} +KOALA_INTEROP_2(ETSKeyofTypeGetTypeRefConst, KNativePointer, KNativePointer, KNativePointer); KNativePointer impl_CreateTSPropertySignature(KNativePointer context, KNativePointer key, KNativePointer typeAnnotation, KBoolean computed, KBoolean optional_arg, KBoolean readonly_arg) { @@ -2693,7 +2895,7 @@ KNativePointer impl_TSTypeAliasDeclarationDecoratorsConst(KNativePointer context const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TSTypeAliasDeclarationDecoratorsConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(TSTypeAliasDeclarationDecoratorsConst, KNativePointer, KNativePointer, KNativePointer); @@ -2713,7 +2915,7 @@ KNativePointer impl_TSTypeAliasDeclarationAnnotations(KNativePointer context, KN const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TSTypeAliasDeclarationAnnotations(_context, _receiver, &length); - return new std::vector(result, result + length); + return StageArena::cloneVector(result, length); } KOALA_INTEROP_2(TSTypeAliasDeclarationAnnotations, KNativePointer, KNativePointer, KNativePointer); @@ -2723,7 +2925,7 @@ KNativePointer impl_TSTypeAliasDeclarationAnnotationsConst(KNativePointer contex const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TSTypeAliasDeclarationAnnotationsConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(TSTypeAliasDeclarationAnnotationsConst, KNativePointer, KNativePointer, KNativePointer); @@ -2838,6 +3040,15 @@ void impl_ReturnStatementSetArgument(KNativePointer context, KNativePointer rece } KOALA_INTEROP_V3(ReturnStatementSetArgument, KNativePointer, KNativePointer, KNativePointer); +KBoolean impl_ReturnStatementIsAsyncImplReturnConst(KNativePointer context, KNativePointer receiver) +{ + const auto _context = reinterpret_cast(context); + const auto _receiver = reinterpret_cast(receiver); + auto result = GetImpl()->ReturnStatementIsAsyncImplReturnConst(_context, _receiver); + return result; +} +KOALA_INTEROP_2(ReturnStatementIsAsyncImplReturnConst, KBoolean, KNativePointer, KNativePointer); + KNativePointer impl_CreateExportDefaultDeclaration(KNativePointer context, KNativePointer decl, KBoolean exportEquals) { const auto _context = reinterpret_cast(context); @@ -2935,7 +3146,7 @@ KNativePointer impl_ScriptFunctionParamsConst(KNativePointer context, KNativePoi const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ScriptFunctionParamsConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(ScriptFunctionParamsConst, KNativePointer, KNativePointer, KNativePointer); @@ -2945,7 +3156,7 @@ KNativePointer impl_ScriptFunctionParams(KNativePointer context, KNativePointer const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ScriptFunctionParams(_context, _receiver, &length); - return new std::vector(result, result + length); + return StageArena::cloneVector(result, length); } KOALA_INTEROP_2(ScriptFunctionParams, KNativePointer, KNativePointer, KNativePointer); @@ -2955,7 +3166,7 @@ KNativePointer impl_ScriptFunctionReturnStatementsConst(KNativePointer context, const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ScriptFunctionReturnStatementsConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(ScriptFunctionReturnStatementsConst, KNativePointer, KNativePointer, KNativePointer); @@ -2965,7 +3176,7 @@ KNativePointer impl_ScriptFunctionReturnStatements(KNativePointer context, KNati const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ScriptFunctionReturnStatements(_context, _receiver, &length); - return new std::vector(result, result + length); + return StageArena::cloneVector(result, length); } KOALA_INTEROP_2(ScriptFunctionReturnStatements, KNativePointer, KNativePointer, KNativePointer); @@ -3325,6 +3536,16 @@ void impl_ScriptFunctionAddFlag(KNativePointer context, KNativePointer receiver, } KOALA_INTEROP_V3(ScriptFunctionAddFlag, KNativePointer, KNativePointer, KInt); +void impl_ScriptFunctionClearFlag(KNativePointer context, KNativePointer receiver, KInt flags) +{ + const auto _context = reinterpret_cast(context); + const auto _receiver = reinterpret_cast(receiver); + const auto _flags = static_cast(flags); + GetImpl()->ScriptFunctionClearFlag(_context, _receiver, _flags); + return ; +} +KOALA_INTEROP_V3(ScriptFunctionClearFlag, KNativePointer, KNativePointer, KInt); + void impl_ScriptFunctionAddModifier(KNativePointer context, KNativePointer receiver, KInt flags) { const auto _context = reinterpret_cast(context); @@ -3350,7 +3571,7 @@ KNativePointer impl_ScriptFunctionAnnotations(KNativePointer context, KNativePoi const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ScriptFunctionAnnotations(_context, _receiver, &length); - return new std::vector(result, result + length); + return StageArena::cloneVector(result, length); } KOALA_INTEROP_2(ScriptFunctionAnnotations, KNativePointer, KNativePointer, KNativePointer); @@ -3360,7 +3581,7 @@ KNativePointer impl_ScriptFunctionAnnotationsConst(KNativePointer context, KNati const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ScriptFunctionAnnotationsConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(ScriptFunctionAnnotationsConst, KNativePointer, KNativePointer, KNativePointer); @@ -3497,7 +3718,7 @@ KNativePointer impl_ClassDefinitionInternalNameConst(KNativePointer context, KNa const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); auto result = GetImpl()->ClassDefinitionInternalNameConst(_context, _receiver); - return new std::string(result); + return StageArena::strdup(result); } KOALA_INTEROP_2(ClassDefinitionInternalNameConst, KNativePointer, KNativePointer, KNativePointer); @@ -3611,6 +3832,33 @@ KBoolean impl_ClassDefinitionIsAnonymousConst(KNativePointer context, KNativePoi } KOALA_INTEROP_2(ClassDefinitionIsAnonymousConst, KBoolean, KNativePointer, KNativePointer); +KBoolean impl_ClassDefinitionIsIntEnumTransformedConst(KNativePointer context, KNativePointer receiver) +{ + const auto _context = reinterpret_cast(context); + const auto _receiver = reinterpret_cast(receiver); + auto result = GetImpl()->ClassDefinitionIsIntEnumTransformedConst(_context, _receiver); + return result; +} +KOALA_INTEROP_2(ClassDefinitionIsIntEnumTransformedConst, KBoolean, KNativePointer, KNativePointer); + +KBoolean impl_ClassDefinitionIsStringEnumTransformedConst(KNativePointer context, KNativePointer receiver) +{ + const auto _context = reinterpret_cast(context); + const auto _receiver = reinterpret_cast(receiver); + auto result = GetImpl()->ClassDefinitionIsStringEnumTransformedConst(_context, _receiver); + return result; +} +KOALA_INTEROP_2(ClassDefinitionIsStringEnumTransformedConst, KBoolean, KNativePointer, KNativePointer); + +KBoolean impl_ClassDefinitionIsEnumTransformedConst(KNativePointer context, KNativePointer receiver) +{ + const auto _context = reinterpret_cast(context); + const auto _receiver = reinterpret_cast(receiver); + auto result = GetImpl()->ClassDefinitionIsEnumTransformedConst(_context, _receiver); + return result; +} +KOALA_INTEROP_2(ClassDefinitionIsEnumTransformedConst, KBoolean, KNativePointer, KNativePointer); + KBoolean impl_ClassDefinitionIsNamespaceTransformedConst(KNativePointer context, KNativePointer receiver) { const auto _context = reinterpret_cast(context); @@ -3710,7 +3958,7 @@ KNativePointer impl_ClassDefinitionBody(KNativePointer context, KNativePointer r const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ClassDefinitionBody(_context, _receiver, &length); - return new std::vector(result, result + length); + return StageArena::cloneVector(result, length); } KOALA_INTEROP_2(ClassDefinitionBody, KNativePointer, KNativePointer, KNativePointer); @@ -3720,7 +3968,7 @@ KNativePointer impl_ClassDefinitionBodyConst(KNativePointer context, KNativePoin const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ClassDefinitionBodyConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(ClassDefinitionBodyConst, KNativePointer, KNativePointer, KNativePointer); @@ -3749,7 +3997,7 @@ KNativePointer impl_ClassDefinitionImplements(KNativePointer context, KNativePoi const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ClassDefinitionImplements(_context, _receiver, &length); - return new std::vector(result, result + length); + return StageArena::cloneVector(result, length); } KOALA_INTEROP_2(ClassDefinitionImplements, KNativePointer, KNativePointer, KNativePointer); @@ -3759,7 +4007,7 @@ KNativePointer impl_ClassDefinitionImplementsConst(KNativePointer context, KNati const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ClassDefinitionImplementsConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(ClassDefinitionImplementsConst, KNativePointer, KNativePointer, KNativePointer); @@ -3832,7 +4080,7 @@ KNativePointer impl_ClassDefinitionLocalPrefixConst(KNativePointer context, KNat const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); auto result = GetImpl()->ClassDefinitionLocalPrefixConst(_context, _receiver); - return new std::string(result); + return StageArena::strdup(result); } KOALA_INTEROP_2(ClassDefinitionLocalPrefixConst, KNativePointer, KNativePointer, KNativePointer); @@ -3892,6 +4140,15 @@ KBoolean impl_ClassDefinitionHasPrivateMethodConst(KNativePointer context, KNati } KOALA_INTEROP_2(ClassDefinitionHasPrivateMethodConst, KBoolean, KNativePointer, KNativePointer); +KBoolean impl_ClassDefinitionHasNativeMethodConst(KNativePointer context, KNativePointer receiver) +{ + const auto _context = reinterpret_cast(context); + const auto _receiver = reinterpret_cast(receiver); + auto result = GetImpl()->ClassDefinitionHasNativeMethodConst(_context, _receiver); + return result; +} +KOALA_INTEROP_2(ClassDefinitionHasNativeMethodConst, KBoolean, KNativePointer, KNativePointer); + KBoolean impl_ClassDefinitionHasComputedInstanceFieldConst(KNativePointer context, KNativePointer receiver) { const auto _context = reinterpret_cast(context); @@ -3911,13 +4168,23 @@ KBoolean impl_ClassDefinitionHasMatchingPrivateKeyConst(KNativePointer context, } KOALA_INTEROP_3(ClassDefinitionHasMatchingPrivateKeyConst, KBoolean, KNativePointer, KNativePointer, KStringPtr); +void impl_ClassDefinitionAddToExportedClasses(KNativePointer context, KNativePointer receiver, KNativePointer cls) +{ + const auto _context = reinterpret_cast(context); + const auto _receiver = reinterpret_cast(receiver); + const auto _cls = reinterpret_cast(cls); + GetImpl()->ClassDefinitionAddToExportedClasses(_context, _receiver, _cls); + return ; +} +KOALA_INTEROP_V3(ClassDefinitionAddToExportedClasses, KNativePointer, KNativePointer, KNativePointer); + KNativePointer impl_ClassDefinitionAnnotations(KNativePointer context, KNativePointer receiver) { const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ClassDefinitionAnnotations(_context, _receiver, &length); - return new std::vector(result, result + length); + return StageArena::cloneVector(result, length); } KOALA_INTEROP_2(ClassDefinitionAnnotations, KNativePointer, KNativePointer, KNativePointer); @@ -3927,7 +4194,7 @@ KNativePointer impl_ClassDefinitionAnnotationsConst(KNativePointer context, KNat const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ClassDefinitionAnnotationsConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(ClassDefinitionAnnotationsConst, KNativePointer, KNativePointer, KNativePointer); @@ -3988,13 +4255,23 @@ KNativePointer impl_UpdateArrayExpression1(KNativePointer context, KNativePointe } KOALA_INTEROP_6(UpdateArrayExpression1, KNativePointer, KNativePointer, KNativePointer, KInt, KNativePointerArray, KUInt, KBoolean); +KNativePointer impl_ArrayExpressionGetElementNodeAtIdxConst(KNativePointer context, KNativePointer receiver, KUInt idx) +{ + const auto _context = reinterpret_cast(context); + const auto _receiver = reinterpret_cast(receiver); + const auto _idx = static_cast(idx); + auto result = GetImpl()->ArrayExpressionGetElementNodeAtIdxConst(_context, _receiver, _idx); + return (void*)result; +} +KOALA_INTEROP_3(ArrayExpressionGetElementNodeAtIdxConst, KNativePointer, KNativePointer, KNativePointer, KUInt); + KNativePointer impl_ArrayExpressionElementsConst(KNativePointer context, KNativePointer receiver) { const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ArrayExpressionElementsConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(ArrayExpressionElementsConst, KNativePointer, KNativePointer, KNativePointer); @@ -4004,7 +4281,7 @@ KNativePointer impl_ArrayExpressionElements(KNativePointer context, KNativePoint const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ArrayExpressionElements(_context, _receiver, &length); - return new std::vector(result, result + length); + return StageArena::cloneVector(result, length); } KOALA_INTEROP_2(ArrayExpressionElements, KNativePointer, KNativePointer, KNativePointer); @@ -4062,10 +4339,19 @@ KNativePointer impl_ArrayExpressionDecoratorsConst(KNativePointer context, KNati const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ArrayExpressionDecoratorsConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(ArrayExpressionDecoratorsConst, KNativePointer, KNativePointer, KNativePointer); +void impl_ArrayExpressionClearPreferredType(KNativePointer context, KNativePointer receiver) +{ + const auto _context = reinterpret_cast(context); + const auto _receiver = reinterpret_cast(receiver); + GetImpl()->ArrayExpressionClearPreferredType(_context, _receiver); + return ; +} +KOALA_INTEROP_V2(ArrayExpressionClearPreferredType, KNativePointer, KNativePointer); + KBoolean impl_ArrayExpressionConvertibleToArrayPattern(KNativePointer context, KNativePointer receiver) { const auto _context = reinterpret_cast(context); @@ -4084,6 +4370,17 @@ KNativePointer impl_ArrayExpressionValidateExpression(KNativePointer context, KN } KOALA_INTEROP_2(ArrayExpressionValidateExpression, KNativePointer, KNativePointer, KNativePointer); +KBoolean impl_ArrayExpressionTrySetPreferredTypeForNestedArrayExprConst(KNativePointer context, KNativePointer receiver, KNativePointer nestedArrayExpr, KUInt idx) +{ + const auto _context = reinterpret_cast(context); + const auto _receiver = reinterpret_cast(receiver); + const auto _nestedArrayExpr = reinterpret_cast(nestedArrayExpr); + const auto _idx = static_cast(idx); + auto result = GetImpl()->ArrayExpressionTrySetPreferredTypeForNestedArrayExprConst(_context, _receiver, _nestedArrayExpr, _idx); + return result; +} +KOALA_INTEROP_4(ArrayExpressionTrySetPreferredTypeForNestedArrayExprConst, KBoolean, KNativePointer, KNativePointer, KNativePointer, KUInt); + KNativePointer impl_ArrayExpressionTypeAnnotationConst(KNativePointer context, KNativePointer receiver) { const auto _context = reinterpret_cast(context); @@ -4130,7 +4427,7 @@ KNativePointer impl_TSInterfaceBodyBodyPtr(KNativePointer context, KNativePointe const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TSInterfaceBodyBodyPtr(_context, _receiver, &length); - return new std::vector(result, result + length); + return StageArena::cloneVector(result, length); } KOALA_INTEROP_2(TSInterfaceBodyBodyPtr, KNativePointer, KNativePointer, KNativePointer); @@ -4140,7 +4437,7 @@ KNativePointer impl_TSInterfaceBodyBody(KNativePointer context, KNativePointer r const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TSInterfaceBodyBody(_context, _receiver, &length); - return new std::vector(result, result + length); + return StageArena::cloneVector(result, length); } KOALA_INTEROP_2(TSInterfaceBodyBody, KNativePointer, KNativePointer, KNativePointer); @@ -4150,7 +4447,7 @@ KNativePointer impl_TSInterfaceBodyBodyConst(KNativePointer context, KNativePoin const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TSInterfaceBodyBodyConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(TSInterfaceBodyBodyConst, KNativePointer, KNativePointer, KNativePointer); @@ -4496,7 +4793,7 @@ KNativePointer impl_StringLiteralStrConst(KNativePointer context, KNativePointer const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); auto result = GetImpl()->StringLiteralStrConst(_context, _receiver); - return new std::string(result); + return StageArena::strdup(result); } KOALA_INTEROP_2(StringLiteralStrConst, KNativePointer, KNativePointer, KNativePointer); @@ -4660,13 +4957,23 @@ KUInt impl_ETSTupleGetTupleSizeConst(KNativePointer context, KNativePointer rece } KOALA_INTEROP_2(ETSTupleGetTupleSizeConst, KUInt, KNativePointer, KNativePointer); +KNativePointer impl_ETSTupleGetTupleTypeAnnotationsList(KNativePointer context, KNativePointer receiver) +{ + const auto _context = reinterpret_cast(context); + const auto _receiver = reinterpret_cast(receiver); + std::size_t length; + auto result = GetImpl()->ETSTupleGetTupleTypeAnnotationsList(_context, _receiver, &length); + return StageArena::cloneVector(result, length); +} +KOALA_INTEROP_2(ETSTupleGetTupleTypeAnnotationsList, KNativePointer, KNativePointer, KNativePointer); + KNativePointer impl_ETSTupleGetTupleTypeAnnotationsListConst(KNativePointer context, KNativePointer receiver) { const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ETSTupleGetTupleTypeAnnotationsListConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(ETSTupleGetTupleTypeAnnotationsListConst, KNativePointer, KNativePointer, KNativePointer); @@ -4681,6 +4988,68 @@ void impl_ETSTupleSetTypeAnnotationsList(KNativePointer context, KNativePointer } KOALA_INTEROP_V4(ETSTupleSetTypeAnnotationsList, KNativePointer, KNativePointer, KNativePointerArray, KUInt); +KNativePointer impl_UpdateETSStringLiteralType(KNativePointer context, KNativePointer original, KStringPtr& value) +{ + const auto _context = reinterpret_cast(context); + const auto _original = reinterpret_cast(original); + const auto _value = getStringCopy(value); + auto result = GetImpl()->UpdateETSStringLiteralType(_context, _original, _value); + return result; +} +KOALA_INTEROP_3(UpdateETSStringLiteralType, KNativePointer, KNativePointer, KNativePointer, KStringPtr); + +KNativePointer impl_CreateTryStatement(KNativePointer context, KNativePointer block, KNativePointerArray catchClauses, KUInt catchClausesSequenceLength, KNativePointer finalizer, KNativePointerArray finalizerInsertionsLabelPair, KUInt finalizerInsertionsLabelPairSequenceLength, KNativePointerArray finalizerInsertionsStatement, KUInt finalizerInsertionsStatementSequenceLength) +{ + const auto _context = reinterpret_cast(context); + const auto _block = reinterpret_cast(block); + const auto _catchClauses = reinterpret_cast(catchClauses); + const auto _catchClausesSequenceLength = static_cast(catchClausesSequenceLength); + const auto _finalizer = reinterpret_cast(finalizer); + const auto _finalizerInsertionsLabelPair = reinterpret_cast(finalizerInsertionsLabelPair); + const auto _finalizerInsertionsLabelPairSequenceLength = static_cast(finalizerInsertionsLabelPairSequenceLength); + const auto _finalizerInsertionsStatement = reinterpret_cast(finalizerInsertionsStatement); + const auto _finalizerInsertionsStatementSequenceLength = static_cast(finalizerInsertionsStatementSequenceLength); + auto result = GetImpl()->CreateTryStatement(_context, _block, _catchClauses, _catchClausesSequenceLength, _finalizer, _finalizerInsertionsLabelPair, _finalizerInsertionsLabelPairSequenceLength, _finalizerInsertionsStatement, _finalizerInsertionsStatementSequenceLength); + return result; +} +KOALA_INTEROP_9(CreateTryStatement, KNativePointer, KNativePointer, KNativePointer, KNativePointerArray, KUInt, KNativePointer, KNativePointerArray, KUInt, KNativePointerArray, KUInt); + +KNativePointer impl_UpdateTryStatement(KNativePointer context, KNativePointer original, KNativePointer block, KNativePointerArray catchClauses, KUInt catchClausesSequenceLength, KNativePointer finalizer, KNativePointerArray finalizerInsertionsLabelPair, KUInt finalizerInsertionsLabelPairSequenceLength, KNativePointerArray finalizerInsertionsStatement, KUInt finalizerInsertionsStatementSequenceLength) +{ + const auto _context = reinterpret_cast(context); + const auto _original = reinterpret_cast(original); + const auto _block = reinterpret_cast(block); + const auto _catchClauses = reinterpret_cast(catchClauses); + const auto _catchClausesSequenceLength = static_cast(catchClausesSequenceLength); + const auto _finalizer = reinterpret_cast(finalizer); + const auto _finalizerInsertionsLabelPair = reinterpret_cast(finalizerInsertionsLabelPair); + const auto _finalizerInsertionsLabelPairSequenceLength = static_cast(finalizerInsertionsLabelPairSequenceLength); + const auto _finalizerInsertionsStatement = reinterpret_cast(finalizerInsertionsStatement); + const auto _finalizerInsertionsStatementSequenceLength = static_cast(finalizerInsertionsStatementSequenceLength); + auto result = GetImpl()->UpdateTryStatement(_context, _original, _block, _catchClauses, _catchClausesSequenceLength, _finalizer, _finalizerInsertionsLabelPair, _finalizerInsertionsLabelPairSequenceLength, _finalizerInsertionsStatement, _finalizerInsertionsStatementSequenceLength); + return result; +} +KOALA_INTEROP_10(UpdateTryStatement, KNativePointer, KNativePointer, KNativePointer, KNativePointer, KNativePointerArray, KUInt, KNativePointer, KNativePointerArray, KUInt, KNativePointerArray, KUInt); + +KNativePointer impl_CreateTryStatement1(KNativePointer context, KNativePointer other) +{ + const auto _context = reinterpret_cast(context); + const auto _other = reinterpret_cast(other); + auto result = GetImpl()->CreateTryStatement1(_context, _other); + return result; +} +KOALA_INTEROP_2(CreateTryStatement1, KNativePointer, KNativePointer, KNativePointer); + +KNativePointer impl_UpdateTryStatement1(KNativePointer context, KNativePointer original, KNativePointer other) +{ + const auto _context = reinterpret_cast(context); + const auto _original = reinterpret_cast(original); + const auto _other = reinterpret_cast(other); + auto result = GetImpl()->UpdateTryStatement1(_context, _original, _other); + return result; +} +KOALA_INTEROP_3(UpdateTryStatement1, KNativePointer, KNativePointer, KNativePointer, KNativePointer); + KNativePointer impl_TryStatementFinallyBlockConst(KNativePointer context, KNativePointer receiver) { const auto _context = reinterpret_cast(context); @@ -4723,7 +5092,7 @@ KNativePointer impl_TryStatementCatchClausesConst(KNativePointer context, KNativ const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TryStatementCatchClausesConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(TryStatementCatchClausesConst, KNativePointer, KNativePointer, KNativePointer); @@ -4845,6 +5214,36 @@ KNativePointer impl_AstNodeAsStatementConst(KNativePointer context, KNativePoint } KOALA_INTEROP_2(AstNodeAsStatementConst, KNativePointer, KNativePointer, KNativePointer); +void impl_AstNodeSetRange(KNativePointer context, KNativePointer receiver, KNativePointer loc) +{ + const auto _context = reinterpret_cast(context); + const auto _receiver = reinterpret_cast(receiver); + const auto _loc = reinterpret_cast(loc); + GetImpl()->AstNodeSetRange(_context, _receiver, _loc); + return ; +} +KOALA_INTEROP_V3(AstNodeSetRange, KNativePointer, KNativePointer, KNativePointer); + +void impl_AstNodeSetStart(KNativePointer context, KNativePointer receiver, KNativePointer start) +{ + const auto _context = reinterpret_cast(context); + const auto _receiver = reinterpret_cast(receiver); + const auto _start = reinterpret_cast(start); + GetImpl()->AstNodeSetStart(_context, _receiver, _start); + return ; +} +KOALA_INTEROP_V3(AstNodeSetStart, KNativePointer, KNativePointer, KNativePointer); + +void impl_AstNodeSetEnd(KNativePointer context, KNativePointer receiver, KNativePointer end) +{ + const auto _context = reinterpret_cast(context); + const auto _receiver = reinterpret_cast(receiver); + const auto _end = reinterpret_cast(end); + GetImpl()->AstNodeSetEnd(_context, _receiver, _end); + return ; +} +KOALA_INTEROP_V3(AstNodeSetEnd, KNativePointer, KNativePointer, KNativePointer); + KInt impl_AstNodeTypeConst(KNativePointer context, KNativePointer receiver) { const auto _context = reinterpret_cast(context); @@ -4888,7 +5287,7 @@ KNativePointer impl_AstNodeDecoratorsPtrConst(KNativePointer context, KNativePoi const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->AstNodeDecoratorsPtrConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(AstNodeDecoratorsPtrConst, KNativePointer, KNativePointer, KNativePointer); @@ -5254,7 +5653,7 @@ KNativePointer impl_AstNodeDumpJSONConst(KNativePointer context, KNativePointer const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); auto result = GetImpl()->AstNodeDumpJSONConst(_context, _receiver); - return new std::string(result); + return StageArena::strdup(result); } KOALA_INTEROP_2(AstNodeDumpJSONConst, KNativePointer, KNativePointer, KNativePointer); @@ -5263,7 +5662,7 @@ KNativePointer impl_AstNodeDumpEtsSrcConst(KNativePointer context, KNativePointe const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); auto result = GetImpl()->AstNodeDumpEtsSrcConst(_context, _receiver); - return new std::string(result); + return StageArena::strdup(result); } KOALA_INTEROP_2(AstNodeDumpEtsSrcConst, KNativePointer, KNativePointer, KNativePointer); @@ -5287,6 +5686,26 @@ void impl_AstNodeDumpConst1(KNativePointer context, KNativePointer receiver, KNa } KOALA_INTEROP_V3(AstNodeDumpConst1, KNativePointer, KNativePointer, KNativePointer); +void impl_AstNodeCompileConst(KNativePointer context, KNativePointer receiver, KNativePointer pg) +{ + const auto _context = reinterpret_cast(context); + const auto _receiver = reinterpret_cast(receiver); + const auto _pg = reinterpret_cast(pg); + GetImpl()->AstNodeCompileConst(_context, _receiver, _pg); + return ; +} +KOALA_INTEROP_V3(AstNodeCompileConst, KNativePointer, KNativePointer, KNativePointer); + +void impl_AstNodeCompileConst1(KNativePointer context, KNativePointer receiver, KNativePointer etsg) +{ + const auto _context = reinterpret_cast(context); + const auto _receiver = reinterpret_cast(receiver); + const auto _etsg = reinterpret_cast(etsg); + GetImpl()->AstNodeCompileConst1(_context, _receiver, _etsg); + return ; +} +KOALA_INTEROP_V3(AstNodeCompileConst1, KNativePointer, KNativePointer, KNativePointer); + void impl_AstNodeSetTransformedNode(KNativePointer context, KNativePointer receiver, KStringPtr& transformationName, KNativePointer transformedNode) { const auto _context = reinterpret_cast(context); @@ -5298,6 +5717,16 @@ void impl_AstNodeSetTransformedNode(KNativePointer context, KNativePointer recei } KOALA_INTEROP_V4(AstNodeSetTransformedNode, KNativePointer, KNativePointer, KStringPtr, KNativePointer); +void impl_AstNodeAccept(KNativePointer context, KNativePointer receiver, KNativePointer v) +{ + const auto _context = reinterpret_cast(context); + const auto _receiver = reinterpret_cast(receiver); + const auto _v = reinterpret_cast(v); + GetImpl()->AstNodeAccept(_context, _receiver, _v); + return ; +} +KOALA_INTEROP_V3(AstNodeAccept, KNativePointer, KNativePointer, KNativePointer); + void impl_AstNodeSetOriginalNode(KNativePointer context, KNativePointer receiver, KNativePointer originalNode) { const auto _context = reinterpret_cast(context); @@ -5317,6 +5746,24 @@ KNativePointer impl_AstNodeOriginalNodeConst(KNativePointer context, KNativePoin } KOALA_INTEROP_2(AstNodeOriginalNodeConst, KNativePointer, KNativePointer, KNativePointer); +void impl_AstNodeCleanUp(KNativePointer context, KNativePointer receiver) +{ + const auto _context = reinterpret_cast(context); + const auto _receiver = reinterpret_cast(receiver); + GetImpl()->AstNodeCleanUp(_context, _receiver); + return ; +} +KOALA_INTEROP_V2(AstNodeCleanUp, KNativePointer, KNativePointer); + +KNativePointer impl_AstNodeShallowClone(KNativePointer context, KNativePointer receiver) +{ + const auto _context = reinterpret_cast(context); + const auto _receiver = reinterpret_cast(receiver); + auto result = GetImpl()->AstNodeShallowClone(_context, _receiver); + return result; +} +KOALA_INTEROP_2(AstNodeShallowClone, KNativePointer, KNativePointer, KNativePointer); + KNativePointer impl_CreateUnaryExpression(KNativePointer context, KNativePointer argument, KInt unaryOperator) { const auto _context = reinterpret_cast(context); @@ -5526,7 +5973,7 @@ KNativePointer impl_TSMethodSignatureParamsConst(KNativePointer context, KNative const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TSMethodSignatureParamsConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(TSMethodSignatureParamsConst, KNativePointer, KNativePointer, KNativePointer); @@ -5728,6 +6175,17 @@ void impl_BinaryExpressionSetOperator(KNativePointer context, KNativePointer rec } KOALA_INTEROP_V3(BinaryExpressionSetOperator, KNativePointer, KNativePointer, KInt); +void impl_BinaryExpressionCompileOperandsConst(KNativePointer context, KNativePointer receiver, KNativePointer etsg, KNativePointer lhs) +{ + const auto _context = reinterpret_cast(context); + const auto _receiver = reinterpret_cast(receiver); + const auto _etsg = reinterpret_cast(etsg); + const auto _lhs = reinterpret_cast(lhs); + GetImpl()->BinaryExpressionCompileOperandsConst(_context, _receiver, _etsg, _lhs); + return ; +} +KOALA_INTEROP_V4(BinaryExpressionCompileOperandsConst, KNativePointer, KNativePointer, KNativePointer, KNativePointer); + KNativePointer impl_CreateSuperExpression(KNativePointer context) { const auto _context = reinterpret_cast(context); @@ -6017,6 +6475,16 @@ KBoolean impl_AssignmentExpressionConvertibleToAssignmentPattern(KNativePointer } KOALA_INTEROP_3(AssignmentExpressionConvertibleToAssignmentPattern, KBoolean, KNativePointer, KNativePointer, KBoolean); +void impl_AssignmentExpressionCompilePatternConst(KNativePointer context, KNativePointer receiver, KNativePointer pg) +{ + const auto _context = reinterpret_cast(context); + const auto _receiver = reinterpret_cast(receiver); + const auto _pg = reinterpret_cast(pg); + GetImpl()->AssignmentExpressionCompilePatternConst(_context, _receiver, _pg); + return ; +} +KOALA_INTEROP_V3(AssignmentExpressionCompilePatternConst, KNativePointer, KNativePointer, KNativePointer); + KNativePointer impl_CreateExpressionStatement(KNativePointer context, KNativePointer expr) { const auto _context = reinterpret_cast(context); @@ -6124,7 +6592,7 @@ KNativePointer impl_ETSModuleAnnotations(KNativePointer context, KNativePointer const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ETSModuleAnnotations(_context, _receiver, &length); - return new std::vector(result, result + length); + return StageArena::cloneVector(result, length); } KOALA_INTEROP_2(ETSModuleAnnotations, KNativePointer, KNativePointer, KNativePointer); @@ -6134,7 +6602,7 @@ KNativePointer impl_ETSModuleAnnotationsConst(KNativePointer context, KNativePoi const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ETSModuleAnnotationsConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(ETSModuleAnnotationsConst, KNativePointer, KNativePointer, KNativePointer); @@ -6250,7 +6718,7 @@ KNativePointer impl_TSSignatureDeclarationParamsConst(KNativePointer context, KN const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TSSignatureDeclarationParamsConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(TSSignatureDeclarationParamsConst, KNativePointer, KNativePointer, KNativePointer); @@ -6386,7 +6854,7 @@ KNativePointer impl_TSTupleTypeElementTypeConst(KNativePointer context, KNativeP const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TSTupleTypeElementTypeConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(TSTupleTypeElementTypeConst, KNativePointer, KNativePointer, KNativePointer); @@ -6635,7 +7103,7 @@ KNativePointer impl_ImportDeclarationSpecifiersConst(KNativePointer context, KNa const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ImportDeclarationSpecifiersConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(ImportDeclarationSpecifiersConst, KNativePointer, KNativePointer, KNativePointer); @@ -6645,7 +7113,7 @@ KNativePointer impl_ImportDeclarationSpecifiers(KNativePointer context, KNativeP const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ImportDeclarationSpecifiers(_context, _receiver, &length); - return new std::vector(result, result + length); + return StageArena::cloneVector(result, length); } KOALA_INTEROP_2(ImportDeclarationSpecifiers, KNativePointer, KNativePointer, KNativePointer); @@ -6735,12 +7203,62 @@ KNativePointer impl_UpdateETSImportDeclaration(KNativePointer context, KNativePo } KOALA_INTEROP_6(UpdateETSImportDeclaration, KNativePointer, KNativePointer, KNativePointer, KNativePointer, KNativePointerArray, KUInt, KInt); +void impl_ETSImportDeclarationSetImportMetadata(KNativePointer context, KNativePointer receiver, KInt importFlags, KInt lang, KStringPtr& resolvedSource, KStringPtr& declPath, KStringPtr& ohmUrl) +{ + const auto _context = reinterpret_cast(context); + const auto _receiver = reinterpret_cast(receiver); + const auto _importFlags = static_cast(importFlags); + const auto _lang = static_cast(lang); + const auto _resolvedSource = getStringCopy(resolvedSource); + const auto _declPath = getStringCopy(declPath); + const auto _ohmUrl = getStringCopy(ohmUrl); + GetImpl()->ETSImportDeclarationSetImportMetadata(_context, _receiver, _importFlags, _lang, _resolvedSource, _declPath, _ohmUrl); + return ; +} +KOALA_INTEROP_V7(ETSImportDeclarationSetImportMetadata, KNativePointer, KNativePointer, KInt, KInt, KStringPtr, KStringPtr, KStringPtr); + +KNativePointer impl_ETSImportDeclarationDeclPathConst(KNativePointer context, KNativePointer receiver) +{ + const auto _context = reinterpret_cast(context); + const auto _receiver = reinterpret_cast(receiver); + auto result = GetImpl()->ETSImportDeclarationDeclPathConst(_context, _receiver); + return StageArena::strdup(result); +} +KOALA_INTEROP_2(ETSImportDeclarationDeclPathConst, KNativePointer, KNativePointer, KNativePointer); + +KNativePointer impl_ETSImportDeclarationOhmUrlConst(KNativePointer context, KNativePointer receiver) +{ + const auto _context = reinterpret_cast(context); + const auto _receiver = reinterpret_cast(receiver); + auto result = GetImpl()->ETSImportDeclarationOhmUrlConst(_context, _receiver); + return StageArena::strdup(result); +} +KOALA_INTEROP_2(ETSImportDeclarationOhmUrlConst, KNativePointer, KNativePointer, KNativePointer); + +KBoolean impl_ETSImportDeclarationIsValidConst(KNativePointer context, KNativePointer receiver) +{ + const auto _context = reinterpret_cast(context); + const auto _receiver = reinterpret_cast(receiver); + auto result = GetImpl()->ETSImportDeclarationIsValidConst(_context, _receiver); + return result; +} +KOALA_INTEROP_2(ETSImportDeclarationIsValidConst, KBoolean, KNativePointer, KNativePointer); + +KBoolean impl_ETSImportDeclarationIsPureDynamicConst(KNativePointer context, KNativePointer receiver) +{ + const auto _context = reinterpret_cast(context); + const auto _receiver = reinterpret_cast(receiver); + auto result = GetImpl()->ETSImportDeclarationIsPureDynamicConst(_context, _receiver); + return result; +} +KOALA_INTEROP_2(ETSImportDeclarationIsPureDynamicConst, KBoolean, KNativePointer, KNativePointer); + KNativePointer impl_ETSImportDeclarationAssemblerName(KNativePointer context, KNativePointer receiver) { const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); auto result = GetImpl()->ETSImportDeclarationAssemblerName(_context, _receiver); - return new std::string(result); + return StageArena::strdup(result); } KOALA_INTEROP_2(ETSImportDeclarationAssemblerName, KNativePointer, KNativePointer, KNativePointer); @@ -6749,7 +7267,7 @@ KNativePointer impl_ETSImportDeclarationAssemblerNameConst(KNativePointer contex const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); auto result = GetImpl()->ETSImportDeclarationAssemblerNameConst(_context, _receiver); - return new std::string(result); + return StageArena::strdup(result); } KOALA_INTEROP_2(ETSImportDeclarationAssemblerNameConst, KNativePointer, KNativePointer, KNativePointer); @@ -6758,7 +7276,7 @@ KNativePointer impl_ETSImportDeclarationResolvedSourceConst(KNativePointer conte const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); auto result = GetImpl()->ETSImportDeclarationResolvedSourceConst(_context, _receiver); - return new std::string(result); + return StageArena::strdup(result); } KOALA_INTEROP_2(ETSImportDeclarationResolvedSourceConst, KNativePointer, KNativePointer, KNativePointer); @@ -6808,7 +7326,7 @@ KNativePointer impl_TSModuleBlockStatementsConst(KNativePointer context, KNative const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TSModuleBlockStatementsConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(TSModuleBlockStatementsConst, KNativePointer, KNativePointer, KNativePointer); @@ -6879,6 +7397,15 @@ void impl_ETSNewArrayInstanceExpressionSetDimension(KNativePointer context, KNat } KOALA_INTEROP_V3(ETSNewArrayInstanceExpressionSetDimension, KNativePointer, KNativePointer, KNativePointer); +void impl_ETSNewArrayInstanceExpressionClearPreferredType(KNativePointer context, KNativePointer receiver) +{ + const auto _context = reinterpret_cast(context); + const auto _receiver = reinterpret_cast(receiver); + GetImpl()->ETSNewArrayInstanceExpressionClearPreferredType(_context, _receiver); + return ; +} +KOALA_INTEROP_V2(ETSNewArrayInstanceExpressionClearPreferredType, KNativePointer, KNativePointer); + KNativePointer impl_CreateAnnotationDeclaration(KNativePointer context, KNativePointer expr) { const auto _context = reinterpret_cast(context); @@ -6926,7 +7453,7 @@ KNativePointer impl_AnnotationDeclarationInternalNameConst(KNativePointer contex const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); auto result = GetImpl()->AnnotationDeclarationInternalNameConst(_context, _receiver); - return new std::string(result); + return StageArena::strdup(result); } KOALA_INTEROP_2(AnnotationDeclarationInternalNameConst, KNativePointer, KNativePointer, KNativePointer); @@ -6964,7 +7491,7 @@ KNativePointer impl_AnnotationDeclarationProperties(KNativePointer context, KNat const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->AnnotationDeclarationProperties(_context, _receiver, &length); - return new std::vector(result, result + length); + return StageArena::cloneVector(result, length); } KOALA_INTEROP_2(AnnotationDeclarationProperties, KNativePointer, KNativePointer, KNativePointer); @@ -6974,7 +7501,7 @@ KNativePointer impl_AnnotationDeclarationPropertiesConst(KNativePointer context, const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->AnnotationDeclarationPropertiesConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(AnnotationDeclarationPropertiesConst, KNativePointer, KNativePointer, KNativePointer); @@ -6984,7 +7511,7 @@ KNativePointer impl_AnnotationDeclarationPropertiesPtrConst(KNativePointer conte const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->AnnotationDeclarationPropertiesPtrConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(AnnotationDeclarationPropertiesPtrConst, KNativePointer, KNativePointer, KNativePointer); @@ -7068,7 +7595,7 @@ KNativePointer impl_AnnotationDeclarationAnnotations(KNativePointer context, KNa const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->AnnotationDeclarationAnnotations(_context, _receiver, &length); - return new std::vector(result, result + length); + return StageArena::cloneVector(result, length); } KOALA_INTEROP_2(AnnotationDeclarationAnnotations, KNativePointer, KNativePointer, KNativePointer); @@ -7078,7 +7605,7 @@ KNativePointer impl_AnnotationDeclarationAnnotationsConst(KNativePointer context const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->AnnotationDeclarationAnnotationsConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(AnnotationDeclarationAnnotationsConst, KNativePointer, KNativePointer, KNativePointer); @@ -7150,7 +7677,7 @@ KNativePointer impl_AnnotationUsageIrProperties(KNativePointer context, KNativeP const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->AnnotationUsageIrProperties(_context, _receiver, &length); - return new std::vector(result, result + length); + return StageArena::cloneVector(result, length); } KOALA_INTEROP_2(AnnotationUsageIrProperties, KNativePointer, KNativePointer, KNativePointer); @@ -7160,7 +7687,7 @@ KNativePointer impl_AnnotationUsageIrPropertiesConst(KNativePointer context, KNa const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->AnnotationUsageIrPropertiesConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(AnnotationUsageIrPropertiesConst, KNativePointer, KNativePointer, KNativePointer); @@ -7170,7 +7697,7 @@ KNativePointer impl_AnnotationUsageIrPropertiesPtrConst(KNativePointer context, const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->AnnotationUsageIrPropertiesPtrConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(AnnotationUsageIrPropertiesPtrConst, KNativePointer, KNativePointer, KNativePointer); @@ -7297,7 +7824,7 @@ KNativePointer impl_FunctionSignatureParamsConst(KNativePointer context, KNative const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->FunctionSignatureParamsConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(FunctionSignatureParamsConst, KNativePointer, KNativePointer, KNativePointer); @@ -7307,7 +7834,7 @@ KNativePointer impl_FunctionSignatureParams(KNativePointer context, KNativePoint const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->FunctionSignatureParams(_context, _receiver, &length); - return new std::vector(result, result + length); + return StageArena::cloneVector(result, length); } KOALA_INTEROP_2(FunctionSignatureParams, KNativePointer, KNativePointer, KNativePointer); @@ -7412,6 +7939,17 @@ KNativePointer impl_ChainExpressionGetExpression(KNativePointer context, KNative } KOALA_INTEROP_2(ChainExpressionGetExpression, KNativePointer, KNativePointer, KNativePointer); +void impl_ChainExpressionCompileToRegConst(KNativePointer context, KNativePointer receiver, KNativePointer pg, KNativePointer objReg) +{ + const auto _context = reinterpret_cast(context); + const auto _receiver = reinterpret_cast(receiver); + const auto _pg = reinterpret_cast(pg); + const auto _objReg = reinterpret_cast(objReg); + GetImpl()->ChainExpressionCompileToRegConst(_context, _receiver, _pg, _objReg); + return ; +} +KOALA_INTEROP_V4(ChainExpressionCompileToRegConst, KNativePointer, KNativePointer, KNativePointer, KNativePointer); + KNativePointer impl_CreateTSIntersectionType(KNativePointer context, KNativePointerArray types, KUInt typesSequenceLength) { const auto _context = reinterpret_cast(context); @@ -7439,7 +7977,7 @@ KNativePointer impl_TSIntersectionTypeTypesConst(KNativePointer context, KNative const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TSIntersectionTypeTypesConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(TSIntersectionTypeTypesConst, KNativePointer, KNativePointer, KNativePointer); @@ -7529,7 +8067,7 @@ KNativePointer impl_BlockExpressionStatementsConst(KNativePointer context, KNati const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->BlockExpressionStatementsConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(BlockExpressionStatementsConst, KNativePointer, KNativePointer, KNativePointer); @@ -7539,7 +8077,7 @@ KNativePointer impl_BlockExpressionStatements(KNativePointer context, KNativePoi const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->BlockExpressionStatements(_context, _receiver, &length); - return new std::vector(result, result + length); + return StageArena::cloneVector(result, length); } KOALA_INTEROP_2(BlockExpressionStatements, KNativePointer, KNativePointer, KNativePointer); @@ -7591,7 +8129,7 @@ KNativePointer impl_TSTypeLiteralMembersConst(KNativePointer context, KNativePoi const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TSTypeLiteralMembersConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(TSTypeLiteralMembersConst, KNativePointer, KNativePointer, KNativePointer); @@ -7714,7 +8252,7 @@ KNativePointer impl_TSTypeParameterAnnotations(KNativePointer context, KNativePo const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TSTypeParameterAnnotations(_context, _receiver, &length); - return new std::vector(result, result + length); + return StageArena::cloneVector(result, length); } KOALA_INTEROP_2(TSTypeParameterAnnotations, KNativePointer, KNativePointer, KNativePointer); @@ -7724,7 +8262,7 @@ KNativePointer impl_TSTypeParameterAnnotationsConst(KNativePointer context, KNat const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TSTypeParameterAnnotationsConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(TSTypeParameterAnnotationsConst, KNativePointer, KNativePointer, KNativePointer); @@ -7810,7 +8348,7 @@ KNativePointer impl_SpreadElementDecoratorsConst(KNativePointer context, KNative const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->SpreadElementDecoratorsConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(SpreadElementDecoratorsConst, KNativePointer, KNativePointer, KNativePointer); @@ -8039,7 +8577,7 @@ KNativePointer impl_ExportNamedDeclarationSpecifiersConst(KNativePointer context const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ExportNamedDeclarationSpecifiersConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(ExportNamedDeclarationSpecifiersConst, KNativePointer, KNativePointer, KNativePointer); @@ -8090,7 +8628,7 @@ KNativePointer impl_ETSParameterExpressionNameConst(KNativePointer context, KNat const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); auto result = GetImpl()->ETSParameterExpressionNameConst(_context, _receiver); - return new std::string(result); + return StageArena::strdup(result); } KOALA_INTEROP_2(ETSParameterExpressionNameConst, KNativePointer, KNativePointer, KNativePointer); @@ -8173,7 +8711,7 @@ KNativePointer impl_ETSParameterExpressionLexerSavedConst(KNativePointer context const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); auto result = GetImpl()->ETSParameterExpressionLexerSavedConst(_context, _receiver); - return new std::string(result); + return StageArena::strdup(result); } KOALA_INTEROP_2(ETSParameterExpressionLexerSavedConst, KNativePointer, KNativePointer, KNativePointer); @@ -8268,7 +8806,7 @@ KNativePointer impl_ETSParameterExpressionAnnotations(KNativePointer context, KN const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ETSParameterExpressionAnnotations(_context, _receiver, &length); - return new std::vector(result, result + length); + return StageArena::cloneVector(result, length); } KOALA_INTEROP_2(ETSParameterExpressionAnnotations, KNativePointer, KNativePointer, KNativePointer); @@ -8278,7 +8816,7 @@ KNativePointer impl_ETSParameterExpressionAnnotationsConst(KNativePointer contex const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ETSParameterExpressionAnnotationsConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(ETSParameterExpressionAnnotationsConst, KNativePointer, KNativePointer, KNativePointer); @@ -8320,7 +8858,7 @@ KNativePointer impl_TSTypeParameterInstantiationParamsConst(KNativePointer conte const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TSTypeParameterInstantiationParamsConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(TSTypeParameterInstantiationParamsConst, KNativePointer, KNativePointer, KNativePointer); @@ -8410,13 +8948,23 @@ KNativePointer impl_SwitchCaseStatementTestConst(KNativePointer context, KNative } KOALA_INTEROP_2(SwitchCaseStatementTestConst, KNativePointer, KNativePointer, KNativePointer); +void impl_SwitchCaseStatementSetTest(KNativePointer context, KNativePointer receiver, KNativePointer test) +{ + const auto _context = reinterpret_cast(context); + const auto _receiver = reinterpret_cast(receiver); + const auto _test = reinterpret_cast(test); + GetImpl()->SwitchCaseStatementSetTest(_context, _receiver, _test); + return ; +} +KOALA_INTEROP_V3(SwitchCaseStatementSetTest, KNativePointer, KNativePointer, KNativePointer); + KNativePointer impl_SwitchCaseStatementConsequentConst(KNativePointer context, KNativePointer receiver) { const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->SwitchCaseStatementConsequentConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(SwitchCaseStatementConsequentConst, KNativePointer, KNativePointer, KNativePointer); @@ -8596,7 +9144,7 @@ KNativePointer impl_ClassStaticBlockNameConst(KNativePointer context, KNativePoi const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); auto result = GetImpl()->ClassStaticBlockNameConst(_context, _receiver); - return new std::string(result); + return StageArena::strdup(result); } KOALA_INTEROP_2(ClassStaticBlockNameConst, KNativePointer, KNativePointer, KNativePointer); @@ -8835,7 +9383,7 @@ KNativePointer impl_TemplateLiteralQuasisConst(KNativePointer context, KNativePo const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TemplateLiteralQuasisConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(TemplateLiteralQuasisConst, KNativePointer, KNativePointer, KNativePointer); @@ -8845,7 +9393,7 @@ KNativePointer impl_TemplateLiteralExpressionsConst(KNativePointer context, KNat const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TemplateLiteralExpressionsConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(TemplateLiteralExpressionsConst, KNativePointer, KNativePointer, KNativePointer); @@ -8854,7 +9402,7 @@ KNativePointer impl_TemplateLiteralGetMultilineStringConst(KNativePointer contex const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); auto result = GetImpl()->TemplateLiteralGetMultilineStringConst(_context, _receiver); - return new std::string(result); + return StageArena::strdup(result); } KOALA_INTEROP_2(TemplateLiteralGetMultilineStringConst, KNativePointer, KNativePointer, KNativePointer); @@ -8885,7 +9433,7 @@ KNativePointer impl_TSUnionTypeTypesConst(KNativePointer context, KNativePointer const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TSUnionTypeTypesConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(TSUnionTypeTypesConst, KNativePointer, KNativePointer, KNativePointer); @@ -8968,7 +9516,7 @@ KNativePointer impl_IdentifierNameConst(KNativePointer context, KNativePointer r const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); auto result = GetImpl()->IdentifierNameConst(_context, _receiver); - return new std::string(result); + return StageArena::strdup(result); } KOALA_INTEROP_2(IdentifierNameConst, KNativePointer, KNativePointer, KNativePointer); @@ -8977,7 +9525,7 @@ KNativePointer impl_IdentifierName(KNativePointer context, KNativePointer receiv const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); auto result = GetImpl()->IdentifierName(_context, _receiver); - return new std::string(result); + return StageArena::strdup(result); } KOALA_INTEROP_2(IdentifierName, KNativePointer, KNativePointer, KNativePointer); @@ -8997,7 +9545,7 @@ KNativePointer impl_IdentifierDecoratorsConst(KNativePointer context, KNativePoi const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->IdentifierDecoratorsConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(IdentifierDecoratorsConst, KNativePointer, KNativePointer, KNativePointer); @@ -9256,7 +9804,7 @@ KNativePointer impl_BlockStatementStatementsConst(KNativePointer context, KNativ const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->BlockStatementStatementsConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(BlockStatementStatementsConst, KNativePointer, KNativePointer, KNativePointer); @@ -9266,7 +9814,7 @@ KNativePointer impl_BlockStatementStatements(KNativePointer context, KNativePoin const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->BlockStatementStatements(_context, _receiver, &length); - return new std::vector(result, result + length); + return StageArena::cloneVector(result, length); } KOALA_INTEROP_2(BlockStatementStatements, KNativePointer, KNativePointer, KNativePointer); @@ -9281,6 +9829,27 @@ void impl_BlockStatementSetStatements(KNativePointer context, KNativePointer rec } KOALA_INTEROP_V4(BlockStatementSetStatements, KNativePointer, KNativePointer, KNativePointerArray, KUInt); +void impl_BlockStatementAddStatement(KNativePointer context, KNativePointer receiver, KNativePointer stmt) +{ + const auto _context = reinterpret_cast(context); + const auto _receiver = reinterpret_cast(receiver); + const auto _stmt = reinterpret_cast(stmt); + GetImpl()->BlockStatementAddStatement(_context, _receiver, _stmt); + return ; +} +KOALA_INTEROP_V3(BlockStatementAddStatement, KNativePointer, KNativePointer, KNativePointer); + +void impl_BlockStatementAddStatements(KNativePointer context, KNativePointer receiver, KNativePointerArray stmts, KUInt stmtsSequenceLength) +{ + const auto _context = reinterpret_cast(context); + const auto _receiver = reinterpret_cast(receiver); + const auto _stmts = reinterpret_cast(stmts); + const auto _stmtsSequenceLength = static_cast(stmtsSequenceLength); + GetImpl()->BlockStatementAddStatements(_context, _receiver, _stmts, _stmtsSequenceLength); + return ; +} +KOALA_INTEROP_V4(BlockStatementAddStatements, KNativePointer, KNativePointer, KNativePointerArray, KUInt); + void impl_BlockStatementAddTrailingBlock(KNativePointer context, KNativePointer receiver, KNativePointer stmt, KNativePointer trailingBlock) { const auto _context = reinterpret_cast(context); @@ -9350,7 +9919,7 @@ KNativePointer impl_TSTypeParameterDeclarationParamsConst(KNativePointer context const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TSTypeParameterDeclarationParamsConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(TSTypeParameterDeclarationParamsConst, KNativePointer, KNativePointer, KNativePointer); @@ -9418,6 +9987,15 @@ KBoolean impl_MethodDefinitionIsConstructorConst(KNativePointer context, KNative } KOALA_INTEROP_2(MethodDefinitionIsConstructorConst, KBoolean, KNativePointer, KNativePointer); +KBoolean impl_MethodDefinitionIsMethodConst(KNativePointer context, KNativePointer receiver) +{ + const auto _context = reinterpret_cast(context); + const auto _receiver = reinterpret_cast(receiver); + auto result = GetImpl()->MethodDefinitionIsMethodConst(_context, _receiver); + return result; +} +KOALA_INTEROP_2(MethodDefinitionIsMethodConst, KBoolean, KNativePointer, KNativePointer); + KBoolean impl_MethodDefinitionIsExtensionMethodConst(KNativePointer context, KNativePointer receiver) { const auto _context = reinterpret_cast(context); @@ -9427,13 +10005,50 @@ KBoolean impl_MethodDefinitionIsExtensionMethodConst(KNativePointer context, KNa } KOALA_INTEROP_2(MethodDefinitionIsExtensionMethodConst, KBoolean, KNativePointer, KNativePointer); +KBoolean impl_MethodDefinitionIsGetterConst(KNativePointer context, KNativePointer receiver) +{ + const auto _context = reinterpret_cast(context); + const auto _receiver = reinterpret_cast(receiver); + auto result = GetImpl()->MethodDefinitionIsGetterConst(_context, _receiver); + return result; +} +KOALA_INTEROP_2(MethodDefinitionIsGetterConst, KBoolean, KNativePointer, KNativePointer); + +KBoolean impl_MethodDefinitionIsSetterConst(KNativePointer context, KNativePointer receiver) +{ + const auto _context = reinterpret_cast(context); + const auto _receiver = reinterpret_cast(receiver); + auto result = GetImpl()->MethodDefinitionIsSetterConst(_context, _receiver); + return result; +} +KOALA_INTEROP_2(MethodDefinitionIsSetterConst, KBoolean, KNativePointer, KNativePointer); + +KBoolean impl_MethodDefinitionIsDefaultAccessModifierConst(KNativePointer context, KNativePointer receiver) +{ + const auto _context = reinterpret_cast(context); + const auto _receiver = reinterpret_cast(receiver); + auto result = GetImpl()->MethodDefinitionIsDefaultAccessModifierConst(_context, _receiver); + return result; +} +KOALA_INTEROP_2(MethodDefinitionIsDefaultAccessModifierConst, KBoolean, KNativePointer, KNativePointer); + +void impl_MethodDefinitionSetDefaultAccessModifier(KNativePointer context, KNativePointer receiver, KBoolean isDefault) +{ + const auto _context = reinterpret_cast(context); + const auto _receiver = reinterpret_cast(receiver); + const auto _isDefault = static_cast(isDefault); + GetImpl()->MethodDefinitionSetDefaultAccessModifier(_context, _receiver, _isDefault); + return ; +} +KOALA_INTEROP_V3(MethodDefinitionSetDefaultAccessModifier, KNativePointer, KNativePointer, KBoolean); + KNativePointer impl_MethodDefinitionOverloadsConst(KNativePointer context, KNativePointer receiver) { const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->MethodDefinitionOverloadsConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(MethodDefinitionOverloadsConst, KNativePointer, KNativePointer, KNativePointer); @@ -9551,6 +10166,15 @@ KNativePointer impl_MethodDefinitionFunctionConst(KNativePointer context, KNativ } KOALA_INTEROP_2(MethodDefinitionFunctionConst, KNativePointer, KNativePointer, KNativePointer); +void impl_MethodDefinitionInitializeOverloadInfo(KNativePointer context, KNativePointer receiver) +{ + const auto _context = reinterpret_cast(context); + const auto _receiver = reinterpret_cast(receiver); + GetImpl()->MethodDefinitionInitializeOverloadInfo(_context, _receiver); + return ; +} +KOALA_INTEROP_V2(MethodDefinitionInitializeOverloadInfo, KNativePointer, KNativePointer); + KNativePointer impl_CreateTSNullKeyword(KNativePointer context) { const auto _context = reinterpret_cast(context); @@ -9718,7 +10342,7 @@ KNativePointer impl_ExpressionToStringConst(KNativePointer context, KNativePoint const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); auto result = GetImpl()->ExpressionToStringConst(_context, _receiver); - return new std::string(result); + return StageArena::strdup(result); } KOALA_INTEROP_2(ExpressionToStringConst, KNativePointer, KNativePointer, KNativePointer); @@ -9823,7 +10447,7 @@ KNativePointer impl_SrcDumperStrConst(KNativePointer context, KNativePointer rec const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); auto result = GetImpl()->SrcDumperStrConst(_context, _receiver); - return new std::string(result); + return StageArena::strdup(result); } KOALA_INTEROP_2(SrcDumperStrConst, KNativePointer, KNativePointer, KNativePointer); @@ -9946,6 +10570,15 @@ KNativePointer impl_BreakStatementTargetConst(KNativePointer context, KNativePoi } KOALA_INTEROP_2(BreakStatementTargetConst, KNativePointer, KNativePointer, KNativePointer); +KBoolean impl_BreakStatementHasTargetConst(KNativePointer context, KNativePointer receiver) +{ + const auto _context = reinterpret_cast(context); + const auto _receiver = reinterpret_cast(receiver); + auto result = GetImpl()->BreakStatementHasTargetConst(_context, _receiver); + return result; +} +KOALA_INTEROP_2(BreakStatementHasTargetConst, KBoolean, KNativePointer, KNativePointer); + void impl_BreakStatementSetTarget(KNativePointer context, KNativePointer receiver, KNativePointer target) { const auto _context = reinterpret_cast(context); @@ -9984,7 +10617,7 @@ KNativePointer impl_RegExpLiteralPatternConst(KNativePointer context, KNativePoi const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); auto result = GetImpl()->RegExpLiteralPatternConst(_context, _receiver); - return new std::string(result); + return StageArena::strdup(result); } KOALA_INTEROP_2(RegExpLiteralPatternConst, KNativePointer, KNativePointer, KNativePointer); @@ -10118,7 +10751,7 @@ KNativePointer impl_ClassDeclarationDecoratorsConst(KNativePointer context, KNat const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ClassDeclarationDecoratorsConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(ClassDeclarationDecoratorsConst, KNativePointer, KNativePointer, KNativePointer); @@ -10223,7 +10856,7 @@ KNativePointer impl_TSQualifiedNameNameConst(KNativePointer context, KNativePoin const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); auto result = GetImpl()->TSQualifiedNameNameConst(_context, _receiver); - return new std::string(result); + return StageArena::strdup(result); } KOALA_INTEROP_2(TSQualifiedNameNameConst, KNativePointer, KNativePointer, KNativePointer); @@ -10281,6 +10914,16 @@ KNativePointer impl_CreateValidationInfo(KNativePointer context) } KOALA_INTEROP_1(CreateValidationInfo, KNativePointer, KNativePointer); +KNativePointer impl_CreateValidationInfo1(KNativePointer context, KStringPtr& m, KNativePointer p) +{ + const auto _context = reinterpret_cast(context); + const auto _m = getStringCopy(m); + const auto _p = reinterpret_cast(p); + auto result = GetImpl()->CreateValidationInfo1(_context, _m, _p); + return result; +} +KOALA_INTEROP_3(CreateValidationInfo1, KNativePointer, KNativePointer, KStringPtr, KNativePointer); + KBoolean impl_ValidationInfoFailConst(KNativePointer context, KNativePointer receiver) { const auto _context = reinterpret_cast(context); @@ -10353,6 +10996,15 @@ KNativePointer impl_ContinueStatementTargetConst(KNativePointer context, KNative } KOALA_INTEROP_2(ContinueStatementTargetConst, KNativePointer, KNativePointer, KNativePointer); +KBoolean impl_ContinueStatementHasTargetConst(KNativePointer context, KNativePointer receiver) +{ + const auto _context = reinterpret_cast(context); + const auto _receiver = reinterpret_cast(receiver); + auto result = GetImpl()->ContinueStatementHasTargetConst(_context, _receiver); + return result; +} +KOALA_INTEROP_2(ContinueStatementHasTargetConst, KBoolean, KNativePointer, KNativePointer); + void impl_ContinueStatementSetTarget(KNativePointer context, KNativePointer receiver, KNativePointer target) { const auto _context = reinterpret_cast(context); @@ -10429,7 +11081,7 @@ KNativePointer impl_ETSNewMultiDimArrayInstanceExpressionDimensions(KNativePoint const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ETSNewMultiDimArrayInstanceExpressionDimensions(_context, _receiver, &length); - return new std::vector(result, result + length); + return StageArena::cloneVector(result, length); } KOALA_INTEROP_2(ETSNewMultiDimArrayInstanceExpressionDimensions, KNativePointer, KNativePointer, KNativePointer); @@ -10439,10 +11091,19 @@ KNativePointer impl_ETSNewMultiDimArrayInstanceExpressionDimensionsConst(KNative const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ETSNewMultiDimArrayInstanceExpressionDimensionsConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(ETSNewMultiDimArrayInstanceExpressionDimensionsConst, KNativePointer, KNativePointer, KNativePointer); +void impl_ETSNewMultiDimArrayInstanceExpressionClearPreferredType(KNativePointer context, KNativePointer receiver) +{ + const auto _context = reinterpret_cast(context); + const auto _receiver = reinterpret_cast(receiver); + GetImpl()->ETSNewMultiDimArrayInstanceExpressionClearPreferredType(_context, _receiver); + return ; +} +KOALA_INTEROP_V2(ETSNewMultiDimArrayInstanceExpressionClearPreferredType, KNativePointer, KNativePointer); + KNativePointer impl_CreateTSNamedTupleMember(KNativePointer context, KNativePointer label, KNativePointer elementType, KBoolean optional_arg) { const auto _context = reinterpret_cast(context); @@ -10555,7 +11216,7 @@ KNativePointer impl_AstDumperModifierToString(KNativePointer context, KNativePoi const auto _receiver = reinterpret_cast(receiver); const auto _flags = static_cast(flags); auto result = GetImpl()->AstDumperModifierToString(_context, _receiver, _flags); - return new std::string(result); + return StageArena::strdup(result); } KOALA_INTEROP_3(AstDumperModifierToString, KNativePointer, KNativePointer, KNativePointer, KInt); @@ -10565,7 +11226,7 @@ KNativePointer impl_AstDumperTypeOperatorToString(KNativePointer context, KNativ const auto _receiver = reinterpret_cast(receiver); const auto _operatorType = static_cast(operatorType); auto result = GetImpl()->AstDumperTypeOperatorToString(_context, _receiver, _operatorType); - return new std::string(result); + return StageArena::strdup(result); } KOALA_INTEROP_3(AstDumperTypeOperatorToString, KNativePointer, KNativePointer, KNativePointer, KInt); @@ -10574,7 +11235,7 @@ KNativePointer impl_AstDumperStrConst(KNativePointer context, KNativePointer rec const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); auto result = GetImpl()->AstDumperStrConst(_context, _receiver); - return new std::string(result); + return StageArena::strdup(result); } KOALA_INTEROP_2(AstDumperStrConst, KNativePointer, KNativePointer, KNativePointer); @@ -10734,7 +11395,7 @@ KNativePointer impl_TSEnumMemberNameConst(KNativePointer context, KNativePointer const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); auto result = GetImpl()->TSEnumMemberNameConst(_context, _receiver); - return new std::string(result); + return StageArena::strdup(result); } KOALA_INTEROP_2(TSEnumMemberNameConst, KNativePointer, KNativePointer, KNativePointer); @@ -10779,13 +11440,23 @@ KNativePointer impl_SwitchStatementDiscriminant(KNativePointer context, KNativeP } KOALA_INTEROP_2(SwitchStatementDiscriminant, KNativePointer, KNativePointer, KNativePointer); +void impl_SwitchStatementSetDiscriminant(KNativePointer context, KNativePointer receiver, KNativePointer discriminant) +{ + const auto _context = reinterpret_cast(context); + const auto _receiver = reinterpret_cast(receiver); + const auto _discriminant = reinterpret_cast(discriminant); + GetImpl()->SwitchStatementSetDiscriminant(_context, _receiver, _discriminant); + return ; +} +KOALA_INTEROP_V3(SwitchStatementSetDiscriminant, KNativePointer, KNativePointer, KNativePointer); + KNativePointer impl_SwitchStatementCasesConst(KNativePointer context, KNativePointer receiver) { const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->SwitchStatementCasesConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(SwitchStatementCasesConst, KNativePointer, KNativePointer, KNativePointer); @@ -10795,7 +11466,7 @@ KNativePointer impl_SwitchStatementCases(KNativePointer context, KNativePointer const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->SwitchStatementCases(_context, _receiver, &length); - return new std::vector(result, result + length); + return StageArena::cloneVector(result, length); } KOALA_INTEROP_2(SwitchStatementCases, KNativePointer, KNativePointer, KNativePointer); @@ -10877,6 +11548,25 @@ KNativePointer impl_UpdateCatchClause(KNativePointer context, KNativePointer ori } KOALA_INTEROP_4(UpdateCatchClause, KNativePointer, KNativePointer, KNativePointer, KNativePointer, KNativePointer); +KNativePointer impl_CreateCatchClause1(KNativePointer context, KNativePointer other) +{ + const auto _context = reinterpret_cast(context); + const auto _other = reinterpret_cast(other); + auto result = GetImpl()->CreateCatchClause1(_context, _other); + return result; +} +KOALA_INTEROP_2(CreateCatchClause1, KNativePointer, KNativePointer, KNativePointer); + +KNativePointer impl_UpdateCatchClause1(KNativePointer context, KNativePointer original, KNativePointer other) +{ + const auto _context = reinterpret_cast(context); + const auto _original = reinterpret_cast(original); + const auto _other = reinterpret_cast(other); + auto result = GetImpl()->UpdateCatchClause1(_context, _original, _other); + return result; +} +KOALA_INTEROP_3(UpdateCatchClause1, KNativePointer, KNativePointer, KNativePointer, KNativePointer); + KNativePointer impl_CatchClauseParam(KNativePointer context, KNativePointer receiver) { const auto _context = reinterpret_cast(context); @@ -10949,7 +11639,7 @@ KNativePointer impl_SequenceExpressionSequenceConst(KNativePointer context, KNat const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->SequenceExpressionSequenceConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(SequenceExpressionSequenceConst, KNativePointer, KNativePointer, KNativePointer); @@ -10959,7 +11649,7 @@ KNativePointer impl_SequenceExpressionSequence(KNativePointer context, KNativePo const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->SequenceExpressionSequence(_context, _receiver, &length); - return new std::vector(result, result + length); + return StageArena::cloneVector(result, length); } KOALA_INTEROP_2(SequenceExpressionSequence, KNativePointer, KNativePointer, KNativePointer); @@ -11034,7 +11724,7 @@ KNativePointer impl_ArrowFunctionExpressionAnnotations(KNativePointer context, K const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ArrowFunctionExpressionAnnotations(_context, _receiver, &length); - return new std::vector(result, result + length); + return StageArena::cloneVector(result, length); } KOALA_INTEROP_2(ArrowFunctionExpressionAnnotations, KNativePointer, KNativePointer, KNativePointer); @@ -11044,7 +11734,7 @@ KNativePointer impl_ArrowFunctionExpressionAnnotationsConst(KNativePointer conte const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ArrowFunctionExpressionAnnotationsConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(ArrowFunctionExpressionAnnotationsConst, KNativePointer, KNativePointer, KNativePointer); @@ -11133,7 +11823,7 @@ KNativePointer impl_ETSNewClassInstanceExpressionGetArguments(KNativePointer con const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ETSNewClassInstanceExpressionGetArguments(_context, _receiver, &length); - return new std::vector(result, result + length); + return StageArena::cloneVector(result, length); } KOALA_INTEROP_2(ETSNewClassInstanceExpressionGetArguments, KNativePointer, KNativePointer, KNativePointer); @@ -11143,7 +11833,7 @@ KNativePointer impl_ETSNewClassInstanceExpressionGetArgumentsConst(KNativePointe const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ETSNewClassInstanceExpressionGetArgumentsConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(ETSNewClassInstanceExpressionGetArgumentsConst, KNativePointer, KNativePointer, KNativePointer); @@ -11419,6 +12109,15 @@ KNativePointer impl_ETSTypeReferencePartNameConst(KNativePointer context, KNativ } KOALA_INTEROP_2(ETSTypeReferencePartNameConst, KNativePointer, KNativePointer, KNativePointer); +KNativePointer impl_ETSTypeReferencePartGetIdent(KNativePointer context, KNativePointer receiver) +{ + const auto _context = reinterpret_cast(context); + const auto _receiver = reinterpret_cast(receiver); + auto result = GetImpl()->ETSTypeReferencePartGetIdent(_context, _receiver); + return result; +} +KOALA_INTEROP_2(ETSTypeReferencePartGetIdent, KNativePointer, KNativePointer, KNativePointer); + KNativePointer impl_ETSReExportDeclarationGetETSImportDeclarationsConst(KNativePointer context, KNativePointer receiver) { const auto _context = reinterpret_cast(context); @@ -11442,7 +12141,7 @@ KNativePointer impl_ETSReExportDeclarationGetProgramPathConst(KNativePointer con const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); auto result = GetImpl()->ETSReExportDeclarationGetProgramPathConst(_context, _receiver); - return new std::string(result); + return StageArena::strdup(result); } KOALA_INTEROP_2(ETSReExportDeclarationGetProgramPathConst, KNativePointer, KNativePointer, KNativePointer); @@ -11480,7 +12179,7 @@ KNativePointer impl_TypeNodeAnnotations(KNativePointer context, KNativePointer r const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TypeNodeAnnotations(_context, _receiver, &length); - return new std::vector(result, result + length); + return StageArena::cloneVector(result, length); } KOALA_INTEROP_2(TypeNodeAnnotations, KNativePointer, KNativePointer, KNativePointer); @@ -11490,7 +12189,7 @@ KNativePointer impl_TypeNodeAnnotationsConst(KNativePointer context, KNativePoin const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TypeNodeAnnotationsConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(TypeNodeAnnotationsConst, KNativePointer, KNativePointer, KNativePointer); @@ -11543,7 +12242,7 @@ KNativePointer impl_NewExpressionArgumentsConst(KNativePointer context, KNativeP const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->NewExpressionArgumentsConst(_context, _receiver, &length); - return (void*)new std::vector(result, result + length); + return (void*)StageArena::cloneVector(result, length); } KOALA_INTEROP_2(NewExpressionArgumentsConst, KNativePointer, KNativePointer, KNativePointer); diff --git a/koala-wrapper/src/Es2pandaNativeModule.ts b/koala-wrapper/src/Es2pandaNativeModule.ts index 78314c0cc..fd8f19e79 100644 --- a/koala-wrapper/src/Es2pandaNativeModule.ts +++ b/koala-wrapper/src/Es2pandaNativeModule.ts @@ -21,9 +21,11 @@ import { registerNativeModuleLibraryName, loadNativeModuleLibrary, KDouble, -} from '@koalaui/interop'; -import { Es2pandaNativeModule as GeneratedEs2pandaNativeModule } from './generated/Es2pandaNativeModule'; -import * as path from 'path'; + KUInt, +} from "@koalaui/interop" +import { Es2pandaNativeModule as GeneratedEs2pandaNativeModule, KNativePointerArray } from "./generated/Es2pandaNativeModule" +import * as path from "path" +import * as fs from "fs" // TODO: this type should be in interop export type KPtrArray = BigUint64Array; @@ -60,7 +62,7 @@ export class Es2pandaNativeModule { throw new Error('Not implemented'); } _AnnotationAllowedAnnotations(context: KPtr, node: KPtr, returnLen: KPtr): KPtr { - throw new Error('Not implemented'); + throw new Error("Not implemented") } _AnnotationAllowedAnnotationsConst(context: KPtr, node: KPtr, returnLen: KPtr): KPtr { throw new Error('Not implemented'); @@ -97,8 +99,8 @@ export class Es2pandaNativeModule { _CreateConfig(argc: number, argv: string[]): KPtr { throw new Error('Not implemented'); } - _DestroyConfig(config: KPtr): void { - throw new Error('Not implemented'); + _DestroyConfig(peer: KNativePointer): void { + throw new Error("Not implemented") } _CreateContextFromString(config: KPtr, source: String, filename: String): KPtr { throw new Error('Not implemented'); diff --git a/koala-wrapper/src/InteropNativeModule.ts b/koala-wrapper/src/InteropNativeModule.ts index 2018b318c..ce6747183 100644 --- a/koala-wrapper/src/InteropNativeModule.ts +++ b/koala-wrapper/src/InteropNativeModule.ts @@ -31,6 +31,9 @@ export class InteropNativeModule { _GetStringFinalizer(): KPtr { throw new Error("Not implemented") } + _RawUtf8ToString(ptr: KPtr): string { + throw new Error("Not implemented") + } _InvokeFinalizer(ptr: KPtr, finalizer: KPtr): void { throw new Error("Not implemented") } diff --git a/koala-wrapper/src/arkts-api/node-cache.ts b/koala-wrapper/src/arkts-api/node-cache.ts new file mode 100644 index 000000000..d409b7262 --- /dev/null +++ b/koala-wrapper/src/arkts-api/node-cache.ts @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { ArktsObject } from "./peers/ArktsObject" +import { KNativePointer } from "@koalaui/interop" + +export class NodeCache { + private static cache = new Map() + + static cached(pointer: KNativePointer, factory: (pointer: KNativePointer) => ArktsObject): T { + const cached = NodeCache.cache.get(pointer) + if (cached !== undefined) { + return cached as T + } + const node = factory(pointer) + NodeCache.cache.set(pointer, node) + return node as T + } + + public static clear(): void { + NodeCache.cache.clear() + } +} diff --git a/koala-wrapper/src/arkts-api/node-utilities/ETSStructDeclaration.ts b/koala-wrapper/src/arkts-api/node-utilities/ETSStructDeclaration.ts new file mode 100644 index 000000000..90ff336eb --- /dev/null +++ b/koala-wrapper/src/arkts-api/node-utilities/ETSStructDeclaration.ts @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { ClassDefinition, ETSStructDeclaration } from "../../generated" +import { isSameNativeObject } from "../peers/ArktsObject" +import { attachModifiers, updateThenAttach } from '../utilities/private'; + +export function updateETSStructDeclaration( + original: ETSStructDeclaration, + def?: ClassDefinition +): ETSStructDeclaration { + if (isSameNativeObject(def, original.definition)) { + return original + } + const update = updateThenAttach(ETSStructDeclaration.updateETSStructDeclaration, attachModifiers); + return update(original, def); +} diff --git a/koala-wrapper/src/arkts-api/node-utilities/ETSTuple.ts b/koala-wrapper/src/arkts-api/node-utilities/ETSTuple.ts new file mode 100644 index 000000000..8cb69f7fe --- /dev/null +++ b/koala-wrapper/src/arkts-api/node-utilities/ETSTuple.ts @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { ETSTuple, TypeNode } from "../../generated" +import { isSameNativeObject } from "../peers/ArktsObject" +import { attachModifiers, updateThenAttach } from '../utilities/private'; + +export function updateETSTuple( + original: ETSTuple, + typeList: readonly TypeNode[] +): ETSTuple { + if (isSameNativeObject(typeList, original.getTupleTypeAnnotationsList)) { + return original + } + const update = updateThenAttach(ETSTuple.update2ETSTuple, attachModifiers); + return update(original, typeList); +} diff --git a/koala-wrapper/src/arkts-api/node-utilities/TSTypeReferencePart.ts b/koala-wrapper/src/arkts-api/node-utilities/TSTypeReferencePart.ts new file mode 100644 index 000000000..a40398cfa --- /dev/null +++ b/koala-wrapper/src/arkts-api/node-utilities/TSTypeReferencePart.ts @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { ETSTypeReferencePart, Expression,TSTypeParameterInstantiation } from "../../generated" +import { isSameNativeObject } from "../peers/ArktsObject" +import { attachModifiers, updateThenAttach } from '../utilities/private'; + + +export function updateETSTypeReferencePart( + original: ETSTypeReferencePart, + name?: Expression, + typeParams?: TSTypeParameterInstantiation, + prev?: ETSTypeReferencePart +): ETSTypeReferencePart { + if (isSameNativeObject(name, original.name) + && isSameNativeObject(typeParams, original.typeParams) + && isSameNativeObject(prev, original.previous) + ) { + return original + } + const update = updateThenAttach(ETSTypeReferencePart.updateETSTypeReferencePart, attachModifiers); + return update(original, name, typeParams, prev); +} \ No newline at end of file diff --git a/koala-wrapper/src/arkts-api/node-utilities/TryStatement.ts b/koala-wrapper/src/arkts-api/node-utilities/TryStatement.ts new file mode 100644 index 000000000..5f4887ee6 --- /dev/null +++ b/koala-wrapper/src/arkts-api/node-utilities/TryStatement.ts @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { BlockStatement, CatchClause, LabelPair, Statement, TryStatement } from "../../generated" +import { isSameNativeObject } from "../peers/ArktsObject" +import { attachModifiers, updateThenAttach } from '../utilities/private'; + + +export function updateTryStatement( + original: TryStatement, + block: BlockStatement | undefined, + catchClauses: readonly CatchClause[], + finalizer: BlockStatement | undefined, + finalizerInsertionsLabelPair: readonly LabelPair[], + finalizerInsertionsStatement: readonly Statement[] +): TryStatement { + if (isSameNativeObject(block, original.block) + && isSameNativeObject(catchClauses, original.catchClauses) + && isSameNativeObject(finalizer, original.finallyBlock) + ) { + return original + } + const update = updateThenAttach(TryStatement.updateTryStatement, attachModifiers); + return update(original, block, catchClauses, finalizer,finalizerInsertionsLabelPair,finalizerInsertionsStatement); +} diff --git a/koala-wrapper/src/arkts-api/utilities/private.ts b/koala-wrapper/src/arkts-api/utilities/private.ts index 30db3e472..ddbf5a28f 100644 --- a/koala-wrapper/src/arkts-api/utilities/private.ts +++ b/koala-wrapper/src/arkts-api/utilities/private.ts @@ -21,8 +21,7 @@ import { KNativePointer, nullptr, withString, - withStringArray, - withStringResult, + withStringArray } from '@koalaui/interop'; import { NativePtrDecoder } from './nativePtrDecoder'; import { Es2pandaModifierFlags, Es2pandaScriptFunctionFlags } from '../../generated/Es2pandaEnums'; @@ -42,6 +41,18 @@ export function assertValidPeer(peer: KPtr, expectedKind: Es2pandaAstNodeType): throwError(`invalid peer`); } const peerType = global.generatedEs2panda._AstNodeTypeConst(global.context, peer); + if (peerType === Es2pandaAstNodeType.AST_NODE_TYPE_STRUCT_DECLARATION && expectedKind === Es2pandaAstNodeType.AST_NODE_TYPE_CLASS_DECLARATION) { + // TODO: Struct is a child class of Class + return + } + if (peerType === Es2pandaAstNodeType.AST_NODE_TYPE_ETS_IMPORT_DECLARATION && expectedKind === Es2pandaAstNodeType.AST_NODE_TYPE_IMPORT_DECLARATION) { + // TODO: ETSImportDeclaration is a child of a ImportDeclaration + return + } + if (peerType === Es2pandaAstNodeType.AST_NODE_TYPE_ETS_MODULE && expectedKind === Es2pandaAstNodeType.AST_NODE_TYPE_BLOCK_STATEMENT) { + // TODO: ETSModule is a child of a BlockStatement + return + } if (peerType !== expectedKind) { throwError(`expected: ${Es2pandaAstNodeType[expectedKind]}, got: ${Es2pandaAstNodeType[peerType]}`); } @@ -80,7 +91,7 @@ export function unpackNodeArray(nodesPtr: KNativePointer): T[ return new NativePtrDecoder().decode(nodesPtr).map((peer: KNativePointer) => unpackNonNullableNode(peer)); } -export function passNodeArray(nodes: readonly AstNode[] | undefined): BigUint64Array { +export function passNodeArray(nodes: readonly ArktsObject[] | undefined): BigUint64Array { return new BigUint64Array(nodes?.map((node) => BigInt(node.peer)) ?? []); } @@ -105,7 +116,7 @@ export function unpackObject( } export function unpackString(peer: KNativePointer): string { - return withStringResult(peer) ?? throwError(`failed to unpack (peer shouldn't be NULLPTR)`); + return global.interop._RawUtf8ToString(peer) } export function passString(str: string | undefined): string { diff --git a/koala-wrapper/src/arkts-api/utilities/public.ts b/koala-wrapper/src/arkts-api/utilities/public.ts index 1ebdd1b26..a6e8799c0 100644 --- a/koala-wrapper/src/arkts-api/utilities/public.ts +++ b/koala-wrapper/src/arkts-api/utilities/public.ts @@ -15,7 +15,7 @@ import { global } from '../static/global'; import { isNumber, throwError, getEnumName } from '../../utils'; -import { KNativePointer, KInt, nullptr, withStringResult } from '@koalaui/interop'; +import { KNativePointer, KInt, nullptr } from '@koalaui/interop'; import { passNode, passString, unpackNodeArray, unpackNonNullableNode } from './private'; import { isFunctionDeclaration, isMemberExpression, isMethodDefinition, isNumberLiteral } from '../factory/nodeTests'; import { @@ -30,6 +30,7 @@ import { ETSImportDeclaration, ImportSpecifier, isClassDefinition, + isETSModule, isIdentifier, isObjectExpression, isProperty, @@ -63,7 +64,7 @@ function processErrorState(state: Es2pandaContextState, forceDtsEmit = false): v global.es2panda._ContextState(global.context) === Es2pandaContextState.ES2PANDA_STATE_ERROR && !forceDtsEmit ) { - const errorMessage = withStringResult(global.es2panda._ContextErrorMessage(global.context)); + const errorMessage = global.interop._RawUtf8ToString(global.es2panda._ContextErrorMessage(global.context)); if (errorMessage === undefined) { throwError(`Could not get ContextErrorMessage`); } @@ -222,6 +223,18 @@ export function hasModifierFlag(node: AstNode, flag: Es2pandaModifierFlags): boo return (modifiers & flag) === flag; } +export function nameIfIdentifier(node: AstNode): string { + return isIdentifier(node) ? `'${node.name}'` : "" +} + +export function nameIfETSModule(node: AstNode): string { + return isETSModule(node) ? `'${node.ident?.name}'` : "" +} + +export function asString(node: AstNode|undefined): string { + return `${node?.constructor.name} ${node ? nameIfIdentifier(node) : undefined}` +} + // TODO: ClassProperty's optional flag is set by AstNode's modifiers flags. export function classPropertySetOptional(node: ClassProperty, value: boolean): ClassProperty { if (value) { diff --git a/koala-wrapper/src/generated/Es2pandaNativeModule.ts b/koala-wrapper/src/generated/Es2pandaNativeModule.ts index 8e4126db9..15356f5a7 100644 --- a/koala-wrapper/src/generated/Es2pandaNativeModule.ts +++ b/koala-wrapper/src/generated/Es2pandaNativeModule.ts @@ -28,6 +28,33 @@ import { export type KNativePointerArray = BigUint64Array export class Es2pandaNativeModule { + _NumberLiteralStrConst(context: KNativePointer, receiver: KNativePointer): KStringPtr { + throw new Error("NumberLiteralStrConst was not overloaded by native module initialization") + } + _CreateNumberLiteral(context: KNativePointer, value: KInt): KNativePointer { + throw new Error("CreateNumberLiteral was not overloaded by native module initialization") + } + _CreateNumberLiteral1(context: KNativePointer, value: KLong): KNativePointer { + throw new Error("CreateNumberLiteral1 was not overloaded by native module initialization") + } + _CreateNumberLiteral2(context: KNativePointer, value: KDouble): KNativePointer { + throw new Error("CreateNumberLiteral2 was not overloaded by native module initialization") + } + _CreateNumberLiteral3(context: KNativePointer, value: KFloat): KNativePointer { + throw new Error("CreateNumberLiteral3 was not overloaded by native module initialization") + } + _UpdateNumberLiteral(context: KNativePointer, original: KNativePointer, value: KInt): KNativePointer { + throw new Error("UpdateNumberLiteral was not overloaded by native module initialization") + } + _UpdateNumberLiteral1(context: KNativePointer, original: KNativePointer, value: KLong): KNativePointer { + throw new Error("UpdateNumberLiteral1 was not overloaded by native module initialization") + } + _UpdateNumberLiteral2(context: KNativePointer, original: KNativePointer, value: KDouble): KNativePointer { + throw new Error("UpdateNumberLiteral2 was not overloaded by native module initialization") + } + _UpdateNumberLiteral3(context: KNativePointer, original: KNativePointer, value: KFloat): KNativePointer { + throw new Error("UpdateNumberLiteral3 was not overloaded by native module initialization") + } _CreateLabelledStatement(context: KNativePointer, ident: KNativePointer, body: KNativePointer): KNativePointer { throw new Error("'CreateLabelledStatement was not overloaded by native module initialization") } @@ -61,12 +88,24 @@ export class Es2pandaNativeModule { _UpdateClassProperty(context: KNativePointer, original: KNativePointer, key: KNativePointer, value: KNativePointer, typeAnnotation: KNativePointer, modifiers: KInt, isComputed: KBoolean): KNativePointer { throw new Error("'UpdateClassProperty was not overloaded by native module initialization") } + _ClassPropertyIsDefaultAccessModifierConst(context: KNativePointer, receiver: KNativePointer): KBoolean { + throw new Error("ClassPropertyIsDefaultAccessModifierConst was not overloaded by native module initialization") + } + _ClassPropertySetDefaultAccessModifier(context: KNativePointer, receiver: KNativePointer, isDefault: KBoolean): void { + throw new Error("ClassPropertySetDefaultAccessModifier was not overloaded by native module initialization") + } _ClassPropertyTypeAnnotationConst(context: KNativePointer, receiver: KNativePointer): KNativePointer { throw new Error("'ClassPropertyTypeAnnotationConst was not overloaded by native module initialization") } _ClassPropertySetTypeAnnotation(context: KNativePointer, receiver: KNativePointer, typeAnnotation: KNativePointer): void { throw new Error("'ClassPropertySetTypeAnnotation was not overloaded by native module initialization") } + _ClassPropertyNeedInitInStaticBlockConst(context: KNativePointer, receiver: KNativePointer): KBoolean { + throw new Error("ClassPropertyNeedInitInStaticBlockConst was not overloaded by native module initialization") + } + _ClassPropertySetInitInStaticBlock(context: KNativePointer, receiver: KNativePointer, needInitInStaticBlock: KBoolean): void { + throw new Error("ClassPropertySetInitInStaticBlock was not overloaded by native module initialization") + } _ClassPropertyAnnotations(context: KNativePointer, receiver: KNativePointer): KNativePointer { throw new Error("'ClassPropertyAnnotations was not overloaded by native module initialization") } @@ -166,6 +205,9 @@ export class Es2pandaNativeModule { _IfStatementAlternateConst(context: KNativePointer, receiver: KNativePointer): KNativePointer { throw new Error("'IfStatementAlternateConst was not overloaded by native module initialization") } + _IfStatementSetAlternate(context: KNativePointer, receiver: KNativePointer, alternate: KNativePointer): void { + throw new Error("fStatementSetAlternate was not overloaded by native module initialization") + } _CreateTSConstructorType(context: KNativePointer, signature: KNativePointer, abstract: KBoolean): KNativePointer { throw new Error("'CreateTSConstructorType was not overloaded by native module initialization") } @@ -304,6 +346,12 @@ export class Es2pandaNativeModule { _ImportSpecifierLocalConst(context: KNativePointer, receiver: KNativePointer): KNativePointer { throw new Error("'ImportSpecifierLocalConst was not overloaded by native module initialization") } + _ImportSpecifierIsRemovableConst(context: KNativePointer, receiver: KNativePointer): KBoolean { + throw new Error("ImportSpecifierIsRemovableConst was not overloaded by native module initialization") + } + _ImportSpecifierSetRemovable(context: KNativePointer, receiver: KNativePointer, isRemovable: KBoolean): void { + throw new Error("ImportSpecifierSetRemovable was not overloaded by native module initialization") + } _CreateConditionalExpression(context: KNativePointer, test: KNativePointer, consequent: KNativePointer, alternate: KNativePointer): KNativePointer { throw new Error("'CreateConditionalExpression was not overloaded by native module initialization") } @@ -421,6 +469,12 @@ export class Es2pandaNativeModule { _ClassElementValueConst(context: KNativePointer, receiver: KNativePointer): KNativePointer { throw new Error("'ClassElementValueConst was not overloaded by native module initialization") } + _ClassElementOriginEnumMemberConst(context: KNativePointer, receiver: KNativePointer): KNativePointer { + throw new Error("ClassElementOriginEnumMemberConst was not overloaded by native module initialization") + } + _ClassElementSetOrigEnumMember(context: KNativePointer, receiver: KNativePointer, enumMember: KNativePointer): void { + throw new Error("ClassElementSetOrigEnumMember was not overloaded by native module initialization") + } _ClassElementIsPrivateElementConst(context: KNativePointer, receiver: KNativePointer): KBoolean { throw new Error("'ClassElementIsPrivateElementConst was not overloaded by native module initialization") } @@ -529,6 +583,9 @@ export class Es2pandaNativeModule { _TSTypeReferenceBaseNameConst(context: KNativePointer, receiver: KNativePointer): KNativePointer { throw new Error("'TSTypeReferenceBaseNameConst was not overloaded by native module initialization") } + _ETSImportDeclarationHasDeclConst(context: KNativePointer, node: KNativePointer): KBoolean { + throw new Error('Not implemented'); + } _CreateImportSource(context: KNativePointer, source: KNativePointer, resolvedSource: KNativePointer, hasDecl: KBoolean): KNativePointer { throw new Error("'CreateImportSource was not overloaded by native module initialization") } @@ -571,9 +628,6 @@ export class Es2pandaNativeModule { _NamedTypeSetTypeParams(context: KNativePointer, receiver: KNativePointer, typeParams: KNativePointer): void { throw new Error("'NamedTypeSetTypeParams was not overloaded by native module initialization") } - _NumberLiteralStrConst(context: KNativePointer, receiver: KNativePointer): KStringPtr { - throw new Error("'NumberLiteralStrConst was not overloaded by native module initialization") - } _CreateTSFunctionType(context: KNativePointer, signature: KNativePointer): KNativePointer { throw new Error("'CreateTSFunctionType was not overloaded by native module initialization") } @@ -751,6 +805,9 @@ export class Es2pandaNativeModule { _MemberExpressionRemoveMemberKind(context: KNativePointer, receiver: KNativePointer, kind: KInt): void { throw new Error("'MemberExpressionRemoveMemberKind was not overloaded by native module initialization") } + _MemberExpressionExtensionAccessorTypeConst(context: KNativePointer, receiver: KNativePointer): KNativePointer { + throw new Error("MemberExpressionExtensionAccessorTypeConst was not overloaded by native module initialization") + } _MemberExpressionIsIgnoreBoxConst(context: KNativePointer, receiver: KNativePointer): KBoolean { throw new Error("'MemberExpressionIsIgnoreBoxConst was not overloaded by native module initialization") } @@ -760,6 +817,12 @@ export class Es2pandaNativeModule { _MemberExpressionIsPrivateReferenceConst(context: KNativePointer, receiver: KNativePointer): KBoolean { throw new Error("'MemberExpressionIsPrivateReferenceConst was not overloaded by native module initialization") } + _MemberExpressionCompileToRegConst(context: KNativePointer, receiver: KNativePointer, pg: KNativePointer, objReg: KNativePointer): void { + throw new Error("MemberExpressionCompileToRegConst was not overloaded by native module initialization") + } + _MemberExpressionCompileToRegsConst(context: KNativePointer, receiver: KNativePointer, pg: KNativePointer, object_arg: KNativePointer, property: KNativePointer): void { + throw new Error("MemberExpressionCompileToRegsConst was not overloaded by native module initialization") + } _CreateTSClassImplements(context: KNativePointer, expression: KNativePointer, typeParameters: KNativePointer): KNativePointer { throw new Error("'CreateTSClassImplements was not overloaded by native module initialization") } @@ -796,6 +859,15 @@ export class Es2pandaNativeModule { _ETSUnionTypeIrTypesConst(context: KNativePointer, receiver: KNativePointer): KNativePointer { throw new Error("'ETSUnionTypeIrTypesConst was not overloaded by native module initialization") } + _CreateETSKeyofType(context: KNativePointer, type: KNativePointer): KNativePointer { + throw new Error("CreateETSKeyofType was not overloaded by native module initialization") + } + _UpdateETSKeyofType(context: KNativePointer, original: KNativePointer, type: KNativePointer): KNativePointer { + throw new Error("UpdateETSKeyofType was not overloaded by native module initialization") + } + _ETSKeyofTypeGetTypeRefConst(context: KNativePointer, receiver: KNativePointer): KNativePointer { + throw new Error("ETSKeyofTypeGetTypeRefConst was not overloaded by native module initialization") + } _CreateTSPropertySignature(context: KNativePointer, key: KNativePointer, typeAnnotation: KNativePointer, computed: KBoolean, optional_arg: KBoolean, readonly_arg: KBoolean): KNativePointer { throw new Error("'CreateTSPropertySignature was not overloaded by native module initialization") } @@ -919,6 +991,9 @@ export class Es2pandaNativeModule { _ReturnStatementSetArgument(context: KNativePointer, receiver: KNativePointer, arg: KNativePointer): void { throw new Error("'ReturnStatementSetArgument was not overloaded by native module initialization") } + _ReturnStatementIsAsyncImplReturnConst(context: KNativePointer, receiver: KNativePointer): KBoolean { + throw new Error("ReturnStatementIsAsyncImplReturnConst was not overloaded by native module initialization") + } _CreateExportDefaultDeclaration(context: KNativePointer, decl: KNativePointer, exportEquals: KBoolean): KNativePointer { throw new Error("'CreateExportDefaultDeclaration was not overloaded by native module initialization") } @@ -1075,6 +1150,9 @@ export class Es2pandaNativeModule { _ScriptFunctionAddFlag(context: KNativePointer, receiver: KNativePointer, flags: KInt): void { throw new Error("'ScriptFunctionAddFlag was not overloaded by native module initialization") } + _ScriptFunctionClearFlag(context: KNativePointer, receiver: KNativePointer, flags: KInt): void { + throw new Error("ScriptFunctionClearFlag was not overloaded by native module initialization") + } _ScriptFunctionAddModifier(context: KNativePointer, receiver: KNativePointer, flags: KInt): void { throw new Error("'ScriptFunctionAddModifier was not overloaded by native module initialization") } @@ -1156,9 +1234,21 @@ export class Es2pandaNativeModule { _ClassDefinitionIsAnonymousConst(context: KNativePointer, receiver: KNativePointer): KBoolean { throw new Error("'ClassDefinitionIsAnonymousConst was not overloaded by native module initialization") } + _ClassDefinitionIsIntEnumTransformedConst(context: KNativePointer, receiver: KNativePointer): KBoolean { + throw new Error("ClassDefinitionIsIntEnumTransformedConst was not overloaded by native module initialization") + } + _ClassDefinitionIsStringEnumTransformedConst(context: KNativePointer, receiver: KNativePointer): KBoolean { + throw new Error("ClassDefinitionIsStringEnumTransformedConst was not overloaded by native module initialization") + } + _ClassDefinitionIsEnumTransformedConst(context: KNativePointer, receiver: KNativePointer): KBoolean { + throw new Error("ClassDefinitionIsEnumTransformedConst was not overloaded by native module initialization") + } _ClassDefinitionIsNamespaceTransformedConst(context: KNativePointer, receiver: KNativePointer): KBoolean { throw new Error("'ClassDefinitionIsNamespaceTransformedConst was not overloaded by native module initialization") } + _ClassDefinitionIsFromStructConst(context: KNativePointer, receiver: KNativePointer): KBoolean { + throw new Error("ClassDefinitionIsFromStructConst was not overloaded by native module initialization") + } _ClassDefinitionIsModuleConst(context: KNativePointer, receiver: KNativePointer): KBoolean { throw new Error("'ClassDefinitionIsModuleConst was not overloaded by native module initialization") } @@ -1177,6 +1267,9 @@ export class Es2pandaNativeModule { _ClassDefinitionSetNamespaceTransformed(context: KNativePointer, receiver: KNativePointer): void { throw new Error("'ClassDefinitionSetNamespaceTransformed was not overloaded by native module initialization") } + _ClassDefinitionSetFromStructModifier(context: KNativePointer, receiver: KNativePointer): void { + throw new Error("ClassDefinitionSetFromStructModifier was not overloaded by native module initialization") + } _ClassDefinitionModifiersConst(context: KNativePointer, receiver: KNativePointer): KInt { throw new Error("'ClassDefinitionModifiersConst was not overloaded by native module initialization") } @@ -1246,6 +1339,9 @@ export class Es2pandaNativeModule { _ClassDefinitionHasPrivateMethodConst(context: KNativePointer, receiver: KNativePointer): KBoolean { throw new Error("'ClassDefinitionHasPrivateMethodConst was not overloaded by native module initialization") } + _ClassDefinitionHasNativeMethodConst(context: KNativePointer, receiver: KNativePointer): KBoolean { + throw new Error("ClassDefinitionHasNativeMethodConst was not overloaded by native module initialization") + } _ClassDefinitionHasComputedInstanceFieldConst(context: KNativePointer, receiver: KNativePointer): KBoolean { throw new Error("'ClassDefinitionHasComputedInstanceFieldConst was not overloaded by native module initialization") } @@ -1273,6 +1369,9 @@ export class Es2pandaNativeModule { _UpdateArrayExpression1(context: KNativePointer, original: KNativePointer, nodeType: KInt, elements: BigUint64Array, elementsSequenceLength: KUInt, trailingComma: KBoolean): KNativePointer { throw new Error("'UpdateArrayExpression1 was not overloaded by native module initialization") } + _ArrayExpressionGetElementNodeAtIdxConst(context: KNativePointer, receiver: KNativePointer, idx: KUInt): KNativePointer { + throw new Error("ArrayExpressionGetElementNodeAtIdxConst was not overloaded by native module initialization") + } _ArrayExpressionElementsConst(context: KNativePointer, receiver: KNativePointer): KNativePointer { throw new Error("'ArrayExpressionElementsConst was not overloaded by native module initialization") } @@ -1297,6 +1396,9 @@ export class Es2pandaNativeModule { _ArrayExpressionDecoratorsConst(context: KNativePointer, receiver: KNativePointer): KNativePointer { throw new Error("'ArrayExpressionDecoratorsConst was not overloaded by native module initialization") } + _ArrayExpressionClearPreferredType(context: KNativePointer, receiver: KNativePointer): void { + throw new Error("ArrayExpressionClearPreferredType was not overloaded by native module initialization") + } _ArrayExpressionConvertibleToArrayPattern(context: KNativePointer, receiver: KNativePointer): KBoolean { throw new Error("'ArrayExpressionConvertibleToArrayPattern was not overloaded by native module initialization") } @@ -1486,17 +1588,38 @@ export class Es2pandaNativeModule { _ETSTupleGetTupleSizeConst(context: KNativePointer, receiver: KNativePointer): KUInt { throw new Error("'ETSTupleGetTupleSizeConst was not overloaded by native module initialization") } + _ETSTupleGetTupleTypeAnnotationsList(context: KNativePointer, receiver: KNativePointer): KNativePointer { + throw new Error("ETSTupleGetTupleTypeAnnotationsList was not overloaded by native module initialization") + } _ETSTupleGetTupleTypeAnnotationsListConst(context: KNativePointer, receiver: KNativePointer): KNativePointer { throw new Error("'ETSTupleGetTupleTypeAnnotationsListConst was not overloaded by native module initialization") } _ETSTupleHasSpreadTypeConst(context: KNativePointer, receiver: KNativePointer): KBoolean { throw new Error("'ETSTupleHasSpreadTypeConst was not overloaded by native module initialization") } + _ETSTupleSetTypeAnnotationsList(context: KNativePointer, receiver: KNativePointer, typeNodeList: BigUint64Array, typeNodeListSequenceLength: KUInt): void { + throw new Error("ETSTupleSetTypeAnnotationsList was not overloaded by native module initialization") + } + _CreateETSStringLiteralType(context: KNativePointer, value: KStringPtr): KNativePointer { + throw new Error("CreateETSStringLiteralType was not overloaded by native module initialization") + } _ETSTupleSetSpreadType(context: KNativePointer, receiver: KNativePointer, newSpreadType: KNativePointer): void { throw new Error("'ETSTupleSetSpreadType was not overloaded by native module initialization") } - _ETSTupleSetTypeAnnotationsList(context: KNativePointer, receiver: KNativePointer, typeNodeList: BigUint64Array, typeNodeListSequenceLength: KUInt): void { - throw new Error("'ETSTupleSetTypeAnnotationsList was not overloaded by native module initialization") + _UpdateETSStringLiteralType(context: KNativePointer, original: KNativePointer, value: KStringPtr): KNativePointer { + throw new Error("UpdateETSStringLiteralType was not overloaded by native module initialization") + } + _CreateTryStatement(context: KNativePointer, block: KNativePointer, catchClauses: BigUint64Array, catchClausesSequenceLength: KUInt, finalizer: KNativePointer, finalizerInsertionsLabelPair: BigUint64Array, finalizerInsertionsLabelPairSequenceLength: KUInt, finalizerInsertionsStatement: BigUint64Array, finalizerInsertionsStatementSequenceLength: KUInt): KNativePointer { + throw new Error("CreateTryStatement was not overloaded by native module initialization") + } + _UpdateTryStatement(context: KNativePointer, original: KNativePointer, block: KNativePointer, catchClauses: BigUint64Array, catchClausesSequenceLength: KUInt, finalizer: KNativePointer, finalizerInsertionsLabelPair: BigUint64Array, finalizerInsertionsLabelPairSequenceLength: KUInt, finalizerInsertionsStatement: BigUint64Array, finalizerInsertionsStatementSequenceLength: KUInt): KNativePointer { + throw new Error("UpdateTryStatement was not overloaded by native module initialization") + } + _CreateTryStatement1(context: KNativePointer, other: KNativePointer): KNativePointer { + throw new Error("CreateTryStatement1 was not overloaded by native module initialization") + } + _UpdateTryStatement1(context: KNativePointer, original: KNativePointer, other: KNativePointer): KNativePointer { + throw new Error("UpdateTryStatement1 was not overloaded by native module initialization") } _TryStatementFinallyBlockConst(context: KNativePointer, receiver: KNativePointer): KNativePointer { throw new Error("'TryStatementFinallyBlockConst was not overloaded by native module initialization") @@ -1552,6 +1675,24 @@ export class Es2pandaNativeModule { _AstNodeAsStatementConst(context: KNativePointer, receiver: KNativePointer): KNativePointer { throw new Error("'AstNodeAsStatementConst was not overloaded by native module initialization") } + _AstNodeSetRange(context: KNativePointer, receiver: KNativePointer, loc: KNativePointer): void { + throw new Error("AstNodeSetRange was not overloaded by native module initialization") + } + _AstNodeSetStart(context: KNativePointer, receiver: KNativePointer, start: KNativePointer): void { + throw new Error("AstNodeSetStart was not overloaded by native module initialization") + } + _AstNodeSetEnd(context: KNativePointer, receiver: KNativePointer, end: KNativePointer): void { + throw new Error("AstNodeSetEnd was not overloaded by native module initialization") + } + _AstNodeStartConst(context: KNativePointer, receiver: KNativePointer): KNativePointer { + throw new Error("AstNodeStartConst was not overloaded by native module initialization") + } + _AstNodeEndConst(context: KNativePointer, receiver: KNativePointer): KNativePointer { + throw new Error("AstNodeEndConst was not overloaded by native module initialization") + } + _AstNodeRangeConst(context: KNativePointer, receiver: KNativePointer): KNativePointer { + throw new Error("AstNodeRangeConst was not overloaded by native module initialization") + } _AstNodeTypeConst(context: KNativePointer, receiver: KNativePointer): KInt { throw new Error("'AstNodeTypeConst was not overloaded by native module initialization") } @@ -1696,15 +1837,30 @@ export class Es2pandaNativeModule { _AstNodeDumpConst1(context: KNativePointer, receiver: KNativePointer, dumper: KNativePointer): void { throw new Error("'AstNodeDumpConst1 was not overloaded by native module initialization") } + _AstNodeCompileConst(context: KNativePointer, receiver: KNativePointer, pg: KNativePointer): void { + throw new Error("AstNodeCompileConst was not overloaded by native module initialization") + } + _AstNodeCompileConst1(context: KNativePointer, receiver: KNativePointer, etsg: KNativePointer): void { + throw new Error("AstNodeCompileConst1 was not overloaded by native module initialization") + } _AstNodeSetTransformedNode(context: KNativePointer, receiver: KNativePointer, transformationName: KStringPtr, transformedNode: KNativePointer): void { throw new Error("'AstNodeSetTransformedNode was not overloaded by native module initialization") } + _AstNodeAccept(context: KNativePointer, receiver: KNativePointer, v: KNativePointer): void { + throw new Error("AstNodeAccept was not overloaded by native module initialization") + } _AstNodeSetOriginalNode(context: KNativePointer, receiver: KNativePointer, originalNode: KNativePointer): void { throw new Error("'AstNodeSetOriginalNode was not overloaded by native module initialization") } _AstNodeOriginalNodeConst(context: KNativePointer, receiver: KNativePointer): KNativePointer { throw new Error("'AstNodeOriginalNodeConst was not overloaded by native module initialization") } + _AstNodeCleanUp(context: KNativePointer, receiver: KNativePointer): void { + throw new Error("AstNodeCleanUp not overloaded by native module initialization") + } + _AstNodeShallowClone(context: KNativePointer, receiver: KNativePointer): KNativePointer { + throw new Error("AstNodeShallowClone not overloaded by native module initialization") + } _CreateUnaryExpression(context: KNativePointer, argument: KNativePointer, unaryOperator: KInt): KNativePointer { throw new Error("'CreateUnaryExpression was not overloaded by native module initialization") } @@ -1834,6 +1990,9 @@ export class Es2pandaNativeModule { _BinaryExpressionSetOperator(context: KNativePointer, receiver: KNativePointer, operatorType: KInt): void { throw new Error("'BinaryExpressionSetOperator was not overloaded by native module initialization") } + _BinaryExpressionCompileOperandsConst(context: KNativePointer, receiver: KNativePointer, etsg: KNativePointer, lhs: KNativePointer): void { + throw new Error("BinaryExpressionCompileOperandsConst was not overloaded by native module initialization") + } _CreateSuperExpression(context: KNativePointer): KNativePointer { throw new Error("'CreateSuperExpression was not overloaded by native module initialization") } @@ -2143,11 +2302,23 @@ export class Es2pandaNativeModule { _UpdateETSPackageDeclaration(context: KNativePointer, original: KNativePointer, name: KNativePointer): KNativePointer { throw new Error("'UpdateETSPackageDeclaration was not overloaded by native module initialization") } - _UpdateETSImportDeclaration(context: KNativePointer, original: KNativePointer, source: KNativePointer, specifiers: BigUint64Array, specifiersSequenceLength: KUInt, importKind: KInt): KNativePointer { - throw new Error("'UpdateETSImportDeclaration was not overloaded by native module initialization") + _CreateETSImportDeclaration(context: KNativePointer, importPath: KNativePointer, specifiers: BigUint64Array, specifiersSequenceLength: KUInt, importKinds: KInt): KNativePointer { + throw new Error("CreateETSImportDeclaration was not overloaded by native module initialization") + } + _UpdateETSImportDeclaration(context: KNativePointer, original: KNativePointer, importPath: KNativePointer, specifiers: BigUint64Array, specifiersSequenceLength: KUInt, importKinds: KInt): KNativePointer { + throw new Error("UpdateETSImportDeclaration was not overloaded by native module initialization") + } + _ETSImportDeclarationSetImportMetadata(context: KNativePointer, receiver: KNativePointer, importFlags: KInt, lang: KInt, resolvedSource: KStringPtr, declPath: KStringPtr, ohmUrl: KStringPtr): void { + throw new Error("ETSImportDeclarationSetImportMetadata was not overloaded by native module initialization") + } + _ETSImportDeclarationDeclPathConst(context: KNativePointer, receiver: KNativePointer): KStringPtr { + throw new Error("ETSImportDeclarationDeclPathConst was not overloaded by native module initialization") } - _ETSImportDeclarationHasDeclConst(context: KNativePointer, receiver: KNativePointer): KBoolean { - throw new Error("'ETSImportDeclarationHasDeclConst was not overloaded by native module initialization") + _ETSImportDeclarationOhmUrlConst(context: KNativePointer, receiver: KNativePointer): KStringPtr { + throw new Error("ETSImportDeclarationOhmUrlConst was not overloaded by native module initialization") + } + _ETSImportDeclarationIsValidConst(context: KNativePointer, receiver: KNativePointer): KBoolean { + throw new Error("ETSImportDeclarationIsValidConst was not overloaded by native module initialization") } _ETSImportDeclarationIsPureDynamicConst(context: KNativePointer, receiver: KNativePointer): KBoolean { throw new Error("'ETSImportDeclarationIsPureDynamicConst was not overloaded by native module initialization") @@ -2203,6 +2374,9 @@ export class Es2pandaNativeModule { _ETSNewArrayInstanceExpressionSetDimension(context: KNativePointer, receiver: KNativePointer, dimension: KNativePointer): void { throw new Error("'ETSNewArrayInstanceExpressionSetDimension was not overloaded by native module initialization") } + _ETSNewArrayInstanceExpressionClearPreferredType(context: KNativePointer, receiver: KNativePointer): void { + throw new Error("ETSNewArrayInstanceExpressionClearPreferredType was not overloaded by native module initialization") + } _CreateAnnotationDeclaration(context: KNativePointer, expr: KNativePointer): KNativePointer { throw new Error("'CreateAnnotationDeclaration was not overloaded by native module initialization") } @@ -2368,6 +2542,9 @@ export class Es2pandaNativeModule { _ChainExpressionGetExpression(context: KNativePointer, receiver: KNativePointer): KNativePointer { throw new Error("'ChainExpressionGetExpression was not overloaded by native module initialization") } + _ChainExpressionCompileToRegConst(context: KNativePointer, receiver: KNativePointer, pg: KNativePointer, objReg: KNativePointer): void { + throw new Error("ChainExpressionCompileToRegConst was not overloaded by native module initialization") + } _CreateTSIntersectionType(context: KNativePointer, types: BigUint64Array, typesSequenceLength: KUInt): KNativePointer { throw new Error("'CreateTSIntersectionType was not overloaded by native module initialization") } @@ -2671,6 +2848,9 @@ export class Es2pandaNativeModule { _SwitchCaseStatementTestConst(context: KNativePointer, receiver: KNativePointer): KNativePointer { throw new Error("'SwitchCaseStatementTestConst was not overloaded by native module initialization") } + _SwitchCaseStatementSetTest(context: KNativePointer, receiver: KNativePointer, test: KNativePointer): void { + throw new Error("SwitchCaseStatementSetTest was not overloaded by native module initialization") + } _SwitchCaseStatementConsequentConst(context: KNativePointer, receiver: KNativePointer): KNativePointer { throw new Error("'SwitchCaseStatementConsequentConst was not overloaded by native module initialization") } @@ -2944,6 +3124,12 @@ export class Es2pandaNativeModule { _BlockStatementSetStatements(context: KNativePointer, receiver: KNativePointer, statementList: BigUint64Array, statementListSequenceLength: KUInt): void { throw new Error("'BlockStatementSetStatements was not overloaded by native module initialization") } + _BlockStatementAddStatement(context: KNativePointer, receiver: KNativePointer, stmt: KNativePointer): void { + throw new Error("BlockStatementAddStatement was not overloaded by native module initialization") + } + _BlockStatementAddStatements(context: KNativePointer, receiver: KNativePointer, stmts: BigUint64Array, stmtsSequenceLength: KUInt): void { + throw new Error("BlockStatementAddStatements was not overloaded by native module initialization") + } _BlockStatementAddTrailingBlock(context: KNativePointer, receiver: KNativePointer, stmt: KNativePointer, trailingBlock: KNativePointer): void { throw new Error("'BlockStatementAddTrailingBlock was not overloaded by native module initialization") } @@ -2980,9 +3166,24 @@ export class Es2pandaNativeModule { _MethodDefinitionIsConstructorConst(context: KNativePointer, receiver: KNativePointer): KBoolean { throw new Error("'MethodDefinitionIsConstructorConst was not overloaded by native module initialization") } + _MethodDefinitionIsMethodConst(context: KNativePointer, receiver: KNativePointer): KBoolean { + throw new Error("MethodDefinitionIsMethodConst was not overloaded by native module initialization") + } _MethodDefinitionIsExtensionMethodConst(context: KNativePointer, receiver: KNativePointer): KBoolean { throw new Error("'MethodDefinitionIsExtensionMethodConst was not overloaded by native module initialization") } + _MethodDefinitionIsGetterConst(context: KNativePointer, receiver: KNativePointer): KBoolean { + throw new Error("MethodDefinitionIsGetterConst was not overloaded by native module initialization") + } + _MethodDefinitionIsSetterConst(context: KNativePointer, receiver: KNativePointer): KBoolean { + throw new Error("MethodDefinitionIsSetterConst was not overloaded by native module initialization") + } + _MethodDefinitionIsDefaultAccessModifierConst(context: KNativePointer, receiver: KNativePointer): KBoolean { + throw new Error("MethodDefinitionIsDefaultAccessModifierConst was not overloaded by native module initialization") + } + _MethodDefinitionSetDefaultAccessModifier(context: KNativePointer, receiver: KNativePointer, isDefault: KBoolean): void { + throw new Error("MethodDefinitionSetDefaultAccessModifier was not overloaded by native module initialization") + } _MethodDefinitionOverloadsConst(context: KNativePointer, receiver: KNativePointer): KNativePointer { throw new Error("'MethodDefinitionOverloadsConst was not overloaded by native module initialization") } @@ -3022,6 +3223,9 @@ export class Es2pandaNativeModule { _MethodDefinitionFunctionConst(context: KNativePointer, receiver: KNativePointer): KNativePointer { throw new Error("'MethodDefinitionFunctionConst was not overloaded by native module initialization") } + _MethodDefinitionInitializeOverloadInfo(context: KNativePointer, receiver: KNativePointer): void { + throw new Error("MethodDefinitionInitializeOverloadInfo was not overloaded by native module initialization") + } _CreateTSNullKeyword(context: KNativePointer): KNativePointer { throw new Error("'CreateTSNullKeyword was not overloaded by native module initialization") } @@ -3151,6 +3355,9 @@ export class Es2pandaNativeModule { _BreakStatementTargetConst(context: KNativePointer, receiver: KNativePointer): KNativePointer { throw new Error("'BreakStatementTargetConst was not overloaded by native module initialization") } + _BreakStatementHasTargetConst(context: KNativePointer, receiver: KNativePointer): KBoolean { + throw new Error("BreakStatementHasTargetConst was not overloaded by native module initialization") + } _BreakStatementSetTarget(context: KNativePointer, receiver: KNativePointer, target: KNativePointer): void { throw new Error("'BreakStatementSetTarget was not overloaded by native module initialization") } @@ -3256,6 +3463,9 @@ export class Es2pandaNativeModule { _CreateValidationInfo(context: KNativePointer): KNativePointer { throw new Error("'CreateValidationInfo was not overloaded by native module initialization") } + _CreateValidationInfo1(context: KNativePointer, m: KStringPtr, p: KNativePointer): KNativePointer { + throw new Error("CreateValidationInfo1 was not overloaded by native module initialization") + } _ValidationInfoFailConst(context: KNativePointer, receiver: KNativePointer): KBoolean { throw new Error("'ValidationInfoFailConst was not overloaded by native module initialization") } @@ -3280,6 +3490,9 @@ export class Es2pandaNativeModule { _ContinueStatementTargetConst(context: KNativePointer, receiver: KNativePointer): KNativePointer { throw new Error("'ContinueStatementTargetConst was not overloaded by native module initialization") } + _ContinueStatementHasTargetConst(context: KNativePointer, receiver: KNativePointer): KBoolean { + throw new Error("ContinueStatementHasTargetConst was not overloaded by native module initialization") + } _ContinueStatementSetTarget(context: KNativePointer, receiver: KNativePointer, target: KNativePointer): void { throw new Error("'ContinueStatementSetTarget was not overloaded by native module initialization") } @@ -3307,6 +3520,9 @@ export class Es2pandaNativeModule { _ETSNewMultiDimArrayInstanceExpressionDimensionsConst(context: KNativePointer, receiver: KNativePointer): KNativePointer { throw new Error("'ETSNewMultiDimArrayInstanceExpressionDimensionsConst was not overloaded by native module initialization") } + _ETSNewMultiDimArrayInstanceExpressionClearPreferredType(context: KNativePointer, receiver: KNativePointer): void { + throw new Error("ETSNewMultiDimArrayInstanceExpressionClearPreferredType was not overloaded by native module initialization") + } _CreateTSNamedTupleMember(context: KNativePointer, label: KNativePointer, elementType: KNativePointer, optional_arg: KBoolean): KNativePointer { throw new Error("'CreateTSNamedTupleMember was not overloaded by native module initialization") } @@ -3412,6 +3628,9 @@ export class Es2pandaNativeModule { _SwitchStatementDiscriminant(context: KNativePointer, receiver: KNativePointer): KNativePointer { throw new Error("'SwitchStatementDiscriminant was not overloaded by native module initialization") } + _SwitchStatementSetDiscriminant(context: KNativePointer, receiver: KNativePointer, discriminant: KNativePointer): void { + throw new Error("SwitchStatementSetDiscriminant was not overloaded by native module initialization") + } _SwitchStatementCasesConst(context: KNativePointer, receiver: KNativePointer): KNativePointer { throw new Error("'SwitchStatementCasesConst was not overloaded by native module initialization") } @@ -3442,6 +3661,12 @@ export class Es2pandaNativeModule { _UpdateCatchClause(context: KNativePointer, original: KNativePointer, param: KNativePointer, body: KNativePointer): KNativePointer { throw new Error("'UpdateCatchClause was not overloaded by native module initialization") } + _CreateCatchClause1(context: KNativePointer, other: KNativePointer): KNativePointer { + throw new Error("CreateCatchClause1was not overloaded by native module initialization") + } + _UpdateCatchClause1(context: KNativePointer, original: KNativePointer, other: KNativePointer): KNativePointer { + throw new Error("UpdateCatchClause1 was not overloaded by native module initialization") + } _CatchClauseParam(context: KNativePointer, receiver: KNativePointer): KNativePointer { throw new Error("'CatchClauseParam was not overloaded by native module initialization") } @@ -3610,6 +3835,9 @@ export class Es2pandaNativeModule { _ETSTypeReferencePartNameConst(context: KNativePointer, receiver: KNativePointer): KNativePointer { throw new Error("'ETSTypeReferencePartNameConst was not overloaded by native module initialization") } + _ETSTypeReferencePartGetIdent(context: KNativePointer, receiver: KNativePointer): KNativePointer { + throw new Error("ETSTypeReferencePartGetIdent was not overloaded by native module initialization") + } _ETSReExportDeclarationGetETSImportDeclarationsConst(context: KNativePointer, receiver: KNativePointer): KNativePointer { throw new Error("'ETSReExportDeclarationGetETSImportDeclarationsConst was not overloaded by native module initialization") } diff --git a/koala-wrapper/src/generated/index.ts b/koala-wrapper/src/generated/index.ts index 0416a0691..134d6e55d 100644 --- a/koala-wrapper/src/generated/index.ts +++ b/koala-wrapper/src/generated/index.ts @@ -13,6 +13,28 @@ * limitations under the License. */ +export * from "./peers/SourcePosition" +export * from "./peers/SourceRange" +export * from "./peers/LabelPair" +export * from "./peers/ScriptFunctionData" +export * from "./peers/ImportSource" +export * from "./peers/SignatureInfo" +export * from "./peers/IndexInfo" +export * from "./peers/ObjectDescriptor" +export * from "./peers/ScopeFindResult" +export * from "./peers/BindingProps" +export * from "./peers/Declaration" +export * from "./peers/AstVisitor" +export * from "./peers/AstVerifier" +export * from "./peers/VerifierMessage" +export * from "./peers/CodeGen" +export * from "./peers/VReg" +export * from "./peers/IRNode" +export * from "./peers/ErrorLogger" +export * from "./peers/VerificationContext" +export * from "./peers/DynamicImportData" +export * from "./peers/OverloadInfo" +export * from "./peers/NumberLiteral" export * from "./peers/TypedAstNode" export * from "./peers/AnnotatedAstNode" export * from "./peers/TypedStatement" @@ -40,9 +62,7 @@ export * from "./peers/TaggedTemplateExpression" export * from "./peers/FunctionDeclaration" export * from "./peers/ETSTypeReference" export * from "./peers/TSTypeReference" -export * from "./peers/ImportSource" export * from "./peers/NamedType" -export * from "./peers/NumberLiteral" export * from "./peers/TSFunctionType" export * from "./peers/TemplateElement" export * from "./peers/TSInterfaceDeclaration" @@ -52,6 +72,7 @@ export * from "./peers/MemberExpression" export * from "./peers/TSClassImplements" export * from "./peers/TSObjectKeyword" export * from "./peers/ETSUnionType" +export * from "./peers/ETSKeyofType" export * from "./peers/TSPropertySignature" export * from "./peers/TSConditionalType" export * from "./peers/TSLiteralType" @@ -72,6 +93,7 @@ export * from "./peers/TSTypeAssertion" export * from "./peers/TSExternalModuleReference" export * from "./peers/TSUndefinedKeyword" export * from "./peers/ETSTuple" +export * from "./peers/ETSStringLiteralType" export * from "./peers/TryStatement" export * from "./peers/UnaryExpression" export * from "./peers/ForInStatement" diff --git a/koala-wrapper/src/generated/peers/AstVerifier.ts b/koala-wrapper/src/generated/peers/AstVerifier.ts new file mode 100644 index 000000000..4ca896b98 --- /dev/null +++ b/koala-wrapper/src/generated/peers/AstVerifier.ts @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { + global, + passNode, + passNodeArray, + unpackNonNullableNode, + unpackNode, + unpackNodeArray, + assertValidPeer, + AstNode, + KNativePointer, + nodeByType, + ArktsObject, + unpackString +} from "../../reexport-for-generated" + +export class AstVerifier extends ArktsObject { + constructor(pointer: KNativePointer) { + super(pointer) + } +} \ No newline at end of file diff --git a/koala-wrapper/src/generated/peers/AstVisitor.ts b/koala-wrapper/src/generated/peers/AstVisitor.ts new file mode 100644 index 000000000..1577d85a8 --- /dev/null +++ b/koala-wrapper/src/generated/peers/AstVisitor.ts @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { + global, + passNode, + passNodeArray, + unpackNonNullableNode, + unpackNode, + unpackNodeArray, + assertValidPeer, + AstNode, + KNativePointer, + nodeByType, + ArktsObject, + unpackString +} from "../../reexport-for-generated" + +export class AstVisitor extends ArktsObject { + constructor(pointer: KNativePointer) { + super(pointer) + } +} \ No newline at end of file diff --git a/koala-wrapper/src/generated/peers/BindingProps.ts b/koala-wrapper/src/generated/peers/BindingProps.ts new file mode 100644 index 000000000..555f17f58 --- /dev/null +++ b/koala-wrapper/src/generated/peers/BindingProps.ts @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { + global, + passNode, + passNodeArray, + unpackNonNullableNode, + unpackNode, + unpackNodeArray, + assertValidPeer, + AstNode, + KNativePointer, + nodeByType, + ArktsObject, + unpackString +} from "../../reexport-for-generated" + +export class BindingProps extends ArktsObject { + constructor(pointer: KNativePointer) { + super(pointer) + } +} \ No newline at end of file diff --git a/koala-wrapper/src/generated/peers/CodeGen.ts b/koala-wrapper/src/generated/peers/CodeGen.ts new file mode 100644 index 000000000..d549ee203 --- /dev/null +++ b/koala-wrapper/src/generated/peers/CodeGen.ts @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { + global, + passNode, + passNodeArray, + unpackNonNullableNode, + unpackNode, + unpackNodeArray, + assertValidPeer, + AstNode, + KNativePointer, + nodeByType, + ArktsObject, + unpackString +} from "../../reexport-for-generated" + +export class CodeGen extends ArktsObject { + constructor(pointer: KNativePointer) { + super(pointer) + } +} \ No newline at end of file diff --git a/koala-wrapper/src/generated/peers/Declaration.ts b/koala-wrapper/src/generated/peers/Declaration.ts new file mode 100644 index 000000000..9a4e6dbd3 --- /dev/null +++ b/koala-wrapper/src/generated/peers/Declaration.ts @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { + global, + passNode, + passNodeArray, + unpackNonNullableNode, + unpackNode, + unpackNodeArray, + assertValidPeer, + AstNode, + KNativePointer, + nodeByType, + ArktsObject, + unpackString +} from "../../reexport-for-generated" + +export class Declaration extends ArktsObject { + constructor(pointer: KNativePointer) { + super(pointer) + } +} \ No newline at end of file diff --git a/koala-wrapper/src/generated/peers/DynamicImportData.ts b/koala-wrapper/src/generated/peers/DynamicImportData.ts new file mode 100644 index 000000000..01d6859b0 --- /dev/null +++ b/koala-wrapper/src/generated/peers/DynamicImportData.ts @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { + global, + passNode, + passNodeArray, + unpackNonNullableNode, + unpackNode, + unpackNodeArray, + assertValidPeer, + AstNode, + KNativePointer, + nodeByType, + ArktsObject, + unpackString +} from "../../reexport-for-generated" + +export class DynamicImportData extends ArktsObject { + constructor(pointer: KNativePointer) { + super(pointer) + } +} \ No newline at end of file diff --git a/koala-wrapper/src/generated/peers/ETSKeyofType.ts b/koala-wrapper/src/generated/peers/ETSKeyofType.ts new file mode 100644 index 000000000..c2171393e --- /dev/null +++ b/koala-wrapper/src/generated/peers/ETSKeyofType.ts @@ -0,0 +1,53 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { + global, + passNode, + passNodeArray, + unpackNonNullableNode, + unpackNode, + unpackNodeArray, + assertValidPeer, + AstNode, + KNativePointer, + Es2pandaAstNodeType, + nodeByType, + ArktsObject, + unpackString +} from "../../reexport-for-generated" + +import { TypeNode } from "./TypeNode" +export class ETSKeyofType extends TypeNode { + constructor(pointer: KNativePointer) { + assertValidPeer(pointer, Es2pandaAstNodeType.AST_NODE_TYPE_ETS_KEYOF_TYPE) + super(pointer) + } + static createETSKeyofType(type?: TypeNode): ETSKeyofType { + return new ETSKeyofType(global.generatedEs2panda._CreateETSKeyofType(global.context, passNode(type))) + } + static updateETSKeyofType(original?: ETSKeyofType, type?: TypeNode): ETSKeyofType { + return new ETSKeyofType(global.generatedEs2panda._UpdateETSKeyofType(global.context, passNode(original), passNode(type))) + } + get typeRef(): TypeNode | undefined { + return unpackNode(global.generatedEs2panda._ETSKeyofTypeGetTypeRefConst(global.context, this.peer)) + } +} +export function isETSKeyofType(node: object | undefined): node is ETSKeyofType { + return node instanceof ETSKeyofType +} +if (!nodeByType.has(Es2pandaAstNodeType.AST_NODE_TYPE_ETS_KEYOF_TYPE)) { + nodeByType.set(Es2pandaAstNodeType.AST_NODE_TYPE_ETS_KEYOF_TYPE, ETSKeyofType) +} \ No newline at end of file diff --git a/koala-wrapper/src/generated/peers/ETSStringLiteralType.ts b/koala-wrapper/src/generated/peers/ETSStringLiteralType.ts new file mode 100644 index 000000000..3d9091d2f --- /dev/null +++ b/koala-wrapper/src/generated/peers/ETSStringLiteralType.ts @@ -0,0 +1,49 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { + global, + passNode, + passNodeArray, + unpackNonNullableNode, + unpackNode, + unpackNodeArray, + assertValidPeer, + AstNode, + KNativePointer, + nodeByType, + ArktsObject, + unpackString,Es2pandaAstNodeType +} from "../../reexport-for-generated" + +import { TypeNode } from "./TypeNode" +export class ETSStringLiteralType extends TypeNode { + constructor(pointer: KNativePointer) { + assertValidPeer(pointer, Es2pandaAstNodeType.AST_NODE_TYPE_ETS_STRING_LITERAL_TYPE) + super(pointer) + } + static createETSStringLiteralType(value: string): ETSStringLiteralType { + return new ETSStringLiteralType(global.generatedEs2panda._CreateETSStringLiteralType(global.context, value)) + } + static updateETSStringLiteralType(original: ETSStringLiteralType | undefined, value: string): ETSStringLiteralType { + return new ETSStringLiteralType(global.generatedEs2panda._UpdateETSStringLiteralType(global.context, passNode(original), value)) + } +} +export function isETSStringLiteralType(node: object | undefined): node is ETSStringLiteralType { + return node instanceof ETSStringLiteralType +} +if (!nodeByType.has(Es2pandaAstNodeType.AST_NODE_TYPE_ETS_STRING_LITERAL_TYPE)) { + nodeByType.set(Es2pandaAstNodeType.AST_NODE_TYPE_ETS_STRING_LITERAL_TYPE, ETSStringLiteralType) +} \ No newline at end of file diff --git a/koala-wrapper/src/generated/peers/ErrorLogger.ts b/koala-wrapper/src/generated/peers/ErrorLogger.ts new file mode 100644 index 000000000..7c23035c9 --- /dev/null +++ b/koala-wrapper/src/generated/peers/ErrorLogger.ts @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { + global, + passNode, + passNodeArray, + unpackNonNullableNode, + unpackNode, + unpackNodeArray, + assertValidPeer, + AstNode, + KNativePointer, + nodeByType, + ArktsObject, + unpackString +} from "../../reexport-for-generated" + +export class ErrorLogger extends ArktsObject { + constructor(pointer: KNativePointer) { + super(pointer) + } +} \ No newline at end of file diff --git a/koala-wrapper/src/generated/peers/IRNode.ts b/koala-wrapper/src/generated/peers/IRNode.ts new file mode 100644 index 000000000..42bbda33d --- /dev/null +++ b/koala-wrapper/src/generated/peers/IRNode.ts @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { + global, + passNode, + passNodeArray, + unpackNonNullableNode, + unpackNode, + unpackNodeArray, + assertValidPeer, + AstNode, + KNativePointer, + nodeByType, + ArktsObject, + unpackString +} from "../../reexport-for-generated" + +export class IRNode extends ArktsObject { + constructor(pointer: KNativePointer) { + super(pointer) + } +} \ No newline at end of file diff --git a/koala-wrapper/src/generated/peers/IndexInfo.ts b/koala-wrapper/src/generated/peers/IndexInfo.ts new file mode 100644 index 000000000..15684de6e --- /dev/null +++ b/koala-wrapper/src/generated/peers/IndexInfo.ts @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { + global, + passNode, + passNodeArray, + unpackNonNullableNode, + unpackNode, + unpackNodeArray, + assertValidPeer, + AstNode, + KNativePointer, + nodeByType, + ArktsObject, + unpackString +} from "../../reexport-for-generated" + +export class IndexInfo extends ArktsObject { + constructor(pointer: KNativePointer) { + super(pointer) + } +} \ No newline at end of file diff --git a/koala-wrapper/src/generated/peers/LabelPair.ts b/koala-wrapper/src/generated/peers/LabelPair.ts new file mode 100644 index 000000000..6474aa740 --- /dev/null +++ b/koala-wrapper/src/generated/peers/LabelPair.ts @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { + global, + passNode, + passNodeArray, + unpackNonNullableNode, + unpackNode, + unpackNodeArray, + assertValidPeer, + AstNode, + KNativePointer, + nodeByType, + ArktsObject, + unpackString +} from "../../reexport-for-generated" + +export class LabelPair extends ArktsObject { + constructor(pointer: KNativePointer) { + super(pointer) + } +} \ No newline at end of file diff --git a/koala-wrapper/src/generated/peers/ObjectDescriptor.ts b/koala-wrapper/src/generated/peers/ObjectDescriptor.ts new file mode 100644 index 000000000..5faf02ea7 --- /dev/null +++ b/koala-wrapper/src/generated/peers/ObjectDescriptor.ts @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { + global, + passNode, + passNodeArray, + unpackNonNullableNode, + unpackNode, + unpackNodeArray, + assertValidPeer, + AstNode, + KNativePointer, + nodeByType, + ArktsObject, + unpackString +} from "../../reexport-for-generated" + +export class ObjectDescriptor extends ArktsObject { + constructor(pointer: KNativePointer) { + super(pointer) + } +} \ No newline at end of file diff --git a/koala-wrapper/src/generated/peers/OverloadInfo.ts b/koala-wrapper/src/generated/peers/OverloadInfo.ts new file mode 100644 index 000000000..51800f06f --- /dev/null +++ b/koala-wrapper/src/generated/peers/OverloadInfo.ts @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { + global, + passNode, + passNodeArray, + unpackNonNullableNode, + unpackNode, + unpackNodeArray, + assertValidPeer, + AstNode, + KNativePointer, + nodeByType, + ArktsObject, + unpackString +} from "../../reexport-for-generated" + +export class OverloadInfo extends ArktsObject { + constructor(pointer: KNativePointer) { + super(pointer) + } +} \ No newline at end of file diff --git a/koala-wrapper/src/generated/peers/ScopeFindResult.ts b/koala-wrapper/src/generated/peers/ScopeFindResult.ts new file mode 100644 index 000000000..68156bac2 --- /dev/null +++ b/koala-wrapper/src/generated/peers/ScopeFindResult.ts @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { + global, + passNode, + passNodeArray, + unpackNonNullableNode, + unpackNode, + unpackNodeArray, + assertValidPeer, + AstNode, + KNativePointer, + nodeByType, + ArktsObject, + unpackString +} from "../../reexport-for-generated" + +export class ScopeFindResult extends ArktsObject { + constructor(pointer: KNativePointer) { + super(pointer) + } +} \ No newline at end of file diff --git a/koala-wrapper/src/generated/peers/ScriptFunctionData.ts b/koala-wrapper/src/generated/peers/ScriptFunctionData.ts new file mode 100644 index 000000000..fd16d2b40 --- /dev/null +++ b/koala-wrapper/src/generated/peers/ScriptFunctionData.ts @@ -0,0 +1,20 @@ +import { + global, + passNode, + passNodeArray, + unpackNonNullableNode, + unpackNode, + unpackNodeArray, + assertValidPeer, + AstNode, + KNativePointer, + nodeByType, + ArktsObject, + unpackString +} from "../../reexport-for-generated" + +export class ScriptFunctionData extends ArktsObject { + constructor(pointer: KNativePointer) { + super(pointer) + } +} \ No newline at end of file diff --git a/koala-wrapper/src/generated/peers/SignatureInfo.ts b/koala-wrapper/src/generated/peers/SignatureInfo.ts new file mode 100644 index 000000000..605f112a1 --- /dev/null +++ b/koala-wrapper/src/generated/peers/SignatureInfo.ts @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { + global, + passNode, + passNodeArray, + unpackNonNullableNode, + unpackNode, + unpackNodeArray, + assertValidPeer, + AstNode, + KNativePointer, + nodeByType, + ArktsObject, + unpackString +} from "../../reexport-for-generated" + +export class SignatureInfo extends ArktsObject { + constructor(pointer: KNativePointer) { + super(pointer) + } +} \ No newline at end of file diff --git a/koala-wrapper/src/generated/peers/SourcePosition.ts b/koala-wrapper/src/generated/peers/SourcePosition.ts new file mode 100644 index 000000000..69c033d82 --- /dev/null +++ b/koala-wrapper/src/generated/peers/SourcePosition.ts @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { + global, + passNode, + passNodeArray, + unpackNonNullableNode, + unpackNode, + unpackNodeArray, + assertValidPeer, + AstNode, + KNativePointer, + nodeByType, + ArktsObject, + unpackString +} from "../../reexport-for-generated" + +export class SourcePosition extends ArktsObject { + constructor(pointer: KNativePointer) { + super(pointer) + } +} \ No newline at end of file diff --git a/koala-wrapper/src/generated/peers/SourceRange.ts b/koala-wrapper/src/generated/peers/SourceRange.ts new file mode 100644 index 000000000..b790105c7 --- /dev/null +++ b/koala-wrapper/src/generated/peers/SourceRange.ts @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { + global, + passNode, + passNodeArray, + unpackNonNullableNode, + unpackNode, + unpackNodeArray, + assertValidPeer, + AstNode, + KNativePointer, + nodeByType, + ArktsObject, + unpackString +} from "../../reexport-for-generated" + +export class SourceRange extends ArktsObject { + constructor(pointer: KNativePointer) { + super(pointer) + } +} \ No newline at end of file diff --git a/koala-wrapper/src/generated/peers/TryStatement.ts b/koala-wrapper/src/generated/peers/TryStatement.ts index dd3a7571d..7aee23aba 100644 --- a/koala-wrapper/src/generated/peers/TryStatement.ts +++ b/koala-wrapper/src/generated/peers/TryStatement.ts @@ -31,6 +31,7 @@ import { import { Statement } from "./Statement" import { BlockStatement } from "./BlockStatement" +import { LabelPair } from "./LabelPair" import { CatchClause } from "./CatchClause" export class TryStatement extends Statement { constructor(pointer: KNativePointer) { @@ -38,6 +39,15 @@ export class TryStatement extends Statement { super(pointer) } + static createTryStatement(block: BlockStatement | undefined, catchClauses: readonly CatchClause[], finalizer: BlockStatement | undefined, finalizerInsertionsLabelPair: readonly LabelPair[], finalizerInsertionsStatement: readonly Statement[]): TryStatement { + return new TryStatement(global.generatedEs2panda._CreateTryStatement(global.context, passNode(block), passNodeArray(catchClauses), catchClauses.length, passNode(finalizer), passNodeArray(finalizerInsertionsLabelPair), finalizerInsertionsLabelPair.length, passNodeArray(finalizerInsertionsStatement), finalizerInsertionsStatement.length)) + } + static updateTryStatement(original: TryStatement | undefined, block: BlockStatement | undefined, catchClauses: readonly CatchClause[], finalizer: BlockStatement | undefined, finalizerInsertionsLabelPair: readonly LabelPair[], finalizerInsertionsStatement: readonly Statement[]): TryStatement { + return new TryStatement(global.generatedEs2panda._UpdateTryStatement(global.context, passNode(original), passNode(block), passNodeArray(catchClauses), catchClauses.length, passNode(finalizer), passNodeArray(finalizerInsertionsLabelPair), finalizerInsertionsLabelPair.length, passNodeArray(finalizerInsertionsStatement), finalizerInsertionsStatement.length)) + } + static update1TryStatement(original?: TryStatement, other?: TryStatement): TryStatement { + return new TryStatement(global.generatedEs2panda._UpdateTryStatement1(global.context, passNode(original), passNode(other))) + } get finallyBlock(): BlockStatement | undefined { return unpackNode(global.generatedEs2panda._TryStatementFinallyBlockConst(global.context, this.peer)) } diff --git a/koala-wrapper/src/generated/peers/VReg.ts b/koala-wrapper/src/generated/peers/VReg.ts new file mode 100644 index 000000000..11a43a241 --- /dev/null +++ b/koala-wrapper/src/generated/peers/VReg.ts @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { + global, + passNode, + passNodeArray, + unpackNonNullableNode, + unpackNode, + unpackNodeArray, + assertValidPeer, + AstNode, + KNativePointer, + nodeByType, + ArktsObject, + unpackString +} from "../../reexport-for-generated" + +export class VReg extends ArktsObject { + constructor(pointer: KNativePointer) { + super(pointer) + } +} \ No newline at end of file diff --git a/koala-wrapper/src/generated/peers/VerificationContext.ts b/koala-wrapper/src/generated/peers/VerificationContext.ts new file mode 100644 index 000000000..c11ea7a06 --- /dev/null +++ b/koala-wrapper/src/generated/peers/VerificationContext.ts @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { + global, + passNode, + passNodeArray, + unpackNonNullableNode, + unpackNode, + unpackNodeArray, + assertValidPeer, + AstNode, + KNativePointer, + nodeByType, + ArktsObject, + unpackString +} from "../../reexport-for-generated" + +export class VerificationContext extends ArktsObject { + constructor(pointer: KNativePointer) { + super(pointer) + } +} \ No newline at end of file diff --git a/koala-wrapper/src/generated/peers/VerifierMessage.ts b/koala-wrapper/src/generated/peers/VerifierMessage.ts new file mode 100644 index 000000000..49c5c76a9 --- /dev/null +++ b/koala-wrapper/src/generated/peers/VerifierMessage.ts @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { + global, + passNode, + passNodeArray, + unpackNonNullableNode, + unpackNode, + unpackNodeArray, + assertValidPeer, + AstNode, + KNativePointer, + nodeByType, + ArktsObject, + unpackString +} from "../../reexport-for-generated" + +export class VerifierMessage extends ArktsObject { + constructor(pointer: KNativePointer) { + super(pointer) + } +} \ No newline at end of file diff --git a/koala-wrapper/src/reexport-for-generated.ts b/koala-wrapper/src/reexport-for-generated.ts index 37e3c6f56..1eae02f9b 100644 --- a/koala-wrapper/src/reexport-for-generated.ts +++ b/koala-wrapper/src/reexport-for-generated.ts @@ -14,7 +14,8 @@ */ export { KNativePointer } from "@koalaui/interop" export { AstNode } from "./arkts-api/peers/AstNode" -export { ArktsObject } from "./arkts-api/peers/ArktsObject" +export { ArktsObject, isSameNativeObject } from "./arkts-api/peers/ArktsObject" +export { NodeCache } from "./arkts-api/node-cache" export { Es2pandaAstNodeType } from "./Es2pandaEnums" export { passNode, @@ -25,7 +26,8 @@ export { unpackNonNullableObject, unpackString, unpackObject, - assertValidPeer + assertValidPeer, + updateNodeByNode } from "./arkts-api/utilities/private" export { nodeByType } from "./arkts-api/class-by-peer" export { global } from "./arkts-api/static/global" diff --git a/koala-wrapper/src/utils.ts b/koala-wrapper/src/utils.ts index 9ef0b4d51..379df0cf9 100644 --- a/koala-wrapper/src/utils.ts +++ b/koala-wrapper/src/utils.ts @@ -69,16 +69,315 @@ function replaceIllegalHashes(code: string): string { return code; } +function replaceGensymWrappers(code: string): string { + const indices = [...code.matchAll(/\({let/g)].map(it => it.index) + const replacements: string[][] = [] + for (var i of indices) { + if (!i) { + continue + } + var j = i + 1, depth = 1 + while (j < code.length) { + if (code[j] == '(') { + depth++ + } + if (code[j] == ')') { + depth-- + } + if (depth == 0) { + break + } + j++ + } + + if (j == code.length) { + continue + } + + const base = code.substring(i, j + 1) + if (base.match(/\({let/)?.length! > 1) { // don't touch if contains nested constructions + continue + } + const fixed = base.replaceAll(/^\({let ([_%a-zA-Z0-9]+?) = (?!\({let)([\s\S]*?);\n([\s\S]*?)}\)$/g, + (match, name: string, val: string, expr: string) => { + let rightExpr = expr.slice(expr.lastIndexOf(name) + name.length, -1) + if (rightExpr[0] != '.') { + rightExpr = `.${rightExpr}` + } + return `(${val}?${rightExpr})` + } + ) + replacements.push([base, fixed]) + } + for (var [b, f] of replacements) { + code = code.replace(b, f) + } + return code +} + + +function addExports(code: string): string { + const exportAstNodes = [" enum", "let", "const", "class", "abstract class", "@Entry() @Component() final class", "@Component() final class", "interface", "@interface", "type", "enum", "final class", "function", + "declare interface", "@memo_stable() declare interface", "@memo_stable() interface", + "@Retention({policy:\"SOURCE\"}) @interface", "@memo() function", "@memo_entry() function", "@memo_intrinsic() function", + ] + exportAstNodes.forEach((astNodeText) => { + code = code.replaceAll(`\n${astNodeText}`, `\nexport ${astNodeText}`) + } + ) + // TODO this is a temporary workaround and should be replaced with a proper import/export handling in future + code = code.replaceAll(/\n(@memo\(\) @BuilderLambda\(\{value:"\w+"\}\)) function/g, '\n$1 export function') + const fix = [ + ["export @memo() function", "@memo() export function"], + ["export @memo_entry() function", "@memo_entry() export function"], + ["export @memo_intrinsic() function", "@memo_intrinsic() export function"], + ["export @memo_stable()", "@memo_stable() export"], + ["export class OhosRouter", "export default class OhosRouter"] + ] + for (var [f, t] of fix) { + code = code.replaceAll(f, t) + } + return code.replaceAll("\nexport function main()", "\nfunction main()") +} + +function removeAbstractFromInterfaces(code: string): string { + const interfaces = [...code.matchAll(/interface([\s\S]*?){([\s\S]*?)\n}\n/g)].map(it => it[0]) + interfaces.forEach((content) => { + const newContent = content.replaceAll('abstract ', '') + code = code.replaceAll(content, newContent) + }) + return code +} + +function removeInvalidLambdaTyping(code: string): string { + const knownTypes = ['boolean', 'int64', 'void'] + return code.replaceAll(/\(([^\n\(\)]*?)\): ([\S]*?) => {/g, (match, p1, p2) => { + if (knownTypes.includes(p2)) { + return match + } + return `(${p1}) => {` + }) +} + +function returnOptionalParams(code: string): string { + const reduce = (line: string): string => { + if (line.includes("constructor")) { + return line + } + for (var i = 0; i < line.length; i++) { + if (line[i] == '(') { + let ignore = false + for (var k = i; k >= 0; k--) { + if (line[k].match(/[a-zA-Z<>_0-9]/)) { + break + } + if (line[k] == ':') { + ignore = true + } + } + if (ignore) { + continue + } + const initi = i + let j = i + 1, depth = 1 + let parts: string[] = [] + while (j < line.length) { + if (line[j] == '(') { + depth++ + } + if (line[j] == ')') { + depth-- + if (depth == 0) { + parts.push(line.substring(i + 1, j)) + break + } + } + if (line[j] == ',' && depth == 1) { + parts.push(line.substring(i + 1, j)) + i = j + 1 + } + j++ + } + if (depth == 0 && parts.length && parts.every(it => it.includes(": ") && !it.includes("? "))) { + let k = parts.length - 1 + while (k >= 0) { + if (parts[k].endsWith(" | undefined")) { + let w = parts[k].substring(0, parts[k].length - " | undefined".length) + let i = w.indexOf(':') + if (w[i - 1] != '?') { + parts[k] = w.substring(0, i) + "?" + w.substring(i) + } + } else { + break + } + k-- + } + if (k != parts.length - 1) { + let nline = line.substring(0, initi + 1) + parts.join(', ') + line.substring(j) + return nline + } + } + i = initi + } + } + return line + } + return code.split('\n').map((line) => { + let nline = reduce(line) + while (nline != line) { + line = nline + nline = reduce(line) + } + return line + }).join('\n') +} + +function fixPropertyLines(code: string): string { + /* + + for some properties the following construction is generated: + + private readonly name = false; + + public name(name) { // for readonly properties "setter" is also generated + (this).name = name = false; // sometimes there is a typing here + return; + } + + public name() { + return (this).name; + } + + this function wraps this back to `readonly name = false;` + + */ + return code.replaceAll(/(private|public)(.*)?(.*?)\n((.*?)\n){9}/g, (match, p1, p2, p3) => { + return `public ${p2} ${p3}` + }) +} + +function fixDuplicateSettersInInterfaces(code: string): string { + /* + + sometimes interfaces contains duplicate setters, this functions fixes it + + */ + code = code.replaceAll(/\n[ ]*(.*)interface(.*){\n([\s\S]*?)\n[ ]*}\n/g, (match, modifiers, p1, p2: string) => { + const keep = p2.split('\n').filter((it) => !it.trimStart().startsWith(`set`)) + const setters = [...new Set(p2.split('\n').filter((it) => it.trimStart().startsWith(`set`)))] + return `\n${modifiers}interface${p1}{\n${keep.join('\n')}\n${setters.join('\n')}\n}\n` + }) + return code +} + +function excludePartialInterfaces(code: string): string { + return code.replaceAll(/interface (.*)\$partial<>([\s\S]*?)}/g, '') +} + +function fixNamespace(code: string) { + /* + namespaces become abstract classes, and enums become final classes + enum in namespace -> class in class -> not supported + + we have only one such place, so fix manually + */ + code = code.replaceAll(/export (declare )?abstract class (Profiler|GestureControl|text|common2D) {/g, `export $1 namespace $2 {`) + code = code.replaceAll(`public static _$init$_() {}`, ``) + code = code.replaceAll(`public static _$initializerBlockInit$_() {}`, ``) + code = code.replaceAll(/public static ((?:un)?registerVsyncCallback)/g, "export function $1") + + return code +} + +function fixEnums(code: string) { + const lines = code.split('\n') + const enums = [] + for (let i = 0; i + 1 < lines.length; i++) { + if (lines[i].trimStart().startsWith(`export final class`) + && lines[i + 1].trimStart().startsWith(`private readonly _ordinal`) + ) { + const name = lines[i].split(' ')[3] + enums.push(name) + } + } + enums.forEach((name) => { + const regexp = new RegExp(`${name}\\.(\\w+)(.)`, `g`) + code = code.replaceAll(regexp, (match, p1, p2) => { + if (!p1.startsWith('_') && p2 == ":") { // this colon is for switch case, not for type + return `${name}.${p1}.valueOf()${p2}` + } + return match + }) + const idents = [...code.matchAll(new RegExp(`(\\w+?)([\\W])(\\w+?): ${name}`, `g`))].filter(it => it[1] != "readonly" && it[1] != "_get").map(it => it[3]) + // work manually with a couple of cases not to write one more bracket parser + if (code.includes(`const eventKind = (deserializer.readInt32() as CallbackEventKind);`)) { + // this is for file arkui/src/generated/peers/CallbacksChecker.ts + idents.push(`eventKind`) + code = code.replace(`const eventKind = (deserializer.readInt32() as CallbackEventKind);`, `const eventKind = CallbackEventKind.fromValue(deserializer.readInt32());`) + } + if (code.includes(`switch ((type as EventType))`)) { + // this is for file arkui/src/Application.ts + code = code.replace(`switch ((type as EventType))`, `switch (type)`) + } + idents.forEach((id) => { + code = code.replaceAll(`${id} as int32`, `${id}.valueOf()`) + code = code.replaceAll(`switch (${id})`, `switch (${id}.valueOf())`) + }) + }) + return code +} + +function fixSwitchCase(code: string) { + const lines = code.split('\n') + // assume good formatting on start, return also good formatting (spaces on line beginnings) + const spacesStack = [] + for (var i = 1; i < lines.length; i++) { + if (lines[i].trimStart().startsWith('case ') || lines[i].trimStart().startsWith('default:')) { + if (lines[i - 1].trimStart().startsWith('switch')) { + spacesStack.push(lines[i - 1].indexOf('s')) + lines[i] = lines[i] + ` {` + } else { + const indent = ` `.repeat(spacesStack[spacesStack.length - 1] + 2) + lines[i] = indent + `}\n` + indent + lines[i].trimStart() + ` {` + } + } + else if (spacesStack.length && lines[i].trimStart().startsWith('}') && lines[i].indexOf('}') <= spacesStack[spacesStack.length - 1]) { + lines[i] = ` `.repeat(spacesStack[spacesStack.length - 1]) + `} ` + lines[i].trimStart() + spacesStack.pop() + } + } + return lines.join('\n') +} + /* TODO: The lowerings insert %% and other special symbols into names of temporary variables. Until we keep feeding ast dumps back to the parser this function is needed. */ export function filterSource(text: string): string { - const filtered = replaceIllegalHashes(replacePercentOutsideStrings(text)) - .replaceAll("", "_cctor_") - - return filtered + //console.error("====") + // console.error(text.split('\n').map((it, index) => `${`${index + 1}`.padStart(4)} |${it}`).join('\n')) + const dumperUnwrappers = [ + addExports, + fixNamespace, + fixEnums, + fixDuplicateSettersInInterfaces, + removeAbstractFromInterfaces, + replaceGensymWrappers, // nested + replaceGensymWrappers, // nested + replaceGensymWrappers, + replaceIllegalHashes, + replacePercentOutsideStrings, + excludePartialInterfaces, + (code: string) => code.replaceAll("", "_cctor_"), + (code: string) => code.replaceAll("public constructor() {}", ""), + (code: string) => code.replaceAll("@Module()", ""), + fixPropertyLines, + fixSwitchCase, + ] + // console.error("====") + // console.error(dumperUnwrappers.reduceRight((code, f) => f(code), text).split('\n').map((it, index) => `${`${index + 1}`.padStart(4)} |${it}`).join('\n')) + return dumperUnwrappers.reduceRight((code, f) => f(code), text) } export function getEnumName(enumType: any, value: number): string | undefined { -- Gitee From d06188103c979e594318e410ca86a60bb89a227a Mon Sep 17 00:00:00 2001 From: huiqiang Date: Wed, 28 May 2025 10:54:45 +0800 Subject: [PATCH 2/3] rollback stage arena Signed-off-by: huiqiang Change-Id: Ia25c6434b7caf8c57de4e31404dbac74f91b7379 --- .../koalaui/interop/src/cpp/common-interop.cc | 10 - koala-wrapper/native/include/common.h | 53 ---- koala-wrapper/native/src/bridges.cc | 20 +- koala-wrapper/native/src/common.cc | 62 +--- koala-wrapper/native/src/generated/bridges.cc | 266 +++++++++--------- koala-wrapper/src/Es2pandaNativeModule.ts | 4 +- .../src/arkts-api/utilities/private.ts | 5 +- .../src/arkts-api/utilities/public.ts | 4 +- 8 files changed, 154 insertions(+), 270 deletions(-) diff --git a/koala-wrapper/koalaui/interop/src/cpp/common-interop.cc b/koala-wrapper/koalaui/interop/src/cpp/common-interop.cc index 0400f779b..ec6572c6d 100644 --- a/koala-wrapper/koalaui/interop/src/cpp/common-interop.cc +++ b/koala-wrapper/koalaui/interop/src/cpp/common-interop.cc @@ -450,16 +450,6 @@ KStringPtr impl_Utf8ToString(KVMContext vmContext, KByte* data, KInt offset, KIn } KOALA_INTEROP_CTX_3(Utf8ToString, KStringPtr, KByte*, KInt, KInt) -#if defined(KOALA_NAPI) || defined(KOALA_ANI) -KStringPtr impl_RawUtf8ToString(KVMContext vmContext, KNativePointer data) { - auto string = (const char*)data; - KStringPtr result(string, strlen(string), false); - return result; -} -KOALA_INTEROP_CTX_1(RawUtf8ToString, KStringPtr, KNativePointer) -#endif - - KStringPtr impl_StdStringToString(KVMContext vmContext, KNativePointer stringPtr) { std::string* string = reinterpret_cast(stringPtr); KStringPtr result(string->c_str(), string->size(), false); diff --git a/koala-wrapper/native/include/common.h b/koala-wrapper/native/include/common.h index f2d8387c3..6e0824eaf 100644 --- a/koala-wrapper/native/include/common.h +++ b/koala-wrapper/native/include/common.h @@ -36,58 +36,5 @@ inline KUInt unpackUInt(const KByte* bytes); es2panda_ContextState intToState(KInt state); -class StageArena { - std::vector allocated; - size_t totalSize; - public: - StageArena(); - ~StageArena(); - static StageArena* instance(); - template - static T* alloc() - { - auto* arena = StageArena::instance(); - void* memory = arena->alloc(sizeof(T)); - return new (memory) T(); - } - template - static T* alloc(T1 arg1) - { - auto* arena = StageArena::instance(); - void* memory = arena->alloc(sizeof(T)); - return new (memory) T(std::forward(arg1)); - } - template - static T* alloc(T1 arg1, T2 arg2) - { - auto* arena = StageArena::instance(); - void* memory = arena->alloc(sizeof(T)); - return new (memory) T(arg1, arg2); - } - template - static T* allocArray(size_t count) - { - auto* arena = StageArena::instance(); - // align? - void* memory = arena->alloc(sizeof(T) * count); - return new (memory) T(); - } - template - static T* clone(const T& arg) - { - auto* arena = StageArena::instance(); - void* memory = arena->alloc(sizeof(T)); - return new (memory) T(arg); - } - template - static std::vector* cloneVector(const T* arg, size_t count) - { - return alloc, const T*, const T*>(arg, arg + count); - } - void* alloc(size_t size); - static char* strdup(const char* original); - void add(void* pointer); - void cleanup(); -}; #endif // COMMON_H \ No newline at end of file diff --git a/koala-wrapper/native/src/bridges.cc b/koala-wrapper/native/src/bridges.cc index 2eb382da9..37b270bc9 100644 --- a/koala-wrapper/native/src/bridges.cc +++ b/koala-wrapper/native/src/bridges.cc @@ -71,7 +71,7 @@ KNativePointer impl_AnnotationAllowedAnnotations(KNativePointer contextPtr, KNat auto node = reinterpret_cast(nodePtr); std::size_t params_len = 0; auto annotations = GetImpl()->AnnotationAllowedAnnotations(context, node, ¶ms_len); - return StageArena::cloneVector(annotations, params_len); + return new std::vector(annotations, annotations + params_len); } KOALA_INTEROP_3(AnnotationAllowedAnnotations, KNativePointer, KNativePointer, KNativePointer, KNativePointer) @@ -81,7 +81,7 @@ KNativePointer impl_AnnotationAllowedAnnotationsConst(KNativePointer contextPtr, auto node = reinterpret_cast(nodePtr); std::size_t params_len = 0; auto annotations = GetImpl()->AnnotationAllowedAnnotationsConst(context, node, ¶ms_len); - return StageArena::cloneVector(annotations, params_len); + return new std::vector(annotations, annotations + params_len); } KOALA_INTEROP_3(AnnotationAllowedAnnotationsConst, KNativePointer, KNativePointer, KNativePointer, KNativePointer) @@ -217,7 +217,7 @@ KNativePointer impl_ContextErrorMessage(KNativePointer contextPtr) { auto context = reinterpret_cast(contextPtr); - return StageArena::strdup(GetImpl()->ContextErrorMessage(context)); + return new string(GetImpl()->ContextErrorMessage(context)); } KOALA_INTEROP_1(ContextErrorMessage, KNativePointer, KNativePointer) @@ -254,15 +254,15 @@ static KNativePointer impl_ProgramExternalSources(KNativePointer contextPtr, KNa auto&& instance = reinterpret_cast(instancePtr); std::size_t source_len = 0; auto external_sources = GetImpl()->ProgramExternalSources(context, instance, &source_len); - return StageArena::cloneVector(external_sources, source_len); + return new std::vector(external_sources, external_sources + source_len); } KOALA_INTEROP_2(ProgramExternalSources, KNativePointer, KNativePointer, KNativePointer); static KNativePointer impl_ExternalSourceName(KNativePointer instance) { auto&& _instance_ = reinterpret_cast(instance); - auto&& result = GetImpl()->ExternalSourceName(_instance_); - return StageArena::strdup(result); + auto&& _result_ = GetImpl()->ExternalSourceName(_instance_); + return new std::string(_result_); } KOALA_INTEROP_1(ExternalSourceName, KNativePointer, KNativePointer); @@ -271,7 +271,7 @@ static KNativePointer impl_ExternalSourcePrograms(KNativePointer instance) auto&& _instance_ = reinterpret_cast(instance); std::size_t program_len = 0; auto programs = GetImpl()->ExternalSourcePrograms(_instance_, &program_len); - return StageArena::cloneVector(programs, program_len); + return new std::vector(programs, programs + program_len); } KOALA_INTEROP_1(ExternalSourcePrograms, KNativePointer, KNativePointer); @@ -381,7 +381,7 @@ KNativePointer impl_ProgramFileNameConst(KNativePointer contextPtr, KNativePoint auto context = reinterpret_cast(contextPtr); auto program = reinterpret_cast(programPtr); auto result = GetImpl()->ProgramFileNameConst(context, program); - return StageArena::strdup(result); + return new std::string(result); } KOALA_INTEROP_2(ProgramFileNameConst, KNativePointer, KNativePointer, KNativePointer) @@ -390,7 +390,7 @@ KNativePointer impl_ProgramFileNameWithExtensionConst(KNativePointer contextPtr, auto context = reinterpret_cast(contextPtr); auto program = reinterpret_cast(programPtr); auto result = GetImpl()->ProgramFileNameWithExtensionConst(context, program); - return StageArena::strdup(result); + return new std::string(result); } KOALA_INTEROP_2(ProgramFileNameWithExtensionConst, KNativePointer, KNativePointer, KNativePointer) @@ -398,7 +398,7 @@ KNativePointer impl_ETSParserGetGlobalProgramAbsName(KNativePointer contextPtr) { auto context = reinterpret_cast(contextPtr); auto result = GetImpl()->ETSParserGetGlobalProgramAbsName(context); - return StageArena::strdup(result); + return new std::string(result); } KOALA_INTEROP_1(ETSParserGetGlobalProgramAbsName, KNativePointer, KNativePointer) diff --git a/koala-wrapper/native/src/common.cc b/koala-wrapper/native/src/common.cc index b22054453..c81962915 100644 --- a/koala-wrapper/native/src/common.cc +++ b/koala-wrapper/native/src/common.cc @@ -14,63 +14,10 @@ */ #include -#include - using std::string, std::cout, std::endl, std::vector; static es2panda_Impl *impl = nullptr; -static thread_local StageArena currentArena; - -StageArena* StageArena::instance() -{ - return ¤tArena; -} - -void StageArena::add(void* pointer) -{ - if (pointer) - allocated.push_back(pointer); -} - -void StageArena::cleanup() -{ - if (totalSize > 0 && false) - printf("cleanup %d objects %d bytes\n", (int)allocated.size(), (int)totalSize); - for (auto it : allocated) { - free(it); - } - totalSize = 0; - allocated.clear(); -} - -StageArena::StageArena() -{ - totalSize = 0; -} - -StageArena::~StageArena() -{ - cleanup(); -} - -char* StageArena::strdup(const char* string) -{ - auto* arena = StageArena::instance(); - auto size = strlen(string) + 1; - char* memory = (char*)arena->alloc(size); - memcpy(memory, string, size); - return memory; -} - -void* StageArena::alloc(size_t size) -{ - void* result = malloc(size); - totalSize += size; - add(result); - return result; -} - #ifdef KOALA_WINDOWS #include #define PLUGIN_DIR "windows_host_tools" @@ -133,7 +80,7 @@ string getString(KStringPtr ptr) char* getStringCopy(KStringPtr& ptr) { - return StageArena::strdup(ptr.c_str() ? ptr.c_str() : ""); + return strdup(ptr.c_str()); } inline KUInt unpackUInt(const KByte* bytes) @@ -157,13 +104,13 @@ inline KUInt unpackUInt(const KByte* bytes) KNativePointer impl_CreateConfig(KInt argc, KStringArray argvPtr) { const std::size_t headerLen = 4; - const char** argv = StageArena::allocArray(argc); + const char** argv = new const char*[argc]; std::size_t position = headerLen; std::size_t strLen; for (std::size_t i = 0; i < static_cast(argc); ++i) { strLen = unpackUInt(argvPtr + position); position += headerLen; - argv[i] = StageArena::strdup(std::string(reinterpret_cast(argvPtr + position), strLen).c_str()); + argv[i] = strdup(std::string(reinterpret_cast(argvPtr + position), strLen).c_str()); position += strLen; } return GetImpl()->CreateConfig(argc, argv); @@ -180,7 +127,6 @@ KOALA_INTEROP_1(DestroyConfig, KNativePointer, KNativePointer) KNativePointer impl_DestroyContext(KNativePointer contextPtr) { auto context = reinterpret_cast(contextPtr); GetImpl()->DestroyContext(context); - StageArena::instance()->cleanup(); return nullptr; } KOALA_INTEROP_1(DestroyContext, KNativePointer, KNativePointer) @@ -280,7 +226,7 @@ KNativePointer impl_AstNodeChildren( cachedChildren.clear(); GetImpl()->AstNodeIterateConst(context, node, visitChild); - return StageArena::clone(cachedChildren); + return new std::vector(cachedChildren); } KOALA_INTEROP_2(AstNodeChildren, KNativePointer, KNativePointer, KNativePointer) diff --git a/koala-wrapper/native/src/generated/bridges.cc b/koala-wrapper/native/src/generated/bridges.cc index 64ecc28c5..c4fe33c5a 100644 --- a/koala-wrapper/native/src/generated/bridges.cc +++ b/koala-wrapper/native/src/generated/bridges.cc @@ -20,7 +20,7 @@ KNativePointer impl_NumberLiteralStrConst(KNativePointer context, KNativePointer const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); auto result = GetImpl()->NumberLiteralStrConst(_context, _receiver); - return StageArena::strdup(result); + return new std::string(result); } KOALA_INTEROP_2(NumberLiteralStrConst, KNativePointer, KNativePointer, KNativePointer); @@ -266,7 +266,7 @@ KNativePointer impl_ClassPropertyAnnotations(KNativePointer context, KNativePoin const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ClassPropertyAnnotations(_context, _receiver, &length); - return StageArena::cloneVector(result, length); + return new std::vector(result, result + length); } KOALA_INTEROP_2(ClassPropertyAnnotations, KNativePointer, KNativePointer, KNativePointer); @@ -276,7 +276,7 @@ KNativePointer impl_ClassPropertyAnnotationsConst(KNativePointer context, KNativ const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ClassPropertyAnnotationsConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(ClassPropertyAnnotationsConst, KNativePointer, KNativePointer, KNativePointer); @@ -353,7 +353,7 @@ KNativePointer impl_ETSFunctionTypeIrParamsConst(KNativePointer context, KNative const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ETSFunctionTypeIrParamsConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(ETSFunctionTypeIrParamsConst, KNativePointer, KNativePointer, KNativePointer); @@ -628,7 +628,7 @@ KNativePointer impl_TSConstructorTypeParamsConst(KNativePointer context, KNative const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TSConstructorTypeParamsConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(TSConstructorTypeParamsConst, KNativePointer, KNativePointer, KNativePointer); @@ -740,7 +740,7 @@ KNativePointer impl_TSEnumDeclarationMembersConst(KNativePointer context, KNativ const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TSEnumDeclarationMembersConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(TSEnumDeclarationMembersConst, KNativePointer, KNativePointer, KNativePointer); @@ -749,7 +749,7 @@ KNativePointer impl_TSEnumDeclarationInternalNameConst(KNativePointer context, K const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); auto result = GetImpl()->TSEnumDeclarationInternalNameConst(_context, _receiver); - return StageArena::strdup(result); + return new std::string(result); } KOALA_INTEROP_2(TSEnumDeclarationInternalNameConst, KNativePointer, KNativePointer, KNativePointer); @@ -797,7 +797,7 @@ KNativePointer impl_TSEnumDeclarationDecoratorsConst(KNativePointer context, KNa const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TSEnumDeclarationDecoratorsConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(TSEnumDeclarationDecoratorsConst, KNativePointer, KNativePointer, KNativePointer); @@ -886,7 +886,7 @@ KNativePointer impl_ObjectExpressionPropertiesConst(KNativePointer context, KNat const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ObjectExpressionPropertiesConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(ObjectExpressionPropertiesConst, KNativePointer, KNativePointer, KNativePointer); @@ -914,7 +914,7 @@ KNativePointer impl_ObjectExpressionDecoratorsConst(KNativePointer context, KNat const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ObjectExpressionDecoratorsConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(ObjectExpressionDecoratorsConst, KNativePointer, KNativePointer, KNativePointer); @@ -1223,7 +1223,7 @@ KNativePointer impl_CallExpressionArgumentsConst(KNativePointer context, KNative const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->CallExpressionArgumentsConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(CallExpressionArgumentsConst, KNativePointer, KNativePointer, KNativePointer); @@ -1233,7 +1233,7 @@ KNativePointer impl_CallExpressionArguments(KNativePointer context, KNativePoint const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->CallExpressionArguments(_context, _receiver, &length); - return StageArena::cloneVector(result, length); + return new std::vector(result, result + length); } KOALA_INTEROP_2(CallExpressionArguments, KNativePointer, KNativePointer, KNativePointer); @@ -1336,7 +1336,7 @@ KNativePointer impl_BigIntLiteralStrConst(KNativePointer context, KNativePointer const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); auto result = GetImpl()->BigIntLiteralStrConst(_context, _receiver); - return StageArena::strdup(result); + return new std::string(result); } KOALA_INTEROP_2(BigIntLiteralStrConst, KNativePointer, KNativePointer, KNativePointer); @@ -1438,7 +1438,7 @@ KNativePointer impl_ClassElementDecoratorsConst(KNativePointer context, KNativeP const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ClassElementDecoratorsConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(ClassElementDecoratorsConst, KNativePointer, KNativePointer, KNativePointer); @@ -1661,7 +1661,7 @@ KNativePointer impl_FunctionDeclarationAnnotations(KNativePointer context, KNati const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->FunctionDeclarationAnnotations(_context, _receiver, &length); - return StageArena::cloneVector(result, length); + return new std::vector(result, result + length); } KOALA_INTEROP_2(FunctionDeclarationAnnotations, KNativePointer, KNativePointer, KNativePointer); @@ -1671,7 +1671,7 @@ KNativePointer impl_FunctionDeclarationAnnotationsConst(KNativePointer context, const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->FunctionDeclarationAnnotationsConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(FunctionDeclarationAnnotationsConst, KNativePointer, KNativePointer, KNativePointer); @@ -1899,7 +1899,7 @@ KNativePointer impl_TSFunctionTypeParamsConst(KNativePointer context, KNativePoi const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TSFunctionTypeParamsConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(TSFunctionTypeParamsConst, KNativePointer, KNativePointer, KNativePointer); @@ -1974,7 +1974,7 @@ KNativePointer impl_TemplateElementRawConst(KNativePointer context, KNativePoint const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); auto result = GetImpl()->TemplateElementRawConst(_context, _receiver); - return StageArena::strdup(result); + return new std::string(result); } KOALA_INTEROP_2(TemplateElementRawConst, KNativePointer, KNativePointer, KNativePointer); @@ -1983,7 +1983,7 @@ KNativePointer impl_TemplateElementCookedConst(KNativePointer context, KNativePo const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); auto result = GetImpl()->TemplateElementCookedConst(_context, _receiver); - return StageArena::strdup(result); + return new std::string(result); } KOALA_INTEROP_2(TemplateElementCookedConst, KNativePointer, KNativePointer, KNativePointer); @@ -2059,7 +2059,7 @@ KNativePointer impl_TSInterfaceDeclarationInternalNameConst(KNativePointer conte const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); auto result = GetImpl()->TSInterfaceDeclarationInternalNameConst(_context, _receiver); - return StageArena::strdup(result); + return new std::string(result); } KOALA_INTEROP_2(TSInterfaceDeclarationInternalNameConst, KNativePointer, KNativePointer, KNativePointer); @@ -2115,7 +2115,7 @@ KNativePointer impl_TSInterfaceDeclarationExtends(KNativePointer context, KNativ const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TSInterfaceDeclarationExtends(_context, _receiver, &length); - return StageArena::cloneVector(result, length); + return new std::vector(result, result + length); } KOALA_INTEROP_2(TSInterfaceDeclarationExtends, KNativePointer, KNativePointer, KNativePointer); @@ -2125,7 +2125,7 @@ KNativePointer impl_TSInterfaceDeclarationExtendsConst(KNativePointer context, K const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TSInterfaceDeclarationExtendsConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(TSInterfaceDeclarationExtendsConst, KNativePointer, KNativePointer, KNativePointer); @@ -2135,7 +2135,7 @@ KNativePointer impl_TSInterfaceDeclarationDecoratorsConst(KNativePointer context const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TSInterfaceDeclarationDecoratorsConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(TSInterfaceDeclarationDecoratorsConst, KNativePointer, KNativePointer, KNativePointer); @@ -2173,7 +2173,7 @@ KNativePointer impl_TSInterfaceDeclarationAnnotations(KNativePointer context, KN const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TSInterfaceDeclarationAnnotations(_context, _receiver, &length); - return StageArena::cloneVector(result, length); + return new std::vector(result, result + length); } KOALA_INTEROP_2(TSInterfaceDeclarationAnnotations, KNativePointer, KNativePointer, KNativePointer); @@ -2183,7 +2183,7 @@ KNativePointer impl_TSInterfaceDeclarationAnnotationsConst(KNativePointer contex const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TSInterfaceDeclarationAnnotationsConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(TSInterfaceDeclarationAnnotationsConst, KNativePointer, KNativePointer, KNativePointer); @@ -2227,7 +2227,7 @@ KNativePointer impl_VariableDeclarationDeclaratorsConst(KNativePointer context, const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->VariableDeclarationDeclaratorsConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(VariableDeclarationDeclaratorsConst, KNativePointer, KNativePointer, KNativePointer); @@ -2246,7 +2246,7 @@ KNativePointer impl_VariableDeclarationDecoratorsConst(KNativePointer context, K const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->VariableDeclarationDecoratorsConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(VariableDeclarationDecoratorsConst, KNativePointer, KNativePointer, KNativePointer); @@ -2266,7 +2266,7 @@ KNativePointer impl_VariableDeclarationAnnotations(KNativePointer context, KNati const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->VariableDeclarationAnnotations(_context, _receiver, &length); - return StageArena::cloneVector(result, length); + return new std::vector(result, result + length); } KOALA_INTEROP_2(VariableDeclarationAnnotations, KNativePointer, KNativePointer, KNativePointer); @@ -2276,7 +2276,7 @@ KNativePointer impl_VariableDeclarationAnnotationsConst(KNativePointer context, const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->VariableDeclarationAnnotationsConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(VariableDeclarationAnnotationsConst, KNativePointer, KNativePointer, KNativePointer); @@ -2609,7 +2609,7 @@ KNativePointer impl_ETSUnionTypeIrTypesConst(KNativePointer context, KNativePoin const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ETSUnionTypeIrTypesConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(ETSUnionTypeIrTypesConst, KNativePointer, KNativePointer, KNativePointer); KNativePointer impl_CreateETSKeyofType(KNativePointer context, KNativePointer type) @@ -2895,7 +2895,7 @@ KNativePointer impl_TSTypeAliasDeclarationDecoratorsConst(KNativePointer context const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TSTypeAliasDeclarationDecoratorsConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(TSTypeAliasDeclarationDecoratorsConst, KNativePointer, KNativePointer, KNativePointer); @@ -2915,7 +2915,7 @@ KNativePointer impl_TSTypeAliasDeclarationAnnotations(KNativePointer context, KN const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TSTypeAliasDeclarationAnnotations(_context, _receiver, &length); - return StageArena::cloneVector(result, length); + return new std::vector(result, result + length); } KOALA_INTEROP_2(TSTypeAliasDeclarationAnnotations, KNativePointer, KNativePointer, KNativePointer); @@ -2925,7 +2925,7 @@ KNativePointer impl_TSTypeAliasDeclarationAnnotationsConst(KNativePointer contex const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TSTypeAliasDeclarationAnnotationsConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(TSTypeAliasDeclarationAnnotationsConst, KNativePointer, KNativePointer, KNativePointer); @@ -3146,7 +3146,7 @@ KNativePointer impl_ScriptFunctionParamsConst(KNativePointer context, KNativePoi const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ScriptFunctionParamsConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(ScriptFunctionParamsConst, KNativePointer, KNativePointer, KNativePointer); @@ -3156,7 +3156,7 @@ KNativePointer impl_ScriptFunctionParams(KNativePointer context, KNativePointer const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ScriptFunctionParams(_context, _receiver, &length); - return StageArena::cloneVector(result, length); + return new std::vector(result, result + length); } KOALA_INTEROP_2(ScriptFunctionParams, KNativePointer, KNativePointer, KNativePointer); @@ -3166,7 +3166,7 @@ KNativePointer impl_ScriptFunctionReturnStatementsConst(KNativePointer context, const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ScriptFunctionReturnStatementsConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(ScriptFunctionReturnStatementsConst, KNativePointer, KNativePointer, KNativePointer); @@ -3176,7 +3176,7 @@ KNativePointer impl_ScriptFunctionReturnStatements(KNativePointer context, KNati const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ScriptFunctionReturnStatements(_context, _receiver, &length); - return StageArena::cloneVector(result, length); + return new std::vector(result, result + length); } KOALA_INTEROP_2(ScriptFunctionReturnStatements, KNativePointer, KNativePointer, KNativePointer); @@ -3571,7 +3571,7 @@ KNativePointer impl_ScriptFunctionAnnotations(KNativePointer context, KNativePoi const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ScriptFunctionAnnotations(_context, _receiver, &length); - return StageArena::cloneVector(result, length); + return new std::vector(result, result + length); } KOALA_INTEROP_2(ScriptFunctionAnnotations, KNativePointer, KNativePointer, KNativePointer); @@ -3581,7 +3581,7 @@ KNativePointer impl_ScriptFunctionAnnotationsConst(KNativePointer context, KNati const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ScriptFunctionAnnotationsConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(ScriptFunctionAnnotationsConst, KNativePointer, KNativePointer, KNativePointer); @@ -3718,7 +3718,7 @@ KNativePointer impl_ClassDefinitionInternalNameConst(KNativePointer context, KNa const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); auto result = GetImpl()->ClassDefinitionInternalNameConst(_context, _receiver); - return StageArena::strdup(result); + return new std::string(result); } KOALA_INTEROP_2(ClassDefinitionInternalNameConst, KNativePointer, KNativePointer, KNativePointer); @@ -3958,7 +3958,7 @@ KNativePointer impl_ClassDefinitionBody(KNativePointer context, KNativePointer r const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ClassDefinitionBody(_context, _receiver, &length); - return StageArena::cloneVector(result, length); + return new std::vector(result, result + length); } KOALA_INTEROP_2(ClassDefinitionBody, KNativePointer, KNativePointer, KNativePointer); @@ -3968,7 +3968,7 @@ KNativePointer impl_ClassDefinitionBodyConst(KNativePointer context, KNativePoin const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ClassDefinitionBodyConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(ClassDefinitionBodyConst, KNativePointer, KNativePointer, KNativePointer); @@ -3997,7 +3997,7 @@ KNativePointer impl_ClassDefinitionImplements(KNativePointer context, KNativePoi const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ClassDefinitionImplements(_context, _receiver, &length); - return StageArena::cloneVector(result, length); + return new std::vector(result, result + length); } KOALA_INTEROP_2(ClassDefinitionImplements, KNativePointer, KNativePointer, KNativePointer); @@ -4007,7 +4007,7 @@ KNativePointer impl_ClassDefinitionImplementsConst(KNativePointer context, KNati const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ClassDefinitionImplementsConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(ClassDefinitionImplementsConst, KNativePointer, KNativePointer, KNativePointer); @@ -4080,7 +4080,7 @@ KNativePointer impl_ClassDefinitionLocalPrefixConst(KNativePointer context, KNat const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); auto result = GetImpl()->ClassDefinitionLocalPrefixConst(_context, _receiver); - return StageArena::strdup(result); + return new std::string(result); } KOALA_INTEROP_2(ClassDefinitionLocalPrefixConst, KNativePointer, KNativePointer, KNativePointer); @@ -4184,7 +4184,7 @@ KNativePointer impl_ClassDefinitionAnnotations(KNativePointer context, KNativePo const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ClassDefinitionAnnotations(_context, _receiver, &length); - return StageArena::cloneVector(result, length); + return new std::vector(result, result + length); } KOALA_INTEROP_2(ClassDefinitionAnnotations, KNativePointer, KNativePointer, KNativePointer); @@ -4194,7 +4194,7 @@ KNativePointer impl_ClassDefinitionAnnotationsConst(KNativePointer context, KNat const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ClassDefinitionAnnotationsConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(ClassDefinitionAnnotationsConst, KNativePointer, KNativePointer, KNativePointer); @@ -4271,7 +4271,7 @@ KNativePointer impl_ArrayExpressionElementsConst(KNativePointer context, KNative const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ArrayExpressionElementsConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(ArrayExpressionElementsConst, KNativePointer, KNativePointer, KNativePointer); @@ -4281,7 +4281,7 @@ KNativePointer impl_ArrayExpressionElements(KNativePointer context, KNativePoint const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ArrayExpressionElements(_context, _receiver, &length); - return StageArena::cloneVector(result, length); + return new std::vector(result, result + length); } KOALA_INTEROP_2(ArrayExpressionElements, KNativePointer, KNativePointer, KNativePointer); @@ -4339,7 +4339,7 @@ KNativePointer impl_ArrayExpressionDecoratorsConst(KNativePointer context, KNati const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ArrayExpressionDecoratorsConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(ArrayExpressionDecoratorsConst, KNativePointer, KNativePointer, KNativePointer); @@ -4427,7 +4427,7 @@ KNativePointer impl_TSInterfaceBodyBodyPtr(KNativePointer context, KNativePointe const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TSInterfaceBodyBodyPtr(_context, _receiver, &length); - return StageArena::cloneVector(result, length); + return new std::vector(result, result + length); } KOALA_INTEROP_2(TSInterfaceBodyBodyPtr, KNativePointer, KNativePointer, KNativePointer); @@ -4437,7 +4437,7 @@ KNativePointer impl_TSInterfaceBodyBody(KNativePointer context, KNativePointer r const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TSInterfaceBodyBody(_context, _receiver, &length); - return StageArena::cloneVector(result, length); + return new std::vector(result, result + length); } KOALA_INTEROP_2(TSInterfaceBodyBody, KNativePointer, KNativePointer, KNativePointer); @@ -4447,7 +4447,7 @@ KNativePointer impl_TSInterfaceBodyBodyConst(KNativePointer context, KNativePoin const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TSInterfaceBodyBodyConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(TSInterfaceBodyBodyConst, KNativePointer, KNativePointer, KNativePointer); @@ -4793,7 +4793,7 @@ KNativePointer impl_StringLiteralStrConst(KNativePointer context, KNativePointer const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); auto result = GetImpl()->StringLiteralStrConst(_context, _receiver); - return StageArena::strdup(result); + return new std::string(result); } KOALA_INTEROP_2(StringLiteralStrConst, KNativePointer, KNativePointer, KNativePointer); @@ -4963,7 +4963,7 @@ KNativePointer impl_ETSTupleGetTupleTypeAnnotationsList(KNativePointer context, const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ETSTupleGetTupleTypeAnnotationsList(_context, _receiver, &length); - return StageArena::cloneVector(result, length); + return new std::vector(result, result + length); } KOALA_INTEROP_2(ETSTupleGetTupleTypeAnnotationsList, KNativePointer, KNativePointer, KNativePointer); @@ -4973,7 +4973,7 @@ KNativePointer impl_ETSTupleGetTupleTypeAnnotationsListConst(KNativePointer cont const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ETSTupleGetTupleTypeAnnotationsListConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(ETSTupleGetTupleTypeAnnotationsListConst, KNativePointer, KNativePointer, KNativePointer); @@ -5092,7 +5092,7 @@ KNativePointer impl_TryStatementCatchClausesConst(KNativePointer context, KNativ const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TryStatementCatchClausesConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(TryStatementCatchClausesConst, KNativePointer, KNativePointer, KNativePointer); @@ -5287,7 +5287,7 @@ KNativePointer impl_AstNodeDecoratorsPtrConst(KNativePointer context, KNativePoi const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->AstNodeDecoratorsPtrConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(AstNodeDecoratorsPtrConst, KNativePointer, KNativePointer, KNativePointer); @@ -5653,7 +5653,7 @@ KNativePointer impl_AstNodeDumpJSONConst(KNativePointer context, KNativePointer const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); auto result = GetImpl()->AstNodeDumpJSONConst(_context, _receiver); - return StageArena::strdup(result); + return new std::string(result); } KOALA_INTEROP_2(AstNodeDumpJSONConst, KNativePointer, KNativePointer, KNativePointer); @@ -5662,7 +5662,7 @@ KNativePointer impl_AstNodeDumpEtsSrcConst(KNativePointer context, KNativePointe const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); auto result = GetImpl()->AstNodeDumpEtsSrcConst(_context, _receiver); - return StageArena::strdup(result); + return new std::string(result); } KOALA_INTEROP_2(AstNodeDumpEtsSrcConst, KNativePointer, KNativePointer, KNativePointer); @@ -5973,7 +5973,7 @@ KNativePointer impl_TSMethodSignatureParamsConst(KNativePointer context, KNative const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TSMethodSignatureParamsConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(TSMethodSignatureParamsConst, KNativePointer, KNativePointer, KNativePointer); @@ -6592,7 +6592,7 @@ KNativePointer impl_ETSModuleAnnotations(KNativePointer context, KNativePointer const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ETSModuleAnnotations(_context, _receiver, &length); - return StageArena::cloneVector(result, length); + return new std::vector(result, result + length); } KOALA_INTEROP_2(ETSModuleAnnotations, KNativePointer, KNativePointer, KNativePointer); @@ -6602,7 +6602,7 @@ KNativePointer impl_ETSModuleAnnotationsConst(KNativePointer context, KNativePoi const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ETSModuleAnnotationsConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(ETSModuleAnnotationsConst, KNativePointer, KNativePointer, KNativePointer); @@ -6718,7 +6718,7 @@ KNativePointer impl_TSSignatureDeclarationParamsConst(KNativePointer context, KN const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TSSignatureDeclarationParamsConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(TSSignatureDeclarationParamsConst, KNativePointer, KNativePointer, KNativePointer); @@ -6854,7 +6854,7 @@ KNativePointer impl_TSTupleTypeElementTypeConst(KNativePointer context, KNativeP const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TSTupleTypeElementTypeConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(TSTupleTypeElementTypeConst, KNativePointer, KNativePointer, KNativePointer); @@ -7103,7 +7103,7 @@ KNativePointer impl_ImportDeclarationSpecifiersConst(KNativePointer context, KNa const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ImportDeclarationSpecifiersConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(ImportDeclarationSpecifiersConst, KNativePointer, KNativePointer, KNativePointer); @@ -7113,7 +7113,7 @@ KNativePointer impl_ImportDeclarationSpecifiers(KNativePointer context, KNativeP const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ImportDeclarationSpecifiers(_context, _receiver, &length); - return StageArena::cloneVector(result, length); + return new std::vector(result, result + length); } KOALA_INTEROP_2(ImportDeclarationSpecifiers, KNativePointer, KNativePointer, KNativePointer); @@ -7222,7 +7222,7 @@ KNativePointer impl_ETSImportDeclarationDeclPathConst(KNativePointer context, KN const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); auto result = GetImpl()->ETSImportDeclarationDeclPathConst(_context, _receiver); - return StageArena::strdup(result); + return new std::string(result); } KOALA_INTEROP_2(ETSImportDeclarationDeclPathConst, KNativePointer, KNativePointer, KNativePointer); @@ -7231,7 +7231,7 @@ KNativePointer impl_ETSImportDeclarationOhmUrlConst(KNativePointer context, KNat const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); auto result = GetImpl()->ETSImportDeclarationOhmUrlConst(_context, _receiver); - return StageArena::strdup(result); + return new std::string(result); } KOALA_INTEROP_2(ETSImportDeclarationOhmUrlConst, KNativePointer, KNativePointer, KNativePointer); @@ -7258,7 +7258,7 @@ KNativePointer impl_ETSImportDeclarationAssemblerName(KNativePointer context, KN const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); auto result = GetImpl()->ETSImportDeclarationAssemblerName(_context, _receiver); - return StageArena::strdup(result); + return new std::string(result); } KOALA_INTEROP_2(ETSImportDeclarationAssemblerName, KNativePointer, KNativePointer, KNativePointer); @@ -7267,7 +7267,7 @@ KNativePointer impl_ETSImportDeclarationAssemblerNameConst(KNativePointer contex const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); auto result = GetImpl()->ETSImportDeclarationAssemblerNameConst(_context, _receiver); - return StageArena::strdup(result); + return new std::string(result); } KOALA_INTEROP_2(ETSImportDeclarationAssemblerNameConst, KNativePointer, KNativePointer, KNativePointer); @@ -7276,7 +7276,7 @@ KNativePointer impl_ETSImportDeclarationResolvedSourceConst(KNativePointer conte const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); auto result = GetImpl()->ETSImportDeclarationResolvedSourceConst(_context, _receiver); - return StageArena::strdup(result); + return new std::string(result); } KOALA_INTEROP_2(ETSImportDeclarationResolvedSourceConst, KNativePointer, KNativePointer, KNativePointer); @@ -7326,7 +7326,7 @@ KNativePointer impl_TSModuleBlockStatementsConst(KNativePointer context, KNative const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TSModuleBlockStatementsConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(TSModuleBlockStatementsConst, KNativePointer, KNativePointer, KNativePointer); @@ -7453,7 +7453,7 @@ KNativePointer impl_AnnotationDeclarationInternalNameConst(KNativePointer contex const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); auto result = GetImpl()->AnnotationDeclarationInternalNameConst(_context, _receiver); - return StageArena::strdup(result); + return new std::string(result); } KOALA_INTEROP_2(AnnotationDeclarationInternalNameConst, KNativePointer, KNativePointer, KNativePointer); @@ -7491,7 +7491,7 @@ KNativePointer impl_AnnotationDeclarationProperties(KNativePointer context, KNat const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->AnnotationDeclarationProperties(_context, _receiver, &length); - return StageArena::cloneVector(result, length); + return new std::vector(result, result + length); } KOALA_INTEROP_2(AnnotationDeclarationProperties, KNativePointer, KNativePointer, KNativePointer); @@ -7501,7 +7501,7 @@ KNativePointer impl_AnnotationDeclarationPropertiesConst(KNativePointer context, const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->AnnotationDeclarationPropertiesConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(AnnotationDeclarationPropertiesConst, KNativePointer, KNativePointer, KNativePointer); @@ -7511,7 +7511,7 @@ KNativePointer impl_AnnotationDeclarationPropertiesPtrConst(KNativePointer conte const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->AnnotationDeclarationPropertiesPtrConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(AnnotationDeclarationPropertiesPtrConst, KNativePointer, KNativePointer, KNativePointer); @@ -7595,7 +7595,7 @@ KNativePointer impl_AnnotationDeclarationAnnotations(KNativePointer context, KNa const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->AnnotationDeclarationAnnotations(_context, _receiver, &length); - return StageArena::cloneVector(result, length); + return new std::vector(result, result + length); } KOALA_INTEROP_2(AnnotationDeclarationAnnotations, KNativePointer, KNativePointer, KNativePointer); @@ -7605,7 +7605,7 @@ KNativePointer impl_AnnotationDeclarationAnnotationsConst(KNativePointer context const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->AnnotationDeclarationAnnotationsConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(AnnotationDeclarationAnnotationsConst, KNativePointer, KNativePointer, KNativePointer); @@ -7677,7 +7677,7 @@ KNativePointer impl_AnnotationUsageIrProperties(KNativePointer context, KNativeP const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->AnnotationUsageIrProperties(_context, _receiver, &length); - return StageArena::cloneVector(result, length); + return new std::vector(result, result + length); } KOALA_INTEROP_2(AnnotationUsageIrProperties, KNativePointer, KNativePointer, KNativePointer); @@ -7687,7 +7687,7 @@ KNativePointer impl_AnnotationUsageIrPropertiesConst(KNativePointer context, KNa const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->AnnotationUsageIrPropertiesConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(AnnotationUsageIrPropertiesConst, KNativePointer, KNativePointer, KNativePointer); @@ -7697,7 +7697,7 @@ KNativePointer impl_AnnotationUsageIrPropertiesPtrConst(KNativePointer context, const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->AnnotationUsageIrPropertiesPtrConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(AnnotationUsageIrPropertiesPtrConst, KNativePointer, KNativePointer, KNativePointer); @@ -7824,7 +7824,7 @@ KNativePointer impl_FunctionSignatureParamsConst(KNativePointer context, KNative const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->FunctionSignatureParamsConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(FunctionSignatureParamsConst, KNativePointer, KNativePointer, KNativePointer); @@ -7834,7 +7834,7 @@ KNativePointer impl_FunctionSignatureParams(KNativePointer context, KNativePoint const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->FunctionSignatureParams(_context, _receiver, &length); - return StageArena::cloneVector(result, length); + return new std::vector(result, result + length); } KOALA_INTEROP_2(FunctionSignatureParams, KNativePointer, KNativePointer, KNativePointer); @@ -7977,7 +7977,7 @@ KNativePointer impl_TSIntersectionTypeTypesConst(KNativePointer context, KNative const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TSIntersectionTypeTypesConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(TSIntersectionTypeTypesConst, KNativePointer, KNativePointer, KNativePointer); @@ -8067,7 +8067,7 @@ KNativePointer impl_BlockExpressionStatementsConst(KNativePointer context, KNati const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->BlockExpressionStatementsConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(BlockExpressionStatementsConst, KNativePointer, KNativePointer, KNativePointer); @@ -8077,7 +8077,7 @@ KNativePointer impl_BlockExpressionStatements(KNativePointer context, KNativePoi const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->BlockExpressionStatements(_context, _receiver, &length); - return StageArena::cloneVector(result, length); + return new std::vector(result, result + length); } KOALA_INTEROP_2(BlockExpressionStatements, KNativePointer, KNativePointer, KNativePointer); @@ -8129,7 +8129,7 @@ KNativePointer impl_TSTypeLiteralMembersConst(KNativePointer context, KNativePoi const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TSTypeLiteralMembersConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(TSTypeLiteralMembersConst, KNativePointer, KNativePointer, KNativePointer); @@ -8252,7 +8252,7 @@ KNativePointer impl_TSTypeParameterAnnotations(KNativePointer context, KNativePo const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TSTypeParameterAnnotations(_context, _receiver, &length); - return StageArena::cloneVector(result, length); + return new std::vector(result, result + length); } KOALA_INTEROP_2(TSTypeParameterAnnotations, KNativePointer, KNativePointer, KNativePointer); @@ -8262,7 +8262,7 @@ KNativePointer impl_TSTypeParameterAnnotationsConst(KNativePointer context, KNat const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TSTypeParameterAnnotationsConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(TSTypeParameterAnnotationsConst, KNativePointer, KNativePointer, KNativePointer); @@ -8348,7 +8348,7 @@ KNativePointer impl_SpreadElementDecoratorsConst(KNativePointer context, KNative const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->SpreadElementDecoratorsConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(SpreadElementDecoratorsConst, KNativePointer, KNativePointer, KNativePointer); @@ -8577,7 +8577,7 @@ KNativePointer impl_ExportNamedDeclarationSpecifiersConst(KNativePointer context const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ExportNamedDeclarationSpecifiersConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(ExportNamedDeclarationSpecifiersConst, KNativePointer, KNativePointer, KNativePointer); @@ -8628,7 +8628,7 @@ KNativePointer impl_ETSParameterExpressionNameConst(KNativePointer context, KNat const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); auto result = GetImpl()->ETSParameterExpressionNameConst(_context, _receiver); - return StageArena::strdup(result); + return new std::string(result); } KOALA_INTEROP_2(ETSParameterExpressionNameConst, KNativePointer, KNativePointer, KNativePointer); @@ -8711,7 +8711,7 @@ KNativePointer impl_ETSParameterExpressionLexerSavedConst(KNativePointer context const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); auto result = GetImpl()->ETSParameterExpressionLexerSavedConst(_context, _receiver); - return StageArena::strdup(result); + return new std::string(result); } KOALA_INTEROP_2(ETSParameterExpressionLexerSavedConst, KNativePointer, KNativePointer, KNativePointer); @@ -8806,7 +8806,7 @@ KNativePointer impl_ETSParameterExpressionAnnotations(KNativePointer context, KN const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ETSParameterExpressionAnnotations(_context, _receiver, &length); - return StageArena::cloneVector(result, length); + return new std::vector(result, result + length); } KOALA_INTEROP_2(ETSParameterExpressionAnnotations, KNativePointer, KNativePointer, KNativePointer); @@ -8816,7 +8816,7 @@ KNativePointer impl_ETSParameterExpressionAnnotationsConst(KNativePointer contex const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ETSParameterExpressionAnnotationsConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(ETSParameterExpressionAnnotationsConst, KNativePointer, KNativePointer, KNativePointer); @@ -8858,7 +8858,7 @@ KNativePointer impl_TSTypeParameterInstantiationParamsConst(KNativePointer conte const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TSTypeParameterInstantiationParamsConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(TSTypeParameterInstantiationParamsConst, KNativePointer, KNativePointer, KNativePointer); @@ -8964,7 +8964,7 @@ KNativePointer impl_SwitchCaseStatementConsequentConst(KNativePointer context, K const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->SwitchCaseStatementConsequentConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(SwitchCaseStatementConsequentConst, KNativePointer, KNativePointer, KNativePointer); @@ -9144,7 +9144,7 @@ KNativePointer impl_ClassStaticBlockNameConst(KNativePointer context, KNativePoi const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); auto result = GetImpl()->ClassStaticBlockNameConst(_context, _receiver); - return StageArena::strdup(result); + return new std::string(result); } KOALA_INTEROP_2(ClassStaticBlockNameConst, KNativePointer, KNativePointer, KNativePointer); @@ -9383,7 +9383,7 @@ KNativePointer impl_TemplateLiteralQuasisConst(KNativePointer context, KNativePo const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TemplateLiteralQuasisConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(TemplateLiteralQuasisConst, KNativePointer, KNativePointer, KNativePointer); @@ -9393,7 +9393,7 @@ KNativePointer impl_TemplateLiteralExpressionsConst(KNativePointer context, KNat const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TemplateLiteralExpressionsConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(TemplateLiteralExpressionsConst, KNativePointer, KNativePointer, KNativePointer); @@ -9402,7 +9402,7 @@ KNativePointer impl_TemplateLiteralGetMultilineStringConst(KNativePointer contex const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); auto result = GetImpl()->TemplateLiteralGetMultilineStringConst(_context, _receiver); - return StageArena::strdup(result); + return new std::string(result); } KOALA_INTEROP_2(TemplateLiteralGetMultilineStringConst, KNativePointer, KNativePointer, KNativePointer); @@ -9433,7 +9433,7 @@ KNativePointer impl_TSUnionTypeTypesConst(KNativePointer context, KNativePointer const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TSUnionTypeTypesConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(TSUnionTypeTypesConst, KNativePointer, KNativePointer, KNativePointer); @@ -9516,7 +9516,7 @@ KNativePointer impl_IdentifierNameConst(KNativePointer context, KNativePointer r const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); auto result = GetImpl()->IdentifierNameConst(_context, _receiver); - return StageArena::strdup(result); + return new std::string(result); } KOALA_INTEROP_2(IdentifierNameConst, KNativePointer, KNativePointer, KNativePointer); @@ -9525,7 +9525,7 @@ KNativePointer impl_IdentifierName(KNativePointer context, KNativePointer receiv const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); auto result = GetImpl()->IdentifierName(_context, _receiver); - return StageArena::strdup(result); + return new std::string(result); } KOALA_INTEROP_2(IdentifierName, KNativePointer, KNativePointer, KNativePointer); @@ -9545,7 +9545,7 @@ KNativePointer impl_IdentifierDecoratorsConst(KNativePointer context, KNativePoi const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->IdentifierDecoratorsConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(IdentifierDecoratorsConst, KNativePointer, KNativePointer, KNativePointer); @@ -9804,7 +9804,7 @@ KNativePointer impl_BlockStatementStatementsConst(KNativePointer context, KNativ const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->BlockStatementStatementsConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(BlockStatementStatementsConst, KNativePointer, KNativePointer, KNativePointer); @@ -9814,7 +9814,7 @@ KNativePointer impl_BlockStatementStatements(KNativePointer context, KNativePoin const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->BlockStatementStatements(_context, _receiver, &length); - return StageArena::cloneVector(result, length); + return new std::vector(result, result + length); } KOALA_INTEROP_2(BlockStatementStatements, KNativePointer, KNativePointer, KNativePointer); @@ -9919,7 +9919,7 @@ KNativePointer impl_TSTypeParameterDeclarationParamsConst(KNativePointer context const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TSTypeParameterDeclarationParamsConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(TSTypeParameterDeclarationParamsConst, KNativePointer, KNativePointer, KNativePointer); @@ -10048,7 +10048,7 @@ KNativePointer impl_MethodDefinitionOverloadsConst(KNativePointer context, KNati const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->MethodDefinitionOverloadsConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(MethodDefinitionOverloadsConst, KNativePointer, KNativePointer, KNativePointer); @@ -10342,7 +10342,7 @@ KNativePointer impl_ExpressionToStringConst(KNativePointer context, KNativePoint const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); auto result = GetImpl()->ExpressionToStringConst(_context, _receiver); - return StageArena::strdup(result); + return new std::string(result); } KOALA_INTEROP_2(ExpressionToStringConst, KNativePointer, KNativePointer, KNativePointer); @@ -10447,7 +10447,7 @@ KNativePointer impl_SrcDumperStrConst(KNativePointer context, KNativePointer rec const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); auto result = GetImpl()->SrcDumperStrConst(_context, _receiver); - return StageArena::strdup(result); + return new std::string(result); } KOALA_INTEROP_2(SrcDumperStrConst, KNativePointer, KNativePointer, KNativePointer); @@ -10617,7 +10617,7 @@ KNativePointer impl_RegExpLiteralPatternConst(KNativePointer context, KNativePoi const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); auto result = GetImpl()->RegExpLiteralPatternConst(_context, _receiver); - return StageArena::strdup(result); + return new std::string(result); } KOALA_INTEROP_2(RegExpLiteralPatternConst, KNativePointer, KNativePointer, KNativePointer); @@ -10751,7 +10751,7 @@ KNativePointer impl_ClassDeclarationDecoratorsConst(KNativePointer context, KNat const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ClassDeclarationDecoratorsConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(ClassDeclarationDecoratorsConst, KNativePointer, KNativePointer, KNativePointer); @@ -10856,7 +10856,7 @@ KNativePointer impl_TSQualifiedNameNameConst(KNativePointer context, KNativePoin const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); auto result = GetImpl()->TSQualifiedNameNameConst(_context, _receiver); - return StageArena::strdup(result); + return new std::string(result); } KOALA_INTEROP_2(TSQualifiedNameNameConst, KNativePointer, KNativePointer, KNativePointer); @@ -11081,7 +11081,7 @@ KNativePointer impl_ETSNewMultiDimArrayInstanceExpressionDimensions(KNativePoint const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ETSNewMultiDimArrayInstanceExpressionDimensions(_context, _receiver, &length); - return StageArena::cloneVector(result, length); + return new std::vector(result, result + length); } KOALA_INTEROP_2(ETSNewMultiDimArrayInstanceExpressionDimensions, KNativePointer, KNativePointer, KNativePointer); @@ -11091,7 +11091,7 @@ KNativePointer impl_ETSNewMultiDimArrayInstanceExpressionDimensionsConst(KNative const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ETSNewMultiDimArrayInstanceExpressionDimensionsConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(ETSNewMultiDimArrayInstanceExpressionDimensionsConst, KNativePointer, KNativePointer, KNativePointer); @@ -11216,7 +11216,7 @@ KNativePointer impl_AstDumperModifierToString(KNativePointer context, KNativePoi const auto _receiver = reinterpret_cast(receiver); const auto _flags = static_cast(flags); auto result = GetImpl()->AstDumperModifierToString(_context, _receiver, _flags); - return StageArena::strdup(result); + return new std::string(result); } KOALA_INTEROP_3(AstDumperModifierToString, KNativePointer, KNativePointer, KNativePointer, KInt); @@ -11226,7 +11226,7 @@ KNativePointer impl_AstDumperTypeOperatorToString(KNativePointer context, KNativ const auto _receiver = reinterpret_cast(receiver); const auto _operatorType = static_cast(operatorType); auto result = GetImpl()->AstDumperTypeOperatorToString(_context, _receiver, _operatorType); - return StageArena::strdup(result); + return new std::string(result); } KOALA_INTEROP_3(AstDumperTypeOperatorToString, KNativePointer, KNativePointer, KNativePointer, KInt); @@ -11235,7 +11235,7 @@ KNativePointer impl_AstDumperStrConst(KNativePointer context, KNativePointer rec const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); auto result = GetImpl()->AstDumperStrConst(_context, _receiver); - return StageArena::strdup(result); + return new std::string(result); } KOALA_INTEROP_2(AstDumperStrConst, KNativePointer, KNativePointer, KNativePointer); @@ -11395,7 +11395,7 @@ KNativePointer impl_TSEnumMemberNameConst(KNativePointer context, KNativePointer const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); auto result = GetImpl()->TSEnumMemberNameConst(_context, _receiver); - return StageArena::strdup(result); + return new std::string(result); } KOALA_INTEROP_2(TSEnumMemberNameConst, KNativePointer, KNativePointer, KNativePointer); @@ -11456,7 +11456,7 @@ KNativePointer impl_SwitchStatementCasesConst(KNativePointer context, KNativePoi const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->SwitchStatementCasesConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(SwitchStatementCasesConst, KNativePointer, KNativePointer, KNativePointer); @@ -11466,7 +11466,7 @@ KNativePointer impl_SwitchStatementCases(KNativePointer context, KNativePointer const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->SwitchStatementCases(_context, _receiver, &length); - return StageArena::cloneVector(result, length); + return new std::vector(result, result + length); } KOALA_INTEROP_2(SwitchStatementCases, KNativePointer, KNativePointer, KNativePointer); @@ -11639,7 +11639,7 @@ KNativePointer impl_SequenceExpressionSequenceConst(KNativePointer context, KNat const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->SequenceExpressionSequenceConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(SequenceExpressionSequenceConst, KNativePointer, KNativePointer, KNativePointer); @@ -11649,7 +11649,7 @@ KNativePointer impl_SequenceExpressionSequence(KNativePointer context, KNativePo const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->SequenceExpressionSequence(_context, _receiver, &length); - return StageArena::cloneVector(result, length); + return new std::vector(result, result + length); } KOALA_INTEROP_2(SequenceExpressionSequence, KNativePointer, KNativePointer, KNativePointer); @@ -11724,7 +11724,7 @@ KNativePointer impl_ArrowFunctionExpressionAnnotations(KNativePointer context, K const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ArrowFunctionExpressionAnnotations(_context, _receiver, &length); - return StageArena::cloneVector(result, length); + return new std::vector(result, result + length); } KOALA_INTEROP_2(ArrowFunctionExpressionAnnotations, KNativePointer, KNativePointer, KNativePointer); @@ -11734,7 +11734,7 @@ KNativePointer impl_ArrowFunctionExpressionAnnotationsConst(KNativePointer conte const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ArrowFunctionExpressionAnnotationsConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(ArrowFunctionExpressionAnnotationsConst, KNativePointer, KNativePointer, KNativePointer); @@ -11823,7 +11823,7 @@ KNativePointer impl_ETSNewClassInstanceExpressionGetArguments(KNativePointer con const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ETSNewClassInstanceExpressionGetArguments(_context, _receiver, &length); - return StageArena::cloneVector(result, length); + return new std::vector(result, result + length); } KOALA_INTEROP_2(ETSNewClassInstanceExpressionGetArguments, KNativePointer, KNativePointer, KNativePointer); @@ -11833,7 +11833,7 @@ KNativePointer impl_ETSNewClassInstanceExpressionGetArgumentsConst(KNativePointe const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->ETSNewClassInstanceExpressionGetArgumentsConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(ETSNewClassInstanceExpressionGetArgumentsConst, KNativePointer, KNativePointer, KNativePointer); @@ -12141,7 +12141,7 @@ KNativePointer impl_ETSReExportDeclarationGetProgramPathConst(KNativePointer con const auto _context = reinterpret_cast(context); const auto _receiver = reinterpret_cast(receiver); auto result = GetImpl()->ETSReExportDeclarationGetProgramPathConst(_context, _receiver); - return StageArena::strdup(result); + return new std::string(result); } KOALA_INTEROP_2(ETSReExportDeclarationGetProgramPathConst, KNativePointer, KNativePointer, KNativePointer); @@ -12179,7 +12179,7 @@ KNativePointer impl_TypeNodeAnnotations(KNativePointer context, KNativePointer r const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TypeNodeAnnotations(_context, _receiver, &length); - return StageArena::cloneVector(result, length); + return new std::vector(result, result + length); } KOALA_INTEROP_2(TypeNodeAnnotations, KNativePointer, KNativePointer, KNativePointer); @@ -12189,7 +12189,7 @@ KNativePointer impl_TypeNodeAnnotationsConst(KNativePointer context, KNativePoin const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->TypeNodeAnnotationsConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(TypeNodeAnnotationsConst, KNativePointer, KNativePointer, KNativePointer); @@ -12242,7 +12242,7 @@ KNativePointer impl_NewExpressionArgumentsConst(KNativePointer context, KNativeP const auto _receiver = reinterpret_cast(receiver); std::size_t length; auto result = GetImpl()->NewExpressionArgumentsConst(_context, _receiver, &length); - return (void*)StageArena::cloneVector(result, length); + return (void*)new std::vector(result, result + length); } KOALA_INTEROP_2(NewExpressionArgumentsConst, KNativePointer, KNativePointer, KNativePointer); diff --git a/koala-wrapper/src/Es2pandaNativeModule.ts b/koala-wrapper/src/Es2pandaNativeModule.ts index fd8f19e79..b0d15c1be 100644 --- a/koala-wrapper/src/Es2pandaNativeModule.ts +++ b/koala-wrapper/src/Es2pandaNativeModule.ts @@ -99,8 +99,8 @@ export class Es2pandaNativeModule { _CreateConfig(argc: number, argv: string[]): KPtr { throw new Error('Not implemented'); } - _DestroyConfig(peer: KNativePointer): void { - throw new Error("Not implemented") + _DestroyConfig(peer: KPtr): void { + throw new Error("Not implemented"); } _CreateContextFromString(config: KPtr, source: String, filename: String): KPtr { throw new Error('Not implemented'); diff --git a/koala-wrapper/src/arkts-api/utilities/private.ts b/koala-wrapper/src/arkts-api/utilities/private.ts index ddbf5a28f..55bcfa986 100644 --- a/koala-wrapper/src/arkts-api/utilities/private.ts +++ b/koala-wrapper/src/arkts-api/utilities/private.ts @@ -21,7 +21,8 @@ import { KNativePointer, nullptr, withString, - withStringArray + withStringArray, + withStringResult } from '@koalaui/interop'; import { NativePtrDecoder } from './nativePtrDecoder'; import { Es2pandaModifierFlags, Es2pandaScriptFunctionFlags } from '../../generated/Es2pandaEnums'; @@ -116,7 +117,7 @@ export function unpackObject( } export function unpackString(peer: KNativePointer): string { - return global.interop._RawUtf8ToString(peer) + return withStringResult(peer) ?? throwError(`failed to unpack (peer shouldn't be NULLPTR)`); } export function passString(str: string | undefined): string { diff --git a/koala-wrapper/src/arkts-api/utilities/public.ts b/koala-wrapper/src/arkts-api/utilities/public.ts index a6e8799c0..733990376 100644 --- a/koala-wrapper/src/arkts-api/utilities/public.ts +++ b/koala-wrapper/src/arkts-api/utilities/public.ts @@ -15,7 +15,7 @@ import { global } from '../static/global'; import { isNumber, throwError, getEnumName } from '../../utils'; -import { KNativePointer, KInt, nullptr } from '@koalaui/interop'; +import { KNativePointer, KInt, nullptr, withStringResult } from '@koalaui/interop'; import { passNode, passString, unpackNodeArray, unpackNonNullableNode } from './private'; import { isFunctionDeclaration, isMemberExpression, isMethodDefinition, isNumberLiteral } from '../factory/nodeTests'; import { @@ -64,7 +64,7 @@ function processErrorState(state: Es2pandaContextState, forceDtsEmit = false): v global.es2panda._ContextState(global.context) === Es2pandaContextState.ES2PANDA_STATE_ERROR && !forceDtsEmit ) { - const errorMessage = global.interop._RawUtf8ToString(global.es2panda._ContextErrorMessage(global.context)); + const errorMessage = withStringResult(global.es2panda._ContextErrorMessage(global.context)); if (errorMessage === undefined) { throwError(`Could not get ContextErrorMessage`); } -- Gitee From 85079c91de5c833d1ed9e7da28fc6b3f3ee1e69c Mon Sep 17 00:00:00 2001 From: huiqiang Date: Mon, 2 Jun 2025 10:24:13 +0800 Subject: [PATCH 3/3] sync Signed-off-by: huiqiang Change-Id: If110588c6ac3ffc43b1cdb1c0ac8089e3508e01c --- .../src/arkts-api/AbstractVisitor.ts | 50 ++++++++++++ .../src/arkts-api/ChainExpressionFilter.ts | 78 +++++++++++++++++++ .../src/arkts-api/CheckedBackFilter.ts | 53 +++++++++++++ .../src/arkts-api/SetBaseOverloads.ts | 53 +++++++++++++ .../src/arkts-api/factory/nodeFactory.ts | 9 ++- koala-wrapper/src/arkts-api/index.ts | 4 +- .../node-utilities/MethodDefinition.ts | 44 ++++++++--- .../node-utilities/TSTypeReferencePart.ts | 4 +- .../node-utilities/VariableDeclarator.ts | 4 +- koala-wrapper/src/arkts-api/peers/AstNode.ts | 12 ++- koala-wrapper/src/arkts-api/plugins.ts | 48 ++++++++++++ koala-wrapper/src/arkts-api/static/global.ts | 6 +- .../src/arkts-api/static/profiler.ts | 40 ++++++++++ .../to-be-generated/MemberExpression.ts | 2 +- koala-wrapper/src/arkts-api/types.ts | 16 +++- .../src/arkts-api/utilities/public.ts | 67 +++++++++++++++- .../src/generated/Es2pandaNativeModule.ts | 18 ++--- .../src/generated/peers/ClassDefinition.ts | 12 +++ .../src/generated/peers/ClassElement.ts | 10 +++ .../src/generated/peers/ETSKeyofType.ts | 18 ++--- .../src/generated/peers/Expression.ts | 15 ++++ .../src/generated/peers/MethodDefinition.ts | 17 +++- .../src/generated/peers/ScopeFindResult.ts | 2 +- 23 files changed, 537 insertions(+), 45 deletions(-) create mode 100644 koala-wrapper/src/arkts-api/AbstractVisitor.ts create mode 100644 koala-wrapper/src/arkts-api/ChainExpressionFilter.ts create mode 100644 koala-wrapper/src/arkts-api/CheckedBackFilter.ts create mode 100644 koala-wrapper/src/arkts-api/SetBaseOverloads.ts create mode 100644 koala-wrapper/src/arkts-api/plugins.ts create mode 100644 koala-wrapper/src/arkts-api/static/profiler.ts diff --git a/koala-wrapper/src/arkts-api/AbstractVisitor.ts b/koala-wrapper/src/arkts-api/AbstractVisitor.ts new file mode 100644 index 000000000..684c098c7 --- /dev/null +++ b/koala-wrapper/src/arkts-api/AbstractVisitor.ts @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2022-2023 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { AstNode } from "./peers/AstNode" +import { Program } from "./peers/Program" +import { visitEachChild } from "./visitor" + +export interface VisitorOptions { + program?: Program +} + +export abstract class AbstractVisitor { + public program?: Program + + constructor(options?: VisitorOptions) { + this.program = options?.program; + } + + indentation = 0 + + withIndentation(exec: () => T) { + this.indentation++ + const result = exec() + this.indentation-- + return result + } + + abstract visitor(node: AstNode, options?: object): AstNode + + visitEachChild(node: AstNode, options?: object): AstNode { + return this.withIndentation(() => + visitEachChild( + node, + it => this.visitor(it, options) + ) + ) + } +} diff --git a/koala-wrapper/src/arkts-api/ChainExpressionFilter.ts b/koala-wrapper/src/arkts-api/ChainExpressionFilter.ts new file mode 100644 index 000000000..c7e4aaabf --- /dev/null +++ b/koala-wrapper/src/arkts-api/ChainExpressionFilter.ts @@ -0,0 +1,78 @@ +/* + * Copyright (c) 2022-2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { ChainExpression, Es2pandaTokenType, Es2pandaVariableDeclarationKind, Es2pandaVariableDeclaratorFlag, Expression, factory, isChainExpression } from "./index"; +import { AbstractVisitor } from "./AbstractVisitor"; +import { AstNode } from "./peers/AstNode" +import { MemberExpression,isMemberExpression } from '../generated/peers/MemberExpression' +import { Es2pandaModifierFlags } from "./index"; + + +export class ChainExpressionFilter extends AbstractVisitor { + static counter = 0 + transformChainExpression(node: ChainExpression): Expression { + const expression = node.getExpression + if (expression == undefined) return node + if (!isMemberExpression(expression)) return node + return this.transformMemberExpression(expression) + } + transformMemberExpression(expression: MemberExpression): Expression { + const temporaryVarName = `chaintmp%%_${ChainExpressionFilter.counter++}` + return factory.createBlockExpression( + [ + factory.createVariableDeclaration( + Es2pandaModifierFlags.MODIFIER_FLAGS_NONE, + Es2pandaVariableDeclarationKind.VARIABLE_DECLARATION_KIND_LET, + [ + factory.createVariableDeclarator( + Es2pandaVariableDeclaratorFlag.VARIABLE_DECLARATOR_FLAG_LET, + factory.createIdentifier(temporaryVarName), + expression.object + ) + ] + ), + factory.createExpressionStatement( + factory.createConditionalExpression( + factory.createBinaryExpression( + factory.createIdentifier(temporaryVarName, undefined), + factory.createUndefinedLiteral(), + Es2pandaTokenType.TOKEN_TYPE_PUNCTUATOR_STRICT_EQUAL + ), + factory.createUndefinedLiteral(), + factory.createMemberExpression( + factory.createIdentifier(temporaryVarName, undefined), + expression.property, + expression.kind, + expression.isComputed, + false + ) + ) + ) + ] + ) + } + + + visitor(beforeChildren: AstNode): AstNode { + const node = this.visitEachChild(beforeChildren) + if (isChainExpression(node)) { + return this.transformChainExpression(node) + } + if (isMemberExpression(node) && node.isOptional) { + return this.transformMemberExpression(node) + } + return node + } +} \ No newline at end of file diff --git a/koala-wrapper/src/arkts-api/CheckedBackFilter.ts b/koala-wrapper/src/arkts-api/CheckedBackFilter.ts new file mode 100644 index 000000000..94eee1c51 --- /dev/null +++ b/koala-wrapper/src/arkts-api/CheckedBackFilter.ts @@ -0,0 +1,53 @@ +/* + * Copyright (c) 2022-2023 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { ClassDefinition, ClassElement, ClassProperty, Es2pandaModifierFlags, Expression, TSEnumDeclaration, TSEnumMember, asString, factory, isCallExpression, isClassDeclaration, isClassDefinition, isClassProperty, isETSNewClassInstanceExpression } from "./index"; +import { AbstractVisitor } from "./AbstractVisitor"; +import { AstNode } from "./peers/AstNode" + + +export class CheckedBackFilter extends AbstractVisitor { + transformInitializer(node: Expression|undefined): Expression|undefined { + if (node == undefined) return undefined + if (!isETSNewClassInstanceExpression(node)) return node + // new ZZZ(ordinal, value) !-> value + return node.getArguments[1] + } + transformEnum(node: ClassDefinition): AstNode { + return TSEnumDeclaration.createTSEnumDeclaration( + node.ident, + node.body.map(it => { + const member: ClassElement = it as ClassElement + if (!isClassProperty(member)) return undefined + if (isClassProperty(member) && member.id?.name.startsWith("#")) return undefined + return factory.createTSEnumMember( + member.key, + this.transformInitializer(member.value), + false + ) + }).filter(it => it != undefined) as TSEnumMember[], + false, + false, + !!(node.modifierFlags & Es2pandaModifierFlags.MODIFIER_FLAGS_DECLARE) + ) + } + visitor(beforeChildren: AstNode): AstNode { + const node = this.visitEachChild(beforeChildren) + if (isClassDefinition(node) && node.isEnumTransformed) { + return this.transformEnum(node) + } + return node + } +} \ No newline at end of file diff --git a/koala-wrapper/src/arkts-api/SetBaseOverloads.ts b/koala-wrapper/src/arkts-api/SetBaseOverloads.ts new file mode 100644 index 000000000..cb08f4dd4 --- /dev/null +++ b/koala-wrapper/src/arkts-api/SetBaseOverloads.ts @@ -0,0 +1,53 @@ +/* + * Copyright (c) 2022-2023 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { factory } from "./factory/nodeFactory" +import { ETSModule } from "../generated" +import { AbstractVisitor } from "./AbstractVisitor" +import { AstNode } from "./peers/AstNode" +import { MethodDefinition } from './types' +import { isMethodDefinition } from "./factory/nodeTests" + +export class SetBaseOverloads extends AbstractVisitor { + visitor(node: MethodDefinition, baseOverloadMethod?: MethodDefinition): MethodDefinition + visitor(node: AstNode, baseOverloadMethod?: MethodDefinition): AstNode + visitor(node: AstNode, baseOverloadMethod?: MethodDefinition): AstNode { + if (isMethodDefinition(node)) { + const result = factory.updateMethodDefinition( + node, + node.kind, + node.name, + node.scriptFunction, + node.modifierFlags, + node.isComputed, + node.overloads.map((it) => this.visitor(it, node)), + ) + if (baseOverloadMethod) { + result.setBaseOverloadMethod(baseOverloadMethod) + } + return result + } + return this.visitEachChild(node) + } + + static instance?: SetBaseOverloads +} + +export function setBaseOverloads(node: ETSModule) { + if (!SetBaseOverloads.instance) { + SetBaseOverloads.instance = new SetBaseOverloads() + } + SetBaseOverloads.instance.visitor(node) +} diff --git a/koala-wrapper/src/arkts-api/factory/nodeFactory.ts b/koala-wrapper/src/arkts-api/factory/nodeFactory.ts index 536c1ef3f..cdb4ee7ad 100644 --- a/koala-wrapper/src/arkts-api/factory/nodeFactory.ts +++ b/koala-wrapper/src/arkts-api/factory/nodeFactory.ts @@ -74,7 +74,8 @@ import { ObjectExpression, Property, TemplateLiteral, - ArrayExpression + ArrayExpression, + TSEnumMember } from "../../generated" import { Es2pandaModifierFlags @@ -389,6 +390,12 @@ export const factory = { get updateETSUndefinedType() { return updateETSUndefinedType }, + get createTSEnumMember() { + return TSEnumMember.create1TSEnumMember + }, + get updateTSEnumMember() { + return TSEnumMember.update1TSEnumMember + }, get createFunctionSignature() { return FunctionSignature.createFunctionSignature }, diff --git a/koala-wrapper/src/arkts-api/index.ts b/koala-wrapper/src/arkts-api/index.ts index a77ec8acd..ff1861702 100644 --- a/koala-wrapper/src/arkts-api/index.ts +++ b/koala-wrapper/src/arkts-api/index.ts @@ -60,7 +60,9 @@ export * from "../generated/peers/TSClassImplements" export * from "../generated/peers/BooleanLiteral" export * from "../generated/peers/TSArrayType" export * from "../generated/peers/ArrayExpression"; - +export * from "../generated/peers/ClassElement"; +export * from "../generated/peers/TSEnumDeclaration"; +export * from "../generated/peers/TSEnumMember"; export * from "./types" export * from "./utilities/private" export * from "./utilities/public" diff --git a/koala-wrapper/src/arkts-api/node-utilities/MethodDefinition.ts b/koala-wrapper/src/arkts-api/node-utilities/MethodDefinition.ts index 44afa1dbc..3d1fee1a3 100644 --- a/koala-wrapper/src/arkts-api/node-utilities/MethodDefinition.ts +++ b/koala-wrapper/src/arkts-api/node-utilities/MethodDefinition.ts @@ -16,24 +16,46 @@ import { KInt } from '@koalaui/interop'; import { isSameNativeObject } from '../peers/ArktsObject'; import { AstNode } from '../peers/AstNode'; -import { MethodDefinition } from '../types'; import { updateThenAttach } from '../utilities/private'; -import { Es2pandaMethodDefinitionKind } from '../../generated/Es2pandaEnums'; +import { Es2pandaMethodDefinitionKind,Es2pandaModifierFlags } from '../../generated/Es2pandaEnums'; +import { MethodDefinition } from '../types'; +import { Expression } from '../../generated/index' + +export function createMethodDefinition( + kind: Es2pandaMethodDefinitionKind, + key: Expression, + value: Expression , + modifiers: Es2pandaModifierFlags, + isComputed: boolean, + overloads?: readonly MethodDefinition[] +): MethodDefinition { + const res = MethodDefinition.create( + kind, + key, + value, + modifiers, + isComputed, + ) + if (overloads) { + res.setOverloads(overloads) + } + return res +} export function updateMethodDefinition( original: MethodDefinition, kind: Es2pandaMethodDefinitionKind, - key: AstNode, + key: Expression, value: AstNode, - modifiers: KInt, - isComputed: boolean + modifiers: Es2pandaModifierFlags, + isComputed: boolean, + overloads?: readonly MethodDefinition[] ): MethodDefinition { - if ( - isSameNativeObject(kind, original.kind) && - isSameNativeObject(key, original.name) && - isSameNativeObject(value, original.scriptFunction) && - isSameNativeObject(modifiers, original.modifiers) - /* TODO: no getter for isComputed */ + if (isSameNativeObject(kind, original.kind) + && isSameNativeObject(key, original.name) + && isSameNativeObject(value, original.scriptFunction) + && isSameNativeObject(modifiers, original.modifierFlags) + && isSameNativeObject(overloads, original.overloads) ) { return original; } diff --git a/koala-wrapper/src/arkts-api/node-utilities/TSTypeReferencePart.ts b/koala-wrapper/src/arkts-api/node-utilities/TSTypeReferencePart.ts index a40398cfa..de8211b04 100644 --- a/koala-wrapper/src/arkts-api/node-utilities/TSTypeReferencePart.ts +++ b/koala-wrapper/src/arkts-api/node-utilities/TSTypeReferencePart.ts @@ -13,8 +13,8 @@ * limitations under the License. */ -import { ETSTypeReferencePart, Expression,TSTypeParameterInstantiation } from "../../generated" -import { isSameNativeObject } from "../peers/ArktsObject" +import { ETSTypeReferencePart, Expression,TSTypeParameterInstantiation } from '../../generated'; +import { isSameNativeObject } from '../peers/ArktsObject'; import { attachModifiers, updateThenAttach } from '../utilities/private'; diff --git a/koala-wrapper/src/arkts-api/node-utilities/VariableDeclarator.ts b/koala-wrapper/src/arkts-api/node-utilities/VariableDeclarator.ts index 52c002fd3..d6c1ac0d0 100644 --- a/koala-wrapper/src/arkts-api/node-utilities/VariableDeclarator.ts +++ b/koala-wrapper/src/arkts-api/node-utilities/VariableDeclarator.ts @@ -13,7 +13,7 @@ * limitations under the License. */ -import { Identifier } from '../../generated'; +import { Expression, Identifier } from '../../generated'; import { isSameNativeObject } from '../peers/ArktsObject'; import { VariableDeclarator } from '../types'; import { attachModifiers, updateThenAttach } from '../utilities/private'; @@ -24,7 +24,7 @@ export function updateVariableDeclarator( original: VariableDeclarator, flag: Es2pandaVariableDeclaratorFlag, name: Identifier, - initializer: AstNode | undefined + initializer: Expression | undefined ): VariableDeclarator { if ( isSameNativeObject(name, original.name) && diff --git a/koala-wrapper/src/arkts-api/peers/AstNode.ts b/koala-wrapper/src/arkts-api/peers/AstNode.ts index 62a0b78d2..411af198d 100644 --- a/koala-wrapper/src/arkts-api/peers/AstNode.ts +++ b/koala-wrapper/src/arkts-api/peers/AstNode.ts @@ -23,6 +23,7 @@ import { Es2pandaAstNodeType } from "../../Es2pandaEnums" export abstract class AstNode extends ArktsObject { protected constructor(peer: KNativePointer) { + global.profiler.createdNodes ++ if (isNullPtr(peer)) { throwError(`attempted to create AstNode from nullptr`) } @@ -74,7 +75,7 @@ export abstract class AstNode extends ArktsObject { .map((it) => it.dump(indentation + 1)) const msg = `${indentation}_` - + ` ` + + ` ` + this.dumpMessage() return "> " + " ".repeat(4 * indentation) + msg + "\n" + children.join("") } @@ -123,6 +124,15 @@ export abstract class AstNode extends ArktsObject { public get isStatic(): boolean { return global.generatedEs2panda._AstNodeIsStaticConst(global.context, this.peer) } + + public get modifierFlags(): Es2pandaModifierFlags { + return global.generatedEs2panda._AstNodeModifiers(global.context, this.peer) + } + + public set modifierFlags(flags: KInt | undefined) { + global.generatedEs2panda._AstNodeClearModifier(global.context, this.peer, allFlags) + global.generatedEs2panda._AstNodeAddModifier(global.context, this.peer, flags ?? Es2pandaModifierFlags.MODIFIER_FLAGS_NONE) + } } diff --git a/koala-wrapper/src/arkts-api/plugins.ts b/koala-wrapper/src/arkts-api/plugins.ts new file mode 100644 index 000000000..1c6f45cf4 --- /dev/null +++ b/koala-wrapper/src/arkts-api/plugins.ts @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { Es2pandaContextState } from "../generated/Es2pandaEnums" +import { ExternalSource, Program } from "./peers/Program" + +export interface CompilationOptions { + readonly isMainProgram: boolean, + readonly name: string, + readonly stage: Es2pandaContextState, +} + +export type ProgramTransformer = (program: Program, compilationOptions: CompilationOptions) => void + +export function defaultFilter(name: string) { + if (name.startsWith("std.")) return false + if (name.startsWith("escompat")) return false + return true +} + +export interface ProgramWithName { + program: Program, + name: string +} + +export function listPrograms(program: Program, filter: (name: string) => boolean = defaultFilter): ProgramWithName[] { + return [ + { program, name: "" }, + ...program.externalSources.flatMap((it: ExternalSource) => { + if (filter(it.getName())) { + return it.programs.map(program => ({ program, name: it.getName() } as ProgramWithName)) + } + return [] + }) + ] +} diff --git a/koala-wrapper/src/arkts-api/static/global.ts b/koala-wrapper/src/arkts-api/static/global.ts index 551b6c83f..eab43b8c7 100644 --- a/koala-wrapper/src/arkts-api/static/global.ts +++ b/koala-wrapper/src/arkts-api/static/global.ts @@ -19,9 +19,11 @@ import { initEs2panda, Es2pandaNativeModule, initGeneratedEs2panda } from "../.. import { Es2pandaNativeModule as GeneratedEs2pandaNativeModule } from "../../generated/Es2pandaNativeModule" import { initInterop, InteropNativeModule } from "../../InteropNativeModule" import type { Context } from "../peers/Context" - +import { Profiler } from "./profiler" export class global { public static filePath: string = "./plugins/input/main.sts" + public static packageName: string = "" + public static filePathFromPackageRoot: string = global.filePath private static _config?: KNativePointer public static set config(config: KNativePointer) { @@ -70,7 +72,7 @@ export class global { if (this._interop === undefined) this._interop = initInterop() return this._interop } - + public static profiler = new Profiler() public static resetConfig() { global._config = undefined; } diff --git a/koala-wrapper/src/arkts-api/static/profiler.ts b/koala-wrapper/src/arkts-api/static/profiler.ts new file mode 100644 index 000000000..6e96e24ea --- /dev/null +++ b/koala-wrapper/src/arkts-api/static/profiler.ts @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2022-2023 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export class Profiler { + totalTime = 0 + transformTime = 0 + proceedTime = 0 + restartTime = 0 + visitedNodes = 0 + createdNodes = 0 + + report() { + console.log( + "total compiler:", + this.totalTime, + " proceeds:", + this.proceedTime, + " restarts", + this.restartTime, + " transforms:", + this.transformTime, + " visited:", + this.visitedNodes, + " created:", + this.createdNodes + ) + } +} \ No newline at end of file diff --git a/koala-wrapper/src/arkts-api/to-be-generated/MemberExpression.ts b/koala-wrapper/src/arkts-api/to-be-generated/MemberExpression.ts index 0a953323a..04a7c1dce 100644 --- a/koala-wrapper/src/arkts-api/to-be-generated/MemberExpression.ts +++ b/koala-wrapper/src/arkts-api/to-be-generated/MemberExpression.ts @@ -33,7 +33,7 @@ export class MemberExpression extends Expression { static create( object: AstNode, - property: AstNode, + property: Expression | undefined, kind: Es2pandaMemberExpressionKind, computed: boolean, optional: boolean diff --git a/koala-wrapper/src/arkts-api/types.ts b/koala-wrapper/src/arkts-api/types.ts index 7e97b8a7c..16a9da203 100644 --- a/koala-wrapper/src/arkts-api/types.ts +++ b/koala-wrapper/src/arkts-api/types.ts @@ -482,7 +482,7 @@ export class FunctionExpression extends AstNode { ); } - static create(expression: ScriptFunction): FunctionExpression { + static create(expression: ScriptFunction | undefined): FunctionExpression { return new FunctionExpression( global.generatedEs2panda._CreateFunctionExpression(global.context, passNode(expression)) ); @@ -744,6 +744,16 @@ export class MethodDefinition extends AstNode { ); return this; } + /** @deprecated */ + setBaseOverloadMethod(baseOverloadMethod: MethodDefinition): this { + global.generatedEs2panda._MethodDefinitionSetBaseOverloadMethod(global.context, + this.peer, + passNode(baseOverloadMethod)); + return this; + } + get isComputed(): boolean { + return global.generatedEs2panda._ClassElementIsComputedConst(global.context, this.peer) + } readonly kind: Es2pandaMethodDefinitionKind; readonly scriptFunction: ScriptFunction; @@ -837,7 +847,7 @@ export class VariableDeclarator extends AstNode { node: VariableDeclarator, flag: Es2pandaVariableDeclaratorFlag, name: Identifier, - initializer: AstNode | undefined + initializer: Expression | undefined ): VariableDeclarator { const peer = global.generatedEs2panda._UpdateVariableDeclarator( global.context, @@ -851,7 +861,7 @@ export class VariableDeclarator extends AstNode { return new VariableDeclarator(peer); } - get initializer(): AstNode | undefined { + get initializer(): Expression | undefined { return unpackNode(global.generatedEs2panda._VariableDeclaratorInit(global.context, this.peer)); } diff --git a/koala-wrapper/src/arkts-api/utilities/public.ts b/koala-wrapper/src/arkts-api/utilities/public.ts index 733990376..d89e12ac8 100644 --- a/koala-wrapper/src/arkts-api/utilities/public.ts +++ b/koala-wrapper/src/arkts-api/utilities/public.ts @@ -16,7 +16,7 @@ import { global } from '../static/global'; import { isNumber, throwError, getEnumName } from '../../utils'; import { KNativePointer, KInt, nullptr, withStringResult } from '@koalaui/interop'; -import { passNode, passString, unpackNodeArray, unpackNonNullableNode } from './private'; +import { passNode, passString, unpackNodeArray, unpackNonNullableNode, passNodeArray } from './private'; import { isFunctionDeclaration, isMemberExpression, isMethodDefinition, isNumberLiteral } from '../factory/nodeTests'; import { Es2pandaContextState, @@ -34,6 +34,7 @@ import { isIdentifier, isObjectExpression, isProperty, + ETSModule, isScriptFunction, isTSInterfaceDeclaration, Property, @@ -43,6 +44,39 @@ import { Program } from '../peers/Program'; import { clearNodeCache } from '../class-by-peer'; import { SourcePosition } from '../peers/SourcePosition'; import { MemberExpression } from '../to-be-generated/MemberExpression'; +import { Config } from '../peers/Config'; +import { Context } from '../peers/Context'; + +export function createETSModuleFromContext(): ETSModule { + let program = global.es2panda._ContextProgram(global.context) + if (program == nullptr) { + throw new Error(`Program is null for context ${global.context.toString(16)}`) + } + return new ETSModule(global.es2panda._ProgramAst(global.context, program)) +} + +export function createETSModuleFromSource( + source: string, + state: Es2pandaContextState = Es2pandaContextState.ES2PANDA_STATE_PARSED, +): ETSModule { + if (!global.configIsInitialized()) { + global.config = Config.createDefault().peer + } + global.compilerContext = Context.createFromString(source) + proceedToState(state) + let program = global.es2panda._ContextProgram(global.compilerContext.peer) + if (program == nullptr) + throw new Error(`Program is null for ${source} 0x${global.compilerContext.peer.toString(16)}`) + return new ETSModule(global.es2panda._ProgramAst(global.context, program)) +} + +export function updateETSModuleByStatements( + node: ETSModule, + statements: readonly AstNode[], +): ETSModule { + global.generatedEs2panda._BlockStatementSetStatements(global.context, node.peer, passNodeArray(statements), statements.length) + return node +} export function proceedToState(state: Es2pandaContextState, forceDtsEmit = false): void { console.log('[TS WRAPPER] PROCEED TO STATE: ', getEnumName(Es2pandaContextState, state)); @@ -54,10 +88,32 @@ export function proceedToState(state: Es2pandaContextState, forceDtsEmit = false return; } clearNodeCache(); + const before = Date.now() global.es2panda._ProceedToState(global.context, state); + const after = Date.now() + global.profiler.proceedTime += after-before processErrorState(state, forceDtsEmit); } +export function checkErrors() { + try { + if ( + global.es2panda._ContextState(global.context) === + Es2pandaContextState.ES2PANDA_STATE_ERROR + ) { + const errorMessage = withStringResult( + global.es2panda._ContextErrorMessage(global.context) + ); + if (errorMessage === undefined) { + throwError(`Could not get ContextErrorMessage`); + } + throwError([`Failed to proceed to `, errorMessage].join(`\n`)); + } + } catch (e) { + global.es2panda._DestroyContext(global.context); + throw e; + } +} function processErrorState(state: Es2pandaContextState, forceDtsEmit = false): void { try { if ( @@ -82,10 +138,12 @@ export function startChecker(): boolean { export function recheckSubtree(node: AstNode): void { global.es2panda._AstNodeRecheck(global.context, node.peer); + checkErrors() } export function rebindSubtree(node: AstNode): void { global.es2panda._AstNodeRebind(global.context, node.peer); + checkErrors() } export function getDecl(node: AstNode): AstNode | undefined { @@ -181,6 +239,13 @@ export function getOriginalNode(node: AstNode): AstNode { export function getFileName(): string { return global.filePath; } +export function getPackageName(): string { + return global.packageName +} + +export function getFilePathFromPackageRoot(): string { + return global.filePathFromPackageRoot +} export function classDefinitionSetFromStructModifier(node: ClassDefinition): void { global.es2panda._ClassDefinitionSetFromStructModifier(global.context, node.peer); diff --git a/koala-wrapper/src/generated/Es2pandaNativeModule.ts b/koala-wrapper/src/generated/Es2pandaNativeModule.ts index 15356f5a7..0a861129a 100644 --- a/koala-wrapper/src/generated/Es2pandaNativeModule.ts +++ b/koala-wrapper/src/generated/Es2pandaNativeModule.ts @@ -50,7 +50,7 @@ export class Es2pandaNativeModule { throw new Error("UpdateNumberLiteral1 was not overloaded by native module initialization") } _UpdateNumberLiteral2(context: KNativePointer, original: KNativePointer, value: KDouble): KNativePointer { - throw new Error("UpdateNumberLiteral2 was not overloaded by native module initialization") + throw new Error('UpdateNumberLiteral2 was not overloaded by native module initialization'); } _UpdateNumberLiteral3(context: KNativePointer, original: KNativePointer, value: KFloat): KNativePointer { throw new Error("UpdateNumberLiteral3 was not overloaded by native module initialization") @@ -866,7 +866,7 @@ export class Es2pandaNativeModule { throw new Error("UpdateETSKeyofType was not overloaded by native module initialization") } _ETSKeyofTypeGetTypeRefConst(context: KNativePointer, receiver: KNativePointer): KNativePointer { - throw new Error("ETSKeyofTypeGetTypeRefConst was not overloaded by native module initialization") + throw new Error('ETSKeyofTypeGetTypeRefConst was not overloaded by native module initialization'); } _CreateTSPropertySignature(context: KNativePointer, key: KNativePointer, typeAnnotation: KNativePointer, computed: KBoolean, optional_arg: KBoolean, readonly_arg: KBoolean): KNativePointer { throw new Error("'CreateTSPropertySignature was not overloaded by native module initialization") @@ -1238,10 +1238,10 @@ export class Es2pandaNativeModule { throw new Error("ClassDefinitionIsIntEnumTransformedConst was not overloaded by native module initialization") } _ClassDefinitionIsStringEnumTransformedConst(context: KNativePointer, receiver: KNativePointer): KBoolean { - throw new Error("ClassDefinitionIsStringEnumTransformedConst was not overloaded by native module initialization") + throw new Error('ClassDefinitionIsStringEnumTransformedConst was not overloaded by native module initialization'); } _ClassDefinitionIsEnumTransformedConst(context: KNativePointer, receiver: KNativePointer): KBoolean { - throw new Error("ClassDefinitionIsEnumTransformedConst was not overloaded by native module initialization") + throw new Error('ClassDefinitionIsEnumTransformedConst was not overloaded by native module initialization'); } _ClassDefinitionIsNamespaceTransformedConst(context: KNativePointer, receiver: KNativePointer): KBoolean { throw new Error("'ClassDefinitionIsNamespaceTransformedConst was not overloaded by native module initialization") @@ -1601,7 +1601,7 @@ export class Es2pandaNativeModule { throw new Error("ETSTupleSetTypeAnnotationsList was not overloaded by native module initialization") } _CreateETSStringLiteralType(context: KNativePointer, value: KStringPtr): KNativePointer { - throw new Error("CreateETSStringLiteralType was not overloaded by native module initialization") + throw new Error('CreateETSStringLiteralType was not overloaded by native module initialization'); } _ETSTupleSetSpreadType(context: KNativePointer, receiver: KNativePointer, newSpreadType: KNativePointer): void { throw new Error("'ETSTupleSetSpreadType was not overloaded by native module initialization") @@ -1616,7 +1616,7 @@ export class Es2pandaNativeModule { throw new Error("UpdateTryStatement was not overloaded by native module initialization") } _CreateTryStatement1(context: KNativePointer, other: KNativePointer): KNativePointer { - throw new Error("CreateTryStatement1 was not overloaded by native module initialization") + throw new Error('CreateTryStatement1 was not overloaded by native module initialization'); } _UpdateTryStatement1(context: KNativePointer, original: KNativePointer, other: KNativePointer): KNativePointer { throw new Error("UpdateTryStatement1 was not overloaded by native module initialization") @@ -1679,7 +1679,7 @@ export class Es2pandaNativeModule { throw new Error("AstNodeSetRange was not overloaded by native module initialization") } _AstNodeSetStart(context: KNativePointer, receiver: KNativePointer, start: KNativePointer): void { - throw new Error("AstNodeSetStart was not overloaded by native module initialization") + throw new Error('AstNodeSetStart was not overloaded by native module initialization'); } _AstNodeSetEnd(context: KNativePointer, receiver: KNativePointer, end: KNativePointer): void { throw new Error("AstNodeSetEnd was not overloaded by native module initialization") @@ -3356,7 +3356,7 @@ export class Es2pandaNativeModule { throw new Error("'BreakStatementTargetConst was not overloaded by native module initialization") } _BreakStatementHasTargetConst(context: KNativePointer, receiver: KNativePointer): KBoolean { - throw new Error("BreakStatementHasTargetConst was not overloaded by native module initialization") + throw new Error('BreakStatementHasTargetConst was not overloaded by native module initialization'); } _BreakStatementSetTarget(context: KNativePointer, receiver: KNativePointer, target: KNativePointer): void { throw new Error("'BreakStatementSetTarget was not overloaded by native module initialization") @@ -3665,7 +3665,7 @@ export class Es2pandaNativeModule { throw new Error("CreateCatchClause1was not overloaded by native module initialization") } _UpdateCatchClause1(context: KNativePointer, original: KNativePointer, other: KNativePointer): KNativePointer { - throw new Error("UpdateCatchClause1 was not overloaded by native module initialization") + throw new Error('UpdateCatchClause1 was not overloaded by native module initialization'); } _CatchClauseParam(context: KNativePointer, receiver: KNativePointer): KNativePointer { throw new Error("'CatchClauseParam was not overloaded by native module initialization") diff --git a/koala-wrapper/src/generated/peers/ClassDefinition.ts b/koala-wrapper/src/generated/peers/ClassDefinition.ts index fe51f912b..098f232d4 100644 --- a/koala-wrapper/src/generated/peers/ClassDefinition.ts +++ b/koala-wrapper/src/generated/peers/ClassDefinition.ts @@ -114,9 +114,21 @@ export class ClassDefinition extends TypedAstNode { get isAnonymous(): boolean { return global.generatedEs2panda._ClassDefinitionIsAnonymousConst(global.context, this.peer) } + get isIntEnumTransformed(): boolean { + return global.generatedEs2panda._ClassDefinitionIsIntEnumTransformedConst(global.context, this.peer) + } + get isStringEnumTransformed(): boolean { + return global.generatedEs2panda._ClassDefinitionIsStringEnumTransformedConst(global.context, this.peer) + } + get isEnumTransformed(): boolean { + return global.generatedEs2panda._ClassDefinitionIsEnumTransformedConst(global.context, this.peer) + } get isNamespaceTransformed(): boolean { return global.generatedEs2panda._ClassDefinitionIsNamespaceTransformedConst(global.context, this.peer) } + get isFromStruct(): boolean { + return global.generatedEs2panda._ClassDefinitionIsFromStructConst(global.context, this.peer) + } get isModule(): boolean { return global.generatedEs2panda._ClassDefinitionIsModuleConst(global.context, this.peer) } diff --git a/koala-wrapper/src/generated/peers/ClassElement.ts b/koala-wrapper/src/generated/peers/ClassElement.ts index 2299f192f..5bd31a220 100644 --- a/koala-wrapper/src/generated/peers/ClassElement.ts +++ b/koala-wrapper/src/generated/peers/ClassElement.ts @@ -31,6 +31,7 @@ import { import { TypedStatement } from "./TypedStatement" import { Identifier } from "./Identifier" +import { TSEnumMember } from "./TSEnumMember" import { Expression } from "./Expression" import { Decorator } from "./Decorator" import { Es2pandaPrivateFieldKind } from "./../Es2pandaEnums" @@ -39,6 +40,9 @@ export class ClassElement extends TypedStatement { super(pointer) } + get id(): Identifier | undefined { + return unpackNode(global.generatedEs2panda._ClassElementId(global.context, this.peer)) + } get key(): Expression | undefined { return unpackNode(global.generatedEs2panda._ClassElementKeyConst(global.context, this.peer)) } @@ -56,6 +60,12 @@ export class ClassElement extends TypedStatement { get isComputed(): boolean { return global.generatedEs2panda._ClassElementIsComputedConst(global.context, this.peer) } + get originEnumMember(): TSEnumMember | undefined { + return unpackNode(global.generatedEs2panda._ClassElementOriginEnumMemberConst(global.context, this.peer)) + } + get isPrivateElement(): boolean { + return global.generatedEs2panda._ClassElementIsPrivateElementConst(global.context, this.peer) + } /** @deprecated */ addDecorator(decorator: Decorator): this { global.generatedEs2panda._ClassElementAddDecorator(global.context, this.peer, passNode(decorator)) diff --git a/koala-wrapper/src/generated/peers/ETSKeyofType.ts b/koala-wrapper/src/generated/peers/ETSKeyofType.ts index c2171393e..d321f667e 100644 --- a/koala-wrapper/src/generated/peers/ETSKeyofType.ts +++ b/koala-wrapper/src/generated/peers/ETSKeyofType.ts @@ -27,27 +27,27 @@ import { nodeByType, ArktsObject, unpackString -} from "../../reexport-for-generated" +} from '../../reexport-for-generated'; -import { TypeNode } from "./TypeNode" +import { TypeNode } from './TypeNode'; export class ETSKeyofType extends TypeNode { constructor(pointer: KNativePointer) { - assertValidPeer(pointer, Es2pandaAstNodeType.AST_NODE_TYPE_ETS_KEYOF_TYPE) - super(pointer) + assertValidPeer(pointer, Es2pandaAstNodeType.AST_NODE_TYPE_ETS_KEYOF_TYPE); + super(pointer); } static createETSKeyofType(type?: TypeNode): ETSKeyofType { - return new ETSKeyofType(global.generatedEs2panda._CreateETSKeyofType(global.context, passNode(type))) + return new ETSKeyofType(global.generatedEs2panda._CreateETSKeyofType(global.context, passNode(type))); } static updateETSKeyofType(original?: ETSKeyofType, type?: TypeNode): ETSKeyofType { - return new ETSKeyofType(global.generatedEs2panda._UpdateETSKeyofType(global.context, passNode(original), passNode(type))) + return new ETSKeyofType(global.generatedEs2panda._UpdateETSKeyofType(global.context, passNode(original), passNode(type))); } get typeRef(): TypeNode | undefined { - return unpackNode(global.generatedEs2panda._ETSKeyofTypeGetTypeRefConst(global.context, this.peer)) + return unpackNode(global.generatedEs2panda._ETSKeyofTypeGetTypeRefConst(global.context, this.peer)); } } export function isETSKeyofType(node: object | undefined): node is ETSKeyofType { - return node instanceof ETSKeyofType + return node instanceof ETSKeyofType; } if (!nodeByType.has(Es2pandaAstNodeType.AST_NODE_TYPE_ETS_KEYOF_TYPE)) { - nodeByType.set(Es2pandaAstNodeType.AST_NODE_TYPE_ETS_KEYOF_TYPE, ETSKeyofType) + nodeByType.set(Es2pandaAstNodeType.AST_NODE_TYPE_ETS_KEYOF_TYPE, ETSKeyofType); } \ No newline at end of file diff --git a/koala-wrapper/src/generated/peers/Expression.ts b/koala-wrapper/src/generated/peers/Expression.ts index 9a08ad491..e678bbdd9 100644 --- a/koala-wrapper/src/generated/peers/Expression.ts +++ b/koala-wrapper/src/generated/peers/Expression.ts @@ -46,6 +46,9 @@ export class Expression extends TypedAstNode { global.generatedEs2panda._ExpressionSetGrouped(global.context, this.peer) return this } + get asLiteral(): Literal | undefined { + return unpackNode(global.generatedEs2panda._ExpressionAsLiteral(global.context, this.peer)) + } get isLiteral(): boolean { return global.generatedEs2panda._ExpressionIsLiteralConst(global.context, this.peer) } @@ -55,6 +58,18 @@ export class Expression extends TypedAstNode { get isAnnotatedExpression(): boolean { return global.generatedEs2panda._ExpressionIsAnnotatedExpressionConst(global.context, this.peer) } + get asTypeNode(): TypeNode | undefined { + return unpackNode(global.generatedEs2panda._ExpressionAsTypeNode(global.context, this.peer)) + } + get asAnnotatedExpression(): AnnotatedExpression | undefined { + return unpackNode(global.generatedEs2panda._ExpressionAsAnnotatedExpression(global.context, this.peer)) + } + get isBrokenExpression(): boolean { + return global.generatedEs2panda._ExpressionIsBrokenExpressionConst(global.context, this.peer) + } + get toString(): string { + return unpackString(global.generatedEs2panda._ExpressionToStringConst(global.context, this.peer)) + } } export function isExpression(node: AstNode): node is Expression { return node instanceof Expression diff --git a/koala-wrapper/src/generated/peers/MethodDefinition.ts b/koala-wrapper/src/generated/peers/MethodDefinition.ts index 0cfbcff23..fa2546c16 100644 --- a/koala-wrapper/src/generated/peers/MethodDefinition.ts +++ b/koala-wrapper/src/generated/peers/MethodDefinition.ts @@ -43,7 +43,7 @@ export class MethodDefinition extends ClassElement { static createMethodDefinition(kind: Es2pandaMethodDefinitionKind, key: Expression | undefined, value: Expression | undefined, modifiers: Es2pandaModifierFlags, isComputed: boolean): MethodDefinition { return new MethodDefinition(global.generatedEs2panda._CreateMethodDefinition(global.context, kind, passNode(key), passNode(value), modifiers, isComputed)) } - static updateMethodDefinition(original: MethodDefinition | undefined, kind: Es2pandaMethodDefinitionKind, key: Expression | undefined, value: Expression | undefined, modifiers: Es2pandaModifierFlags, isComputed: boolean): MethodDefinition { + static updateMethodDefinition(original: MethodDefinition | undefined, kind: Es2pandaMethodDefinitionKind, key: Expression | undefined, value: AstNode | undefined, modifiers: Es2pandaModifierFlags, isComputed: boolean): MethodDefinition { return new MethodDefinition(global.generatedEs2panda._UpdateMethodDefinition(global.context, passNode(original), kind, passNode(key), passNode(value), modifiers, isComputed)) } get kind(): Es2pandaMethodDefinitionKind { @@ -55,6 +55,18 @@ export class MethodDefinition extends ClassElement { get isExtensionMethod(): boolean { return global.generatedEs2panda._MethodDefinitionIsExtensionMethodConst(global.context, this.peer) } + get isMethod(): boolean { + return global.generatedEs2panda._MethodDefinitionIsMethodConst(global.context, this.peer) + } + get isGetter(): boolean { + return global.generatedEs2panda._MethodDefinitionIsGetterConst(global.context, this.peer) + } + get isSetter(): boolean { + return global.generatedEs2panda._MethodDefinitionIsSetterConst(global.context, this.peer) + } + get isDefaultAccessModifier(): boolean { + return global.generatedEs2panda._MethodDefinitionIsDefaultAccessModifierConst(global.context, this.peer) + } get overloads(): readonly MethodDefinition[] { return unpackNodeArray(global.generatedEs2panda._MethodDefinitionOverloadsConst(global.context, this.peer)) } @@ -64,6 +76,9 @@ export class MethodDefinition extends ClassElement { get asyncPairMethod(): MethodDefinition | undefined { return unpackNode(global.generatedEs2panda._MethodDefinitionAsyncPairMethodConst(global.context, this.peer)) } + get function(): ScriptFunction | undefined { + return unpackNode(global.generatedEs2panda._MethodDefinitionFunction(global.context, this.peer)) + } /** @deprecated */ setOverloads(overloads: readonly MethodDefinition[]): this { global.generatedEs2panda._MethodDefinitionSetOverloads(global.context, this.peer, passNodeArray(overloads), overloads.length) diff --git a/koala-wrapper/src/generated/peers/ScopeFindResult.ts b/koala-wrapper/src/generated/peers/ScopeFindResult.ts index 68156bac2..8c7670804 100644 --- a/koala-wrapper/src/generated/peers/ScopeFindResult.ts +++ b/koala-wrapper/src/generated/peers/ScopeFindResult.ts @@ -26,7 +26,7 @@ import { nodeByType, ArktsObject, unpackString -} from "../../reexport-for-generated" +} from '../../reexport-for-generated'; export class ScopeFindResult extends ArktsObject { constructor(pointer: KNativePointer) { -- Gitee