diff --git a/inputs/failing/copyCounting/return.ts b/inputs/passing/copyCounting/return.ts similarity index 83% rename from inputs/failing/copyCounting/return.ts rename to inputs/passing/copyCounting/return.ts index bce5232..cf1ca50 100644 --- a/inputs/failing/copyCounting/return.ts +++ b/inputs/passing/copyCounting/return.ts @@ -1,5 +1,4 @@ -//! test_output(1) -// Should be: 0 +//! test_output(0) /// diff --git a/valuescript_vm/src/bytecode_stack_frame.rs b/valuescript_vm/src/bytecode_stack_frame.rs index 30fd377..34aefbc 100644 --- a/valuescript_vm/src/bytecode_stack_frame.rs +++ b/valuescript_vm/src/bytecode_stack_frame.rs @@ -1,3 +1,5 @@ +use std::mem::take; + use valuescript_common::InstructionByte; use crate::builtins::type_error_builtin::ToTypeError; @@ -135,8 +137,8 @@ impl StackFrameTrait for BytecodeStackFrame { match instruction_byte { End => { return Ok(FrameStepOk::Pop(CallResult { - return_: self.registers[0].clone(), - this: self.registers[1].clone(), + return_: take(&mut self.registers[0]), + this: take(&mut self.registers[1]), })); }