mirror of
https://github.com/pjh456/OxideJS.git
synced 2026-10-25 19:21:11 +08:00
refactor: 添加 release 兜底逻辑与类型标签检查
This commit is contained in:
@@ -21,6 +21,12 @@ fn get_regexp_ptr(vm: &Vm, args: &[u8]) -> Result<*mut JsObject, JsValue> {
|
||||
if ptr.is_null() {
|
||||
return Err(JsValue::string(vm.kernel().string_forge().intern("TypeError: null object").0, 0));
|
||||
}
|
||||
if !unsafe { &*ptr }.is_regexp_obj() {
|
||||
return Err(JsValue::string(
|
||||
vm.kernel().string_forge().intern("TypeError: RegExp.prototype method called on non-RegExp object").0,
|
||||
0,
|
||||
));
|
||||
}
|
||||
Ok(ptr)
|
||||
}
|
||||
|
||||
@@ -112,6 +118,7 @@ pub fn regexp_constructor(vm: &mut Vm, args: &[u8]) -> NativeResult {
|
||||
set_prop(&mut obj, "dotAll", JsValue::bool(false), vm);
|
||||
set_prop(&mut obj, "sticky", JsValue::bool(false), vm);
|
||||
set_prop(&mut obj, "unicode", JsValue::bool(false), vm);
|
||||
obj.type_tag = JsObject::OBJ_TYPE_REGEXP;
|
||||
|
||||
let obj_ptr = vm.epoch().alloc(obj);
|
||||
NativeResult::Ok(JsValue::from_js_object(obj_ptr))
|
||||
|
||||
Reference in New Issue
Block a user