diff --git a/arkoala-arkts/arkui/src/ArkUIEntry.ets b/arkoala-arkts/arkui/src/ArkUIEntry.ets index 92dd1ec139eca9b6e929be4500f952a6abbced23..2ec37ce4ae9197f392babca2f9905ab056c976d3 100644 --- a/arkoala-arkts/arkui/src/ArkUIEntry.ets +++ b/arkoala-arkts/arkui/src/ArkUIEntry.ets @@ -119,7 +119,6 @@ export function destroyUiDetachedRoot(node: PeerNode): void { function destroyUiDetachedRootInternal(ptr: KPointer): boolean { if (!detachedRoots.has(ptr)) { throw new Error(`Root with id ${ptr} is not registered`) - return false } const root = detachedRoots.get(ptr)! detachedRoots.delete(ptr) @@ -382,7 +381,7 @@ export class Application implements UserApplicationControl { handleMessage(ptr: KPointer, type: int32, param : string) : boolean { let result : boolean = false - switch (type as MessageType) { + switch (MessageType.fromValue(type)) { case MessageType.DELETE_DETACHED_ROOT: { result = destroyUiDetachedRootInternal(ptr); break diff --git a/arkoala-arkts/arkui/src/resources.ets b/arkoala-arkts/arkui/src/resources.ets index 586d916d89394f93e9c1695b7428d10c9140395a..d01580b069a27193fd11109e0da6ce7286aba253 100644 --- a/arkoala-arkts/arkui/src/resources.ets +++ b/arkoala-arkts/arkui/src/resources.ets @@ -110,7 +110,7 @@ export class ArkResource implements Resource { const retval = ArkUIGeneratedNativeModule._SystemOps_getResourceId(bundleNamea, moduleNamea, thisSerializer.asBuffer(), thisSerializer.length()); thisSerializer.release(); this._id = retval; - if (this.id > -1 && this.params!.length > 0) { + if (this._id > -1 && this.params!.length > 0) { this.params!.shift(); } } @@ -157,7 +157,7 @@ export function _r(id: number, type: number, bundleName: string, moduleName: str if (id === -1) { return new ArkResource(null, bundleName, moduleName, ...params); } - return new ArkResource(id as long, type as int32, bundleName, moduleName, ...params); + return new ArkResource(id.toLong(), type.toInt(), bundleName, moduleName, ...params); } export function _rawfile(id: number, type: number, bundleName: string, moduleName: string, ...params: Array): Resource { const name: string = params[0] as string; diff --git a/arkoala-arkts/arkui/src/stateManagement/base/observeSingleton.ts b/arkoala-arkts/arkui/src/stateManagement/base/observeSingleton.ts index 3ad78d85e9d3c024d2b5188342b8f95352ea0279..2c3296cfa67d7fa43c14944d86cbb744008ce22d 100644 --- a/arkoala-arkts/arkui/src/stateManagement/base/observeSingleton.ts +++ b/arkoala-arkts/arkui/src/stateManagement/base/observeSingleton.ts @@ -36,9 +36,7 @@ export class ObserveSingleton implements IObserve { public renderingComponentRef?: ITrackedDecoratorRef; private monitorPathRefsChanged_ = new Set>(); private computedPropRefsChanged_ = new Set>(); - private finalizationRegistry = new FinalizationRegistry>( - this.finalizeComputedAndMonitorPath - ); + private finalizationRegistry: FinalizationRegistry>; private reverseBindingRefsToSet_ = new Map, Set>>(); get renderingComponent(): number { @@ -58,7 +56,11 @@ export class ObserveSingleton implements IObserve { } public _renderingId: RenderIdType | undefined = ObserveSingleton.InvalidRenderId; - constructor() {} + constructor() { + this.finalizationRegistry = new FinalizationRegistry>( + this.finalizeComputedAndMonitorPath + ); + } public castToIObservedObject(obj: T): IObservedObject | undefined { return obj && typeof obj === 'object' && StateMgmtTool.isIObservedObject(obj as Object) diff --git a/arkoala-arkts/arkui/src/stateManagement/decoratorImpl/decoratorComputed.ts b/arkoala-arkts/arkui/src/stateManagement/decoratorImpl/decoratorComputed.ts index 328758e76b34ed3500d17c620d9cd14674055ff1..d6507ebcbc86153e288ace88bcfa43500e7a96cf 100644 --- a/arkoala-arkts/arkui/src/stateManagement/decoratorImpl/decoratorComputed.ts +++ b/arkoala-arkts/arkui/src/stateManagement/decoratorImpl/decoratorComputed.ts @@ -81,7 +81,7 @@ export class ComputedDecoratedVariable implements IComputedDecoratedVariable< let newValue: T; try { newValue = this.computedLambda_(); - } catch (e: Exception) { + } catch (e) { StateMgmtConsole.log(`@Computed Exception caught for ${this.varName}: ${e.toString()}.`); throw e; } finally { diff --git a/arkoala-arkts/arkui/src/stateManagement/decoratorImpl/decoratorMonitor.ts b/arkoala-arkts/arkui/src/stateManagement/decoratorImpl/decoratorMonitor.ts index e40f5dc0d591ef0c722685e0f45e242a87f04517..36e4ce4ba8ed86790a48f29176fb94e0c11afc10 100644 --- a/arkoala-arkts/arkui/src/stateManagement/decoratorImpl/decoratorMonitor.ts +++ b/arkoala-arkts/arkui/src/stateManagement/decoratorImpl/decoratorMonitor.ts @@ -60,7 +60,7 @@ export class MonitorFunctionDecorator implements IMonitorDecoratedVariable, IMon } try { this.monitorFunction_(this); - } catch (e: Exception) { + } catch (e) { StateMgmtConsole.log(`Error caught while executing @Monitor function: '${e}'`); } finally { this.values_.forEach((monitorValue: MonitorValueInternal) => { diff --git a/arkoala-arkts/arkui/src/stateManagement/storage/storageBase.ts b/arkoala-arkts/arkui/src/stateManagement/storage/storageBase.ts index 2c212c49872d68ade44352009137a6c6dadbdbf1..1dcd2df171af872dfc308f1d82cd288a186a40a8 100644 --- a/arkoala-arkts/arkui/src/stateManagement/storage/storageBase.ts +++ b/arkoala-arkts/arkui/src/stateManagement/storage/storageBase.ts @@ -28,14 +28,15 @@ export interface IStorageProperty { export class StorageProperty extends StateDecoratedVariable implements IDecoratedV1Variable, IPropRefCounter { private refRegistrations_: Set = new Set(); - private finalizationRegistry_: FinalizationRegistry = new FinalizationRegistry( - (registrationId: WatchIdType) => { - this.__unregister(registrationId); - } - ); + private finalizationRegistry_: FinalizationRegistry; constructor(propName: string, initValue: T) { super(null, propName, initValue); + this.finalizationRegistry_= new FinalizationRegistry( + (registrationId: WatchIdType) => { + this.__unregister(registrationId); + } + ); } public mkRef(propertyNameInAppStorage: string, ttype: Type): SubscribedAbstractProperty {