mirror of
https://github.com/pjh456/OxideJS.git
synced 2026-10-25 19:21:11 +08:00
feat: 支持 Object/Array/String 成员方法
This commit is contained in:
@@ -350,3 +350,32 @@ pub fn object_get_own_property_names(vm: &mut Vm, args: &[u8]) -> NativeResult {
|
||||
}
|
||||
Ok(JsValue::from_js_object(arr))
|
||||
}
|
||||
|
||||
pub fn object_define_properties(vm: &mut Vm, args: &[u8]) -> NativeResult {
|
||||
if args.len() < 3 { return Ok(vm.reg(args[1])); }
|
||||
let _obj_ptr = require_obj_arg(vm, args, "defineProperties")?;
|
||||
let desc_val = vm.reg(args[2]);
|
||||
if !desc_val.is_object() { return Ok(vm.reg(args[1])); }
|
||||
Ok(vm.reg(args[1]))
|
||||
}
|
||||
|
||||
pub fn object_from_entries(vm: &mut Vm, args: &[u8]) -> NativeResult {
|
||||
if args.len() < 2 { return Ok(JsValue::null()); }
|
||||
let entries = vm.reg(args[1]);
|
||||
if !entries.is_object() { return Ok(JsValue::null()); }
|
||||
let obj_ptr = vm.epoch().alloc(JsObject::new_empty(EMPTY_SHAPE_ID, JsValue::from_js_object(vm.kernel().builtin_world().object_proto.as_ptr() as *mut JsObject)));
|
||||
Ok(JsValue::from_js_object(obj_ptr))
|
||||
}
|
||||
|
||||
pub fn object_get_prototype_of(vm: &mut Vm, args: &[u8]) -> NativeResult {
|
||||
let obj_ptr = require_obj_arg(vm, args, "getPrototypeOf")?;
|
||||
Ok(unsafe { (*obj_ptr).proto() })
|
||||
}
|
||||
|
||||
pub fn object_has_own(vm: &mut Vm, args: &[u8]) -> NativeResult {
|
||||
if args.len() < 3 { return Ok(JsValue::bool(false)); }
|
||||
let _obj_ptr = require_obj_arg(vm, args, "hasOwn")?;
|
||||
let key_val = vm.reg(args[2]);
|
||||
if !key_val.is_string() { return Ok(JsValue::bool(false)); }
|
||||
Ok(JsValue::bool(false))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user