From 37310a308b910d7baca286c9c50c7fd841474422 Mon Sep 17 00:00:00 2001 From: Maurice Heumann Date: Sun, 24 Aug 2025 08:43:23 +0200 Subject: [PATCH] Fix Node.js analyzer --- cmake/compiler-env.cmake | 4 ++++ src/analyzer/analysis.cpp | 4 ++-- src/analyzer/main.cpp | 4 ++-- src/windows-emulator/logger.cpp | 2 +- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/cmake/compiler-env.cmake b/cmake/compiler-env.cmake index 8cd65263..f8b428bd 100644 --- a/cmake/compiler-env.cmake +++ b/cmake/compiler-env.cmake @@ -144,6 +144,10 @@ if(CMAKE_SYSTEM_NAME MATCHES "Emscripten") endif() if(MOMO_EMSCRIPTEN_SUPPORT_NODEJS) + add_compile_definitions( + MOMO_EMSCRIPTEN_SUPPORT_NODEJS=1 + ) + add_link_options( -lnodefs.js -sNODERAWFS=1 -sENVIRONMENT=node diff --git a/src/analyzer/analysis.cpp b/src/analyzer/analysis.cpp index 4d518a6e..29697e4a 100644 --- a/src/analyzer/analysis.cpp +++ b/src/analyzer/analysis.cpp @@ -5,7 +5,7 @@ #include "windows_emulator.hpp" #include -#ifdef OS_EMSCRIPTEN +#if defined(OS_EMSCRIPTEN) && !defined(MOMO_EMSCRIPTEN_SUPPORT_NODEJS) #include #endif @@ -299,7 +299,7 @@ namespace auto& win_emu = *c.win_emu; update_import_access(c, address); -#ifdef OS_EMSCRIPTEN +#if defined(OS_EMSCRIPTEN) && !defined(MOMO_EMSCRIPTEN_SUPPORT_NODEJS) if ((win_emu.get_executed_instructions() % 0x20000) == 0) { debugger::event_context ec{.win_emu = win_emu}; diff --git a/src/analyzer/main.cpp b/src/analyzer/main.cpp index fa79f325..ae019121 100644 --- a/src/analyzer/main.cpp +++ b/src/analyzer/main.cpp @@ -14,7 +14,7 @@ #include #include -#ifdef OS_EMSCRIPTEN +#if defined(OS_EMSCRIPTEN) && !defined(MOMO_EMSCRIPTEN_SUPPORT_NODEJS) #include #endif @@ -275,7 +275,7 @@ namespace }}; std::optional exit_status{}; -#ifdef OS_EMSCRIPTEN +#if defined(OS_EMSCRIPTEN) && !defined(MOMO_EMSCRIPTEN_SUPPORT_NODEJS) const auto _1 = utils::finally([&] { debugger::handle_exit(win_emu, exit_status); // }); diff --git a/src/windows-emulator/logger.cpp b/src/windows-emulator/logger.cpp index a1ffd387..fbd46ffd 100644 --- a/src/windows-emulator/logger.cpp +++ b/src/windows-emulator/logger.cpp @@ -8,7 +8,7 @@ namespace #ifdef _WIN32 #define COLOR(win, posix, web) win using color_type = WORD; -#elif defined(__EMSCRIPTEN__) +#elif defined(__EMSCRIPTEN__) && !defined(MOMO_EMSCRIPTEN_SUPPORT_NODEJS) #define COLOR(win, posix, web) web using color_type = const char*; #else