From f9c7c85b01d2a262642bc37f9ed0aec46e30ec9a Mon Sep 17 00:00:00 2001 From: wuxiesaber Date: Sat, 19 Jul 2025 14:25:48 +0800 Subject: [PATCH 01/12] adjust number2int in map and set Issue: https://gitee.com/openharmony/arkcompiler_runtime_core/issues/ICN2J6 Signed-off-by: wuxiesaber Change-Id: Ib36ebf17a202cf4a18b0ffbedc5eb82dde11b133 --- incremental/compat/src/arkts/observable.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/incremental/compat/src/arkts/observable.ts b/incremental/compat/src/arkts/observable.ts index 681891ad9..9ebb97d7e 100644 --- a/incremental/compat/src/arkts/observable.ts +++ b/incremental/compat/src/arkts/observable.ts @@ -595,7 +595,7 @@ class ObservableMap extends Map { return ObservableHandler.find(this) } - override get size(): number { + override get size(): int { this.handler?.onAccess() return super.size } @@ -699,7 +699,7 @@ class ObservableSet extends Set { return new Set(this.elements.keys()).toString() } - override get size(): number { + override get size(): int { this.handler?.onAccess() return this.elements.size } -- Gitee From d3c39bcc20a97d3f219480cbdc262bbae0ee34e9 Mon Sep 17 00:00:00 2001 From: Tatiana Titova Date: Thu, 17 Jul 2025 09:41:08 +0300 Subject: [PATCH 02/12] Update with new DebugInfo signatures Signed-off-by: Tatiana Titova --- ui2abc/libarkts/native/src/bridges.cc | 21 ++++++++++--------- ui2abc/libarkts/src/Es2pandaNativeModule.ts | 8 +++---- .../arkts-api/peers/Diagnostic.ts | 7 ++++--- .../arkts-api/peers/DiagnosticInfo.ts | 7 ++++--- .../arkts-api/peers/SuggestionInfo.ts | 7 ++++--- 5 files changed, 27 insertions(+), 23 deletions(-) diff --git a/ui2abc/libarkts/native/src/bridges.cc b/ui2abc/libarkts/native/src/bridges.cc index 1dad35c6e..63519aefa 100644 --- a/ui2abc/libarkts/native/src/bridges.cc +++ b/ui2abc/libarkts/native/src/bridges.cc @@ -509,7 +509,7 @@ KNativePointer impl_CreateDiagnosticKind(KNativePointer context, KStringPtr& mes } KOALA_INTEROP_3(CreateDiagnosticKind, KNativePointer, KNativePointer, KStringPtr, KInt) -KNativePointer impl_CreateDiagnosticInfo(KNativePointer context, KNativePointer kind, KStringArray argsPtr, KInt argc) +KNativePointer impl_CreateDiagnosticInfo(KNativePointer context, KNativePointer kind, KStringArray argsPtr, KInt argc, KNativePointer pos) { const auto _context = reinterpret_cast(context); const auto _kind = reinterpret_cast(kind); @@ -523,12 +523,13 @@ KNativePointer impl_CreateDiagnosticInfo(KNativePointer context, KNativePointer _args[i] = strdup(std::string(reinterpret_cast(argsPtr + position), strLen).c_str()); position += strLen; } - return GetImpl()->CreateDiagnosticInfo(_context, _kind, _args, argc); + auto&& _pos = reinterpret_cast(pos); + return GetImpl()->CreateDiagnosticInfo(_context, _kind, _args, argc, _pos); } -KOALA_INTEROP_4(CreateDiagnosticInfo, KNativePointer, KNativePointer, KNativePointer, KStringArray, KInt) +KOALA_INTEROP_5(CreateDiagnosticInfo, KNativePointer, KNativePointer, KNativePointer, KStringArray, KInt, KNativePointer) KNativePointer impl_CreateSuggestionInfo(KNativePointer context, KNativePointer kind, KStringArray argsPtr, - KInt argc, KStringPtr& substitutionCode) + KInt argc, KStringPtr& substitutionCode, KNativePointer range) { const auto _context = reinterpret_cast(context); const auto _kind = reinterpret_cast(kind); @@ -543,9 +544,10 @@ KNativePointer impl_CreateSuggestionInfo(KNativePointer context, KNativePointer position += strLen; } const auto _substitutionCode = getStringCopy(substitutionCode); - return GetImpl()->CreateSuggestionInfo(_context, _kind, _args, argc, _substitutionCode); + const auto _range = reinterpret_cast(range); + return GetImpl()->CreateSuggestionInfo(_context, _kind, _args, argc, _substitutionCode, _range); } -KOALA_INTEROP_5(CreateSuggestionInfo, KNativePointer, KNativePointer, KNativePointer, KStringArray, KInt, KStringPtr) +KOALA_INTEROP_6(CreateSuggestionInfo, KNativePointer, KNativePointer, KNativePointer, KStringArray, KInt, KStringPtr, KNativePointer) void impl_LogDiagnostic(KNativePointer context, KNativePointer kind, KStringArray argvPtr, KInt argc, KNativePointer pos) @@ -568,15 +570,14 @@ void impl_LogDiagnostic(KNativePointer context, KNativePointer kind, KStringArra KOALA_INTEROP_V5(LogDiagnostic, KNativePointer, KNativePointer, KStringArray, KInt, KNativePointer) void impl_LogDiagnosticWithSuggestion(KNativePointer context, KNativePointer diagnosticInfo, - KNativePointer suggestionInfo, KNativePointer range) + KNativePointer suggestionInfo) { const auto _context = reinterpret_cast(context); const auto _diagnosticInfo = reinterpret_cast(diagnosticInfo); const auto _suggestionInfo = reinterpret_cast(suggestionInfo); - const auto _range = reinterpret_cast(range); - GetImpl()->LogDiagnosticWithSuggestion(_context, _diagnosticInfo, _suggestionInfo, _range); + GetImpl()->LogDiagnosticWithSuggestion(_context, _diagnosticInfo, _suggestionInfo); } -KOALA_INTEROP_V4(LogDiagnosticWithSuggestion, KNativePointer, KNativePointer, KNativePointer, KNativePointer) +KOALA_INTEROP_V3(LogDiagnosticWithSuggestion, KNativePointer, KNativePointer, KNativePointer) KInt impl_GenerateStaticDeclarationsFromContext(KNativePointer contextPtr, KStringPtr &outputPath) { diff --git a/ui2abc/libarkts/src/Es2pandaNativeModule.ts b/ui2abc/libarkts/src/Es2pandaNativeModule.ts index da797b0a9..32d643498 100644 --- a/ui2abc/libarkts/src/Es2pandaNativeModule.ts +++ b/ui2abc/libarkts/src/Es2pandaNativeModule.ts @@ -188,18 +188,18 @@ export class Es2pandaNativeModule { _CreateDiagnosticKind(context: KNativePointer, message: string, type: Es2pandaPluginDiagnosticType): KNativePointer { throw new Error("Not implemented") } - _CreateDiagnosticInfo(context: KNativePointer, kind: KNativePointer, args: string[], argc: number): KNativePointer { + _CreateDiagnosticInfo(context: KNativePointer, kind: KNativePointer, args: string[], argc: number, pos: KNativePointer): KNativePointer { throw new Error("Not implemented") } _CreateSuggestionInfo(context: KNativePointer, kind: KNativePointer, args: string[], - argc: number, substitutionCode: string): KNativePointer { + argc: number, substitutionCode: string, range: KNativePointer): KNativePointer { throw new Error("Not implemented") } _LogDiagnostic(context: KNativePointer, kind: KNativePointer, argv: string[], argc: number, pos: KNativePointer): void { throw new Error("Not implemented") } _LogDiagnosticWithSuggestion(context: KNativePointer, diagnosticInfo: KNativePointer, - suggestionInfo?: KNativePointer, range?: KNativePointer): void { + suggestionInfo?: KNativePointer): void { throw new Error("Not implemented") } _SetUpSoPath(soPath: string): void { @@ -258,4 +258,4 @@ export function initGeneratedEs2panda(): GeneratedEs2pandaNativeModule { // registerNativeModule("InteropNativeModule", NativeModule) loadNativeModuleLibrary("NativeModule", instance) return instance -} \ No newline at end of file +} diff --git a/ui2abc/libarkts/src/wrapper-compat/arkts-api/peers/Diagnostic.ts b/ui2abc/libarkts/src/wrapper-compat/arkts-api/peers/Diagnostic.ts index 9b2165ee7..d3069a981 100644 --- a/ui2abc/libarkts/src/wrapper-compat/arkts-api/peers/Diagnostic.ts +++ b/ui2abc/libarkts/src/wrapper-compat/arkts-api/peers/Diagnostic.ts @@ -32,8 +32,9 @@ export class Diagnostic extends ArktsObject { } static logDiagnosticWithSuggestion(diagnosticInfo: DiagnosticInfo, suggestionInfo: SuggestionInfo, - range: SourceRange): void { - global.es2panda._LogDiagnosticWithSuggestion(global.context, diagnosticInfo.peer, suggestionInfo.peer, range.peer); + range?: SourceRange): void { + console.warn(`Range parameter is not used anymore`) + global.es2panda._LogDiagnosticWithSuggestion(global.context, diagnosticInfo.peer, suggestionInfo.peer); } -} \ No newline at end of file +} diff --git a/ui2abc/libarkts/src/wrapper-compat/arkts-api/peers/DiagnosticInfo.ts b/ui2abc/libarkts/src/wrapper-compat/arkts-api/peers/DiagnosticInfo.ts index f708cdebd..cfc3221ca 100644 --- a/ui2abc/libarkts/src/wrapper-compat/arkts-api/peers/DiagnosticInfo.ts +++ b/ui2abc/libarkts/src/wrapper-compat/arkts-api/peers/DiagnosticInfo.ts @@ -18,16 +18,17 @@ import { global } from '../static/global'; import { KNativePointer } from '@koalaui/interop'; import { DiagnosticKind } from './DiagnosticKind'; import { passStringArray } from '../utilities/private'; +import { SourcePosition } from './SourcePosition'; export class DiagnosticInfo extends ArktsObject { constructor(peer: KNativePointer) { super(peer); } - static create(kind: DiagnosticKind, ...args: string[]): DiagnosticInfo { + static create(kind: DiagnosticKind, pos: SourcePosition, ...args: string[]): DiagnosticInfo { return new DiagnosticInfo( - global.es2panda._CreateDiagnosticInfo(global.context, kind.peer, passStringArray(args), args.length) + global.es2panda._CreateDiagnosticInfo(global.context, kind.peer, passStringArray(args), args.length, pos.peer) ); } -} \ No newline at end of file +} diff --git a/ui2abc/libarkts/src/wrapper-compat/arkts-api/peers/SuggestionInfo.ts b/ui2abc/libarkts/src/wrapper-compat/arkts-api/peers/SuggestionInfo.ts index 3c0631110..f4b92b374 100644 --- a/ui2abc/libarkts/src/wrapper-compat/arkts-api/peers/SuggestionInfo.ts +++ b/ui2abc/libarkts/src/wrapper-compat/arkts-api/peers/SuggestionInfo.ts @@ -18,16 +18,17 @@ import { global } from '../static/global'; import { KNativePointer } from '@koalaui/interop'; import { DiagnosticKind } from './DiagnosticKind'; import { passStringArray } from '../utilities/private'; +import { SourceRange } from './SourceRange'; export class SuggestionInfo extends ArktsObject { constructor(peer: KNativePointer) { super(peer); } - static create(kind: DiagnosticKind, substitutionCode: string, ...args: string[]): SuggestionInfo { + static create(kind: DiagnosticKind, substitutionCode: string, range: SourceRange, ...args: string[]): SuggestionInfo { return new SuggestionInfo( - global.es2panda._CreateSuggestionInfo(global.context, kind.peer, passStringArray(args), args.length, substitutionCode) + global.es2panda._CreateSuggestionInfo(global.context, kind.peer, passStringArray(args), args.length, substitutionCode, range.peer) ); } -} \ No newline at end of file +} -- Gitee From eb71e190ebb4d2c9b44b794778c85d12c10cdc62 Mon Sep 17 00:00:00 2001 From: Tatiana Titova Date: Fri, 18 Jul 2025 12:07:15 +0300 Subject: [PATCH 03/12] Fix import path Signed-off-by: Tatiana Titova --- .../src/wrapper-compat/arkts-api/peers/DiagnosticInfo.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui2abc/libarkts/src/wrapper-compat/arkts-api/peers/DiagnosticInfo.ts b/ui2abc/libarkts/src/wrapper-compat/arkts-api/peers/DiagnosticInfo.ts index cfc3221ca..a85fa5991 100644 --- a/ui2abc/libarkts/src/wrapper-compat/arkts-api/peers/DiagnosticInfo.ts +++ b/ui2abc/libarkts/src/wrapper-compat/arkts-api/peers/DiagnosticInfo.ts @@ -18,7 +18,7 @@ import { global } from '../static/global'; import { KNativePointer } from '@koalaui/interop'; import { DiagnosticKind } from './DiagnosticKind'; import { passStringArray } from '../utilities/private'; -import { SourcePosition } from './SourcePosition'; +import { SourcePosition } from '../../../arkts-api/peers/SourcePosition'; export class DiagnosticInfo extends ArktsObject { constructor(peer: KNativePointer) { -- Gitee From c4f695c61d35517573477559459ee2f9a529964c Mon Sep 17 00:00:00 2001 From: Tatiana Titova Date: Tue, 22 Jul 2025 10:42:17 +0300 Subject: [PATCH 04/12] Fix logDiagnosticWithSuggestion signature Signed-off-by: Tatiana Titova --- .../libarkts/src/wrapper-compat/arkts-api/peers/Diagnostic.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ui2abc/libarkts/src/wrapper-compat/arkts-api/peers/Diagnostic.ts b/ui2abc/libarkts/src/wrapper-compat/arkts-api/peers/Diagnostic.ts index d3069a981..318edb419 100644 --- a/ui2abc/libarkts/src/wrapper-compat/arkts-api/peers/Diagnostic.ts +++ b/ui2abc/libarkts/src/wrapper-compat/arkts-api/peers/Diagnostic.ts @@ -31,8 +31,7 @@ export class Diagnostic extends ArktsObject { global.es2panda._LogDiagnostic(global.context, kind.peer, passStringArray(args), args.length, pos.peer); } - static logDiagnosticWithSuggestion(diagnosticInfo: DiagnosticInfo, suggestionInfo: SuggestionInfo, - range?: SourceRange): void { + static logDiagnosticWithSuggestion(diagnosticInfo: DiagnosticInfo, suggestionInfo: SuggestionInfo): void { console.warn(`Range parameter is not used anymore`) global.es2panda._LogDiagnosticWithSuggestion(global.context, diagnosticInfo.peer, suggestionInfo.peer); } -- Gitee From db4938bfcf03c14813ca9bc17931fbf48400aed3 Mon Sep 17 00:00:00 2001 From: Tatiana Titova Date: Tue, 22 Jul 2025 15:00:06 +0300 Subject: [PATCH 05/12] Make range parameter optional Signed-off-by: Tatiana Titova --- ui2abc/libarkts/src/Es2pandaNativeModule.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui2abc/libarkts/src/Es2pandaNativeModule.ts b/ui2abc/libarkts/src/Es2pandaNativeModule.ts index 32d643498..2c5920d99 100644 --- a/ui2abc/libarkts/src/Es2pandaNativeModule.ts +++ b/ui2abc/libarkts/src/Es2pandaNativeModule.ts @@ -192,7 +192,7 @@ export class Es2pandaNativeModule { throw new Error("Not implemented") } _CreateSuggestionInfo(context: KNativePointer, kind: KNativePointer, args: string[], - argc: number, substitutionCode: string, range: KNativePointer): KNativePointer { + argc: number, substitutionCode: string, range?: KNativePointer): KNativePointer { throw new Error("Not implemented") } _LogDiagnostic(context: KNativePointer, kind: KNativePointer, argv: string[], argc: number, pos: KNativePointer): void { -- Gitee From be617724d98cbe98c45df8a9966fb385ce8caca6 Mon Sep 17 00:00:00 2001 From: Vyacheslav Cherkashin Date: Tue, 22 Jul 2025 20:17:28 +0300 Subject: [PATCH 06/12] Fix resolveDeferred() Signed-off-by: Vyacheslav Cherkashin --- interop/src/cpp/common-interop.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/interop/src/cpp/common-interop.cc b/interop/src/cpp/common-interop.cc index 47cf2f4d8..24cdd5d65 100644 --- a/interop/src/cpp/common-interop.cc +++ b/interop/src/cpp/common-interop.cc @@ -486,7 +486,10 @@ void resolveDeferred(KVMDeferred* deferred, uint8_t* argsData, int32_t argsLengt status = vm->AttachCurrentThread(nullptr, ANI_VERSION_1, &env); CHECK_ANI_FATAL(status); } - status = env->PromiseResolver_Resolve((ani_resolver)deferred->handler, nullptr); + ani_ref undef = nullptr; + status = env->GetUndefined(&undef); + CHECK_ANI_FATAL(status); + status = env->PromiseResolver_Resolve((ani_resolver)deferred->handler, undef); CHECK_ANI_FATAL(status); #endif } -- Gitee From d8c85d74f37418baa603b4303778c77dc41f533d Mon Sep 17 00:00:00 2001 From: zhanheng Date: Mon, 30 Jun 2025 17:54:02 +0800 Subject: [PATCH 07/12] Add push interface Issue: #IC7STE Signed-off-by: zhanheng --- incremental/compat/src/arkts/observable.ts | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/incremental/compat/src/arkts/observable.ts b/incremental/compat/src/arkts/observable.ts index 9ebb97d7e..a54f5f440 100644 --- a/incremental/compat/src/arkts/observable.ts +++ b/incremental/compat/src/arkts/observable.ts @@ -280,6 +280,11 @@ class CustomProxyHandler extends proxy.DefaultProxyHandler } } +function proxyChildrenOnlyOne(value: T, parent: ObservableHandler, observed?: boolean) { + if (observed === undefined) observed = ObservableHandler.contains(parent) + value = observableProxy(value, parent, observed) +} + function proxyChildrenOnly(array: T[], parent: ObservableHandler, observed?: boolean) { for (let i = 0; i < array.length; i++) { if (observed === undefined) observed = ObservableHandler.contains(parent) @@ -360,13 +365,22 @@ class ObservableArray extends Array { return result } - override push(...items: T[]): number { + override pushArray(...items: T[]): number { const handler = this.handler if (handler) { handler.onModify() proxyChildrenOnly(items, handler) } - return super.push(...items) + return super.pushArray(...items) + } + + override pushOne(item: T): number { + const handler = this.handler + if (handler) { + handler.onModify() + proxyChildrenOnlyOne(item, handler) + } + return super.pushOne(item) } override pushECMA(...items: T[]): number { -- Gitee From d9776fcd5a70e6e7cc765ec187ae8a0e0ff24a39 Mon Sep 17 00:00:00 2001 From: Denis Slynko Date: Wed, 23 Jul 2025 09:58:05 +0300 Subject: [PATCH 08/12] [ANI] Move Class_BindStaticNativeMethods to bottom Signed-off-by: Denis Slynko --- interop/src/cpp/ani/ani.h | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/interop/src/cpp/ani/ani.h b/interop/src/cpp/ani/ani.h index 0525a1b35..1626cc568 100644 --- a/interop/src/cpp/ani/ani.h +++ b/interop/src/cpp/ani/ani.h @@ -620,20 +620,6 @@ struct __ani_interaction_api { ani_status (*Class_BindNativeMethods)(ani_env *env, ani_class cls, const ani_native_function *methods, ani_size nr_methods); - /** - * @brief Binds static native methods to a class. - * - * This function binds an array of static native methods to the specified class. - * - * @param[in] env A pointer to the environment structure. - * @param[in] cls The class to which the native methods will be bound. - * @param[in] methods A pointer to an array of static native methods to bind. - * @param[in] nr_methods The number of static native methods in the array. - * @return Returns a status code of type `ani_status` indicating success or failure. - */ - ani_status (*Class_BindStaticNativeMethods)(ani_env *env, ani_class cls, const ani_native_function *methods, - ani_size nr_methods); - /** * @brief Deletes a local reference. * @@ -6109,6 +6095,20 @@ struct __ani_interaction_api { * The `resolver` is freed upon successful completion. */ ani_status (*PromiseResolver_Reject)(ani_env *env, ani_resolver resolver, ani_error rejection); + + /** + * @brief Binds static native methods to a class. + * + * This function binds an array of static native methods to the specified class. + * + * @param[in] env A pointer to the environment structure. + * @param[in] cls The class to which the native methods will be bound. + * @param[in] methods A pointer to an array of static native methods to bind. + * @param[in] nr_methods The number of static native methods in the array. + * @return Returns a status code of type `ani_status` indicating success or failure. + */ + ani_status (*Class_BindStaticNativeMethods)(ani_env *env, ani_class cls, const ani_native_function *methods, + ani_size nr_methods); }; // C++ API @@ -6249,10 +6249,6 @@ struct __ani_env { { return c_api->Class_BindNativeMethods(this, cls, methods, nr_methods); } - ani_status Class_BindStaticNativeMethods(ani_class cls, const ani_native_function *methods, ani_size nr_methods) - { - return c_api->Class_BindStaticNativeMethods(this, cls, methods, nr_methods); - } ani_status Reference_Delete(ani_ref ref) { return c_api->Reference_Delete(this, ref); @@ -8119,6 +8115,10 @@ struct __ani_env { { return c_api->PromiseResolver_Reject(this, resolver, rejection); } + ani_status Class_BindStaticNativeMethods(ani_class cls, const ani_native_function *methods, ani_size nr_methods) + { + return c_api->Class_BindStaticNativeMethods(this, cls, methods, nr_methods); + } #endif // __cplusplus }; -- Gitee From 2d6d84fec6d4224f8e899c4fa1df80ea2dcf6091 Mon Sep 17 00:00:00 2001 From: dongchao Date: Wed, 23 Jul 2025 16:17:57 +0300 Subject: [PATCH 09/12] Achieve record scene in declgen_ets2ts --- ui2abc/libarkts/native/src/bridges.cc | 6 +++--- ui2abc/libarkts/src/Es2pandaNativeModule.ts | 2 +- ui2abc/libarkts/src/arkts-api/utilities/public.ts | 12 +++++++----- .../src/wrapper-compat/arkts-api/utilities/public.ts | 6 ++++-- 4 files changed, 15 insertions(+), 11 deletions(-) diff --git a/ui2abc/libarkts/native/src/bridges.cc b/ui2abc/libarkts/native/src/bridges.cc index 63519aefa..cb3767e56 100644 --- a/ui2abc/libarkts/native/src/bridges.cc +++ b/ui2abc/libarkts/native/src/bridges.cc @@ -597,12 +597,12 @@ KNativePointer impl_AnnotationUsageIrPropertiesPtrConst(KNativePointer context, KOALA_INTEROP_2(AnnotationUsageIrPropertiesPtrConst, KNativePointer, KNativePointer, KNativePointer); KInt impl_GenerateTsDeclarationsFromContext(KNativePointer contextPtr, KStringPtr &outputDeclEts, KStringPtr &outputEts, - KBoolean exportAll, KBoolean isolated) + KBoolean exportAll, KBoolean isolated, KStringPtr &recordFile) { auto context = reinterpret_cast(contextPtr); - return GetImpl()->GenerateTsDeclarationsFromContext(context, outputDeclEts.data(), outputEts.data(), exportAll, isolated ); + return GetImpl()->GenerateTsDeclarationsFromContext(context, outputDeclEts.data(), outputEts.data(), exportAll, isolated, recordFile.data()); } -KOALA_INTEROP_5(GenerateTsDeclarationsFromContext, KInt, KNativePointer, KStringPtr, KStringPtr, KBoolean, KBoolean) +KOALA_INTEROP_6(GenerateTsDeclarationsFromContext, KInt, KNativePointer, KStringPtr, KStringPtr, KBoolean, KBoolean, KStringPtr) // TODO: simplify KNativePointer impl_CreateContextGenerateAbcForExternalSourceFiles( diff --git a/ui2abc/libarkts/src/Es2pandaNativeModule.ts b/ui2abc/libarkts/src/Es2pandaNativeModule.ts index 2c5920d99..57ad82b4c 100644 --- a/ui2abc/libarkts/src/Es2pandaNativeModule.ts +++ b/ui2abc/libarkts/src/Es2pandaNativeModule.ts @@ -214,7 +214,7 @@ export class Es2pandaNativeModule { _ProgramCanSkipPhases(context: KNativePointer, program: KNativePointer): boolean { throw new Error("Not implemented") } - _GenerateTsDeclarationsFromContext(config: KPtr, outputDeclEts: String, outputEts: String, exportAll: KBoolean, isolated: KBoolean): KPtr { + _GenerateTsDeclarationsFromContext(config: KPtr, outputDeclEts: String, outputEts: String, exportAll: KBoolean, isolated: KBoolean, recordFile: String): KPtr { throw new Error("Not implemented") } _GenerateStaticDeclarationsFromContext(config: KPtr, outputPath: String): KPtr { diff --git a/ui2abc/libarkts/src/arkts-api/utilities/public.ts b/ui2abc/libarkts/src/arkts-api/utilities/public.ts index 2149fab95..2ebd090c6 100644 --- a/ui2abc/libarkts/src/arkts-api/utilities/public.ts +++ b/ui2abc/libarkts/src/arkts-api/utilities/public.ts @@ -40,7 +40,7 @@ import { listPrograms } from "../plugins" /** * TODO: Replace or remove with better naming - * + * * @deprecated */ export function createETSModuleFromContext(): ETSModule { @@ -59,7 +59,7 @@ export function createETSModuleFromContext(): ETSModule { /** * Now used only in tests * TODO: Remove or replace with better method - * + * * @deprecated */ export function createETSModuleFromSource( @@ -255,17 +255,19 @@ export function generateTsDeclarationsFromContext( outputDeclEts: string, outputEts: string, exportAll: boolean, - isolated: boolean + isolated: boolean, + recordFile: string ): KInt { return global.es2panda._GenerateTsDeclarationsFromContext( global.context, passString(outputDeclEts), passString(outputEts), exportAll, - isolated + isolated, + passString(recordFile) ); } export function setAllParents(ast: AstNode): void { global.es2panda._AstNodeUpdateAll(global.context, ast.peer); -} \ No newline at end of file +} diff --git a/ui2abc/libarkts/src/wrapper-compat/arkts-api/utilities/public.ts b/ui2abc/libarkts/src/wrapper-compat/arkts-api/utilities/public.ts index 919054abe..dcf947ea7 100644 --- a/ui2abc/libarkts/src/wrapper-compat/arkts-api/utilities/public.ts +++ b/ui2abc/libarkts/src/wrapper-compat/arkts-api/utilities/public.ts @@ -256,14 +256,16 @@ export function generateTsDeclarationsFromContext( outputDeclEts: string, outputEts: string, exportAll: boolean, - isolated: boolean + isolated: boolean, + recordFile: string ): KInt { return global.es2panda._GenerateTsDeclarationsFromContext( global.context, passString(outputDeclEts), passString(outputEts), exportAll, - isolated + isolated, + passString(recordFile) ); } -- Gitee From f555dc623e3edb7fcd80483c05b872236d895cde Mon Sep 17 00:00:00 2001 From: cheezzario Date: Wed, 23 Jul 2025 11:34:16 +0300 Subject: [PATCH 10/12] Making ObservableArray compatible with Array.length: int Signed-off-by: cheezzario --- incremental/compat/src/arkts/observable.ts | 4 ++-- incremental/runtime/src/states/State.ts | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/incremental/compat/src/arkts/observable.ts b/incremental/compat/src/arkts/observable.ts index a54f5f440..ea8df9bd1 100644 --- a/incremental/compat/src/arkts/observable.ts +++ b/incremental/compat/src/arkts/observable.ts @@ -311,12 +311,12 @@ class ObservableArray extends Array { return ObservableHandler.find(this) } - override get length(): number { + override get length(): int { this.handler?.onAccess() return super.length } - override set length(length: number) { + override set length(length: int) { this.handler?.onModify() super.length = length } diff --git a/incremental/runtime/src/states/State.ts b/incremental/runtime/src/states/State.ts index a4925d89f..3459a7746 100644 --- a/incremental/runtime/src/states/State.ts +++ b/incremental/runtime/src/states/State.ts @@ -405,7 +405,7 @@ class ArrayStateImpl extends StateImpl> implements ArrayState< } set length(value: number) { - this.mutable.length = value + this.mutable.length = value.toInt() } at(index: number): Item { @@ -451,7 +451,7 @@ class ArrayStateImpl extends StateImpl> implements ArrayState< splice(start: number, deleteCount: number | undefined, ...items: Item[]): Array { const array = this.mutable - return array.splice(start, deleteCount ?? array.length, ...items) + return array.splice(start, deleteCount ?? array.length.toDouble(), ...items) } unshift(...items: Item[]): number { @@ -1272,4 +1272,4 @@ class TrackedScopes { clear() { this.trackedScopes.clear() } -} \ No newline at end of file +} -- Gitee From 55ca7e74cf8d507b87bcd250be8194955d26126e Mon Sep 17 00:00:00 2001 From: Aleksander Sotov Date: Tue, 29 Jul 2025 12:08:38 +0300 Subject: [PATCH 11/12] String class drop number in indexing Issue: https://gitee.com/openharmony/arkcompiler_runtime_core/issues/ICM9OG?from=project-issue Testing: all tests passed Signed-off-by: Aleksander Sotov --- arkoala-arkts/shopping/user/src/ets/pages/homePage/utils.ets | 2 +- incremental/common/src/koalaKey.ts | 3 ++- incremental/common/src/sha1.ts | 2 +- incremental/common/src/stringUtils.ts | 3 ++- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/arkoala-arkts/shopping/user/src/ets/pages/homePage/utils.ets b/arkoala-arkts/shopping/user/src/ets/pages/homePage/utils.ets index c1020b98e..c48aabeb6 100644 --- a/arkoala-arkts/shopping/user/src/ets/pages/homePage/utils.ets +++ b/arkoala-arkts/shopping/user/src/ets/pages/homePage/utils.ets @@ -16,7 +16,7 @@ function simpleHash(str: string) { let hash = 0; for (let i = 0; i < str.length; i++) { - const char_ = str.charCodeAt(i); + const char_ = str.charCodeAt(i).toInt(); hash = (hash << 5) - hash + char_; } return BigInt(hash >>> 0).toString(36).padStart(7, '0'); diff --git a/incremental/common/src/koalaKey.ts b/incremental/common/src/koalaKey.ts index 729bf43cb..289b65824 100644 --- a/incremental/common/src/koalaKey.ts +++ b/incremental/common/src/koalaKey.ts @@ -13,6 +13,7 @@ * limitations under the License. */ +import { float64ToInt } from "@koalaui/compat" import { int32 } from "@koalaui/compat" export type KoalaCallsiteKey = int32 @@ -37,7 +38,7 @@ export class KoalaCallsiteKeys { export function toKoalaCallsiteKey(str: string): KoalaCallsiteKey { let key = KoalaCallsiteKeys.empty for (let i = 0; i < str.length; i++) { - key = (key << 3) | (key >> 29) ^ str.charCodeAt(i) + key = (key << 3) | (key >> 29) ^ float64ToInt(str.charCodeAt(i)) } // DEBUG: console.log(`KEY: ${KoalaCallsiteKeys.asString(key)} from "${str}"`) return key diff --git a/incremental/common/src/sha1.ts b/incremental/common/src/sha1.ts index 1cf2cffea..14e052ef5 100644 --- a/incremental/common/src/sha1.ts +++ b/incremental/common/src/sha1.ts @@ -158,7 +158,7 @@ export class SHA1Hash { let index = start while (offset < length && index < inputBytes) { - let code = text.charCodeAt(offset++) | 0 + let code = float64ToInt(text.charCodeAt(offset++)) | 0 if (code < 0x80) { // ASCII characters _byte[index++] = code diff --git a/incremental/common/src/stringUtils.ts b/incremental/common/src/stringUtils.ts index ce01753ae..4ce02d106 100644 --- a/incremental/common/src/stringUtils.ts +++ b/incremental/common/src/stringUtils.ts @@ -13,6 +13,7 @@ * limitations under the License. */ +import { float64ToInt } from "@koalaui/compat" import { int32 } from "@koalaui/compat" @@ -22,7 +23,7 @@ import { int32 } from "@koalaui/compat" export function hashCodeFromString(value: string): int32 { let hash = 5381 for(let i = 0; i < value.length; i++) { - hash = (hash * 33) ^ value.charCodeAt(i) + hash = (hash * 33) ^ float64ToInt(value.charCodeAt(i)) hash |= 0 } return hash -- Gitee From 03e25ef2d26980e28d849e31b8d792cad743e652 Mon Sep 17 00:00:00 2001 From: igorlegalov Date: Thu, 10 Jul 2025 18:21:47 +0300 Subject: [PATCH 12/12] Date api number to int Signed-off-by: igorlegalov --- incremental/compat/src/arkts/observable.ts | 76 ++++++++++------------ 1 file changed, 33 insertions(+), 43 deletions(-) diff --git a/incremental/compat/src/arkts/observable.ts b/incremental/compat/src/arkts/observable.ts index ea8df9bd1..61138d7ce 100644 --- a/incremental/compat/src/arkts/observable.ts +++ b/incremental/compat/src/arkts/observable.ts @@ -871,7 +871,7 @@ class ObservableDate extends Date { return super.toUTCString() } - override getDate(): number { + override getDate(): int { this.handler?.onAccess() return super.getDate() } @@ -881,12 +881,12 @@ class ObservableDate extends Date { super.setDate(value) } - override setDate(value: number): number { + override setDate(value: int): long { this.handler?.onModify() return super.setDate(value) } - override getUTCDate(): number { + override getUTCDate(): int { this.handler?.onAccess() return super.getUTCDate() } @@ -896,12 +896,12 @@ class ObservableDate extends Date { super.setUTCDate(value) } - override setUTCDate(value: number): number { + override setUTCDate(value: int): long { this.handler?.onModify() return super.setUTCDate(value) } - override getDay(): number { + override getDay(): int { this.handler?.onAccess() return super.getDay() } @@ -911,7 +911,7 @@ class ObservableDate extends Date { super.setDay(value) } - override getUTCDay(): number { + override getUTCDay(): int { this.handler?.onAccess() return super.getUTCDay() } @@ -921,12 +921,12 @@ class ObservableDate extends Date { super.setUTCDay(value) } - override setUTCDay(value: number): number { + override setUTCDay(value: int): long { this.handler?.onModify() return super.setUTCDay(value) } - override getMonth(): number { + override getMonth(): int { this.handler?.onAccess() return super.getMonth() } @@ -936,12 +936,12 @@ class ObservableDate extends Date { super.setMonth(value) } - override setMonth(value: number, date?: number): number { + override setMonth(value: int, date?: int): long { this.handler?.onModify() return super.setMonth(value, date) } - override getUTCMonth(): number { + override getUTCMonth(): int { this.handler?.onAccess() return super.getUTCMonth() } @@ -951,7 +951,7 @@ class ObservableDate extends Date { super.setUTCMonth(value) } - override setUTCMonth(value: number, date?: number): number { + override setUTCMonth(value: int, date?: int): long { this.handler?.onModify() return super.setUTCMonth(value, date) } @@ -966,17 +966,12 @@ class ObservableDate extends Date { super.setYear(value) } - override setYear(value: number) { - this.handler?.onModify() - super.setYear(value) - } - - override getFullYear(): number { + override getFullYear(): int { this.handler?.onAccess() return super.getFullYear() } - override setFullYear(value: number, month?: number, date?: number): number { + override setFullYear(value: int, month?: int, date?: int): long { this.handler?.onModify() return super.setFullYear(value, month, date) } @@ -986,12 +981,12 @@ class ObservableDate extends Date { super.setFullYear(value) } - override getUTCFullYear(): number { + override getUTCFullYear(): int { this.handler?.onAccess() return super.getUTCFullYear() } - override setUTCFullYear(value: number, month?: number, date?: number): number { + override setUTCFullYear(value: int, month?: int, date?: int): long { this.handler?.onModify() return super.setUTCFullYear(value, month, date) } @@ -1001,27 +996,22 @@ class ObservableDate extends Date { super.setUTCFullYear(value) } - override getTime(): number { + override getTime(): long { this.handler?.onAccess() return super.getTime() } - override setTime(value: long) { - this.handler?.onModify() - super.setTime(value) - } - - override setTime(value: number): number { + override setTime(value: long): long { this.handler?.onModify() return super.setTime(value) } - override getHours(): number { + override getHours(): int { this.handler?.onAccess() return super.getHours() } - override setHours(value: number, min?: number, sec?: number, ms?: number): number { + override setHours(value: int, min?: int, sec?: int, ms?: int): long { this.handler?.onModify() return super.setHours(value, min, sec, ms) } @@ -1031,12 +1021,12 @@ class ObservableDate extends Date { super.setHours(value) } - override getUTCHours(): number { + override getUTCHours(): int { this.handler?.onAccess() return super.getUTCHours() } - override setUTCHours(value: number, min?: number, sec?: number, ms?: number): number { + override setUTCHours(value: int, min?: int, sec?: int, ms?: int): long { this.handler?.onModify() return super.setUTCHours(value, min, sec, ms) } @@ -1046,7 +1036,7 @@ class ObservableDate extends Date { super.setUTCHours(value) } - override getMilliseconds(): number { + override getMilliseconds(): long { this.handler?.onAccess() return super.getMilliseconds() } @@ -1056,12 +1046,12 @@ class ObservableDate extends Date { super.setMilliseconds(value) } - override setMilliseconds(value: number): number { + override setMilliseconds(value: int): long { this.handler?.onModify() return super.setMilliseconds(value) } - override getUTCMilliseconds(): number { + override getUTCMilliseconds(): int { this.handler?.onAccess() return super.getUTCMilliseconds() } @@ -1071,12 +1061,12 @@ class ObservableDate extends Date { super.setUTCMilliseconds(value) } - override setUTCMilliseconds(value: number): number { + override setUTCMilliseconds(value: int): long { this.handler?.onModify() return super.setUTCMilliseconds(value) } - override getSeconds(): number { + override getSeconds(): int { this.handler?.onAccess() return super.getSeconds() } @@ -1086,12 +1076,12 @@ class ObservableDate extends Date { super.setSeconds(value) } - override setSeconds(value: number, ms?: number): number { + override setSeconds(value: int, ms?: int): long { this.handler?.onModify() return super.setSeconds(value, ms) } - override getUTCSeconds(): number { + override getUTCSeconds(): int { this.handler?.onAccess() return super.getUTCSeconds() } @@ -1101,12 +1091,12 @@ class ObservableDate extends Date { super.setUTCSeconds(value) } - override setUTCSeconds(value: number, ms?: number): number { + override setUTCSeconds(value: int, ms?: int): long { this.handler?.onModify() return super.setUTCSeconds(value, ms) } - override getMinutes(): number { + override getMinutes(): int { this.handler?.onAccess() return super.getMinutes() } @@ -1116,12 +1106,12 @@ class ObservableDate extends Date { super.setMinutes(value) } - override setMinutes(value: number, sec?: Number, ms?: number): number { + override setMinutes(value: int, sec?: int, ms?: int): long { this.handler?.onModify() return super.setMinutes(value, sec, ms) } - override getUTCMinutes(): number { + override getUTCMinutes(): int { this.handler?.onAccess() return super.getUTCMinutes() } @@ -1131,7 +1121,7 @@ class ObservableDate extends Date { super.setUTCMinutes(value) } - override setUTCMinutes(value: number, sec?: Number, ms?: number): number { + override setUTCMinutes(value: int, sec?: int, ms?: int): long { this.handler?.onModify() return super.setUTCMinutes(value, sec, ms) } -- Gitee