style: 格式化 oxide_builtins 六文件消除 fmt 漂移

This commit is contained in:
2026-09-22 00:16:03 +00:00
parent 66387b5638
commit 0eb44413b1
6 changed files with 57 additions and 67 deletions
+1 -3
View File
@@ -509,9 +509,7 @@ pub fn data_view_set_big_uint64<H: VmHost>(vm: &mut H, args: &[u8]) -> NativeRes
/// 取 BigInt 值低 64 位位模式:与 2^64-1 掩码后恒非负且可转 u64。
fn low64<H: VmHost>(vm: &mut H, val: JsValue) -> u64 {
let v = vm.bigint_value(val);
(v & (BigInt::from(u64::MAX)))
.to_u64()
.unwrap_or(u64::MAX)
(v & (BigInt::from(u64::MAX))).to_u64().unwrap_or(u64::MAX)
}
/// `DataView.prototype.toString`:校验 receiver 后返回 `[object DataView]`。
+24 -16
View File
@@ -55,9 +55,7 @@ pub fn walk_own_keys<H: VmHost>(vm: &H, obj: &JsObject) -> Vec<(u32, u32)> {
}
for id in shape_ids.iter().rev() {
if let Some(shape) = vm.kernel_core().shape_forge().get_shape(*id) {
if !is_symbol_key(shape.property_name)
&& !is_private_name_key(shape.property_name)
{
if !is_symbol_key(shape.property_name) && !is_private_name_key(shape.property_name) {
// 绝对存储索引:数组命名属性位于元素区之后。
let store = if obj.is_array() { obj.array_prop_count + pos } else { pos };
keys.push((shape.property_name, store));
@@ -1092,9 +1090,7 @@ pub fn object_get_own_property_descriptors<H: VmHost>(vm: &mut H, args: &[u8]) -
/// # 边界与前提
/// - 空串:仅返回 length 描述符
/// - 非字符串被包值:退化为零键
fn string_exotic_get_own_property_descriptors<H: VmHost>(
vm: &mut H, obj_ptr: *mut JsObject,
) -> NativeResult {
fn string_exotic_get_own_property_descriptors<H: VmHost>(vm: &mut H, obj_ptr: *mut JsObject) -> NativeResult {
let obj = unsafe { &*obj_ptr };
// 取被包字符串值:优先 boxed_value,回退 hash_props[0]。
let raw = obj.boxed_value();
@@ -1123,11 +1119,17 @@ fn string_exotic_get_own_property_descriptors<H: VmHost>(
let desc_obj = unsafe { &mut *desc };
let desc_obj_ptr = JsValue::from_js_object(desc);
// 构造描述符对象:value + writable/enumerable/configurable。
vm.define_data_property(desc_obj, value_si, char_val, PropAttributes::DEFAULT_DATA).ok();
vm.define_data_property(desc_obj, writable_si, JsValue::bool(false), PropAttributes::DEFAULT_DATA).ok();
vm.define_data_property(desc_obj, enumerable_si, JsValue::bool(true), PropAttributes::DEFAULT_DATA).ok();
vm.define_data_property(desc_obj, configurable_si, JsValue::bool(false), PropAttributes::DEFAULT_DATA).ok();
if let Err(err) = vm.define_data_property(unsafe { &mut *result }, si, desc_obj_ptr, PropAttributes::DEFAULT_DATA) {
vm.define_data_property(desc_obj, value_si, char_val, PropAttributes::DEFAULT_DATA)
.ok();
vm.define_data_property(desc_obj, writable_si, JsValue::bool(false), PropAttributes::DEFAULT_DATA)
.ok();
vm.define_data_property(desc_obj, enumerable_si, JsValue::bool(true), PropAttributes::DEFAULT_DATA)
.ok();
vm.define_data_property(desc_obj, configurable_si, JsValue::bool(false), PropAttributes::DEFAULT_DATA)
.ok();
if let Err(err) =
vm.define_data_property(unsafe { &mut *result }, si, desc_obj_ptr, PropAttributes::DEFAULT_DATA)
{
return NativeResult::Err(crate::error::create_type_error(vm, &err));
}
}
@@ -1136,11 +1138,17 @@ fn string_exotic_get_own_property_descriptors<H: VmHost>(
let desc = alloc_desc_object(vm);
let desc_obj = unsafe { &mut *desc };
let desc_obj_ptr = JsValue::from_js_object(desc);
vm.define_data_property(desc_obj, value_si, JsValue::int(len as i32), PropAttributes::DEFAULT_DATA).ok();
vm.define_data_property(desc_obj, writable_si, JsValue::bool(false), PropAttributes::DEFAULT_DATA).ok();
vm.define_data_property(desc_obj, enumerable_si, JsValue::bool(false), PropAttributes::DEFAULT_DATA).ok();
vm.define_data_property(desc_obj, configurable_si, JsValue::bool(false), PropAttributes::DEFAULT_DATA).ok();
if let Err(err) = vm.define_data_property(unsafe { &mut *result }, length_si, desc_obj_ptr, PropAttributes::DEFAULT_DATA) {
vm.define_data_property(desc_obj, value_si, JsValue::int(len as i32), PropAttributes::DEFAULT_DATA)
.ok();
vm.define_data_property(desc_obj, writable_si, JsValue::bool(false), PropAttributes::DEFAULT_DATA)
.ok();
vm.define_data_property(desc_obj, enumerable_si, JsValue::bool(false), PropAttributes::DEFAULT_DATA)
.ok();
vm.define_data_property(desc_obj, configurable_si, JsValue::bool(false), PropAttributes::DEFAULT_DATA)
.ok();
if let Err(err) =
vm.define_data_property(unsafe { &mut *result }, length_si, desc_obj_ptr, PropAttributes::DEFAULT_DATA)
{
return NativeResult::Err(crate::error::create_type_error(vm, &err));
}
+2 -7
View File
@@ -210,13 +210,8 @@ fn advance_string_index(units: &[u16], p: usize, unicode: bool) -> usize {
/// `$n` 越界(含 $0 与两位回退后仍越界)或未匹配组(None)按字面输出。
/// `$<name>` 从 named_captures 对象读取;不存在时字面输出 `$<` 开头部分。
fn get_substitution_units<H: VmHost>(
vm: &mut H,
matched: &[u16],
s: &[u16],
position: usize,
captured: &[Option<Vec<u16>>],
named_captures: Option<&JsObject>,
replacement: &[u16],
vm: &mut H, matched: &[u16], s: &[u16], position: usize, captured: &[Option<Vec<u16>>],
named_captures: Option<&JsObject>, replacement: &[u16],
) -> Vec<u16> {
let mut out = Vec::new();
let pos = position.min(s.len());
+13 -14
View File
@@ -850,10 +850,12 @@ pub fn string_match_all<H: VmHost>(vm: &mut H, args: &[u8]) -> NativeResult {
};
// RequireObjectCoercible:flags 为 undefined/null 时抛 TypeError。
// rx_get_flags 已将 undefined 转为 "undefined" 字符串,需额外检查。
let flags_val = match vm.ordinary_get(unsafe { &*re_ptr }, vm.kernel_core().perm_interner().intern("flags").0, pattern_val) {
Ok(v) => v,
Err(e) => return NativeResult::err(crate::iterator::engine_error(vm, &e)),
};
let flags_val =
match vm.ordinary_get(unsafe { &*re_ptr }, vm.kernel_core().perm_interner().intern("flags").0, pattern_val)
{
Ok(v) => v,
Err(e) => return NativeResult::err(crate::iterator::engine_error(vm, &e)),
};
if flags_val.is_undefined() || flags_val.is_null() {
return NativeResult::Err(crate::error::create_type_error(
vm,
@@ -906,10 +908,7 @@ pub fn string_match_all<H: VmHost>(vm: &mut H, args: &[u8]) -> NativeResult {
}
}
// 无 callable @@matchAll:规范 Invoke 抛 TypeError。
NativeResult::Err(crate::error::create_type_error(
vm,
"RegExp.prototype[Symbol.matchAll] is not a function",
))
NativeResult::Err(crate::error::create_type_error(vm, "RegExp.prototype[Symbol.matchAll] is not a function"))
} else {
// 非 RegExp:先查 @@matchAll(规范步骤 6-8,IsRegExp 为 false 时
// 先 ToString(pattern) 转正则,但规范步骤 8 是 Invoke(rx, @@matchAll)。
@@ -933,7 +932,11 @@ pub fn string_match_all<H: VmHost>(vm: &mut H, args: &[u8]) -> NativeResult {
let pattern_units = try_string!(as_units(vm, pattern_val)).into_owned();
let pattern_str = String::from_utf16_lossy(&pattern_units);
let escaped = regress::escape(&pattern_str);
let rx_str = if escaped.is_empty() { String::from("(?:)") } else { format!("(?:{})", escaped) };
let rx_str = if escaped.is_empty() {
String::from("(?:)")
} else {
format!("(?:{})", escaped)
};
let compiled = match regress::Regex::new(&rx_str) {
Ok(rx) => rx,
Err(e) => {
@@ -1105,11 +1108,7 @@ pub fn string_match_all_next<H: VmHost>(vm: &mut H, args: &[u8]) -> NativeResult
/// 构建 matchAll 结果数组:元素为匹配字符串值,附带 index/input/groups 属性。
fn make_match_result_array<H: VmHost>(
vm: &mut H,
parts: Vec<Vec<u16>>,
match_index: i32,
input_val: JsValue,
m: Option<&regress::Match>,
vm: &mut H, parts: Vec<Vec<u16>>, match_index: i32, input_val: JsValue, m: Option<&regress::Match>,
text: &MatchText,
) -> JsValue {
let values: Vec<JsValue> = parts.into_iter().map(|u| vm.new_string_units_owned(u)).collect();
@@ -42,30 +42,22 @@ fn is_ambiguous_date_string(s: &str) -> bool {
day >= 1 && day <= max
};
match s.len() {
4 if all_digits(0..4) => {
match (two_digits(0), two_digits(2)) {
(Some(month), Some(day)) => day_in_month(month, day),
_ => false,
}
}
6 if all_digits(0..6) => {
match two_digits(4) {
Some(m) => (1..=12).contains(&m),
None => false,
}
}
5 if bytes[2] == b'-' && all_digits(0..2) && all_digits(3..5) => {
match (two_digits(0), two_digits(3)) {
(Some(month), Some(day)) => day_in_month(month, day),
_ => false,
}
}
7 if bytes[4] == b'-' && all_digits(0..4) && all_digits(5..7) => {
match two_digits(5) {
Some(m) => (1..=12).contains(&m),
None => false,
}
}
4 if all_digits(0..4) => match (two_digits(0), two_digits(2)) {
(Some(month), Some(day)) => day_in_month(month, day),
_ => false,
},
6 if all_digits(0..6) => match two_digits(4) {
Some(m) => (1..=12).contains(&m),
None => false,
},
5 if bytes[2] == b'-' && all_digits(0..2) && all_digits(3..5) => match (two_digits(0), two_digits(3)) {
(Some(month), Some(day)) => day_in_month(month, day),
_ => false,
},
7 if bytes[4] == b'-' && all_digits(0..4) && all_digits(5..7) => match two_digits(5) {
Some(m) => (1..=12).contains(&m),
None => false,
},
_ => false,
}
}
+1 -3
View File
@@ -327,9 +327,7 @@ fn read_element<H: VmHost>(vm: &mut H, kind: TypedArrayKind, bytes: &[u8], offse
match kind {
TypedArrayKind::Int8 => JsValue::int(bytes[offset] as i8 as i32),
TypedArrayKind::Uint8 | TypedArrayKind::Uint8Clamped => JsValue::int(bytes[offset] as i32),
TypedArrayKind::Int16 => {
JsValue::int(read_bytes!(&bytes[offset..offset + 2], i16) as i32)
}
TypedArrayKind::Int16 => JsValue::int(read_bytes!(&bytes[offset..offset + 2], i16) as i32),
TypedArrayKind::Uint16 => JsValue::int(read_bytes!(&bytes[offset..offset + 2], u16) as i32),
TypedArrayKind::Int32 => JsValue::int(read_bytes!(&bytes[offset..offset + 4], i32)),
TypedArrayKind::Uint32 => JsValue::float(read_bytes!(&bytes[offset..offset + 4], u32) as f64),