public override void Execute(ref mdr.DValue result, ref mdr.CallFrame callFrame, Interpreter interpreter) { var temp = interpreter.Declare(this); if (temp.Node == null) { //This is the very first visit //We need to regenerate results temp.Node = this; interpreter.PushLocation(this); Value.Execute(ref result, ref callFrame, interpreter); temp.Value = result; interpreter.PopLocation(this, ref result); } else result = temp.Value; }