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
+3 -3
View File
@@ -187,7 +187,7 @@ impl Vm {
// 参数初始化抛错/异常结束:恢复调用方上下文后重新抛出。
let exc = self.last_uncaught_value.take().unwrap_or_else(|| match result {
Ok(v) => oxide_builtins::error::create_error(self, &format!("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 = GeneratorPhase::Completed };
@@ -296,7 +296,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_inline_state(saved);
self.native_call_depth -= 1;
let state = unsafe { &mut *state_ptr };
@@ -409,7 +409,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));
let state = unsafe { &mut *state_ptr };
state.phase = GeneratorPhase::Completed;
state.result = JsValue::undefined();