swf: Add missing opcodes
This commit is contained in:
parent
b2bed7a18d
commit
a39a1dd64f
|
@ -91,6 +91,11 @@ pub enum OpCode {
|
|||
Label = 0x09,
|
||||
LessEquals = 0xae,
|
||||
LessThan = 0xad,
|
||||
Lf32 = 0x38,
|
||||
Lf64 = 0x39,
|
||||
Li16 = 0x36,
|
||||
Li32 = 0x37,
|
||||
Li8 = 0x35,
|
||||
LookupSwitch = 0x1b,
|
||||
LShift = 0xa5,
|
||||
Modulo = 0xa4,
|
||||
|
@ -136,10 +141,18 @@ pub enum OpCode {
|
|||
SetProperty = 0x61,
|
||||
SetSlot = 0x6d,
|
||||
SetSuper = 0x05,
|
||||
Sf32 = 0x3d,
|
||||
Sf64 = 0x3e,
|
||||
Si16 = 0x3b,
|
||||
Si32 = 0x3c,
|
||||
Si8 = 0x3a,
|
||||
StrictEquals = 0xac,
|
||||
Subtract = 0xa1,
|
||||
SubtractI = 0xc6,
|
||||
Swap = 0x2b,
|
||||
Sxi1 = 0x50,
|
||||
Sxi16 = 0x52,
|
||||
Sxi8 = 0x51,
|
||||
Throw = 0x03,
|
||||
TypeOf = 0x95,
|
||||
URShift = 0xa7,
|
||||
|
|
|
@ -726,6 +726,11 @@ impl<'a> Reader<'a> {
|
|||
OpCode::Label => Op::Label,
|
||||
OpCode::LessEquals => Op::LessEquals,
|
||||
OpCode::LessThan => Op::LessThan,
|
||||
OpCode::Lf32 => Op::Lf32,
|
||||
OpCode::Lf64 => Op::Lf64,
|
||||
OpCode::Li16 => Op::Li16,
|
||||
OpCode::Li32 => Op::Li32,
|
||||
OpCode::Li8 => Op::Li8,
|
||||
OpCode::LookupSwitch => Op::LookupSwitch {
|
||||
default_offset: self.read_i24()?,
|
||||
case_offsets: {
|
||||
|
@ -815,10 +820,18 @@ impl<'a> Reader<'a> {
|
|||
OpCode::SetSuper => Op::SetSuper {
|
||||
index: self.read_index()?,
|
||||
},
|
||||
OpCode::Sf32 => Op::Sf32,
|
||||
OpCode::Sf64 => Op::Sf64,
|
||||
OpCode::Si16 => Op::Si16,
|
||||
OpCode::Si32 => Op::Si32,
|
||||
OpCode::Si8 => Op::Si8,
|
||||
OpCode::StrictEquals => Op::StrictEquals,
|
||||
OpCode::Subtract => Op::Subtract,
|
||||
OpCode::SubtractI => Op::SubtractI,
|
||||
OpCode::Swap => Op::Swap,
|
||||
OpCode::Sxi1 => Op::Sxi1,
|
||||
OpCode::Sxi16 => Op::Sxi16,
|
||||
OpCode::Sxi8 => Op::Sxi8,
|
||||
OpCode::Throw => Op::Throw,
|
||||
OpCode::TypeOf => Op::TypeOf,
|
||||
OpCode::URShift => Op::URShift,
|
||||
|
|
|
@ -427,6 +427,11 @@ pub enum Op {
|
|||
Label,
|
||||
LessEquals,
|
||||
LessThan,
|
||||
Lf32,
|
||||
Lf64,
|
||||
Li16,
|
||||
Li32,
|
||||
Li8,
|
||||
LookupSwitch {
|
||||
default_offset: i32,
|
||||
case_offsets: Vec<i32>,
|
||||
|
@ -505,10 +510,18 @@ pub enum Op {
|
|||
SetSuper {
|
||||
index: Index<Multiname>,
|
||||
},
|
||||
Sf32,
|
||||
Sf64,
|
||||
Si16,
|
||||
Si32,
|
||||
Si8,
|
||||
StrictEquals,
|
||||
Subtract,
|
||||
SubtractI,
|
||||
Swap,
|
||||
Sxi1,
|
||||
Sxi16,
|
||||
Sxi8,
|
||||
Throw,
|
||||
TypeOf,
|
||||
URShift,
|
||||
|
|
|
@ -890,6 +890,11 @@ impl<W: Write> Writer<W> {
|
|||
Op::Label => self.write_opcode(OpCode::Label)?,
|
||||
Op::LessEquals => self.write_opcode(OpCode::LessEquals)?,
|
||||
Op::LessThan => self.write_opcode(OpCode::LessThan)?,
|
||||
Op::Lf32 => self.write_opcode(OpCode::Lf32)?,
|
||||
Op::Lf64 => self.write_opcode(OpCode::Lf64)?,
|
||||
Op::Li16 => self.write_opcode(OpCode::Li16)?,
|
||||
Op::Li32 => self.write_opcode(OpCode::Li32)?,
|
||||
Op::Li8 => self.write_opcode(OpCode::Li8)?,
|
||||
Op::LookupSwitch {
|
||||
default_offset,
|
||||
ref case_offsets,
|
||||
|
@ -998,10 +1003,18 @@ impl<W: Write> Writer<W> {
|
|||
self.write_opcode(OpCode::SetSuper)?;
|
||||
self.write_index(index)?;
|
||||
}
|
||||
Op::Sf32 => self.write_opcode(OpCode::Sf32)?,
|
||||
Op::Sf64 => self.write_opcode(OpCode::Sf64)?,
|
||||
Op::Si16 => self.write_opcode(OpCode::Si16)?,
|
||||
Op::Si32 => self.write_opcode(OpCode::Si32)?,
|
||||
Op::Si8 => self.write_opcode(OpCode::Si8)?,
|
||||
Op::StrictEquals => self.write_opcode(OpCode::StrictEquals)?,
|
||||
Op::Subtract => self.write_opcode(OpCode::Subtract)?,
|
||||
Op::SubtractI => self.write_opcode(OpCode::SubtractI)?,
|
||||
Op::Swap => self.write_opcode(OpCode::Swap)?,
|
||||
Op::Sxi1 => self.write_opcode(OpCode::Sxi1)?,
|
||||
Op::Sxi16 => self.write_opcode(OpCode::Sxi16)?,
|
||||
Op::Sxi8 => self.write_opcode(OpCode::Sxi8)?,
|
||||
Op::Throw => self.write_opcode(OpCode::Throw)?,
|
||||
Op::TypeOf => self.write_opcode(OpCode::TypeOf)?,
|
||||
Op::URShift => self.write_opcode(OpCode::URShift)?,
|
||||
|
|
Loading…
Reference in New Issue