From ef54f013c336cf137dadfd8621c553bba8a27625 Mon Sep 17 00:00:00 2001 From: reuk Date: Wed, 19 Nov 2025 11:10:49 +0000 Subject: [PATCH] QuickJS: Update header from CHOC upstream, and disable CONFIG_STACK_CHECK The CONFIG_STACK_CHECK option doesn't work correctly when the QuickJS engine is initialised on one thread and then later accessed by another thread, which is a usage pattern implicitly supported by JUCE. --- .../choc/javascript/choc_javascript_QuickJS.h | 5 ++--- modules/juce_javascript/juce_javascript.cpp | 2 ++ 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/modules/juce_javascript/choc/javascript/choc_javascript_QuickJS.h b/modules/juce_javascript/choc/javascript/choc_javascript_QuickJS.h index 99101236f1..0617307303 100644 --- a/modules/juce_javascript/choc/javascript/choc_javascript_QuickJS.h +++ b/modules/juce_javascript/choc/javascript/choc_javascript_QuickJS.h @@ -9428,9 +9428,8 @@ int JS_SetModuleExportList(JSContext *ctx, JSModuleDef *m, //#define CONFIG_ATOMICS #endif -#if ! (defined(EMSCRIPTEN) || _MSC_VER) -/* enable stack limitation */ -#define CONFIG_STACK_CHECK +#if ! (defined(EMSCRIPTEN) || CHOC_QUICKJS_NO_STACK_CHECK || _MSC_VER) + #define CONFIG_STACK_CHECK #endif // Avoid enabling the stack check if the sanitiser is active, as it causes all diff --git a/modules/juce_javascript/juce_javascript.cpp b/modules/juce_javascript/juce_javascript.cpp index a76ee357cb..b4a0bf707d 100644 --- a/modules/juce_javascript/juce_javascript.cpp +++ b/modules/juce_javascript/juce_javascript.cpp @@ -48,6 +48,8 @@ #undef CONFIG_BIGNUM #endif +#define CHOC_QUICKJS_NO_STACK_CHECK 1 + #define choc juce::detail::choc #include #undef choc