Fix local variable definitions
This commit is contained in:
parent
1eb62b078e
commit
130cb2763b
@ -116,7 +116,7 @@ impl Statement {
|
|||||||
let min_reg = scope.register_counter.0 + 1;
|
let min_reg = scope.register_counter.0 + 1;
|
||||||
let max_reg = scope.register_counter.0 + names.len() as u16;
|
let max_reg = scope.register_counter.0 + names.len() as u16;
|
||||||
instructions.push(Instruction::LoadNil(min_reg, max_reg));
|
instructions.push(Instruction::LoadNil(min_reg, max_reg));
|
||||||
scope.register_counter.0 += names.len() as u16;
|
scope.register_counter.0 += names.len() as u16 + 1;
|
||||||
|
|
||||||
let mut new_registers = Vec::new();
|
let mut new_registers = Vec::new();
|
||||||
for i in min_reg..=max_reg {
|
for i in min_reg..=max_reg {
|
||||||
|
|||||||
@ -373,7 +373,6 @@ impl ClosureRunner {
|
|||||||
self.inner = Some(Box::new(closure.run(params)));
|
self.inner = Some(Box::new(closure.run(params)));
|
||||||
}
|
}
|
||||||
_ => {
|
_ => {
|
||||||
dbg!(&value);
|
|
||||||
if *ret_len > 0 {
|
if *ret_len > 0 {
|
||||||
for i in 0..=(*ret_len - 2) {
|
for i in 0..=(*ret_len - 2) {
|
||||||
self.set_stack(*func_reg + i, Value::Nil);
|
self.set_stack(*func_reg + i, Value::Nil);
|
||||||
@ -392,13 +391,11 @@ impl ClosureRunner {
|
|||||||
.max()
|
.max()
|
||||||
.unwrap_or(0);
|
.unwrap_or(0);
|
||||||
|
|
||||||
dbg!(&self.stack);
|
|
||||||
let mut upvalues = self.closure.upvalues.clone();
|
let mut upvalues = self.closure.upvalues.clone();
|
||||||
for (reg, value) in &self.stack {
|
for (reg, value) in &self.stack {
|
||||||
upvalues.insert(reg + highest_upvalue + 1, value.clone());
|
upvalues.insert(reg + highest_upvalue + 1, value.clone());
|
||||||
}
|
}
|
||||||
|
|
||||||
dbg!(&upvalues);
|
|
||||||
self.set_stack(
|
self.set_stack(
|
||||||
*reg,
|
*reg,
|
||||||
Value::Function(Closure {
|
Value::Function(Closure {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user