mirror of
https://github.com/pjh456/OxideJS.git
synced 2026-10-24 18:51:13 +08:00
style: 减少自动格式化换行
This commit is contained in:
@@ -6,64 +6,33 @@ use crate::coercion;
|
||||
use crate::vm::Vm;
|
||||
|
||||
impl Vm {
|
||||
pub(crate) fn dispatch_member_op(
|
||||
&mut self,
|
||||
op: OpCode,
|
||||
rd: usize,
|
||||
a: usize,
|
||||
b: usize,
|
||||
) -> Result<(), String> {
|
||||
pub(crate) fn dispatch_member_op(&mut self, op: OpCode, rd: usize, a: usize, b: usize) -> Result<(), String> {
|
||||
match op {
|
||||
OpCode::MEMBER_INC => self.dispatch_member_inc(rd, a, b),
|
||||
OpCode::MEMBER_DEC => self.dispatch_member_dec(rd, a, b),
|
||||
OpCode::DYN_MEMBER_INC => self.dispatch_dyn_member_inc(rd, a, b),
|
||||
OpCode::DYN_MEMBER_DEC => self.dispatch_dyn_member_dec(rd, a, b),
|
||||
OpCode::COMPOUND_MEMBER_ADD => self.dispatch_compound_member_add(rd, a, b),
|
||||
OpCode::COMPOUND_MEMBER_SUB => self.dispatch_compound_member_numeric(
|
||||
rd,
|
||||
a,
|
||||
b,
|
||||
"COMPOUND_MEMBER_SUB on non-object",
|
||||
|l, r| l - r,
|
||||
),
|
||||
OpCode::COMPOUND_MEMBER_MUL => self.dispatch_compound_member_numeric(
|
||||
rd,
|
||||
a,
|
||||
b,
|
||||
"COMPOUND_MEMBER_MUL on non-object",
|
||||
|l, r| l * r,
|
||||
),
|
||||
OpCode::COMPOUND_MEMBER_DIV => self.dispatch_compound_member_numeric(
|
||||
rd,
|
||||
a,
|
||||
b,
|
||||
"COMPOUND_MEMBER_DIV on non-object",
|
||||
|l, r| l / r,
|
||||
),
|
||||
OpCode::COMPOUND_MEMBER_MOD => self.dispatch_compound_member_numeric(
|
||||
rd,
|
||||
a,
|
||||
b,
|
||||
"COMPOUND_MEMBER_MOD on non-object",
|
||||
|l, r| l % r,
|
||||
),
|
||||
OpCode::COMPOUND_MEMBER_EXP => self.dispatch_compound_member_numeric(
|
||||
rd,
|
||||
a,
|
||||
b,
|
||||
"COMPOUND_MEMBER_EXP on non-object",
|
||||
|l, r| l.powf(r),
|
||||
),
|
||||
OpCode::COMPOUND_MEMBER_SUB => {
|
||||
self.dispatch_compound_member_numeric(rd, a, b, "COMPOUND_MEMBER_SUB on non-object", |l, r| l - r)
|
||||
}
|
||||
OpCode::COMPOUND_MEMBER_MUL => {
|
||||
self.dispatch_compound_member_numeric(rd, a, b, "COMPOUND_MEMBER_MUL on non-object", |l, r| l * r)
|
||||
}
|
||||
OpCode::COMPOUND_MEMBER_DIV => {
|
||||
self.dispatch_compound_member_numeric(rd, a, b, "COMPOUND_MEMBER_DIV on non-object", |l, r| l / r)
|
||||
}
|
||||
OpCode::COMPOUND_MEMBER_MOD => {
|
||||
self.dispatch_compound_member_numeric(rd, a, b, "COMPOUND_MEMBER_MOD on non-object", |l, r| l % r)
|
||||
}
|
||||
OpCode::COMPOUND_MEMBER_EXP => {
|
||||
self.dispatch_compound_member_numeric(rd, a, b, "COMPOUND_MEMBER_EXP on non-object", |l, r| l.powf(r))
|
||||
}
|
||||
_ => unreachable!("non-member opcode passed to dispatch_member_op"),
|
||||
}
|
||||
}
|
||||
|
||||
fn member_target(
|
||||
&mut self,
|
||||
rd: usize,
|
||||
b: usize,
|
||||
error_msg: &str,
|
||||
) -> Result<(*mut JsObject, u32), String> {
|
||||
fn member_target(&mut self, rd: usize, b: usize, error_msg: &str) -> Result<(*mut JsObject, u32), String> {
|
||||
let obj_ptr = self.regs[rd].as_object_ptr() as *mut JsObject;
|
||||
if obj_ptr.is_null() {
|
||||
self.raise_type_error(error_msg)?;
|
||||
@@ -74,8 +43,7 @@ impl Vm {
|
||||
}
|
||||
|
||||
fn dispatch_member_inc(&mut self, rd: usize, a: usize, b: usize) -> Result<(), String> {
|
||||
let Ok((obj_ptr, prop_name_si)) = self.member_target(rd, b, "MEMBER_INC on non-object")
|
||||
else {
|
||||
let Ok((obj_ptr, prop_name_si)) = self.member_target(rd, b, "MEMBER_INC on non-object") else {
|
||||
return Ok(());
|
||||
};
|
||||
let obj = unsafe { &mut *obj_ptr };
|
||||
@@ -88,8 +56,7 @@ impl Vm {
|
||||
}
|
||||
|
||||
fn dispatch_member_dec(&mut self, rd: usize, a: usize, b: usize) -> Result<(), String> {
|
||||
let Ok((obj_ptr, prop_name_si)) = self.member_target(rd, b, "MEMBER_DEC on non-object")
|
||||
else {
|
||||
let Ok((obj_ptr, prop_name_si)) = self.member_target(rd, b, "MEMBER_DEC on non-object") else {
|
||||
return Ok(());
|
||||
};
|
||||
let obj = unsafe { &mut *obj_ptr };
|
||||
@@ -109,9 +76,7 @@ impl Vm {
|
||||
}
|
||||
let obj = unsafe { &mut *obj_ptr };
|
||||
let prop_name_si = self.property_key_si(self.regs[a]);
|
||||
let prop_val = self
|
||||
.resolve_property(obj, prop_name_si)
|
||||
.unwrap_or(JsValue::undefined());
|
||||
let prop_val = self.resolve_property(obj, prop_name_si).unwrap_or(JsValue::undefined());
|
||||
let n = coercion::to_number(prop_val, self.kernel.string_forge().as_ref());
|
||||
let new_val = JsValue::float(n + 1.0);
|
||||
self.set_or_create_prop_value(obj, prop_name_si, new_val);
|
||||
@@ -127,9 +92,7 @@ impl Vm {
|
||||
}
|
||||
let obj = unsafe { &mut *obj_ptr };
|
||||
let prop_name_si = self.property_key_si(self.regs[a]);
|
||||
let prop_val = self
|
||||
.resolve_property(obj, prop_name_si)
|
||||
.unwrap_or(JsValue::undefined());
|
||||
let prop_val = self.resolve_property(obj, prop_name_si).unwrap_or(JsValue::undefined());
|
||||
let n = coercion::to_number(prop_val, self.kernel.string_forge().as_ref());
|
||||
let new_val = JsValue::float(n - 1.0);
|
||||
self.set_or_create_prop_value(obj, prop_name_si, new_val);
|
||||
@@ -137,15 +100,8 @@ impl Vm {
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn dispatch_compound_member_add(
|
||||
&mut self,
|
||||
rd: usize,
|
||||
a: usize,
|
||||
b: usize,
|
||||
) -> Result<(), String> {
|
||||
let Ok((obj_ptr, prop_name_si)) =
|
||||
self.member_target(rd, b, "COMPOUND_MEMBER_ADD on non-object")
|
||||
else {
|
||||
fn dispatch_compound_member_add(&mut self, rd: usize, a: usize, b: usize) -> Result<(), String> {
|
||||
let Ok((obj_ptr, prop_name_si)) = self.member_target(rd, b, "COMPOUND_MEMBER_ADD on non-object") else {
|
||||
return Ok(());
|
||||
};
|
||||
let obj = unsafe { &mut *obj_ptr };
|
||||
@@ -166,12 +122,7 @@ impl Vm {
|
||||
}
|
||||
|
||||
fn dispatch_compound_member_numeric<F>(
|
||||
&mut self,
|
||||
rd: usize,
|
||||
a: usize,
|
||||
b: usize,
|
||||
error_msg: &str,
|
||||
op: F,
|
||||
&mut self, rd: usize, a: usize, b: usize, error_msg: &str, op: F,
|
||||
) -> Result<(), String>
|
||||
where
|
||||
F: FnOnce(f64, f64) -> f64,
|
||||
|
||||
Reference in New Issue
Block a user