chore: 全仓 rustfmt 格式化归拢

This commit is contained in:
2026-08-16 12:50:36 +08:00
parent 4572ecffaa
commit 5df04a8e58
28 changed files with 166 additions and 247 deletions
@@ -193,8 +193,16 @@ fn function_symbol_has_instance_bound() {
fn function_symbol_has_instance_poisoned_prototype_throws() {
let mut vm = Vm::new();
// 可调用但 prototype 非对象 → TypeError(OrdinaryHasInstance 唯一抛错点)。
let err = eval(&mut vm, "var f = function(){}; f.prototype = 1; try { f[Symbol.hasInstance]({}) } catch (e) { e }").unwrap();
let name = eval(&mut vm, "var f = function(){}; f.prototype = null; try { f[Symbol.hasInstance]({}) } catch (e) { e.name }").unwrap();
let err = eval(
&mut vm,
"var f = function(){}; f.prototype = 1; try { f[Symbol.hasInstance]({}) } catch (e) { e }",
)
.unwrap();
let name = eval(
&mut vm,
"var f = function(){}; f.prototype = null; try { f[Symbol.hasInstance]({}) } catch (e) { e.name }",
)
.unwrap();
let _ = err;
assert_eq!(vm.lookup_str(name).unwrap_or_default(), "TypeError");
}
@@ -208,7 +216,10 @@ fn bound_function_construct_semantics() {
("function C(v){ this.v = v; } var B = C.bind({}, 1); new B(2).v", 1.0),
("function C(a, b){ this.s = a + b; } var B = C.bind(null, 2); new B(3).s", 5.0),
// 多层 bound 链:绑定实参按 内层先、外层后 拼接。
("function C(v){ this.v = v; } var B = C.bind({}, 1); var D = B.bind({}, 2); new D().v", 1.0),
(
"function C(v){ this.v = v; } var B = C.bind({}, 1); var D = B.bind({}, 2); new D().v",
1.0,
),
// native 构造器 target。
("var arr = Array.bind(null); new arr(3).length", 3.0),
];
@@ -211,7 +211,8 @@ fn has_instance_preserves_ordinary_has_instance() {
#[test]
fn symbol_keys_stay_distinct() {
let mut vm = Vm::new();
let result = eval(&mut vm, "var s1=Symbol('a'), s2=Symbol('b'); var o={}; o[s1]=1; o[s2]=2; [o[s1],o[s2]]").unwrap();
let result =
eval(&mut vm, "var s1=Symbol('a'), s2=Symbol('b'); var o={}; o[s1]=1; o[s2]=2; [o[s1],o[s2]]").unwrap();
let arr = unsafe { &*result.as_js_object_ptr() };
assert_eq!(arr.get_prop_at(0).as_int(), 1);
assert_eq!(arr.get_prop_at(1).as_int(), 2);
@@ -248,7 +249,11 @@ fn symbol_keys_excluded_from_for_in() {
#[test]
fn get_own_property_symbols_roundtrip() {
let mut vm = Vm::new();
let result = eval(&mut vm, "var s=Symbol('x'); var o={}; o[s]=7; var k=Object.getOwnPropertySymbols(o)[0]; o[k]").unwrap();
let result = eval(
&mut vm,
"var s=Symbol('x'); var o={}; o[s]=7; var k=Object.getOwnPropertySymbols(o)[0]; o[k]",
)
.unwrap();
assert_eq!(result.as_int(), 7);
}
+3 -9
View File
@@ -67,9 +67,8 @@ fn reset_preserves_session_strings_after_runtime_gc() {
#[test]
fn strings_only_then_reset_keeps_global_subtree_strings() {
let mut vm = vm_with_threshold(4096);
let first = compile(
"globalThis.kept = { s: 'he' + 'llo' }; var t; for (var i = 0; i < 500000; i++) { t = 'x' + i; } 0",
);
let first =
compile("globalThis.kept = { s: 'he' + 'llo' }; var t; for (var i = 0; i < 500000; i++) { t = 'x' + i; } 0");
vm.run(&first).expect("run1");
assert!(vm.session_gc_stats().total_collections > 0, "run1 应触发执行期字符串 GC");
vm.reset();
@@ -92,12 +91,7 @@ fn regexp_exec_strings_survive_runtime_gc() {
);
let result = vm.run(&module).expect("run");
let text = vm.lookup_str(result).expect("exec 结果应为字符串").to_string();
let expected = format!(
"{}|{}|{}",
"a".repeat(500) + &"b".repeat(500),
"a".repeat(500),
"b".repeat(500)
);
let expected = format!("{}|{}|{}", "a".repeat(500) + &"b".repeat(500), "a".repeat(500), "b".repeat(500));
assert_eq!(text, expected);
assert!(vm.session_gc_stats().total_collections > 0, "执行期应触发字符串 GC");
}
@@ -108,4 +108,3 @@ fn yield_star_inner_without_return() {
"1,9,true"
);
}
+1 -4
View File
@@ -125,10 +125,7 @@ fn eval_computed_compound_assign_getter_order() {
fn eval_computed_compound_assign_read_error_skips_rhs() {
// 读取抛错时 RHS 不求值,其副作用不泄漏。
assert_eq!(eval("var h={get a(){throw 1}}; try{h[\"a\"]+=1}catch(e){e}"), "1");
assert_eq!(
eval("var side=0; var h={get a(){throw 1}}; try{h[\"a\"]+=(side=99)}catch(e){} side"),
"0"
);
assert_eq!(eval("var side=0; var h={get a(){throw 1}}; try{h[\"a\"]+=(side=99)}catch(e){} side"), "0");
}
#[test]