|  | @@ -497,9 +497,15 @@ selector: 'eval:',
 | 
	
		
			
				|  |  |  category: 'actions',
 | 
	
		
			
				|  |  |  fn: function (aString){
 | 
	
		
			
				|  |  |  var self=this;
 | 
	
		
			
				|  |  | -return smalltalk.Compiler._new()._loadExpression_(aString);
 | 
	
		
			
				|  |  | -return self;},
 | 
	
		
			
				|  |  | -source: unescape('eval%3A%20aString%0A%20%20%20%20%5ECompiler%20new%20loadExpression%3A%20aString%0A')}),
 | 
	
		
			
				|  |  | +try{var compiler=nil;
 | 
	
		
			
				|  |  | +var node=nil;
 | 
	
		
			
				|  |  | +compiler=smalltalk.Compiler._new();
 | 
	
		
			
				|  |  | +node=compiler._parseExpression_(aString);
 | 
	
		
			
				|  |  | +node._isParseFailure()._ifTrue_((function(){return (function(){throw({name: 'stReturn', selector: '_eval_', fn: function(){return self._alert_(node._reason().__comma(unescape("%2C%20position%3A%20")).__comma(node._position()))}})})();}));
 | 
	
		
			
				|  |  | +(function(){throw({name: 'stReturn', selector: '_eval_', fn: function(){return compiler._loadExpression_(aString)}})})();
 | 
	
		
			
				|  |  | +return self;
 | 
	
		
			
				|  |  | +} catch(e) {if(e.name === 'stReturn' && e.selector === '_eval_'){return e.fn()} throw(e)}},
 | 
	
		
			
				|  |  | +source: unescape('eval%3A%20aString%0A%20%20%20%20%7C%20compiler%20node%20%7C%0A%20%20%20%20compiler%20%3A%3D%20Compiler%20new.%0A%20%20%20%20node%20%3A%3D%20compiler%20parseExpression%3A%20aString.%0A%20%20%20%20node%20isParseFailure%20ifTrue%3A%20%5B%0A%09%5Eself%20alert%3A%20node%20reason%2C%20%27%2C%20position%3A%20%27%2C%20node%20position%5D.%0A%20%20%20%20%5Ecompiler%20loadExpression%3A%20aString%0A')}),
 | 
	
		
			
				|  |  |  smalltalk.Workspace);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  smalltalk.addMethod(
 | 
	
	
		
			
				|  | @@ -981,14 +987,23 @@ selector: 'compileMethodDefinitionFor:',
 | 
	
		
			
				|  |  |  category: 'actions',
 | 
	
		
			
				|  |  |  fn: function (aClass){
 | 
	
		
			
				|  |  |  var self=this;
 | 
	
		
			
				|  |  | +try{var compiler=nil;
 | 
	
		
			
				|  |  |  var method=nil;
 | 
	
		
			
				|  |  | -method=smalltalk.Compiler._new()._load_forClass_(self['@sourceTextarea']._asJQuery()._val(),self['@selectedClass']);
 | 
	
		
			
				|  |  | +var source=nil;
 | 
	
		
			
				|  |  | +var node=nil;
 | 
	
		
			
				|  |  | +source=self['@sourceTextarea']._asJQuery()._val();
 | 
	
		
			
				|  |  | +compiler=smalltalk.Compiler._new();
 | 
	
		
			
				|  |  | +node=compiler._parse_(source);
 | 
	
		
			
				|  |  | +node._isParseFailure()._ifTrue_((function(){return (function(){throw({name: 'stReturn', selector: '_compileMethodDefinitionFor_', fn: function(){return self._alert_("PARSE ERROR: ".__comma(node._reason()).__comma(unescape("%2C%20position%3A%20")).__comma(node._position()._asString()))}})})();}));
 | 
	
		
			
				|  |  | +compiler._currentClass_(self['@selectedClass']);
 | 
	
		
			
				|  |  | +method=compiler._eval_(compiler._compileNode_(node));
 | 
	
		
			
				|  |  |  method._category_(self['@selectedProtocol']);
 | 
	
		
			
				|  |  |  aClass._addCompiledMethod_(method);
 | 
	
		
			
				|  |  |  self._updateMethodsList();
 | 
	
		
			
				|  |  |  self._selectMethod_(method);
 | 
	
		
			
				|  |  | -return self;},
 | 
	
		
			
				|  |  | -source: unescape('compileMethodDefinitionFor%3A%20aClass%0A%20%20%20%20%7C%20method%20%7C%0A%20%20%20%20method%20%3A%3D%20Compiler%20new%20load%3A%20sourceTextarea%20asJQuery%20val%20forClass%3A%20selectedClass.%0A%20%20%20%20method%20category%3A%20selectedProtocol.%0A%20%20%20%20aClass%20addCompiledMethod%3A%20method.%0A%20%20%20%20self%20updateMethodsList.%0A%20%20%20%20self%20selectMethod%3A%20method%0A')}),
 | 
	
		
			
				|  |  | +return self;
 | 
	
		
			
				|  |  | +} catch(e) {if(e.name === 'stReturn' && e.selector === '_compileMethodDefinitionFor_'){return e.fn()} throw(e)}},
 | 
	
		
			
				|  |  | +source: unescape('compileMethodDefinitionFor%3A%20aClass%0A%20%20%20%20%7C%20compiler%20method%20source%20node%20%7C%0A%20%20%20%20source%20%3A%3D%20sourceTextarea%20asJQuery%20val.%0A%20%20%20%20compiler%20%3A%3D%20Compiler%20new.%0A%20%20%20%20node%20%3A%3D%20compiler%20parse%3A%20source.%0A%20%20%20%20node%20isParseFailure%20ifTrue%3A%20%5B%0A%09%5Eself%20alert%3A%20%27PARSE%20ERROR%3A%20%27%2C%20node%20reason%2C%20%27%2C%20position%3A%20%27%2C%20node%20position%20asString%5D.%0A%20%20%20%20compiler%20currentClass%3A%20selectedClass.%0A%20%20%20%20method%20%3A%3D%20compiler%20eval%3A%20%28compiler%20compileNode%3A%20node%29.%0A%20%20%20%20method%20category%3A%20selectedProtocol.%0A%20%20%20%20aClass%20addCompiledMethod%3A%20method.%0A%20%20%20%20self%20updateMethodsList.%0A%20%20%20%20self%20selectMethod%3A%20method%0A')}),
 | 
	
		
			
				|  |  |  smalltalk.Browser);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  smalltalk.addMethod(
 |