feat: 支持 Object/Array/String 成员方法

This commit is contained in:
2026-06-08 13:09:58 +08:00
parent b8fbc93bca
commit 107cc1bc37
10 changed files with 314 additions and 0 deletions
@@ -25,6 +25,16 @@ pub fn bind_array(kernel: &Arc<OxideKernel>, global: &mut JsObject) {
every: crate::builtins::array::array_every as *const (),
flat: crate::builtins::array::array_flat as *const (),
flat_map: crate::builtins::array::array_flat_map as *const (),
shift: crate::builtins::array::array_shift as *const (),
unshift: crate::builtins::array::array_unshift as *const (),
fill: crate::builtins::array::array_fill as *const (),
copy_within: crate::builtins::array::array_copy_within as *const (),
at: crate::builtins::array::array_at as *const (),
last_index_of: crate::builtins::array::array_last_index_of as *const (),
find_index: crate::builtins::array::array_find_index as *const (),
find_last: crate::builtins::array::array_find_last as *const (),
reduce_right: crate::builtins::array::array_reduce_right as *const (),
sort: crate::builtins::array::array_sort as *const (),
};
kernel.builtin_world().bind_array_methods(
@@ -20,6 +20,12 @@ pub fn bind_object(kernel: &Arc<OxideKernel>, global: &mut JsObject) {
is_sealed: crate::builtins::object::object_is_sealed as *const (),
is_extensible: crate::builtins::object::object_is_extensible as *const (),
get_own_property_names: crate::builtins::object::object_get_own_property_names as *const (),
define_properties: crate::builtins::object::object_define_properties as *const (),
from_entries: crate::builtins::object::object_from_entries as *const (),
get_prototype_of: crate::builtins::object::object_get_prototype_of as *const (),
has_own: crate::builtins::object::object_has_own as *const (),
entries: std::ptr::null(),
values: std::ptr::null(),
};
kernel.builtin_world().bind_object_methods(
&methods,
@@ -26,6 +26,12 @@ pub fn bind_string(kernel: &Arc<OxideKernel>, global: &mut JsObject) {
replace: crate::builtins::string::string_replace as *const (),
match_fn: crate::builtins::string::string_match_fn as *const (),
search: crate::builtins::string::string_search as *const (),
trim_start: crate::builtins::string::string_trim_start as *const (),
trim_end: crate::builtins::string::string_trim_end as *const (),
code_point_at: crate::builtins::string::string_code_point_at as *const (),
normalize: crate::builtins::string::string_normalize as *const (),
match_all: std::ptr::null(),
replace_all: std::ptr::null(),
};
kernel.builtin_world().bind_string_methods(
&string_methods,