This is an automated email from the ASF dual-hosted git repository.

syfeng pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tvm.git


The following commit(s) were added to refs/heads/main by this push:
     new 467528ac87 Revert "[Unity][WEB] Temp disable wasm exception (#16444)" 
(#16527)
467528ac87 is described below

commit 467528ac87f511852411d15cc93a015703f5619d
Author: Tianqi Chen <[email protected]>
AuthorDate: Tue Feb 6 08:47:47 2024 -0500

    Revert "[Unity][WEB] Temp disable wasm exception (#16444)" (#16527)
    
    This reverts commit 61d952c701a8c03e2e897e357e1eed4e79d3269f.
    
    Previously this was disabled because ci-wasm wasn't updated this PR
    re-enable it.
---
 python/tvm/contrib/emcc.py         |  4 +---
 web/Makefile                       |  4 +---
 web/package.json                   |  2 +-
 web/tests/node/test_packed_func.js | 15 +++++++++++++++
 4 files changed, 18 insertions(+), 7 deletions(-)

diff --git a/python/tvm/contrib/emcc.py b/python/tvm/contrib/emcc.py
index d4624a3469..d6cdf22a22 100644
--- a/python/tvm/contrib/emcc.py
+++ b/python/tvm/contrib/emcc.py
@@ -42,9 +42,7 @@ def create_tvmjs_wasm(output, objects, options=None, 
cc="emcc"):
     cmd += ["-O3"]
     cmd += ["-std=c++17"]
     cmd += ["--no-entry"]
-    # temp disable for backward compact
-    # can enable after emsdk updates
-    # cmd += ["-fwasm-exception"]
+    cmd += ["-fwasm-exception"]
     cmd += ["-s", "WASM_BIGINT=1"]
     cmd += ["-s", "ERROR_ON_UNDEFINED_SYMBOLS=0"]
     cmd += ["-s", "STANDALONE_WASM=1"]
diff --git a/web/Makefile b/web/Makefile
index 9ed041e829..bd5e6cbf2b 100644
--- a/web/Makefile
+++ b/web/Makefile
@@ -27,9 +27,7 @@ all: dist/wasm/tvmjs_runtime.wasm 
dist/wasm/tvmjs_runtime.wasi.js src/tvmjs_runt
 
 EMCC = emcc
 
-EMCC_CFLAGS = $(INCLUDE_FLAGS) -O3 -std=c++17 -Wno-ignored-attributes
-
-# -fwasm-exceptions
+EMCC_CFLAGS = $(INCLUDE_FLAGS) -O3 -std=c++17 -Wno-ignored-attributes 
-fwasm-exceptions
 
 EMCC_LDFLAGS = --no-entry -s WASM_BIGINT=1 -s ALLOW_MEMORY_GROWTH=1 -s 
STANDALONE_WASM=1\
  -s ERROR_ON_UNDEFINED_SYMBOLS=0 --pre-js emcc/preload.js
diff --git a/web/package.json b/web/package.json
index 8a08be6d91..2e8de05971 100644
--- a/web/package.json
+++ b/web/package.json
@@ -13,7 +13,7 @@
     "build": "rollup -c",
     "lint": "eslint -c .eslintrc.json .",
     "typedoc": "typedoc src/index.ts --plugin typedoc-plugin-missing-exports",
-    "test": "node node_modules/.bin/jest",
+    "test": "node --experimental-wasm-eh node_modules/.bin/jest",
     "bundle": "npm run build && cp lib/index.js dist/index.js && cp 
lib/index.js dist/tvmjs.bundle.js",
     "example": "npm run bundle && node apps/node/example.js",
     "example:wasi": "npm run bundle && node 
--experimental-wasi-unstable-preview1 --experimental-wasm-bigint 
apps/node/wasi_example.js",
diff --git a/web/tests/node/test_packed_func.js 
b/web/tests/node/test_packed_func.js
index 04b91c861d..f5c0ac6c2f 100644
--- a/web/tests/node/test_packed_func.js
+++ b/web/tests/node/test_packed_func.js
@@ -126,6 +126,21 @@ test("RegisterGlobal", () => {
   tvm.endScope();
 });
 
+test("ExceptionPassing", () => {
+  tvm.beginScope();
+  tvm.registerFunc("throw_error", function (msg) {
+    throw Error(msg);
+  });
+  let f = tvm.getGlobalFunc("throw_error");
+  try {
+    f("error-xyz");
+    throw Error("error not caught");
+  } catch (error) {
+    assert(error.message.indexOf("error-xyz") != -1);
+  }
+  tvm.endScope();
+});
+
 test("NDArrayCbArg", () => {
   tvm.beginScope();
   let use_count = tvm.getGlobalFunc("testing.object_use_count");

Reply via email to