aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bytecode/src/encoding.rs9
1 files changed, 9 insertions, 0 deletions
diff --git a/bytecode/src/encoding.rs b/bytecode/src/encoding.rs
index 7e9ede2..b3e84ac 100644
--- a/bytecode/src/encoding.rs
+++ b/bytecode/src/encoding.rs
@@ -102,6 +102,7 @@ fn op_decoding<T: Read>(prog: &mut T) -> Result<Option<Op>, String> {
),
13 => Op::Exit(read_arg(prog, arg1_const)?),
14 => Op::AllocBytevector(read_local(prog)?, read_arg(prog, arg1_const)?),
+ 15 => Op::TypeOf(read_local(prog)?, read_arg(prog, arg1_const)?),
_ => {
return Err(String::from("invalid opcode"));
}
@@ -413,4 +414,12 @@ mod tests {
decode_vec(vec![0x3a, 0, 0x15, 0, 0, 0, 0, 0, 0, 0])
);
}
+
+ #[test]
+ fn decode_typeof() {
+ assert_eq!(
+ vec![TypeOf(Local(0), L(Local(1)))],
+ decode_vec(vec![0x3c, 0, 1])
+ );
+ }
}