anchor.diff:      var lCallback := fCompiler.Parse(SourceFileName, Source);
       result := lCallback(fRoot, fGlobalObject, []);
     except
  -    on e: ScriptRuntimeException where EcmaScriptObjectWrapper(e.Original):Value is Exception do 
  -      fExceptionResult := Exception(EcmaScriptObjectWrapper(e.Original).Value);
  +    on e: ScriptRuntimeException where assigned(EcmaScriptObjectWrapper(e.Original)) do begin
  +      if EcmaScriptObjectWrapper(e.Original).Value is Exception then
  +        self.RunException := Exception(EcmaScriptObjectWrapper(e.Original).Value)
  +      else
  +       self.RunException := e;
  +    end;
  +    on e: ScriptRuntimeException where assigned(EcmaScriptObject(e.Original)) do begin
  +      self.RunException := new ScriptRuntimeException(EcmaScriptObject(e.Original).ToString());
  +      raise;
  +    end;
       on e: ScriptAbortException do
         exit Undefined.Instance;
     finally
  
positive.code:     ///   if you want to use the debugger</summary>
      method Run; 
      property RunResult: Object read fRunResult;
      property RunException: Exception read fExceptionResult;
      property DebugLastPos: PositionPair read fDebugLastPos;
  
      /// <summary>Returns if there is a function by that name. After calling Run the global object
  
negative.code: 
  
  
  method ScriptComponent.Run();
  begin
    if fRunInThread then begin
      locking self do begin
  