diff --git a/js_util_module/util/src/util_js.ts b/js_util_module/util/src/util_js.ts index ec9948ae0e41f5736712ebf26e5f3e2264d65fc3..709813823bc03cac9b4296055978553be5e1d370 100644 --- a/js_util_module/util/src/util_js.ts +++ b/js_util_module/util/src/util_js.ts @@ -1920,6 +1920,17 @@ class Aspect { } } +interface AutoFinalizer { + onFinalization(heldValue: T): void; +} + +class AutoFinalizerCleaner { + static register(obj: AutoFinalizer, heldValue: T) { + let registry = new FinalizationRegistry(obj.onFinalization); + registry.register(obj, heldValue); + } +} + export default { printf: printf, format: format, @@ -1948,4 +1959,5 @@ export default { Type: Type, Aspect: Aspect, StringDecoder: stringdecoder, + AutoFinalizerCleaner: AutoFinalizerCleaner, }; diff --git a/js_util_module/util/tsconfig.json b/js_util_module/util/tsconfig.json index 16b9753181ed218ecd70c76beae99adb86436325..e13ca50c080deca84684c60603a09fbd82fecb97 100644 --- a/js_util_module/util/tsconfig.json +++ b/js_util_module/util/tsconfig.json @@ -1,6 +1,6 @@ { "compilerOptions": { - "target": "ES2017", + "target": "ES2021", "module": "es6", "rootDir": "./src", //"outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If `declaration` is true, also designates a file that bundles all .d.ts output. */