From 252d816459373665c2227c86ba38b82eb4750272 Mon Sep 17 00:00:00 2001 From: Emmanouil Papadeas Date: Sat, 26 Aug 2023 16:20:58 +0300 Subject: [PATCH] Fix `JavaScriptBridge.eval()` never returning PackedByteArray It wrongly returned 20 on array buffers, which used to be the enumerator value of Godot 3.x's type PoolByteArray, and now is the value of type Color, while it should return 29 which is the enumerator value for PackedByteArray. (cherry picked from commit c662491bd4da857d641ff5fcb8a55ae0764a243a) --- platform/web/js/libs/library_godot_javascript_singleton.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/platform/web/js/libs/library_godot_javascript_singleton.js b/platform/web/js/libs/library_godot_javascript_singleton.js index dafc01a1fdf..1f3633461ba 100644 --- a/platform/web/js/libs/library_godot_javascript_singleton.js +++ b/platform/web/js/libs/library_godot_javascript_singleton.js @@ -109,7 +109,7 @@ const GodotJSWrapper = { return 2; // INT } GodotRuntime.setHeapValue(p_exchange, p_val, 'double'); - return 3; // REAL + return 3; // FLOAT } else if (type === 'string') { const c_str = GodotRuntime.allocString(p_val); GodotRuntime.setHeapValue(p_exchange, c_str, '*'); @@ -313,7 +313,7 @@ const GodotEval = { case 'number': GodotRuntime.setHeapValue(p_union_ptr, eval_ret, 'double'); - return 3; // REAL + return 3; // FLOAT case 'string': GodotRuntime.setHeapValue(p_union_ptr, GodotRuntime.allocString(eval_ret), '*'); @@ -333,7 +333,7 @@ const GodotEval = { const func = GodotRuntime.get_func(p_callback); const bytes_ptr = func(p_byte_arr, p_byte_arr_write, eval_ret.length); HEAPU8.set(eval_ret, bytes_ptr); - return 20; // POOL_BYTE_ARRAY + return 29; // PACKED_BYTE_ARRAY } break;