Files
ValueScript/valuescript_vm/src/first_stack_frame.rs
2023-03-23 09:57:40 +11:00

44 lines
999 B
Rust

use super::stack_frame::{CallResult, FrameStepResult, StackFrameTrait};
use super::vs_value::Val;
pub struct FirstStackFrame {
call_result: CallResult,
}
impl FirstStackFrame {
pub fn new() -> FirstStackFrame {
return FirstStackFrame {
call_result: CallResult {
return_: Val::Void,
this: Val::Void,
},
};
}
}
impl StackFrameTrait for FirstStackFrame {
fn write_this(&mut self, _this: Val) {
panic!("Not appropriate for FirstStackFrame");
}
fn write_param(&mut self, _param: Val) {
panic!("Not appropriate for FirstStackFrame");
}
fn step(&mut self) -> FrameStepResult {
panic!("Not appropriate for FirstStackFrame");
}
fn apply_call_result(&mut self, call_result: CallResult) {
self.call_result = call_result;
}
fn get_call_result(&mut self) -> CallResult {
return self.call_result.clone();
}
fn catch_exception(&mut self, _exception: Val) -> bool {
panic!("Not appropriate for FirstStackFrame");
}
}