From abb32d118a1f164a625b0f0f754f6f91e93efd9b Mon Sep 17 00:00:00 2001 From: Ole Morud Date: Fri, 19 Dec 2025 04:09:19 +0100 Subject: [PATCH] Fix Javascript BigInt to Number bug --- chess.js | 14 +------------- wasm-compat.c | 4 ++-- 2 files changed, 3 insertions(+), 15 deletions(-) diff --git a/chess.js b/chess.js index 740669b..c316ba9 100644 --- a/chess.js +++ b/chess.js @@ -22,18 +22,6 @@ const WasmHost = (() => { return { load, getFn }; })(); -/* -static inline struct move wasm_MoveTo_move(uint64_t m) -{ - return (struct move) { - .appeal = (m >> 24) & 0xFF, - .attr = (m >> 16) & 0xFF, - .from = (m >> 8) & 0xFF, - .to = (m >> 0) & 0xFF, - }; -} -*/ - const MoveResult = Object.freeze({ Normal: 0, Check: 1, @@ -217,7 +205,7 @@ const run = async () => { console.log("from:", move.from.fileChar(), move.from.rankChar(), "to:", move.to.fileChar(), move.to.rankChar()); - const mr = wb_move(m); + const mr = wb_move(Number(m)); if (mr == MoveResult.Stalemate || mr == MoveResult.Checkmate) { console.log(_moveResultName[mr]); break; diff --git a/wasm-compat.c b/wasm-compat.c index 110bf1b..07e819a 100644 --- a/wasm-compat.c +++ b/wasm-compat.c @@ -38,11 +38,11 @@ uint64_t wb_search(int8_t max_depth) return move_serialize(sr.move); } -enum move_result wb_move(uint32_t move) +int32_t wb_move(uint32_t move) { struct move m = move_deserialize(move); enum move_result const r = board_move_2(&g_board, m); - return r; + return (int32_t)r; } void wb_init()