anchor.diff:  begin
     inherited constructor;
     fStackItems := new ReadOnlyCollection<ScriptStackFrame>(fStackList);
  -	Clear;
  +  Clear;
   end;
   
   method ScriptComponent.SetDebug(b: Boolean);
   begin
     if fDebug = b then exit;
  -	fDebug := b;
  +  fDebug := b;
   end;
   
   
  
positive.code: 
  method ScriptComponent.Stop;
  begin
  	locking self do begin
  		case Status of
  			ScriptStatus.Paused: begin Status := ScriptStatus.Stopping; fWaitEvent.Set(); end;
  			ScriptStatus.Stopping,
  			ScriptStatus.Pausing, 
  			ScriptStatus.Running, 
  			ScriptStatus.StepInto,
  			ScriptStatus.StepOut, 
  			ScriptStatus.StepOver:  Status := ScriptStatus.Stopping;
  			ScriptStatus.Stopped: ;
  		end; // case
  	end;
  end;
  
  method ScriptComponent.set_RunInThread(value: Boolean);
  begin
    if Status = ScriptStatus.Stopped then 
  	  fRunInThread := value 
  	else
  	  raise new ScriptComponentException(Properties.Resources.eRunInThreadCannotBeModifiedWhenScriptIsRunning);
  end;
  
  method ScriptComponent.set_Status(value: ScriptStatus);
  begin
  	fStatus := value;
  	if assigned(StatusChanged) then StatusChanged(self, EventArgs.Empty);
  end;
  
  
  
  method ScriptComponent.Run;
  begin
  	if fRunInThread then begin
      locking self do begin
  	  	if Status in [ScriptStatus.StepInto, ScriptStatus.StepOut, ScriptStatus.StepOver] then begin
  		  	Status := ScriptStatus.Running;
  			  exit;
    		end else if Status = ScriptStatus.Paused  then begin
  		    Status := ScriptStatus.Running;
          fWaitEvent.Set();
  		  	exit;
    		end else if Status <> ScriptStatus.Stopped then raise new ScriptComponentException(RemObjects.Script.Properties.Resources.eAlreadyRunning);
  			Status := ScriptStatus.Running;
  		end;
        fExceptionResult := nil;
  		  fWorkThread := new System.Threading.Thread(method begin
          try
  				  fRunResult := IntRun;
          except
            on e: Exception do
              fExceptionResult := e;
  				end;
  			end);
  			try
  			  fWorkThread.Start;
  			except
  				Status := ScriptStatus.Stopped;
  				raise;
  			end;
  	end else begin
      if Status = ScriptStatus.Paused then begin Status := ScriptStatus.Running; exit; end;
  		if Status <> ScriptStatus.Stopped then raise new ScriptComponentException(RemObjects.Script.Properties.Resources.eAlreadyRunning);
      fRunResult := IntRun;
  	end;
  
  end;
  
  method ScriptComponent.Pause;
  begin
    locking self do begin
    	if Status = ScriptStatus.Running then begin
  		  Status := ScriptStatus.Pausing;
    	end;
  	end;
  end;
  
  method ScriptComponent.Idle;
  
negative.code: ﻿{
    Copyright (c) 2009-2011 RemObjects Software. See LICENSE.txt for more details.
  }
  
  namespace RemObjects.Script;
  
  interface
  