mirror of
https://github.com/voltrevo/ValueScript.git
synced 2026-01-14 07:57:57 -05:00
Fix inc+dec for bigint
This commit is contained in:
@@ -128,14 +128,26 @@ impl StackFrameTrait for BytecodeStackFrame {
|
||||
OpInc => {
|
||||
let register_index = self.decoder.decode_register_index().unwrap();
|
||||
let mut val = self.registers[register_index].clone();
|
||||
val = operations::op_plus(val, Val::Number(1_f64))?; // TODO: BigInt
|
||||
|
||||
match &mut val {
|
||||
Val::Number(n) => *n += 1.0,
|
||||
Val::BigInt(bi) => *bi += 1,
|
||||
_ => val = operations::op_plus(val, 1.0.to_val())?,
|
||||
};
|
||||
|
||||
self.registers[register_index] = val;
|
||||
}
|
||||
|
||||
OpDec => {
|
||||
let register_index = self.decoder.decode_register_index().unwrap();
|
||||
let mut val = self.registers[register_index].clone();
|
||||
val = operations::op_minus(val, Val::Number(1_f64))?; // TODO: BigInt
|
||||
|
||||
match &mut val {
|
||||
Val::Number(n) => *n -= 1.0,
|
||||
Val::BigInt(bi) => *bi -= 1,
|
||||
_ => val = operations::op_minus(val, 1.0.to_val())?,
|
||||
};
|
||||
|
||||
self.registers[register_index] = val;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user