diff --git a/crates/oxide_builtins/src/array/common.rs b/crates/oxide_builtins/src/array/common.rs index 050bbff7..96eeda4c 100644 --- a/crates/oxide_builtins/src/array/common.rs +++ b/crates/oxide_builtins/src/array/common.rs @@ -195,6 +195,7 @@ pub(crate) fn is_constructor_value(c: JsValue) -> bool { && !c_obj.is_arrow() && !(c_obj.native_fn().is_some() && c_obj.type_tag != JsObject::OBJ_TYPE_CONSTRUCTOR) } + /// 校验回调参数为可调用函数对象(判空与 is_function 均须通过),不是则抛 TypeError。 pub(crate) fn require_callback(vm: &mut H, callback_val: JsValue) -> Result { if !callback_val.is_object() { diff --git a/crates/oxide_builtins/src/array/immutable.rs b/crates/oxide_builtins/src/array/immutable.rs index c6ee22fe..e166a0ed 100644 --- a/crates/oxide_builtins/src/array/immutable.rs +++ b/crates/oxide_builtins/src/array/immutable.rs @@ -69,6 +69,7 @@ pub fn array_with(vm: &mut H, args: &[u8]) -> NativeResult { } NativeResult::Ok(JsValue::from_js_object(new_arr)) } + /// 返回按比较语义排序的新数组,原数组不变(`Array.prototype.toSorted`)。 /// /// # 边界与前提 @@ -112,6 +113,7 @@ pub fn array_to_sorted(vm: &mut H, args: &[u8]) -> NativeResult { } NativeResult::Ok(JsValue::from_js_object(new_arr)) } + /// 按 start/deleteCount/插入值三元 splice 语义返回新数组,原数组不变 ///(`Array.prototype.toSpliced`)。 /// @@ -141,7 +143,6 @@ pub fn array_to_spliced(vm: &mut H, args: &[u8]) -> NativeResult { } else { relative_start.min(n as f64) as usize }; - // 缺省规则:start 与 deleteCount 都缺省 -> 拷贝;仅缺省 deleteCount -> 删到末尾。 let delete_count = if args.len() <= 1 { 0 } else if args.len() == 2 {