[TS] log when an exception is thrown inside of a trait call
authorMatt Corallo <git@bluematt.me>
Fri, 31 Mar 2023 17:25:48 +0000 (17:25 +0000)
committerMatt Corallo <git@bluematt.me>
Wed, 5 Apr 2023 17:36:18 +0000 (17:36 +0000)
This was what #125 was supposed to be about, but the issue
description was overly vague.

typescript_strings.py

index 5d5eb814c79ac28e95381e42f3608a8571af60a5..89aa57a22b2d3f29bd68bbf45809f3ec2d5a3afe 100644 (file)
@@ -1638,7 +1638,14 @@ js_invoke = function(obj_ptr: number, fn_id: number, arg1: bigint|number, arg2:
                console.error("Got function call with id " + fn_id + " on incorrect JS object: " + obj);
                throw new Error("Got function call with id " + fn_id + " on incorrect JS object: " + obj);
        }
-       const ret = fn.value.bind(obj)(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10);
+       var ret;
+       try {
+               ret = fn.value.bind(obj)(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10);
+       } catch (e) {
+               console.error("Got an exception calling function with id " + fn_id + "! This is fatal.");
+               console.error(e);
+               throw e;
+       }
        if (ret === undefined || ret === null) return BigInt(0);
        return BigInt(ret);
 }""")