1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
use super::{Context, Executable, InterpreterState}; use crate::{syntax::ast::node::Return, Result, Value}; impl Executable for Return { fn run(&self, interpreter: &mut Context) -> Result<Value> { let result = match self.expr() { Some(ref v) => v.run(interpreter), None => Ok(Value::undefined()), }; // Set flag for return interpreter .executor() .set_current_state(InterpreterState::Return); result } }