mirror of
https://github.com/pjh456/OxideJS.git
synced 2026-10-25 03:01:12 +08:00
feat: ToPropertyKey 改走 ToPrimitive,Symbol 键与描述符,转换错误可捕获
This commit is contained in:
@@ -115,7 +115,7 @@ impl Vm {
|
||||
let Some(obj_ptr) = self.checked_object_ptr(self.regs[rd], error_msg)? else {
|
||||
return Err(String::new());
|
||||
};
|
||||
let prop_name_si = self.property_key_si(self.regs[b]);
|
||||
let prop_name_si = self.property_key_si(self.regs[b])?;
|
||||
Ok((obj_ptr, prop_name_si))
|
||||
}
|
||||
|
||||
@@ -156,7 +156,7 @@ impl Vm {
|
||||
};
|
||||
let receiver = self.regs[rd];
|
||||
let obj = unsafe { &mut *obj_ptr };
|
||||
let prop_name_si = self.property_key_si(self.regs[a]);
|
||||
let prop_name_si = self.property_key_si(self.regs[a])?;
|
||||
let prop_val = self.ordinary_get(obj, prop_name_si, receiver)?;
|
||||
let n = self.coerce_number_bounded(prop_val)?;
|
||||
let new_val = JsValue::float(n + 1.0);
|
||||
@@ -172,7 +172,7 @@ impl Vm {
|
||||
};
|
||||
let receiver = self.regs[rd];
|
||||
let obj = unsafe { &mut *obj_ptr };
|
||||
let prop_name_si = self.property_key_si(self.regs[a]);
|
||||
let prop_name_si = self.property_key_si(self.regs[a])?;
|
||||
let prop_val = self.ordinary_get(obj, prop_name_si, receiver)?;
|
||||
let n = self.coerce_number_bounded(prop_val)?;
|
||||
let new_val = JsValue::float(n - 1.0);
|
||||
|
||||
Reference in New Issue
Block a user