|  | @@ -56,65 +56,44 @@ selector: "listCssClassForItem:",
 | 
	
		
			
				|  |  |  protocol: 'accessing',
 | 
	
		
			
				|  |  |  fn: function (anObject){
 | 
	
		
			
				|  |  |  var self=this;
 | 
	
		
			
				|  |  | -var class_;
 | 
	
		
			
				|  |  |  return smalltalk.withContext(function($ctx1) { 
 | 
	
		
			
				|  |  | -var $1,$2,$3;
 | 
	
		
			
				|  |  | -$1=_st(self._selectedItem()).__eq(anObject);
 | 
	
		
			
				|  |  | -if(smalltalk.assert($1)){
 | 
	
		
			
				|  |  | -class_="selector";
 | 
	
		
			
				|  |  | +var $2,$4,$3,$1;
 | 
	
		
			
				|  |  | +$2=($ctx1.supercall = true, globals.HLMultiSelectToolListWidget.superclass.fn.prototype._listCssClassForItem_.apply(_st(self), [anObject]));
 | 
	
		
			
				|  |  | +$ctx1.supercall = false;
 | 
	
		
			
				|  |  | +$4=self._isSelected_(anObject);
 | 
	
		
			
				|  |  | +if(smalltalk.assert($4)){
 | 
	
		
			
				|  |  | +$3=" active";
 | 
	
		
			
				|  |  |  } else {
 | 
	
		
			
				|  |  | -class_="";
 | 
	
		
			
				|  |  | -};
 | 
	
		
			
				|  |  | -$2=self._isSelected_(anObject);
 | 
	
		
			
				|  |  | -if(smalltalk.assert($2)){
 | 
	
		
			
				|  |  | -class_=_st(class_).__comma(" active");
 | 
	
		
			
				|  |  | -class_;
 | 
	
		
			
				|  |  | +$3="";
 | 
	
		
			
				|  |  |  };
 | 
	
		
			
				|  |  | -$3=class_;
 | 
	
		
			
				|  |  | -return $3;
 | 
	
		
			
				|  |  | -}, function($ctx1) {$ctx1.fill(self,"listCssClassForItem:",{anObject:anObject,class_:class_},globals.HLMultiSelectToolListWidget)})},
 | 
	
		
			
				|  |  | +$1=_st($2).__comma($3);
 | 
	
		
			
				|  |  | +return $1;
 | 
	
		
			
				|  |  | +}, function($ctx1) {$ctx1.fill(self,"listCssClassForItem:",{anObject:anObject},globals.HLMultiSelectToolListWidget)})},
 | 
	
		
			
				|  |  |  args: ["anObject"],
 | 
	
		
			
				|  |  | -source: "listCssClassForItem: anObject\x0a\x09 |class |\x0a\x09class := self selectedItem = anObject\x0a\x09\x09ifTrue: [ 'selector' ]\x0a\x09\x09ifFalse: [ '' ].\x0a\x09(self isSelected: anObject)\x0a\x09\x09ifTrue: [class := class, ' active'].\x0a\x09^class",
 | 
	
		
			
				|  |  | -messageSends: ["ifTrue:ifFalse:", "=", "selectedItem", "ifTrue:", "isSelected:", ","],
 | 
	
		
			
				|  |  | +source: "listCssClassForItem: anObject\x0a\x09^(super listCssClassForItem: anObject), ((self isSelected: anObject)\x0a\x09\x09ifTrue: [' active']\x0a\x09\x09ifFalse: ['']).\x0a\x09",
 | 
	
		
			
				|  |  | +messageSends: [",", "listCssClassForItem:", "ifTrue:ifFalse:", "isSelected:"],
 | 
	
		
			
				|  |  |  referencedClasses: []
 | 
	
		
			
				|  |  |  }),
 | 
	
		
			
				|  |  |  globals.HLMultiSelectToolListWidget);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  smalltalk.addMethod(
 | 
	
		
			
				|  |  |  smalltalk.method({
 | 
	
		
			
				|  |  | -selector: "renderItem:on:",
 | 
	
		
			
				|  |  | +selector: "reselectItem:",
 | 
	
		
			
				|  |  |  protocol: 'rendering',
 | 
	
		
			
				|  |  | -fn: function (anObject,html){
 | 
	
		
			
				|  |  | +fn: function (anObject){
 | 
	
		
			
				|  |  |  var self=this;
 | 
	
		
			
				|  |  | -var li;
 | 
	
		
			
				|  |  | -return smalltalk.withContext(function($ctx1) { 
 | 
	
		
			
				|  |  | -var $1,$2,$4,$5,$3;
 | 
	
		
			
				|  |  | -li=_st(html)._li();
 | 
	
		
			
				|  |  | -$1=_st(li)._asJQuery();
 | 
	
		
			
				|  |  | -$ctx1.sendIdx["asJQuery"]=1;
 | 
	
		
			
				|  |  | -_st($1)._data_put_("item",anObject);
 | 
	
		
			
				|  |  | -$2=li;
 | 
	
		
			
				|  |  | -_st($2)._class_(self._listCssClassForItem_(anObject));
 | 
	
		
			
				|  |  | -$ctx1.sendIdx["class:"]=1;
 | 
	
		
			
				|  |  | -$3=_st($2)._with_((function(){
 | 
	
		
			
				|  |  | -return smalltalk.withContext(function($ctx2) {
 | 
	
		
			
				|  |  | -$4=_st(html)._a();
 | 
	
		
			
				|  |  | -_st($4)._with_((function(){
 | 
	
		
			
				|  |  | -return smalltalk.withContext(function($ctx3) {
 | 
	
		
			
				|  |  | -_st(_st(html)._tag_("i"))._class_(self._cssClassForItem_(anObject));
 | 
	
		
			
				|  |  | -return self._renderItemLabel_on_(anObject,html);
 | 
	
		
			
				|  |  | -}, function($ctx3) {$ctx3.fillBlock({},$ctx2,2)})}));
 | 
	
		
			
				|  |  | -$5=_st($4)._onClick_((function(){
 | 
	
		
			
				|  |  | -return smalltalk.withContext(function($ctx3) {
 | 
	
		
			
				|  |  | -return self._toggleListItem_(_st(li)._asJQuery());
 | 
	
		
			
				|  |  | -}, function($ctx3) {$ctx3.fillBlock({},$ctx2,3)})}));
 | 
	
		
			
				|  |  | -return $5;
 | 
	
		
			
				|  |  | -}, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)})}));
 | 
	
		
			
				|  |  | -$ctx1.sendIdx["with:"]=1;
 | 
	
		
			
				|  |  | -return self}, function($ctx1) {$ctx1.fill(self,"renderItem:on:",{anObject:anObject,html:html,li:li},globals.HLMultiSelectToolListWidget)})},
 | 
	
		
			
				|  |  | -args: ["anObject", "html"],
 | 
	
		
			
				|  |  | -source: "renderItem: anObject on: html\x0a\x09| li |\x0a    \x0a\x09li := html li.\x0a\x09li asJQuery data: 'item' put: anObject.\x0a    li\x0a\x09\x09class: (self listCssClassForItem: anObject);\x0a        with: [ \x0a        \x09html a\x0a            \x09with: [ \x0a            \x09\x09(html tag: 'i') class: (self cssClassForItem: anObject).\x0a  \x09\x09\x09\x09\x09self renderItemLabel: anObject on: html ];\x0a\x09\x09\x09\x09onClick: [\x0a                  \x09self toggleListItem: li asJQuery ] ]",
 | 
	
		
			
				|  |  | -messageSends: ["li", "data:put:", "asJQuery", "class:", "listCssClassForItem:", "with:", "a", "tag:", "cssClassForItem:", "renderItemLabel:on:", "onClick:", "toggleListItem:"],
 | 
	
		
			
				|  |  | +return smalltalk.withContext(function($ctx1) { 
 | 
	
		
			
				|  |  | +var $receiver;
 | 
	
		
			
				|  |  | +if(($receiver = anObject) == null || $receiver.isNil){
 | 
	
		
			
				|  |  | +return self;
 | 
	
		
			
				|  |  | +} else {
 | 
	
		
			
				|  |  | +anObject;
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +self._toggleSelection_(anObject);
 | 
	
		
			
				|  |  | +return self}, function($ctx1) {$ctx1.fill(self,"reselectItem:",{anObject:anObject},globals.HLMultiSelectToolListWidget)})},
 | 
	
		
			
				|  |  | +args: ["anObject"],
 | 
	
		
			
				|  |  | +source: "reselectItem: anObject\x0a\x09anObject ifNil: [^self].\x0a\x09self toggleSelection: anObject",
 | 
	
		
			
				|  |  | +messageSends: ["ifNil:", "toggleSelection:"],
 | 
	
		
			
				|  |  |  referencedClasses: []
 | 
	
		
			
				|  |  |  }),
 | 
	
		
			
				|  |  |  globals.HLMultiSelectToolListWidget);
 | 
	
	
		
			
				|  | @@ -1012,13 +991,13 @@ return smalltalk.withContext(function($ctx1) {
 | 
	
		
			
				|  |  |  worker=_st($TestSuiteRunner())._on_(self._testCases());
 | 
	
		
			
				|  |  |  $ctx1.sendIdx["on:"]=1;
 | 
	
		
			
				|  |  |  self["@testResult"]=_st(worker)._result();
 | 
	
		
			
				|  |  | -self._subscribeToTestSuite_(worker);
 | 
	
		
			
				|  |  |  _st(self._announcer())._announce_(_st($HLRunTests())._on_(worker));
 | 
	
		
			
				|  |  | +self._subscribeToTestSuite_(worker);
 | 
	
		
			
				|  |  |  _st(worker)._run();
 | 
	
		
			
				|  |  |  return self}, function($ctx1) {$ctx1.fill(self,"runTests",{worker:worker},globals.HLSUnitModel)})},
 | 
	
		
			
				|  |  |  args: [],
 | 
	
		
			
				|  |  | -source: "runTests\x0a\x09| worker |\x0a\x09worker := TestSuiteRunner on: self testCases.\x0a\x09testResult := worker result.\x0a\x09self subscribeToTestSuite: worker.\x0a\x09self announcer announce: (HLRunTests on: worker).\x0a\x09worker run",
 | 
	
		
			
				|  |  | -messageSends: ["on:", "testCases", "result", "subscribeToTestSuite:", "announce:", "announcer", "run"],
 | 
	
		
			
				|  |  | +source: "runTests\x0a\x09| worker |\x0a\x09worker := TestSuiteRunner on: self testCases.\x0a\x09testResult := worker result.\x0a\x09self announcer announce: (HLRunTests on: worker).\x0a\x09self subscribeToTestSuite: worker.\x0a\x09worker run",
 | 
	
		
			
				|  |  | +messageSends: ["on:", "testCases", "result", "announce:", "announcer", "subscribeToTestSuite:", "run"],
 | 
	
		
			
				|  |  |  referencedClasses: ["TestSuiteRunner", "HLRunTests"]
 | 
	
		
			
				|  |  |  }),
 | 
	
		
			
				|  |  |  globals.HLSUnitModel);
 | 
	
	
		
			
				|  | @@ -1360,20 +1339,30 @@ protocol: 'rendering',
 | 
	
		
			
				|  |  |  fn: function (anObject,html){
 | 
	
		
			
				|  |  |  var self=this;
 | 
	
		
			
				|  |  |  return smalltalk.withContext(function($ctx1) { 
 | 
	
		
			
				|  |  | -var $1,$2,$3,$4;
 | 
	
		
			
				|  |  | -$1=_st(html)._span();
 | 
	
		
			
				|  |  | -$2=$1;
 | 
	
		
			
				|  |  | -$3=_st(_st(_st(_st(anObject)._class())._name()).__comma(" >> ")).__comma(_st(anObject)._selector());
 | 
	
		
			
				|  |  | +var $1;
 | 
	
		
			
				|  |  | +$1=_st(_st(_st(_st(anObject)._class())._name()).__comma(" >> ")).__comma(_st(anObject)._selector());
 | 
	
		
			
				|  |  |  $ctx1.sendIdx[","]=1;
 | 
	
		
			
				|  |  | -_st($2)._with_($3);
 | 
	
		
			
				|  |  | -$4=_st($1)._onClick_((function(){
 | 
	
		
			
				|  |  | -return smalltalk.withContext(function($ctx2) {
 | 
	
		
			
				|  |  | -return self._performFailure_(anObject);
 | 
	
		
			
				|  |  | -}, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)})}));
 | 
	
		
			
				|  |  | +_st(html)._with_($1);
 | 
	
		
			
				|  |  |  return self}, function($ctx1) {$ctx1.fill(self,"renderItemLabel:on:",{anObject:anObject,html:html},globals.HLSUnitResultListWidget)})},
 | 
	
		
			
				|  |  |  args: ["anObject", "html"],
 | 
	
		
			
				|  |  | -source: "renderItemLabel: anObject on: html\x0a\x09html span\x0a\x09\x09with: anObject class name, ' >> ', anObject selector;\x0a\x09\x09onClick: [ self performFailure: anObject ]",
 | 
	
		
			
				|  |  | -messageSends: ["with:", "span", ",", "name", "class", "selector", "onClick:", "performFailure:"],
 | 
	
		
			
				|  |  | +source: "renderItemLabel: anObject on: html\x0a\x09html with: anObject class name, ' >> ', anObject selector",
 | 
	
		
			
				|  |  | +messageSends: ["with:", ",", "name", "class", "selector"],
 | 
	
		
			
				|  |  | +referencedClasses: []
 | 
	
		
			
				|  |  | +}),
 | 
	
		
			
				|  |  | +globals.HLSUnitResultListWidget);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +smalltalk.addMethod(
 | 
	
		
			
				|  |  | +smalltalk.method({
 | 
	
		
			
				|  |  | +selector: "reselectItem:",
 | 
	
		
			
				|  |  | +protocol: 'rendering',
 | 
	
		
			
				|  |  | +fn: function (anObject){
 | 
	
		
			
				|  |  | +var self=this;
 | 
	
		
			
				|  |  | +return smalltalk.withContext(function($ctx1) { 
 | 
	
		
			
				|  |  | +self._performFailure_(anObject);
 | 
	
		
			
				|  |  | +return self}, function($ctx1) {$ctx1.fill(self,"reselectItem:",{anObject:anObject},globals.HLSUnitResultListWidget)})},
 | 
	
		
			
				|  |  | +args: ["anObject"],
 | 
	
		
			
				|  |  | +source: "reselectItem: anObject\x0a\x09self performFailure: anObject ",
 | 
	
		
			
				|  |  | +messageSends: ["performFailure:"],
 | 
	
		
			
				|  |  |  referencedClasses: []
 | 
	
		
			
				|  |  |  }),
 | 
	
		
			
				|  |  |  globals.HLSUnitResultListWidget);
 | 
	
	
		
			
				|  | @@ -1758,20 +1747,24 @@ protocol: 'reacting',
 | 
	
		
			
				|  |  |  fn: function (announcement){
 | 
	
		
			
				|  |  |  var self=this;
 | 
	
		
			
				|  |  |  return smalltalk.withContext(function($ctx1) { 
 | 
	
		
			
				|  |  | -var $1,$6,$5,$4,$3,$2;
 | 
	
		
			
				|  |  | +var $1,$7,$6,$5,$4,$3,$2;
 | 
	
		
			
				|  |  | +_st((function(){
 | 
	
		
			
				|  |  | +return smalltalk.withContext(function($ctx2) {
 | 
	
		
			
				|  |  |  $1=self._progressBarWidget();
 | 
	
		
			
				|  |  | -$6=self._model();
 | 
	
		
			
				|  |  | -$ctx1.sendIdx["model"]=1;
 | 
	
		
			
				|  |  | -$5=_st($6)._testResult();
 | 
	
		
			
				|  |  | -$ctx1.sendIdx["testResult"]=1;
 | 
	
		
			
				|  |  | -$4=_st($5)._runs();
 | 
	
		
			
				|  |  | -$3=_st($4).__slash(_st(_st(self._model())._testResult())._total());
 | 
	
		
			
				|  |  | -$2=_st($3).__star((100));
 | 
	
		
			
				|  |  | -_st($1)._updateProgress_($2);
 | 
	
		
			
				|  |  | +$7=self._model();
 | 
	
		
			
				|  |  | +$ctx2.sendIdx["model"]=1;
 | 
	
		
			
				|  |  | +$6=_st($7)._testResult();
 | 
	
		
			
				|  |  | +$ctx2.sendIdx["testResult"]=1;
 | 
	
		
			
				|  |  | +$5=_st($6)._runs();
 | 
	
		
			
				|  |  | +$4=_st($5).__slash(_st(_st(self._model())._testResult())._total());
 | 
	
		
			
				|  |  | +$3=_st($4).__star((100));
 | 
	
		
			
				|  |  | +$2=_st($3)._rounded();
 | 
	
		
			
				|  |  | +return _st($1)._updateProgress_($2);
 | 
	
		
			
				|  |  | +}, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)})}))._valueWithTimeout_((10));
 | 
	
		
			
				|  |  |  return self}, function($ctx1) {$ctx1.fill(self,"onResultAnnouncement:",{announcement:announcement},globals.HLSUnitResults)})},
 | 
	
		
			
				|  |  |  args: ["announcement"],
 | 
	
		
			
				|  |  | -source: "onResultAnnouncement: announcement\x0a\x09self progressBarWidget \x0a\x09\x09updateProgress: self model testResult runs / self model testResult total * 100.",
 | 
	
		
			
				|  |  | -messageSends: ["updateProgress:", "progressBarWidget", "*", "/", "runs", "testResult", "model", "total"],
 | 
	
		
			
				|  |  | +source: "onResultAnnouncement: announcement\x0a\x09[self progressBarWidget \x0a\x09\x09updateProgress: (self model testResult runs / self model testResult total * 100) rounded] valueWithTimeout: 10 ",
 | 
	
		
			
				|  |  | +messageSends: ["valueWithTimeout:", "updateProgress:", "progressBarWidget", "rounded", "*", "/", "runs", "testResult", "model", "total"],
 | 
	
		
			
				|  |  |  referencedClasses: []
 | 
	
		
			
				|  |  |  }),
 | 
	
		
			
				|  |  |  globals.HLSUnitResults);
 |