public override AstVisitAction VisitScriptBlock(ScriptBlockAst scriptBlockAst) { try { scriptBlockAst.EndBlock.Visit(this); } catch (ReturnException e) { // if the exception was a return excpetion, also write the returnResult, if existing if (PSObject.Unwrap(e.Value) != null) { _pipelineCommandRuntime.WriteObject(e.Value, true); } } return AstVisitAction.SkipChildren; }