@@ -289,10 +289,11 @@ void proxy_c_to_js_get_dict(uint32_t c_ref, uint32_t *out) {
289289
290290static const mp_obj_fun_builtin_var_t resume_obj ;
291291
292- EM_JS (void , js_then_resolve , (uint32_t * resolve , uint32_t * reject ), {
292+ EM_JS (void , js_then_resolve , (uint32_t * ret_value , uint32_t * resolve , uint32_t * reject ), {
293+ const ret_value_js = proxy_convert_mp_to_js_obj_jsside (ret_value );
293294 const resolve_js = proxy_convert_mp_to_js_obj_jsside (resolve );
294295 const reject_js = proxy_convert_mp_to_js_obj_jsside (reject );
295- resolve_js (null );
296+ resolve_js (ret_value_js );
296297});
297298
298299EM_JS (void , js_then_reject , (uint32_t * resolve , uint32_t * reject ), {
@@ -321,7 +322,9 @@ static mp_obj_t proxy_resume_execute(mp_obj_t self_in, mp_obj_t value, mp_obj_t
321322 proxy_convert_mp_to_js_obj_cside (reject , out_reject );
322323
323324 if (ret_kind == MP_VM_RETURN_NORMAL ) {
324- js_then_resolve (out_resolve , out_reject );
325+ uint32_t out_ret_value [PVN ];
326+ proxy_convert_mp_to_js_obj_cside (ret_value , out_ret_value );
327+ js_then_resolve (out_ret_value , out_resolve , out_reject );
325328 return mp_const_none ;
326329 } else if (ret_kind == MP_VM_RETURN_YIELD ) {
327330 // ret_value should be a JS thenable
0 commit comments