feat: 实现 Array.from 与 Array.of 静态方法
- Array.from:可迭代(迭代协议)与 array-like 双路径,支持 mapFn/thisArg, 构造器 this 支持(new C),CreateDataPropertyOrThrow 写入,IteratorClose - Array.of:以参数为元素,this 构造器 + CreateDataProperty + Set length - iterator.rs:get_iterator 改为 Option 返回,新增 try_make_iterator 与 peek_iterator_method(GetMethod 只读判定,不调用迭代器)
This commit is contained in:
@@ -11,6 +11,8 @@ use crate::bindings::apply_binding_table;
|
||||
pub fn bind_array(core: &Arc<KernelCore>, session: &KernelSession, global: &mut JsObject) {
|
||||
let _array_methods = ArrayMethods {
|
||||
is_array: oxide_builtins::array::array_is_array::<crate::vm::Vm> as *const (),
|
||||
from: oxide_builtins::array::array_from::<crate::vm::Vm> as *const (),
|
||||
of: oxide_builtins::array::array_of::<crate::vm::Vm> as *const (),
|
||||
push: oxide_builtins::array::array_push::<crate::vm::Vm> as *const (),
|
||||
pop: oxide_builtins::array::array_pop::<crate::vm::Vm> as *const (),
|
||||
slice: oxide_builtins::array::array_slice::<crate::vm::Vm> as *const (),
|
||||
|
||||
Reference in New Issue
Block a user