feat: 搭建 Iterator 与 for-of 语法基础设施

This commit is contained in:
爱特每羊队
2026-06-08 13:48:54 +08:00
parent 4d60491e0e
commit 3880882fda
12 changed files with 246 additions and 4 deletions
+2 -2
View File
@@ -24,8 +24,8 @@ pub fn bind_object(kernel: &Arc<OxideKernel>, global: &mut JsObject) {
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(),
entries: crate::builtins::object::object_entries as *const (),
values: crate::builtins::object::object_values as *const (),
};
kernel.builtin_world().bind_object_methods(
&methods,
+2 -2
View File
@@ -30,8 +30,8 @@ pub fn bind_string(kernel: &Arc<OxideKernel>, global: &mut JsObject) {
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(),
match_all: crate::builtins::string::string_match_all as *const (),
replace_all: crate::builtins::string::string_replace_all as *const (),
};
kernel.builtin_world().bind_string_methods(
&string_methods,
@@ -45,6 +45,11 @@ pub fn bind_symbol(kernel: &Arc<OxideKernel>, global: &mut JsObject) {
);
bind_well_known_symbol(kernel, ctor, sf, sh, "split", sym_split_val);
let sym_iterator_val = JsValue::from_js_object(
kernel.builtin_world().sym_iterator.as_ptr() as *mut JsObject,
);
bind_well_known_symbol(kernel, ctor, sf, sh, "iterator", sym_iterator_val);
bind_constructor_hash!(
kernel,
global,