anchor.diff:  Assert.Equal(fResult, 'LDA.CALL CALLED'#13#10);
   end;
   
  +
  +method Scripts.ExposeType(aScript: String;  aTypeName: String;  aExpectedResult: String);
  +begin
  +  var lScriptEngine := new RemObjects.Script.EcmaScriptComponent();
  +  lScriptEngine.Debug := false;
  +  lScriptEngine.RunInThread := false;
  +
  +  lScriptEngine.Source := aScript;
  +  self.fResult := String.Empty;
  +
  +  var lWriteLn: MyDelegate :=
  +                   method (params args: array of Object): Object
  +                   begin
  +                     for each  el  in  args  do
  +                       self.fResult := self.fResult + RemObjects.Script.EcmaScript.Utilities.GetObjAsString(el, lScriptEngine.GlobalObject.ExecutionContext);
  +                   end;
  +  lScriptEngine.Globals.SetVariable("writeln", lWriteLn);
  +
  +  lScriptEngine.ExposeType(typeOf(SimpleCLRType), aTypeName);
  +  lScriptEngine.Run();
  +
  +  Assert.Equal(aExpectedResult, self.fResult);
  +end;
  +
  +
   constructor LDA(aScripts: Scripts);
   begin
     fScripts := aScripts;
   end;
   
  +
   method LDA.Call;
   begin
     fScripts.fResult := fScripts.fResult + 'LDA.CALL CALLED'#13#10;
   end;
   
  -end.
  +
  +constructor SimpleCLRType();
  +begin
  +  self.A := 42;
  +  self.B := 'Foo';
  +end;
  +
  +
  +class method SimpleCLRType.Foo(): String;
  +begin
  +  exit  ('Bar');
  +end;
  +
  +
  +end.
positive.code:     constructor(aScripts: Scripts);
      method Call;
    end;
  implementation
  
  method Scripts.EvalTest;
  
negative.code: 
  type
    MyDelegate = method(params args: Array of object): Object;  
  
    Scripts = public class
    assembly
      fResult: String;
      method ExecuteJS(s: String): Object;
    public
      [Fact]
      method Error;
  