fix: 补 Function 构造器残面与 TypedArray/Atomics 边

This commit is contained in:
2026-09-24 21:19:27 +00:00
parent 963c91ba75
commit 2dc119874d
8 changed files with 137 additions and 11 deletions
@@ -363,15 +363,22 @@ fn eval_pause_returns_undefined() {
);
}
/// pause:零参语义不校验(true/小数/NaN/串 均不抛)。
/// pause:非整数 iterationNumber(true/小数/NaN/串/对象)→ TypeError(零参与
/// 整数不受影响,见 eval_pause_returns_undefined)。
#[test]
fn eval_pause_no_validation() {
fn eval_pause_non_integral_throws() {
let mut vm = Vm::new();
truthy(
&mut vm,
"Atomics.pause(true) === undefined && Atomics.pause(42.42) === undefined \
&& Atomics.pause(NaN) === undefined && Atomics.pause('42') === undefined \
&& Atomics.pause({}) === undefined",
&format!(
"(function () {{ \
return {} && {} && {} && {} && {}; }})()",
throws("Atomics.pause(true)", "TypeError"),
throws("Atomics.pause(42.42)", "TypeError"),
throws("Atomics.pause(NaN)", "TypeError"),
throws("Atomics.pause('42')", "TypeError"),
throws("Atomics.pause({})", "TypeError"),
),
);
}