From c318f42c119f3dd13bf0cfd7917bfdd41fea7085 Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Sun, 3 Oct 2021 14:20:44 +0300 Subject: feat(tazjin/rlox): Support local variables WIP Change-Id: I78fbc885faaac165c380cbd9aa98b4b64a9b8274 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3685 Tested-by: BuildkiteCI Reviewed-by: tazjin --- users/tazjin/rlox/src/bytecode/vm.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'users/tazjin/rlox/src/bytecode/vm.rs') diff --git a/users/tazjin/rlox/src/bytecode/vm.rs b/users/tazjin/rlox/src/bytecode/vm.rs index 4432473ee6..10d0f595d6 100644 --- a/users/tazjin/rlox/src/bytecode/vm.rs +++ b/users/tazjin/rlox/src/bytecode/vm.rs @@ -194,6 +194,16 @@ impl VM { } }); } + + OpCode::OpGetLocal(local_idx) => { + let value = self.stack[*local_idx].clone(); + self.push(value); + } + + OpCode::OpSetLocal(local_idx) => { + debug_assert!(self.stack.len() > *local_idx, "stack is not currently large enough for local"); + self.stack[*local_idx] = self.stack.last().unwrap().clone(); + } } #[cfg(feature = "disassemble")] -- cgit 1.4.1