summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/ports/webassembly/await_error_handling.mjs22
-rw-r--r--tests/ports/webassembly/await_error_handling.mjs.exp5
2 files changed, 27 insertions, 0 deletions
diff --git a/tests/ports/webassembly/await_error_handling.mjs b/tests/ports/webassembly/await_error_handling.mjs
new file mode 100644
index 000000000..067bc2513
--- /dev/null
+++ b/tests/ports/webassembly/await_error_handling.mjs
@@ -0,0 +1,22 @@
+// Test await'ing on a JavaScript async function that throws a JavaScript Error.
+
+const mp = await (await import(process.argv[2])).loadMicroPython();
+
+globalThis.foo = async () => {
+ console.log(2);
+ throw Error("test");
+};
+
+await mp.runPythonAsync(`
+import js, jsffi
+print(1)
+try:
+ await js.foo()
+except jsffi.JsException as er:
+ error = er
+print(error)
+print(3)
+`);
+
+const error = mp.globals.get("error");
+console.log(error instanceof Error, error.name, error.message);
diff --git a/tests/ports/webassembly/await_error_handling.mjs.exp b/tests/ports/webassembly/await_error_handling.mjs.exp
new file mode 100644
index 000000000..149f8914d
--- /dev/null
+++ b/tests/ports/webassembly/await_error_handling.mjs.exp
@@ -0,0 +1,5 @@
+1
+2
+(<JsProxy 6>, 'Error', 'test')
+3
+true Error test