feat(tazjin/rlox): Global variable assignment
Needed for example code compatibility. Change-Id: Id83210eaaad7dcfef5aa238dd3a7ec159f6935e9 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3684 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
This commit is contained in:
parent
6a38600ce8
commit
ad7e591c80
4 changed files with 38 additions and 3 deletions
|
|
@ -181,6 +181,19 @@ impl VM {
|
|||
self.push(val)
|
||||
});
|
||||
}
|
||||
|
||||
OpCode::OpSetGlobal(name_idx) => {
|
||||
let name = self.chunk.constant(*name_idx).clone();
|
||||
let new_val = self.pop();
|
||||
with_type!(self, name, Value::String(name), {
|
||||
match self.globals.get_mut(&name) {
|
||||
None => unimplemented!("variable not found error"),
|
||||
Some(val) => {
|
||||
*val = new_val;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(feature = "disassemble")]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue