perf: 内置函数跳过冗余哈希校验

This commit is contained in:
爱特每羊队
2026-06-30 22:03:07 +08:00
parent b944aa2832
commit aa7e67bd5a
2 changed files with 31 additions and 4 deletions
+4 -4
View File
@@ -245,7 +245,7 @@ pub fn array_pop<H: VmHost>(vm: &mut H, args: &[u8]) -> NativeResult {
return NativeResult::Ok(JsValue::undefined());
}
let last = arr.get_prop_at(len - 1);
arr.set_prop_count(len - 1);
arr.set_prop_count_fast(len - 1);
NativeResult::Ok(last)
}
@@ -335,7 +335,7 @@ pub fn array_splice<H: VmHost>(vm: &mut H, args: &[u8]) -> NativeResult {
}
let new_len = n + insert_count - delete_count;
arr.set_prop_count(new_len);
arr.set_prop_count_fast(new_len);
let removed_arr = create_new_array(vm, removed.len());
unsafe {
@@ -899,7 +899,7 @@ pub fn array_shift<H: VmHost>(vm: &mut H, args: &[u8]) -> NativeResult {
let v = arr.get_prop_at(i);
arr.set_prop_at(i - 1, v);
}
arr.set_prop_count(len - 1);
arr.set_prop_count_fast(len - 1);
NativeResult::Ok(first)
}
@@ -917,7 +917,7 @@ pub fn array_unshift<H: VmHost>(vm: &mut H, args: &[u8]) -> NativeResult {
arr.set_prop_at(j, vm.reg(arg_reg));
}
let new_len = len as usize + n_items;
arr.set_prop_count(new_len);
arr.set_prop_count_fast(new_len);
NativeResult::Ok(JsValue::int(new_len as i32))
}