fix: 修复 throw 未支持静默失败问题

This commit is contained in:
爱特每羊队
2026-06-07 19:35:12 +08:00
parent 3e8b601121
commit 77bf00233b
4 changed files with 15 additions and 0 deletions
+3
View File
@@ -195,6 +195,9 @@ impl Compiler {
// FD emits LOAD_CONST(BytecodeFunc) + STORE_VAR
ctx.projected_pc += 2;
}
Statement::ThrowStatement(_) => {
// throw not yet implemented; emit pass will error
}
_ => {}
}
}
+1
View File
@@ -371,6 +371,7 @@ impl Compiler {
Ok(None)
}
Statement::ThrowStatement(_) => Err("throw statement not supported".into()),
_ => Ok(None),
}
}
+3
View File
@@ -116,6 +116,9 @@ fn hash_statement(stmt: &Statement, h: &mut rustc_hash::FxHasher) {
}
}
}
Statement::ThrowStatement(_ts) => {
14u8.hash(h);
}
_ => {
std::mem::discriminant(stmt).hash(h);
}
@@ -56,3 +56,11 @@ fn regression_recursion_depth_limit() {
"vm error: RangeError: Maximum call stack size exceeded"
);
}
#[test]
fn regression_throw_statement_errors() {
assert_eq!(
eval("throw 'error'"),
"compile error: throw statement not supported"
);
}