Ints are signed in avm1
This commit is contained in:
parent
e788381200
commit
89fee4c580
|
@ -236,7 +236,7 @@ impl<R: Read> Reader<R> {
|
||||||
4 => Value::Register(self.read_u8()?),
|
4 => Value::Register(self.read_u8()?),
|
||||||
5 => Value::Bool(self.read_u8()? != 0),
|
5 => Value::Bool(self.read_u8()? != 0),
|
||||||
6 => Value::Double(self.read_f64()?),
|
6 => Value::Double(self.read_f64()?),
|
||||||
7 => Value::Int(self.read_u32()?),
|
7 => Value::Int(self.read_i32()?),
|
||||||
8 => Value::ConstantPool(self.read_u8()?.into()),
|
8 => Value::ConstantPool(self.read_u8()?.into()),
|
||||||
9 => Value::ConstantPool(self.read_u16()?),
|
9 => Value::ConstantPool(self.read_u16()?),
|
||||||
_ => {
|
_ => {
|
||||||
|
|
|
@ -135,7 +135,7 @@ pub enum Value {
|
||||||
Undefined,
|
Undefined,
|
||||||
Null,
|
Null,
|
||||||
Bool(bool),
|
Bool(bool),
|
||||||
Int(u32),
|
Int(i32),
|
||||||
Float(f32),
|
Float(f32),
|
||||||
Double(f64),
|
Double(f64),
|
||||||
Str(String),
|
Str(String),
|
||||||
|
|
|
@ -407,7 +407,7 @@ impl<W: Write> Writer<W> {
|
||||||
}
|
}
|
||||||
Value::Int(v) => {
|
Value::Int(v) => {
|
||||||
self.write_u8(7)?;
|
self.write_u8(7)?;
|
||||||
self.write_u32(v)?;
|
self.write_i32(v)?;
|
||||||
}
|
}
|
||||||
Value::ConstantPool(v) => {
|
Value::ConstantPool(v) => {
|
||||||
if v < 256 {
|
if v < 256 {
|
||||||
|
|
|
@ -2438,6 +2438,11 @@ pub fn avm1_tests() -> Vec<Avm1TestData> {
|
||||||
Action::Push(vec![Value::Int(31)]),
|
Action::Push(vec![Value::Int(31)]),
|
||||||
vec![0x96, 5, 0, 7, 31, 0, 0, 0],
|
vec![0x96, 5, 0, 7, 31, 0, 0, 0],
|
||||||
),
|
),
|
||||||
|
(
|
||||||
|
5,
|
||||||
|
Action::Push(vec![Value::Int(-50)]),
|
||||||
|
vec![0x96, 5, 0, 7, 206, 255, 255, 255],
|
||||||
|
),
|
||||||
(
|
(
|
||||||
5,
|
5,
|
||||||
Action::Push(vec![Value::ConstantPool(77)]),
|
Action::Push(vec![Value::ConstantPool(77)]),
|
||||||
|
|
Loading…
Reference in New Issue