diff options
| -rw-r--r-- | ports/webassembly/proxy_c.c | 5 | ||||
| -rw-r--r-- | ports/webassembly/proxy_js.js | 7 | ||||
| -rw-r--r-- | tests/ports/webassembly/py_proxy_to_js.mjs.exp | 4 | ||||
| -rw-r--r-- | tests/ports/webassembly/run_python_async.mjs.exp | 4 |
4 files changed, 13 insertions, 7 deletions
diff --git a/ports/webassembly/proxy_c.c b/ports/webassembly/proxy_c.c index 3097d6d3a..f8d6d8530 100644 --- a/ports/webassembly/proxy_c.c +++ b/ports/webassembly/proxy_c.c @@ -49,6 +49,7 @@ enum { }; enum { + PROXY_KIND_JS_UNDEFINED = 0, PROXY_KIND_JS_NULL = 1, PROXY_KIND_JS_BOOLEAN = 2, PROXY_KIND_JS_INTEGER = 3, @@ -78,7 +79,9 @@ static inline mp_obj_t proxy_c_get_obj(uint32_t c_ref) { } mp_obj_t proxy_convert_js_to_mp_obj_cside(uint32_t *value) { - if (value[0] == PROXY_KIND_JS_NULL) { + if (value[0] == PROXY_KIND_JS_UNDEFINED) { + return mp_const_none; + } else if (value[0] == PROXY_KIND_JS_NULL) { return mp_const_none; } else if (value[0] == PROXY_KIND_JS_BOOLEAN) { return mp_obj_new_bool(value[1]); diff --git a/ports/webassembly/proxy_js.js b/ports/webassembly/proxy_js.js index 042deb7b0..05d0f2da4 100644 --- a/ports/webassembly/proxy_js.js +++ b/ports/webassembly/proxy_js.js @@ -38,6 +38,7 @@ const PROXY_KIND_MP_GENERATOR = 7; const PROXY_KIND_MP_OBJECT = 8; const PROXY_KIND_MP_JSPROXY = 9; +const PROXY_KIND_JS_UNDEFINED = 0; const PROXY_KIND_JS_NULL = 1; const PROXY_KIND_JS_BOOLEAN = 2; const PROXY_KIND_JS_INTEGER = 3; @@ -109,7 +110,9 @@ function proxy_call_python(target, argumentsList) { function proxy_convert_js_to_mp_obj_jsside(js_obj, out) { let kind; - if (js_obj === null) { + if (js_obj === undefined) { + kind = PROXY_KIND_JS_UNDEFINED; + } else if (js_obj === null) { kind = PROXY_KIND_JS_NULL; } else if (typeof js_obj === "boolean") { kind = PROXY_KIND_JS_BOOLEAN; @@ -185,7 +188,7 @@ function proxy_convert_mp_to_js_obj_jsside(value) { } if (kind === PROXY_KIND_MP_NONE) { // None - obj = null; + obj = undefined; } else if (kind === PROXY_KIND_MP_BOOL) { // bool obj = Module.getValue(value + 4, "i32") ? true : false; diff --git a/tests/ports/webassembly/py_proxy_to_js.mjs.exp b/tests/ports/webassembly/py_proxy_to_js.mjs.exp index 279df7bdf..3fd38c2b5 100644 --- a/tests/ports/webassembly/py_proxy_to_js.mjs.exp +++ b/tests/ports/webassembly/py_proxy_to_js.mjs.exp @@ -1,4 +1,4 @@ false 1 true [ 1, 2, 3 ] -true [ null, true, 1.2 ] -true { tuple: [ 1, 2, 3 ], one: 1, list: [ null, true, 1.2 ] } +true [ undefined, true, 1.2 ] +true { tuple: [ 1, 2, 3 ], one: 1, list: [ undefined, true, 1.2 ] } diff --git a/tests/ports/webassembly/run_python_async.mjs.exp b/tests/ports/webassembly/run_python_async.mjs.exp index f441bc5cf..827f853b9 100644 --- a/tests/ports/webassembly/run_python_async.mjs.exp +++ b/tests/ports/webassembly/run_python_async.mjs.exp @@ -23,7 +23,7 @@ py 1 setTimeout resolved resolved value: 123 py 2 -2 null +2 undefined = TEST 4 ========== 1 py 1 @@ -35,4 +35,4 @@ py 3 setTimeout B resolved resolved value: 456 py 4 -2 null +2 undefined |
