fix: 异常兜底路径经 create_from_text 恢复错误类型(不塌缩普通 Error)

This commit is contained in:
爱特每羊队
2026-08-10 20:19:51 +08:00
parent e8506e6f29
commit 717e927057
8 changed files with 65 additions and 59 deletions
+5 -5
View File
@@ -176,7 +176,7 @@ impl Vm {
Ok(v) => {
oxide_builtins::error::create_error(self, &format!("async generator initialization failed: {v:?}"))
}
Err(e) => oxide_builtins::error::create_error(self, &e),
Err(e) => oxide_builtins::error::create_from_text(self, &e),
});
let kind = self.thrown_error_kind(exc);
unsafe { (*state_ptr).phase = AsyncGenPhase::Completed };
@@ -221,7 +221,7 @@ impl Vm {
let exc = self
.last_uncaught_value
.take()
.unwrap_or_else(|| oxide_builtins::error::create_error(self, &e));
.unwrap_or_else(|| oxide_builtins::error::create_from_text(self, &e));
return Err(exc);
}
}
@@ -337,7 +337,7 @@ impl Vm {
let exc = self
.last_uncaught_value
.take()
.unwrap_or_else(|| oxide_builtins::error::create_error(self, &e));
.unwrap_or_else(|| oxide_builtins::error::create_from_text(self, &e));
self.restore_async_gen_flags(prev_ctx, prev_gen_ctx, prev_gd, prev_ad, prev_agd);
return self.finish_async_gen_exc(state_ptr, saved, gen_val, exc);
}
@@ -467,7 +467,7 @@ impl Vm {
let exc = self
.last_uncaught_value
.take()
.unwrap_or_else(|| oxide_builtins::error::create_error(self, &e));
.unwrap_or_else(|| oxide_builtins::error::create_from_text(self, &e));
self.finish_async_gen_exc(state_ptr, saved, gen_val, exc)
}
}
@@ -629,7 +629,7 @@ fn async_gen_await_resume_closure(vm: &mut Vm, args: &[u8]) -> NativeResult {
}
match vm.resume_async_generator(ctx) {
Ok(()) => NativeResult::Ok(JsValue::undefined()),
Err(e) => NativeResult::Err(oxide_builtins::error::create_error(vm, &e)),
Err(e) => NativeResult::Err(oxide_builtins::error::create_from_text(vm, &e)),
}
}