diff --git a/cli/emscripten-version b/cli/emscripten-version index 8f4c02d6..199eda56 100644 --- a/cli/emscripten-version +++ b/cli/emscripten-version @@ -1 +1 @@ -2.0.24 +3.1.25 diff --git a/cli/src/wasm.rs b/cli/src/wasm.rs index 9689245d..f31ac2d2 100644 --- a/cli/src/wasm.rs +++ b/cli/src/wasm.rs @@ -83,6 +83,8 @@ pub fn compile_language_to_wasm(language_dir: &Path, force_docker: bool) -> Resu "-s", "NODEJS_CATCH_EXIT=0", "-s", + "NODEJS_CATCH_REJECTION=0", + "-s", &format!("EXPORTED_FUNCTIONS=[\"_tree_sitter_{}\"]", grammar_name), "-fno-exceptions", "-I", diff --git a/lib/binding_web/exports.json b/lib/binding_web/exports.json index 55f52e96..3fe11cdf 100644 --- a/lib/binding_web/exports.json +++ b/lib/binding_web/exports.json @@ -14,6 +14,7 @@ "__ZNSt3__212basic_stringIwNS_11char_traitsIwEENS_9allocatorIwEEED2Ev", "__ZdlPv", "__Znwm", + "___cxa_atexit", "_abort", "_iswalnum", "_iswalpha", @@ -24,6 +25,7 @@ "_memcmp", "_memcpy", "_memmove", + "_memset", "_strlen", "_towupper", diff --git a/script/build-wasm b/script/build-wasm index 12852583..f95c3f15 100755 --- a/script/build-wasm +++ b/script/build-wasm @@ -77,6 +77,8 @@ fi mkdir -p target/scratch +runtime_methods='stringToUTF16','AsciiToString' + # Use emscripten to generate `tree-sitter.js` and `tree-sitter.wasm` # in the `target/scratch` directory $emcc \ @@ -88,6 +90,7 @@ $emcc \ -s NODEJS_CATCH_EXIT=0 \ -s NODEJS_CATCH_REJECTION=0 \ -s EXPORTED_FUNCTIONS=@${web_dir}/exports.json \ + -s EXPORTED_RUNTIME_METHODS=$runtime_methods \ $emscripten_flags \ -fno-exceptions \ -std=c99 \