bugfix with untyped arguments
authorBrendan Hansen <brendan.f.hansen@gmail.com>
Thu, 9 Sep 2021 14:15:02 +0000 (09:15 -0500)
committerBrendan Hansen <brendan.f.hansen@gmail.com>
Thu, 9 Sep 2021 14:15:02 +0000 (09:15 -0500)
bin/onyx
modules/js_events/js_events.js
src/utils.c

index 0dd04a8bae64e6e891461ae585b16f5496c452c1..bab7229bc9f7453430107ca2447e286db48a3b9a 100755 (executable)
Binary files a/bin/onyx and b/bin/onyx differ
index fe0d0fb779691acfa4ec475f6371aa575254cdf1..2679c3e29ece6a9b0bed75f75eaff45256e07303 100644 (file)
@@ -171,7 +171,7 @@ window.ONYX_MODULES.push({
 
         WASM_U8.set(u8_data, bufferptr);
 
-        if (namelen >= file_data.name.length) {
+        if (nameptr != 0 && namelen <= file_data.name.length) {
             var name_data = new TextEncoder().encode(file_data.name);
             WASM_U8.set(name_data, nameptr);
         }
index 2b2feb1fb089845a129525d14f4bc93483748ed3..fe4722c69c2c873daff0b521d19baef83af7f1f0 100644 (file)
@@ -846,6 +846,14 @@ b32 check_arguments_against_type(Arguments* args, TypeFunction* func_type, VarAr
 
                 if (variadic_type->id == any_type_id) {
                     resolve_expression_type(arg_arr[arg_pos]->value);
+                    if (arg_arr[arg_pos]->value->type == NULL) {
+                        if (error != NULL) {
+                            error->pos = arg_arr[arg_pos]->token->pos;
+                            error->text = "Unable to resolve type of argument.";
+                        }
+                        return 0;
+                    }
+
                     arg_arr[arg_pos]->va_kind = VA_Kind_Any; 
                     break;
                 }