about summary refs log tree commit diff stats
path: root/lib/monoucha0/monoucha/javascript.nim
diff options
context:
space:
mode:
authorbptato <nincsnevem662@gmail.com>2025-02-20 18:48:05 +0100
committerbptato <nincsnevem662@gmail.com>2025-02-20 18:48:05 +0100
commita1b027140bde18a6d47ad863c92bbbf189243d8b (patch)
tree3f1e99e486df5a0b470e6f07144a3fbb96fbc9db /lib/monoucha0/monoucha/javascript.nim
parent7342f552bffb87acc184a959b28559fae03c9782 (diff)
downloadchawan-a1b027140bde18a6d47ad863c92bbbf189243d8b.tar.gz
javascript: fix finalizers with non-RootRef derived objects
We were calling the wrong getTypePtr.

Also, fix some manual tests.
Diffstat (limited to 'lib/monoucha0/monoucha/javascript.nim')
-rw-r--r--lib/monoucha0/monoucha/javascript.nim4
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/monoucha0/monoucha/javascript.nim b/lib/monoucha0/monoucha/javascript.nim
index 1f921d5d..90588ddf 100644
--- a/lib/monoucha0/monoucha/javascript.nim
+++ b/lib/monoucha0/monoucha/javascript.nim
@@ -1280,13 +1280,13 @@ template jsDestructor*[U](T: typedesc[ref U]) =
   static:
     jsDtors.incl($T)
   proc `=destroy`(obj: var U) =
-    nim_finalize_for_js(addr obj, getTypePtr(obj))
+    nim_finalize_for_js(addr obj, getTypePtr(T))
 
 template jsDestructor*(T: typedesc[object]) =
   static:
     jsDtors.incl($T)
   proc `=destroy`(obj: var T) =
-    nim_finalize_for_js(addr obj, getTypePtr(obj))
+    nim_finalize_for_js(addr obj, getTypePtr(T))
 
 proc bindConstructor(stmts: NimNode; info: var RegistryInfo): NimNode =
   if info.ctorFun != nil: