|  | @@ -7,8 +7,8 @@ selector: "result",
 | 
	
		
			
				|  |  |  category: 'accessing',
 | 
	
		
			
				|  |  |  fn: function (){
 | 
	
		
			
				|  |  |  var self=this;
 | 
	
		
			
				|  |  | -return smalltalk.withContext(function($ctx) { return self["@result"];
 | 
	
		
			
				|  |  | -}, self, "result", [], smalltalk.ResultAnnouncement)},
 | 
	
		
			
				|  |  | +return self["@result"];
 | 
	
		
			
				|  |  | +},
 | 
	
		
			
				|  |  |  args: [],
 | 
	
		
			
				|  |  |  source: "result\x0a\x09^result",
 | 
	
		
			
				|  |  |  messageSends: [],
 | 
	
	
		
			
				|  | @@ -23,8 +23,8 @@ selector: "result:",
 | 
	
		
			
				|  |  |  category: 'accessing',
 | 
	
		
			
				|  |  |  fn: function (aTestResult){
 | 
	
		
			
				|  |  |  var self=this;
 | 
	
		
			
				|  |  | -return smalltalk.withContext(function($ctx) { self["@result"]=aTestResult;
 | 
	
		
			
				|  |  | -return self}, self, "result:", [aTestResult], smalltalk.ResultAnnouncement)},
 | 
	
		
			
				|  |  | +self["@result"]=aTestResult;
 | 
	
		
			
				|  |  | +return self},
 | 
	
		
			
				|  |  |  args: ["aTestResult"],
 | 
	
		
			
				|  |  |  source: "result: aTestResult\x0a\x09result := aTestResult",
 | 
	
		
			
				|  |  |  messageSends: [],
 | 
	
	
		
			
				|  | @@ -40,10 +40,11 @@ smalltalk.addMethod(
 | 
	
		
			
				|  |  |  smalltalk.method({
 | 
	
		
			
				|  |  |  selector: "assert:",
 | 
	
		
			
				|  |  |  category: 'testing',
 | 
	
		
			
				|  |  | -fn: function (aBoolean){
 | 
	
		
			
				|  |  | -var self=this;
 | 
	
		
			
				|  |  | -return smalltalk.withContext(function($ctx) { _st(self)._assert_description_(aBoolean,"Assertion failed");
 | 
	
		
			
				|  |  | -return self}, self, "assert:", [aBoolean], smalltalk.TestCase)},
 | 
	
		
			
				|  |  | +fn: function (aBoolean) {
 | 
	
		
			
				|  |  | +    var self = this;
 | 
	
		
			
				|  |  | +    smalltalk.send(self, "_assert_description_", [aBoolean, "Assertion failed"]);
 | 
	
		
			
				|  |  | +    return self;
 | 
	
		
			
				|  |  | +},
 | 
	
		
			
				|  |  |  args: ["aBoolean"],
 | 
	
		
			
				|  |  |  source: "assert: aBoolean\x0a\x09self assert: aBoolean description: 'Assertion failed'",
 | 
	
		
			
				|  |  |  messageSends: ["assert:description:"],
 | 
	
	
		
			
				|  | @@ -56,12 +57,13 @@ smalltalk.addMethod(
 | 
	
		
			
				|  |  |  smalltalk.method({
 | 
	
		
			
				|  |  |  selector: "assert:description:",
 | 
	
		
			
				|  |  |  category: 'testing',
 | 
	
		
			
				|  |  | -fn: function (aBoolean,aString){
 | 
	
		
			
				|  |  | -var self=this;
 | 
	
		
			
				|  |  | -return smalltalk.withContext(function($ctx) { if(! smalltalk.assert(aBoolean)){
 | 
	
		
			
				|  |  | -_st(self)._signalFailure_(aString);
 | 
	
		
			
				|  |  | -};
 | 
	
		
			
				|  |  | -return self}, self, "assert:description:", [aBoolean,aString], smalltalk.TestCase)},
 | 
	
		
			
				|  |  | +fn: function (aBoolean, aString) {
 | 
	
		
			
				|  |  | +    var self = this;
 | 
	
		
			
				|  |  | +    if (!smalltalk.assert(aBoolean)) {
 | 
	
		
			
				|  |  | +        smalltalk.send(self, "_signalFailure_", [aString]);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    return self;
 | 
	
		
			
				|  |  | +},
 | 
	
		
			
				|  |  |  args: ["aBoolean", "aString"],
 | 
	
		
			
				|  |  |  source: "assert: aBoolean description: aString\x0a\x09aBoolean ifFalse: [self signalFailure: aString]",
 | 
	
		
			
				|  |  |  messageSends: ["ifFalse:", "signalFailure:"],
 | 
	
	
		
			
				|  | @@ -74,12 +76,12 @@ smalltalk.addMethod(
 | 
	
		
			
				|  |  |  smalltalk.method({
 | 
	
		
			
				|  |  |  selector: "assert:equals:",
 | 
	
		
			
				|  |  |  category: 'testing',
 | 
	
		
			
				|  |  | -fn: function (expected,actual){
 | 
	
		
			
				|  |  | -var self=this;
 | 
	
		
			
				|  |  | -return smalltalk.withContext(function($ctx) { var $1;
 | 
	
		
			
				|  |  | -$1=_st(self)._assert_description_(_st(expected).__eq(actual),_st(_st(_st("Expected: ").__comma(_st(expected)._asString())).__comma(" but was: ")).__comma(_st(actual)._asString()));
 | 
	
		
			
				|  |  | -return $1;
 | 
	
		
			
				|  |  | -}, self, "assert:equals:", [expected,actual], smalltalk.TestCase)},
 | 
	
		
			
				|  |  | +fn: function (expected, actual) {
 | 
	
		
			
				|  |  | +    var self = this;
 | 
	
		
			
				|  |  | +    var $1;
 | 
	
		
			
				|  |  | +    $1 = smalltalk.send(self, "_assert_description_", [smalltalk.send(expected, "__eq", [actual]), smalltalk.send(smalltalk.send(smalltalk.send("Expected: ", "__comma", [smalltalk.send(expected, "_asString", [])]), "__comma", [" but was: "]), "__comma", [smalltalk.send(actual, "_asString", [])])]);
 | 
	
		
			
				|  |  | +    return $1;
 | 
	
		
			
				|  |  | +},
 | 
	
		
			
				|  |  |  args: ["expected", "actual"],
 | 
	
		
			
				|  |  |  source: "assert: expected equals: actual\x0a\x09^ self assert: (expected = actual) description: 'Expected: ', expected asString, ' but was: ', actual asString",
 | 
	
		
			
				|  |  |  messageSends: ["assert:description:", "=", ",", "asString"],
 | 
	
	
		
			
				|  | @@ -92,10 +94,11 @@ smalltalk.addMethod(
 | 
	
		
			
				|  |  |  smalltalk.method({
 | 
	
		
			
				|  |  |  selector: "deny:",
 | 
	
		
			
				|  |  |  category: 'testing',
 | 
	
		
			
				|  |  | -fn: function (aBoolean){
 | 
	
		
			
				|  |  | -var self=this;
 | 
	
		
			
				|  |  | -return smalltalk.withContext(function($ctx) { _st(self)._assert_(_st(aBoolean)._not());
 | 
	
		
			
				|  |  | -return self}, self, "deny:", [aBoolean], smalltalk.TestCase)},
 | 
	
		
			
				|  |  | +fn: function (aBoolean) {
 | 
	
		
			
				|  |  | +    var self = this;
 | 
	
		
			
				|  |  | +    smalltalk.send(self, "_assert_", [smalltalk.send(aBoolean, "_not", [])]);
 | 
	
		
			
				|  |  | +    return self;
 | 
	
		
			
				|  |  | +},
 | 
	
		
			
				|  |  |  args: ["aBoolean"],
 | 
	
		
			
				|  |  |  source: "deny: aBoolean\x0a\x09self assert: aBoolean not",
 | 
	
		
			
				|  |  |  messageSends: ["assert:", "not"],
 | 
	
	
		
			
				|  | @@ -110,8 +113,8 @@ selector: "performTest",
 | 
	
		
			
				|  |  |  category: 'running',
 | 
	
		
			
				|  |  |  fn: function (){
 | 
	
		
			
				|  |  |  var self=this;
 | 
	
		
			
				|  |  | -return smalltalk.withContext(function($ctx) { _st(self)._perform_(_st(self)._selector());
 | 
	
		
			
				|  |  | -return self}, self, "performTest", [], smalltalk.TestCase)},
 | 
	
		
			
				|  |  | +smalltalk.send(self,"_perform_",[smalltalk.send(self,"_selector",[])]);
 | 
	
		
			
				|  |  | +return self},
 | 
	
		
			
				|  |  |  args: [],
 | 
	
		
			
				|  |  |  source: "performTest\x0a\x09self perform: self selector\x0a",
 | 
	
		
			
				|  |  |  messageSends: ["perform:", "selector"],
 | 
	
	
		
			
				|  | @@ -126,13 +129,13 @@ selector: "runCase",
 | 
	
		
			
				|  |  |  category: 'running',
 | 
	
		
			
				|  |  |  fn: function (){
 | 
	
		
			
				|  |  |  var self=this;
 | 
	
		
			
				|  |  | -return smalltalk.withContext(function($ctx) { _st((function(){
 | 
	
		
			
				|  |  | -_st(self)._setUp();
 | 
	
		
			
				|  |  | -return _st(self)._performTest();
 | 
	
		
			
				|  |  | -}))._ensure_((function(){
 | 
	
		
			
				|  |  | -return _st(self)._tearDown();
 | 
	
		
			
				|  |  | -}));
 | 
	
		
			
				|  |  | -return self}, self, "runCase", [], smalltalk.TestCase)},
 | 
	
		
			
				|  |  | +smalltalk.send((function(){
 | 
	
		
			
				|  |  | +smalltalk.send(self,"_setUp",[]);
 | 
	
		
			
				|  |  | +return smalltalk.send(self,"_performTest",[]);
 | 
	
		
			
				|  |  | +}),"_ensure_",[(function(){
 | 
	
		
			
				|  |  | +return smalltalk.send(self,"_tearDown",[]);
 | 
	
		
			
				|  |  | +})]);
 | 
	
		
			
				|  |  | +return self},
 | 
	
		
			
				|  |  |  args: [],
 | 
	
		
			
				|  |  |  source: "runCase\x0a\x09[\x09self setUp.\x0a\x09\x09self performTest ] ensure: [\x0a\x09\x09self tearDown.\x0a\x09\x09\x22self cleanUpInstanceVariables\x22 ]\x0a",
 | 
	
		
			
				|  |  |  messageSends: ["ensure:", "tearDown", "setUp", "performTest"],
 | 
	
	
		
			
				|  | @@ -145,10 +148,10 @@ smalltalk.addMethod(
 | 
	
		
			
				|  |  |  smalltalk.method({
 | 
	
		
			
				|  |  |  selector: "selector",
 | 
	
		
			
				|  |  |  category: 'accessing',
 | 
	
		
			
				|  |  | -fn: function (){
 | 
	
		
			
				|  |  | -var self=this;
 | 
	
		
			
				|  |  | -return smalltalk.withContext(function($ctx) { return self["@testSelector"];
 | 
	
		
			
				|  |  | -}, self, "selector", [], smalltalk.TestCase)},
 | 
	
		
			
				|  |  | +fn: function () {
 | 
	
		
			
				|  |  | +    var self = this;
 | 
	
		
			
				|  |  | +    return self['@testSelector'];
 | 
	
		
			
				|  |  | +},
 | 
	
		
			
				|  |  |  args: [],
 | 
	
		
			
				|  |  |  source: "selector\x0a\x09^testSelector",
 | 
	
		
			
				|  |  |  messageSends: [],
 | 
	
	
		
			
				|  | @@ -161,10 +164,11 @@ smalltalk.addMethod(
 | 
	
		
			
				|  |  |  smalltalk.method({
 | 
	
		
			
				|  |  |  selector: "setTestSelector:",
 | 
	
		
			
				|  |  |  category: 'accessing',
 | 
	
		
			
				|  |  | -fn: function (aSelector){
 | 
	
		
			
				|  |  | -var self=this;
 | 
	
		
			
				|  |  | -return smalltalk.withContext(function($ctx) { self["@testSelector"]=aSelector;
 | 
	
		
			
				|  |  | -return self}, self, "setTestSelector:", [aSelector], smalltalk.TestCase)},
 | 
	
		
			
				|  |  | +fn: function (aSelector) {
 | 
	
		
			
				|  |  | +    var self = this;
 | 
	
		
			
				|  |  | +    self['@testSelector'] = aSelector;
 | 
	
		
			
				|  |  | +    return self;
 | 
	
		
			
				|  |  | +},
 | 
	
		
			
				|  |  |  args: ["aSelector"],
 | 
	
		
			
				|  |  |  source: "setTestSelector: aSelector\x0a\x09testSelector := aSelector",
 | 
	
		
			
				|  |  |  messageSends: [],
 | 
	
	
		
			
				|  | @@ -177,9 +181,10 @@ smalltalk.addMethod(
 | 
	
		
			
				|  |  |  smalltalk.method({
 | 
	
		
			
				|  |  |  selector: "setUp",
 | 
	
		
			
				|  |  |  category: 'running',
 | 
	
		
			
				|  |  | -fn: function (){
 | 
	
		
			
				|  |  | -var self=this;
 | 
	
		
			
				|  |  | -return smalltalk.withContext(function($ctx) { return self}, self, "setUp", [], smalltalk.TestCase)},
 | 
	
		
			
				|  |  | +fn: function () {
 | 
	
		
			
				|  |  | +    var self = this;
 | 
	
		
			
				|  |  | +    return self;
 | 
	
		
			
				|  |  | +},
 | 
	
		
			
				|  |  |  args: [],
 | 
	
		
			
				|  |  |  source: "setUp",
 | 
	
		
			
				|  |  |  messageSends: [],
 | 
	
	
		
			
				|  | @@ -192,10 +197,11 @@ smalltalk.addMethod(
 | 
	
		
			
				|  |  |  smalltalk.method({
 | 
	
		
			
				|  |  |  selector: "should:",
 | 
	
		
			
				|  |  |  category: 'testing',
 | 
	
		
			
				|  |  | -fn: function (aBlock){
 | 
	
		
			
				|  |  | -var self=this;
 | 
	
		
			
				|  |  | -return smalltalk.withContext(function($ctx) { _st(self)._assert_(_st(aBlock)._value());
 | 
	
		
			
				|  |  | -return self}, self, "should:", [aBlock], smalltalk.TestCase)},
 | 
	
		
			
				|  |  | +fn: function (aBlock) {
 | 
	
		
			
				|  |  | +    var self = this;
 | 
	
		
			
				|  |  | +    smalltalk.send(self, "_assert_", [smalltalk.send(aBlock, "_value", [])]);
 | 
	
		
			
				|  |  | +    return self;
 | 
	
		
			
				|  |  | +},
 | 
	
		
			
				|  |  |  args: ["aBlock"],
 | 
	
		
			
				|  |  |  source: "should: aBlock\x0a\x09self assert: aBlock value",
 | 
	
		
			
				|  |  |  messageSends: ["assert:", "value"],
 | 
	
	
		
			
				|  | @@ -208,15 +214,11 @@ smalltalk.addMethod(
 | 
	
		
			
				|  |  |  smalltalk.method({
 | 
	
		
			
				|  |  |  selector: "should:raise:",
 | 
	
		
			
				|  |  |  category: 'testing',
 | 
	
		
			
				|  |  | -fn: function (aBlock,anExceptionClass){
 | 
	
		
			
				|  |  | -var self=this;
 | 
	
		
			
				|  |  | -return smalltalk.withContext(function($ctx) { _st(self)._assert_(_st((function(){
 | 
	
		
			
				|  |  | -_st(aBlock)._value();
 | 
	
		
			
				|  |  | -return false;
 | 
	
		
			
				|  |  | -}))._on_do_(anExceptionClass,(function(ex){
 | 
	
		
			
				|  |  | -return true;
 | 
	
		
			
				|  |  | -})));
 | 
	
		
			
				|  |  | -return self}, self, "should:raise:", [aBlock,anExceptionClass], smalltalk.TestCase)},
 | 
	
		
			
				|  |  | +fn: function (aBlock, anExceptionClass) {
 | 
	
		
			
				|  |  | +    var self = this;
 | 
	
		
			
				|  |  | +    smalltalk.send(self, "_assert_", [smalltalk.send(function () {smalltalk.send(aBlock, "_value", []);return false;}, "_on_do_", [anExceptionClass, function (ex) {return true;}])]);
 | 
	
		
			
				|  |  | +    return self;
 | 
	
		
			
				|  |  | +},
 | 
	
		
			
				|  |  |  args: ["aBlock", "anExceptionClass"],
 | 
	
		
			
				|  |  |  source: "should: aBlock raise: anExceptionClass\x0a\x09self assert: ([aBlock value. false] \x0a\x09\x09on: anExceptionClass \x0a\x09\x09do: [:ex | true])",
 | 
	
		
			
				|  |  |  messageSends: ["assert:", "on:do:", "value"],
 | 
	
	
		
			
				|  | @@ -229,15 +231,11 @@ smalltalk.addMethod(
 | 
	
		
			
				|  |  |  smalltalk.method({
 | 
	
		
			
				|  |  |  selector: "shouldnt:raise:",
 | 
	
		
			
				|  |  |  category: 'testing',
 | 
	
		
			
				|  |  | -fn: function (aBlock,anExceptionClass){
 | 
	
		
			
				|  |  | -var self=this;
 | 
	
		
			
				|  |  | -return smalltalk.withContext(function($ctx) { _st(self)._assert_(_st((function(){
 | 
	
		
			
				|  |  | -_st(aBlock)._value();
 | 
	
		
			
				|  |  | -return true;
 | 
	
		
			
				|  |  | -}))._on_do_(anExceptionClass,(function(ex){
 | 
	
		
			
				|  |  | -return false;
 | 
	
		
			
				|  |  | -})));
 | 
	
		
			
				|  |  | -return self}, self, "shouldnt:raise:", [aBlock,anExceptionClass], smalltalk.TestCase)},
 | 
	
		
			
				|  |  | +fn: function (aBlock, anExceptionClass) {
 | 
	
		
			
				|  |  | +    var self = this;
 | 
	
		
			
				|  |  | +    smalltalk.send(self, "_assert_", [smalltalk.send(function () {smalltalk.send(aBlock, "_value", []);return true;}, "_on_do_", [anExceptionClass, function (ex) {return false;}])]);
 | 
	
		
			
				|  |  | +    return self;
 | 
	
		
			
				|  |  | +},
 | 
	
		
			
				|  |  |  args: ["aBlock", "anExceptionClass"],
 | 
	
		
			
				|  |  |  source: "shouldnt: aBlock raise: anExceptionClass\x0a\x09self assert: ([aBlock value. true] \x0a\x09\x09on: anExceptionClass \x0a\x09\x09do: [:ex | false])",
 | 
	
		
			
				|  |  |  messageSends: ["assert:", "on:do:", "value"],
 | 
	
	
		
			
				|  | @@ -250,13 +248,14 @@ smalltalk.addMethod(
 | 
	
		
			
				|  |  |  smalltalk.method({
 | 
	
		
			
				|  |  |  selector: "signalFailure:",
 | 
	
		
			
				|  |  |  category: 'private',
 | 
	
		
			
				|  |  | -fn: function (aString){
 | 
	
		
			
				|  |  | -var self=this;
 | 
	
		
			
				|  |  | -return smalltalk.withContext(function($ctx) { var $1,$2;
 | 
	
		
			
				|  |  | -$1=_st((smalltalk.TestFailure || TestFailure))._new();
 | 
	
		
			
				|  |  | -_st($1)._messageText_(aString);
 | 
	
		
			
				|  |  | -$2=_st($1)._signal();
 | 
	
		
			
				|  |  | -return self}, self, "signalFailure:", [aString], smalltalk.TestCase)},
 | 
	
		
			
				|  |  | +fn: function (aString) {
 | 
	
		
			
				|  |  | +    var self = this;
 | 
	
		
			
				|  |  | +    var $1, $2;
 | 
	
		
			
				|  |  | +    $1 = smalltalk.send(smalltalk.TestFailure || TestFailure, "_new", []);
 | 
	
		
			
				|  |  | +    smalltalk.send($1, "_messageText_", [aString]);
 | 
	
		
			
				|  |  | +    $2 = smalltalk.send($1, "_signal", []);
 | 
	
		
			
				|  |  | +    return self;
 | 
	
		
			
				|  |  | +},
 | 
	
		
			
				|  |  |  args: ["aString"],
 | 
	
		
			
				|  |  |  source: "signalFailure: aString\x0a\x09TestFailure new\x0a\x09\x09messageText: aString;\x0a\x09\x09signal",
 | 
	
		
			
				|  |  |  messageSends: ["messageText:", "new", "signal"],
 | 
	
	
		
			
				|  | @@ -269,9 +268,10 @@ smalltalk.addMethod(
 | 
	
		
			
				|  |  |  smalltalk.method({
 | 
	
		
			
				|  |  |  selector: "tearDown",
 | 
	
		
			
				|  |  |  category: 'running',
 | 
	
		
			
				|  |  | -fn: function (){
 | 
	
		
			
				|  |  | -var self=this;
 | 
	
		
			
				|  |  | -return smalltalk.withContext(function($ctx) { return self}, self, "tearDown", [], smalltalk.TestCase)},
 | 
	
		
			
				|  |  | +fn: function () {
 | 
	
		
			
				|  |  | +    var self = this;
 | 
	
		
			
				|  |  | +    return self;
 | 
	
		
			
				|  |  | +},
 | 
	
		
			
				|  |  |  args: [],
 | 
	
		
			
				|  |  |  source: "tearDown",
 | 
	
		
			
				|  |  |  messageSends: [],
 | 
	
	
		
			
				|  | @@ -285,17 +285,17 @@ smalltalk.addMethod(
 | 
	
		
			
				|  |  |  smalltalk.method({
 | 
	
		
			
				|  |  |  selector: "allTestSelectors",
 | 
	
		
			
				|  |  |  category: 'accessing',
 | 
	
		
			
				|  |  | -fn: function (){
 | 
	
		
			
				|  |  | -var self=this;
 | 
	
		
			
				|  |  | -return smalltalk.withContext(function($ctx) { var $1;
 | 
	
		
			
				|  |  | -var selectors;
 | 
	
		
			
				|  |  | -selectors=_st(self)._testSelectors();
 | 
	
		
			
				|  |  | -$1=_st(self)._shouldInheritSelectors();
 | 
	
		
			
				|  |  | -if(smalltalk.assert($1)){
 | 
	
		
			
				|  |  | -_st(selectors)._addAll_(_st(_st(self)._superclass())._allTestSelectors());
 | 
	
		
			
				|  |  | -};
 | 
	
		
			
				|  |  | -return selectors;
 | 
	
		
			
				|  |  | -}, self, "allTestSelectors", [], smalltalk.TestCase.klass)},
 | 
	
		
			
				|  |  | +fn: function () {
 | 
	
		
			
				|  |  | +    var self = this;
 | 
	
		
			
				|  |  | +    var $1;
 | 
	
		
			
				|  |  | +    var selectors;
 | 
	
		
			
				|  |  | +    selectors = smalltalk.send(self, "_testSelectors", []);
 | 
	
		
			
				|  |  | +    $1 = smalltalk.send(self, "_shouldInheritSelectors", []);
 | 
	
		
			
				|  |  | +    if (smalltalk.assert($1)) {
 | 
	
		
			
				|  |  | +        smalltalk.send(selectors, "_addAll_", [smalltalk.send(smalltalk.send(self, "_superclass", []), "_allTestSelectors", [])]);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    return selectors;
 | 
	
		
			
				|  |  | +},
 | 
	
		
			
				|  |  |  args: [],
 | 
	
		
			
				|  |  |  source: "allTestSelectors\x0a\x09| selectors |\x0a\x09selectors := self testSelectors.\x0a\x09self shouldInheritSelectors ifTrue: [\x0a\x09\x09selectors addAll: self superclass allTestSelectors].\x0a\x09^selectors",
 | 
	
		
			
				|  |  |  messageSends: ["testSelectors", "ifTrue:", "addAll:", "allTestSelectors", "superclass", "shouldInheritSelectors"],
 | 
	
	
		
			
				|  | @@ -308,14 +308,12 @@ smalltalk.addMethod(
 | 
	
		
			
				|  |  |  smalltalk.method({
 | 
	
		
			
				|  |  |  selector: "buildSuite",
 | 
	
		
			
				|  |  |  category: 'accessing',
 | 
	
		
			
				|  |  | -fn: function (){
 | 
	
		
			
				|  |  | -var self=this;
 | 
	
		
			
				|  |  | -return smalltalk.withContext(function($ctx) { var $1;
 | 
	
		
			
				|  |  | -$1=_st(_st(self)._allTestSelectors())._collect_((function(each){
 | 
	
		
			
				|  |  | -return _st(self)._selector_(each);
 | 
	
		
			
				|  |  | -}));
 | 
	
		
			
				|  |  | -return $1;
 | 
	
		
			
				|  |  | -}, self, "buildSuite", [], smalltalk.TestCase.klass)},
 | 
	
		
			
				|  |  | +fn: function () {
 | 
	
		
			
				|  |  | +    var self = this;
 | 
	
		
			
				|  |  | +    var $1;
 | 
	
		
			
				|  |  | +    $1 = smalltalk.send(smalltalk.send(self, "_allTestSelectors", []), "_collect_", [function (each) {return smalltalk.send(self, "_selector_", [each]);}]);
 | 
	
		
			
				|  |  | +    return $1;
 | 
	
		
			
				|  |  | +},
 | 
	
		
			
				|  |  |  args: [],
 | 
	
		
			
				|  |  |  source: "buildSuite\x0a\x09^self allTestSelectors collect: [:each | self selector: each]",
 | 
	
		
			
				|  |  |  messageSends: ["collect:", "selector:", "allTestSelectors"],
 | 
	
	
		
			
				|  | @@ -328,12 +326,12 @@ smalltalk.addMethod(
 | 
	
		
			
				|  |  |  smalltalk.method({
 | 
	
		
			
				|  |  |  selector: "isAbstract",
 | 
	
		
			
				|  |  |  category: 'testing',
 | 
	
		
			
				|  |  | -fn: function (){
 | 
	
		
			
				|  |  | -var self=this;
 | 
	
		
			
				|  |  | -return smalltalk.withContext(function($ctx) { var $1;
 | 
	
		
			
				|  |  | -$1=_st(_st(self)._name()).__eq("TestCase");
 | 
	
		
			
				|  |  | -return $1;
 | 
	
		
			
				|  |  | -}, self, "isAbstract", [], smalltalk.TestCase.klass)},
 | 
	
		
			
				|  |  | +fn: function () {
 | 
	
		
			
				|  |  | +    var self = this;
 | 
	
		
			
				|  |  | +    var $1;
 | 
	
		
			
				|  |  | +    $1 = smalltalk.send(smalltalk.send(self, "_name", []), "__eq", ["TestCase"]);
 | 
	
		
			
				|  |  | +    return $1;
 | 
	
		
			
				|  |  | +},
 | 
	
		
			
				|  |  |  args: [],
 | 
	
		
			
				|  |  |  source: "isAbstract\x0a\x09^ self name = 'TestCase'",
 | 
	
		
			
				|  |  |  messageSends: ["=", "name"],
 | 
	
	
		
			
				|  | @@ -346,10 +344,10 @@ smalltalk.addMethod(
 | 
	
		
			
				|  |  |  smalltalk.method({
 | 
	
		
			
				|  |  |  selector: "lookupHierarchyRoot",
 | 
	
		
			
				|  |  |  category: 'accessing',
 | 
	
		
			
				|  |  | -fn: function (){
 | 
	
		
			
				|  |  | -var self=this;
 | 
	
		
			
				|  |  | -return smalltalk.withContext(function($ctx) { return (smalltalk.TestCase || TestCase);
 | 
	
		
			
				|  |  | -}, self, "lookupHierarchyRoot", [], smalltalk.TestCase.klass)},
 | 
	
		
			
				|  |  | +fn: function () {
 | 
	
		
			
				|  |  | +    var self = this;
 | 
	
		
			
				|  |  | +    return smalltalk.TestCase || TestCase;
 | 
	
		
			
				|  |  | +},
 | 
	
		
			
				|  |  |  args: [],
 | 
	
		
			
				|  |  |  source: "lookupHierarchyRoot\x0a\x09^TestCase",
 | 
	
		
			
				|  |  |  messageSends: [],
 | 
	
	
		
			
				|  | @@ -362,15 +360,15 @@ smalltalk.addMethod(
 | 
	
		
			
				|  |  |  smalltalk.method({
 | 
	
		
			
				|  |  |  selector: "selector:",
 | 
	
		
			
				|  |  |  category: 'accessing',
 | 
	
		
			
				|  |  | -fn: function (aSelector){
 | 
	
		
			
				|  |  | -var self=this;
 | 
	
		
			
				|  |  | -return smalltalk.withContext(function($ctx) { var $2,$3,$1;
 | 
	
		
			
				|  |  | -$2=_st(self)._new();
 | 
	
		
			
				|  |  | -_st($2)._setTestSelector_(aSelector);
 | 
	
		
			
				|  |  | -$3=_st($2)._yourself();
 | 
	
		
			
				|  |  | -$1=$3;
 | 
	
		
			
				|  |  | -return $1;
 | 
	
		
			
				|  |  | -}, self, "selector:", [aSelector], smalltalk.TestCase.klass)},
 | 
	
		
			
				|  |  | +fn: function (aSelector) {
 | 
	
		
			
				|  |  | +    var self = this;
 | 
	
		
			
				|  |  | +    var $2, $3, $1;
 | 
	
		
			
				|  |  | +    $2 = smalltalk.send(self, "_new", []);
 | 
	
		
			
				|  |  | +    smalltalk.send($2, "_setTestSelector_", [aSelector]);
 | 
	
		
			
				|  |  | +    $3 = smalltalk.send($2, "_yourself", []);
 | 
	
		
			
				|  |  | +    $1 = $3;
 | 
	
		
			
				|  |  | +    return $1;
 | 
	
		
			
				|  |  | +},
 | 
	
		
			
				|  |  |  args: ["aSelector"],
 | 
	
		
			
				|  |  |  source: "selector: aSelector\x0a\x09^self new\x0a\x09\x09setTestSelector: aSelector;\x0a\x09\x09yourself",
 | 
	
		
			
				|  |  |  messageSends: ["setTestSelector:", "new", "yourself"],
 | 
	
	
		
			
				|  | @@ -383,12 +381,12 @@ smalltalk.addMethod(
 | 
	
		
			
				|  |  |  smalltalk.method({
 | 
	
		
			
				|  |  |  selector: "shouldInheritSelectors",
 | 
	
		
			
				|  |  |  category: 'testing',
 | 
	
		
			
				|  |  | -fn: function (){
 | 
	
		
			
				|  |  | -var self=this;
 | 
	
		
			
				|  |  | -return smalltalk.withContext(function($ctx) { var $1;
 | 
	
		
			
				|  |  | -$1=_st(self).__tild_eq(_st(self)._lookupHierarchyRoot());
 | 
	
		
			
				|  |  | -return $1;
 | 
	
		
			
				|  |  | -}, self, "shouldInheritSelectors", [], smalltalk.TestCase.klass)},
 | 
	
		
			
				|  |  | +fn: function () {
 | 
	
		
			
				|  |  | +    var self = this;
 | 
	
		
			
				|  |  | +    var $1;
 | 
	
		
			
				|  |  | +    $1 = smalltalk.send(self, "_~_eq", [smalltalk.send(self, "_lookupHierarchyRoot", [])]);
 | 
	
		
			
				|  |  | +    return $1;
 | 
	
		
			
				|  |  | +},
 | 
	
		
			
				|  |  |  args: [],
 | 
	
		
			
				|  |  |  source: "shouldInheritSelectors\x0a\x09^self ~= self lookupHierarchyRoot",
 | 
	
		
			
				|  |  |  messageSends: ["~=", "lookupHierarchyRoot"],
 | 
	
	
		
			
				|  | @@ -401,14 +399,12 @@ smalltalk.addMethod(
 | 
	
		
			
				|  |  |  smalltalk.method({
 | 
	
		
			
				|  |  |  selector: "testSelectors",
 | 
	
		
			
				|  |  |  category: 'accessing',
 | 
	
		
			
				|  |  | -fn: function (){
 | 
	
		
			
				|  |  | -var self=this;
 | 
	
		
			
				|  |  | -return smalltalk.withContext(function($ctx) { var $1;
 | 
	
		
			
				|  |  | -$1=_st(_st(_st(self)._methodDictionary())._keys())._select_((function(each){
 | 
	
		
			
				|  |  | -return _st(each)._match_("^test");
 | 
	
		
			
				|  |  | -}));
 | 
	
		
			
				|  |  | -return $1;
 | 
	
		
			
				|  |  | -}, self, "testSelectors", [], smalltalk.TestCase.klass)},
 | 
	
		
			
				|  |  | +fn: function () {
 | 
	
		
			
				|  |  | +    var self = this;
 | 
	
		
			
				|  |  | +    var $1;
 | 
	
		
			
				|  |  | +    $1 = smalltalk.send(smalltalk.send(smalltalk.send(self, "_methodDictionary", []), "_keys", []), "_select_", [function (each) {return smalltalk.send(each, "_match_", ["^test"]);}]);
 | 
	
		
			
				|  |  | +    return $1;
 | 
	
		
			
				|  |  | +},
 | 
	
		
			
				|  |  |  args: [],
 | 
	
		
			
				|  |  |  source: "testSelectors\x0a\x09^self methodDictionary keys select: [:each | each match: '^test']",
 | 
	
		
			
				|  |  |  messageSends: ["select:", "match:", "keys", "methodDictionary"],
 | 
	
	
		
			
				|  | @@ -426,10 +422,11 @@ smalltalk.addMethod(
 | 
	
		
			
				|  |  |  smalltalk.method({
 | 
	
		
			
				|  |  |  selector: "addError:",
 | 
	
		
			
				|  |  |  category: 'accessing',
 | 
	
		
			
				|  |  | -fn: function (anError){
 | 
	
		
			
				|  |  | -var self=this;
 | 
	
		
			
				|  |  | -return smalltalk.withContext(function($ctx) { _st(_st(self)._errors())._add_(anError);
 | 
	
		
			
				|  |  | -return self}, self, "addError:", [anError], smalltalk.TestResult)},
 | 
	
		
			
				|  |  | +fn: function (anError) {
 | 
	
		
			
				|  |  | +    var self = this;
 | 
	
		
			
				|  |  | +    smalltalk.send(smalltalk.send(self, "_errors", []), "_add_", [anError]);
 | 
	
		
			
				|  |  | +    return self;
 | 
	
		
			
				|  |  | +},
 | 
	
		
			
				|  |  |  args: ["anError"],
 | 
	
		
			
				|  |  |  source: "addError: anError\x0a\x09self errors add: anError",
 | 
	
		
			
				|  |  |  messageSends: ["add:", "errors"],
 | 
	
	
		
			
				|  | @@ -442,10 +439,11 @@ smalltalk.addMethod(
 | 
	
		
			
				|  |  |  smalltalk.method({
 | 
	
		
			
				|  |  |  selector: "addFailure:",
 | 
	
		
			
				|  |  |  category: 'accessing',
 | 
	
		
			
				|  |  | -fn: function (aFailure){
 | 
	
		
			
				|  |  | -var self=this;
 | 
	
		
			
				|  |  | -return smalltalk.withContext(function($ctx) { _st(_st(self)._failures())._add_(aFailure);
 | 
	
		
			
				|  |  | -return self}, self, "addFailure:", [aFailure], smalltalk.TestResult)},
 | 
	
		
			
				|  |  | +fn: function (aFailure) {
 | 
	
		
			
				|  |  | +    var self = this;
 | 
	
		
			
				|  |  | +    smalltalk.send(smalltalk.send(self, "_failures", []), "_add_", [aFailure]);
 | 
	
		
			
				|  |  | +    return self;
 | 
	
		
			
				|  |  | +},
 | 
	
		
			
				|  |  |  args: ["aFailure"],
 | 
	
		
			
				|  |  |  source: "addFailure: aFailure\x0a\x09self failures add: aFailure",
 | 
	
		
			
				|  |  |  messageSends: ["add:", "failures"],
 | 
	
	
		
			
				|  | @@ -458,10 +456,10 @@ smalltalk.addMethod(
 | 
	
		
			
				|  |  |  smalltalk.method({
 | 
	
		
			
				|  |  |  selector: "errors",
 | 
	
		
			
				|  |  |  category: 'accessing',
 | 
	
		
			
				|  |  | -fn: function (){
 | 
	
		
			
				|  |  | -var self=this;
 | 
	
		
			
				|  |  | -return smalltalk.withContext(function($ctx) { return self["@errors"];
 | 
	
		
			
				|  |  | -}, self, "errors", [], smalltalk.TestResult)},
 | 
	
		
			
				|  |  | +fn: function () {
 | 
	
		
			
				|  |  | +    var self = this;
 | 
	
		
			
				|  |  | +    return self['@errors'];
 | 
	
		
			
				|  |  | +},
 | 
	
		
			
				|  |  |  args: [],
 | 
	
		
			
				|  |  |  source: "errors\x0a\x09^errors",
 | 
	
		
			
				|  |  |  messageSends: [],
 | 
	
	
		
			
				|  | @@ -474,10 +472,10 @@ smalltalk.addMethod(
 | 
	
		
			
				|  |  |  smalltalk.method({
 | 
	
		
			
				|  |  |  selector: "failures",
 | 
	
		
			
				|  |  |  category: 'accessing',
 | 
	
		
			
				|  |  | -fn: function (){
 | 
	
		
			
				|  |  | -var self=this;
 | 
	
		
			
				|  |  | -return smalltalk.withContext(function($ctx) { return self["@failures"];
 | 
	
		
			
				|  |  | -}, self, "failures", [], smalltalk.TestResult)},
 | 
	
		
			
				|  |  | +fn: function () {
 | 
	
		
			
				|  |  | +    var self = this;
 | 
	
		
			
				|  |  | +    return self['@failures'];
 | 
	
		
			
				|  |  | +},
 | 
	
		
			
				|  |  |  args: [],
 | 
	
		
			
				|  |  |  source: "failures\x0a\x09^failures",
 | 
	
		
			
				|  |  |  messageSends: [],
 | 
	
	
		
			
				|  | @@ -490,10 +488,11 @@ smalltalk.addMethod(
 | 
	
		
			
				|  |  |  smalltalk.method({
 | 
	
		
			
				|  |  |  selector: "increaseRuns",
 | 
	
		
			
				|  |  |  category: 'accessing',
 | 
	
		
			
				|  |  | -fn: function (){
 | 
	
		
			
				|  |  | -var self=this;
 | 
	
		
			
				|  |  | -return smalltalk.withContext(function($ctx) { self["@runs"]=_st(self["@runs"]).__plus((1));
 | 
	
		
			
				|  |  | -return self}, self, "increaseRuns", [], smalltalk.TestResult)},
 | 
	
		
			
				|  |  | +fn: function () {
 | 
	
		
			
				|  |  | +    var self = this;
 | 
	
		
			
				|  |  | +    self['@runs'] = smalltalk.send(self['@runs'], "__plus", [1]);
 | 
	
		
			
				|  |  | +    return self;
 | 
	
		
			
				|  |  | +},
 | 
	
		
			
				|  |  |  args: [],
 | 
	
		
			
				|  |  |  source: "increaseRuns\x0a\x09runs := runs + 1",
 | 
	
		
			
				|  |  |  messageSends: ["+"],
 | 
	
	
		
			
				|  | @@ -506,15 +505,16 @@ smalltalk.addMethod(
 | 
	
		
			
				|  |  |  smalltalk.method({
 | 
	
		
			
				|  |  |  selector: "initialize",
 | 
	
		
			
				|  |  |  category: 'initialization',
 | 
	
		
			
				|  |  | -fn: function (){
 | 
	
		
			
				|  |  | -var self=this;
 | 
	
		
			
				|  |  | -return smalltalk.withContext(function($ctx) { smalltalk.Object.fn.prototype._initialize.apply(_st(self), []);
 | 
	
		
			
				|  |  | -self["@timestamp"]=_st((smalltalk.Date || Date))._now();
 | 
	
		
			
				|  |  | -self["@runs"]=(0);
 | 
	
		
			
				|  |  | -self["@errors"]=_st((smalltalk.Array || Array))._new();
 | 
	
		
			
				|  |  | -self["@failures"]=_st((smalltalk.Array || Array))._new();
 | 
	
		
			
				|  |  | -self["@total"]=(0);
 | 
	
		
			
				|  |  | -return self}, self, "initialize", [], smalltalk.TestResult)},
 | 
	
		
			
				|  |  | +fn: function () {
 | 
	
		
			
				|  |  | +    var self = this;
 | 
	
		
			
				|  |  | +    smalltalk.send(self, "_initialize", [], smalltalk.Object);
 | 
	
		
			
				|  |  | +    self['@timestamp'] = smalltalk.send(smalltalk.Date || Date, "_now", []);
 | 
	
		
			
				|  |  | +    self['@runs'] = 0;
 | 
	
		
			
				|  |  | +    self['@errors'] = smalltalk.send(smalltalk.Array || Array, "_new", []);
 | 
	
		
			
				|  |  | +    self['@failures'] = smalltalk.send(smalltalk.Array || Array, "_new", []);
 | 
	
		
			
				|  |  | +    self['@total'] = 0;
 | 
	
		
			
				|  |  | +    return self;
 | 
	
		
			
				|  |  | +},
 | 
	
		
			
				|  |  |  args: [],
 | 
	
		
			
				|  |  |  source: "initialize\x0a\x09super initialize.\x0a\x09timestamp := Date now.\x0a\x09runs := 0.\x0a\x09errors := Array new.\x0a\x09failures := Array new.\x0a\x09total := 0",
 | 
	
		
			
				|  |  |  messageSends: ["initialize", "now", "new"],
 | 
	
	
		
			
				|  | @@ -529,13 +529,13 @@ selector: "nextRunDo:",
 | 
	
		
			
				|  |  |  category: 'running',
 | 
	
		
			
				|  |  |  fn: function (aBlock){
 | 
	
		
			
				|  |  |  var self=this;
 | 
	
		
			
				|  |  | -return smalltalk.withContext(function($ctx) { var $2,$1;
 | 
	
		
			
				|  |  | -$2=_st(_st(self)._runs()).__eq_eq(_st(self)._total());
 | 
	
		
			
				|  |  | +var $2,$1;
 | 
	
		
			
				|  |  | +$2=smalltalk.send(smalltalk.send(self,"_runs",[]),"__eq_eq",[smalltalk.send(self,"_total",[])]);
 | 
	
		
			
				|  |  |  if(! smalltalk.assert($2)){
 | 
	
		
			
				|  |  | -$1=_st(aBlock)._value_(_st(_st(self)._runs()).__plus((1)));
 | 
	
		
			
				|  |  | +$1=smalltalk.send(aBlock,"_value_",[smalltalk.send(smalltalk.send(self,"_runs",[]),"__plus",[(1)])]);
 | 
	
		
			
				|  |  |  };
 | 
	
		
			
				|  |  |  return $1;
 | 
	
		
			
				|  |  | -}, self, "nextRunDo:", [aBlock], smalltalk.TestResult)},
 | 
	
		
			
				|  |  | +},
 | 
	
		
			
				|  |  |  args: ["aBlock"],
 | 
	
		
			
				|  |  |  source: "nextRunDo: aBlock\x0a\x22Runs aBlock with index of next run\x0aor does nothing if no more runs\x22\x0a^self runs == self total\x0a\x09ifFalse: [ aBlock value: self runs + 1 ]",
 | 
	
		
			
				|  |  |  messageSends: ["ifFalse:", "value:", "+", "runs", "==", "total"],
 | 
	
	
		
			
				|  | @@ -550,17 +550,17 @@ selector: "runCase:",
 | 
	
		
			
				|  |  |  category: 'running',
 | 
	
		
			
				|  |  |  fn: function (aTestCase){
 | 
	
		
			
				|  |  |  var self=this;
 | 
	
		
			
				|  |  | -return smalltalk.withContext(function($ctx) { _st((function(){
 | 
	
		
			
				|  |  | -return _st((function(){
 | 
	
		
			
				|  |  | -_st(self)._increaseRuns();
 | 
	
		
			
				|  |  | -return _st(aTestCase)._runCase();
 | 
	
		
			
				|  |  | -}))._on_do_((smalltalk.TestFailure || TestFailure),(function(ex){
 | 
	
		
			
				|  |  | -return _st(self)._addFailure_(aTestCase);
 | 
	
		
			
				|  |  | -}));
 | 
	
		
			
				|  |  | -}))._on_do_((smalltalk.Error || Error),(function(ex){
 | 
	
		
			
				|  |  | -return _st(self)._addError_(aTestCase);
 | 
	
		
			
				|  |  | -}));
 | 
	
		
			
				|  |  | -return self}, self, "runCase:", [aTestCase], smalltalk.TestResult)},
 | 
	
		
			
				|  |  | +smalltalk.send((function(){
 | 
	
		
			
				|  |  | +return smalltalk.send((function(){
 | 
	
		
			
				|  |  | +smalltalk.send(self,"_increaseRuns",[]);
 | 
	
		
			
				|  |  | +return smalltalk.send(aTestCase,"_runCase",[]);
 | 
	
		
			
				|  |  | +}),"_on_do_",[(smalltalk.TestFailure || TestFailure),(function(ex){
 | 
	
		
			
				|  |  | +return smalltalk.send(self,"_addFailure_",[aTestCase]);
 | 
	
		
			
				|  |  | +})]);
 | 
	
		
			
				|  |  | +}),"_on_do_",[(smalltalk.Error || Error),(function(ex){
 | 
	
		
			
				|  |  | +return smalltalk.send(self,"_addError_",[aTestCase]);
 | 
	
		
			
				|  |  | +})]);
 | 
	
		
			
				|  |  | +return self},
 | 
	
		
			
				|  |  |  args: ["aTestCase"],
 | 
	
		
			
				|  |  |  source: "runCase: aTestCase\x0a\x09[[\x09self increaseRuns.\x0a    \x09aTestCase runCase]\x0a\x09on: TestFailure do: [:ex | self addFailure: aTestCase]]\x0a\x09on: Error do: [:ex | self addError: aTestCase]\x0a",
 | 
	
		
			
				|  |  |  messageSends: ["on:do:", "addError:", "addFailure:", "increaseRuns", "runCase"],
 | 
	
	
		
			
				|  | @@ -573,10 +573,10 @@ smalltalk.addMethod(
 | 
	
		
			
				|  |  |  smalltalk.method({
 | 
	
		
			
				|  |  |  selector: "runs",
 | 
	
		
			
				|  |  |  category: 'accessing',
 | 
	
		
			
				|  |  | -fn: function (){
 | 
	
		
			
				|  |  | -var self=this;
 | 
	
		
			
				|  |  | -return smalltalk.withContext(function($ctx) { return self["@runs"];
 | 
	
		
			
				|  |  | -}, self, "runs", [], smalltalk.TestResult)},
 | 
	
		
			
				|  |  | +fn: function () {
 | 
	
		
			
				|  |  | +    var self = this;
 | 
	
		
			
				|  |  | +    return self['@runs'];
 | 
	
		
			
				|  |  | +},
 | 
	
		
			
				|  |  |  args: [],
 | 
	
		
			
				|  |  |  source: "runs\x0a\x09^runs",
 | 
	
		
			
				|  |  |  messageSends: [],
 | 
	
	
		
			
				|  | @@ -589,22 +589,22 @@ smalltalk.addMethod(
 | 
	
		
			
				|  |  |  smalltalk.method({
 | 
	
		
			
				|  |  |  selector: "status",
 | 
	
		
			
				|  |  |  category: 'accessing',
 | 
	
		
			
				|  |  | -fn: function (){
 | 
	
		
			
				|  |  | -var self=this;
 | 
	
		
			
				|  |  | -return smalltalk.withContext(function($ctx) { var $2,$3,$1;
 | 
	
		
			
				|  |  | -$2=_st(_st(self)._errors())._isEmpty();
 | 
	
		
			
				|  |  | -if(smalltalk.assert($2)){
 | 
	
		
			
				|  |  | -$3=_st(_st(self)._failures())._isEmpty();
 | 
	
		
			
				|  |  | -if(smalltalk.assert($3)){
 | 
	
		
			
				|  |  | -$1="success";
 | 
	
		
			
				|  |  | -} else {
 | 
	
		
			
				|  |  | -$1="failure";
 | 
	
		
			
				|  |  | -};
 | 
	
		
			
				|  |  | -} else {
 | 
	
		
			
				|  |  | -$1="error";
 | 
	
		
			
				|  |  | -};
 | 
	
		
			
				|  |  | -return $1;
 | 
	
		
			
				|  |  | -}, self, "status", [], smalltalk.TestResult)},
 | 
	
		
			
				|  |  | +fn: function () {
 | 
	
		
			
				|  |  | +    var self = this;
 | 
	
		
			
				|  |  | +    var $2, $3, $1;
 | 
	
		
			
				|  |  | +    $2 = smalltalk.send(smalltalk.send(self, "_errors", []), "_isEmpty", []);
 | 
	
		
			
				|  |  | +    if (smalltalk.assert($2)) {
 | 
	
		
			
				|  |  | +        $3 = smalltalk.send(smalltalk.send(self, "_failures", []), "_isEmpty", []);
 | 
	
		
			
				|  |  | +        if (smalltalk.assert($3)) {
 | 
	
		
			
				|  |  | +            $1 = "success";
 | 
	
		
			
				|  |  | +        } else {
 | 
	
		
			
				|  |  | +            $1 = "failure";
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    } else {
 | 
	
		
			
				|  |  | +        $1 = "error";
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    return $1;
 | 
	
		
			
				|  |  | +},
 | 
	
		
			
				|  |  |  args: [],
 | 
	
		
			
				|  |  |  source: "status\x0a\x09^self errors isEmpty \x0a\x09\x09ifTrue: [\x0a\x09\x09\x09self failures isEmpty \x0a\x09\x09\x09\x09ifTrue: ['success']\x0a\x09\x09\x09\x09ifFalse: ['failure']]\x0a\x09\x09ifFalse: ['error']",
 | 
	
		
			
				|  |  |  messageSends: ["ifTrue:ifFalse:", "isEmpty", "failures", "errors"],
 | 
	
	
		
			
				|  | @@ -617,10 +617,10 @@ smalltalk.addMethod(
 | 
	
		
			
				|  |  |  smalltalk.method({
 | 
	
		
			
				|  |  |  selector: "timestamp",
 | 
	
		
			
				|  |  |  category: 'accessing',
 | 
	
		
			
				|  |  | -fn: function (){
 | 
	
		
			
				|  |  | -var self=this;
 | 
	
		
			
				|  |  | -return smalltalk.withContext(function($ctx) { return self["@timestamp"];
 | 
	
		
			
				|  |  | -}, self, "timestamp", [], smalltalk.TestResult)},
 | 
	
		
			
				|  |  | +fn: function () {
 | 
	
		
			
				|  |  | +    var self = this;
 | 
	
		
			
				|  |  | +    return self['@timestamp'];
 | 
	
		
			
				|  |  | +},
 | 
	
		
			
				|  |  |  args: [],
 | 
	
		
			
				|  |  |  source: "timestamp\x0a\x09^timestamp",
 | 
	
		
			
				|  |  |  messageSends: [],
 | 
	
	
		
			
				|  | @@ -633,10 +633,10 @@ smalltalk.addMethod(
 | 
	
		
			
				|  |  |  smalltalk.method({
 | 
	
		
			
				|  |  |  selector: "total",
 | 
	
		
			
				|  |  |  category: 'accessing',
 | 
	
		
			
				|  |  | -fn: function (){
 | 
	
		
			
				|  |  | -var self=this;
 | 
	
		
			
				|  |  | -return smalltalk.withContext(function($ctx) { return self["@total"];
 | 
	
		
			
				|  |  | -}, self, "total", [], smalltalk.TestResult)},
 | 
	
		
			
				|  |  | +fn: function () {
 | 
	
		
			
				|  |  | +    var self = this;
 | 
	
		
			
				|  |  | +    return self['@total'];
 | 
	
		
			
				|  |  | +},
 | 
	
		
			
				|  |  |  args: [],
 | 
	
		
			
				|  |  |  source: "total\x0a\x09^total",
 | 
	
		
			
				|  |  |  messageSends: [],
 | 
	
	
		
			
				|  | @@ -649,10 +649,11 @@ smalltalk.addMethod(
 | 
	
		
			
				|  |  |  smalltalk.method({
 | 
	
		
			
				|  |  |  selector: "total:",
 | 
	
		
			
				|  |  |  category: 'accessing',
 | 
	
		
			
				|  |  | -fn: function (aNumber){
 | 
	
		
			
				|  |  | -var self=this;
 | 
	
		
			
				|  |  | -return smalltalk.withContext(function($ctx) { self["@total"]=aNumber;
 | 
	
		
			
				|  |  | -return self}, self, "total:", [aNumber], smalltalk.TestResult)},
 | 
	
		
			
				|  |  | +fn: function (aNumber) {
 | 
	
		
			
				|  |  | +    var self = this;
 | 
	
		
			
				|  |  | +    self['@total'] = aNumber;
 | 
	
		
			
				|  |  | +    return self;
 | 
	
		
			
				|  |  | +},
 | 
	
		
			
				|  |  |  args: ["aNumber"],
 | 
	
		
			
				|  |  |  source: "total: aNumber\x0a\x09total := aNumber",
 | 
	
		
			
				|  |  |  messageSends: [],
 | 
	
	
		
			
				|  | @@ -670,8 +671,8 @@ selector: "announcer",
 | 
	
		
			
				|  |  |  category: 'accessing',
 | 
	
		
			
				|  |  |  fn: function (){
 | 
	
		
			
				|  |  |  var self=this;
 | 
	
		
			
				|  |  | -return smalltalk.withContext(function($ctx) { return self["@announcer"];
 | 
	
		
			
				|  |  | -}, self, "announcer", [], smalltalk.TestSuiteRunner)},
 | 
	
		
			
				|  |  | +return self["@announcer"];
 | 
	
		
			
				|  |  | +},
 | 
	
		
			
				|  |  |  args: [],
 | 
	
		
			
				|  |  |  source: "announcer\x0a\x09^announcer",
 | 
	
		
			
				|  |  |  messageSends: [],
 | 
	
	
		
			
				|  | @@ -686,10 +687,10 @@ selector: "initialize",
 | 
	
		
			
				|  |  |  category: 'initialization',
 | 
	
		
			
				|  |  |  fn: function (){
 | 
	
		
			
				|  |  |  var self=this;
 | 
	
		
			
				|  |  | -return smalltalk.withContext(function($ctx) { smalltalk.Object.fn.prototype._initialize.apply(_st(self), []);
 | 
	
		
			
				|  |  | -self["@announcer"]=_st((smalltalk.Announcer || Announcer))._new();
 | 
	
		
			
				|  |  | -self["@result"]=_st((smalltalk.TestResult || TestResult))._new();
 | 
	
		
			
				|  |  | -return self}, self, "initialize", [], smalltalk.TestSuiteRunner)},
 | 
	
		
			
				|  |  | +smalltalk.send(self,"_initialize",[],smalltalk.Object);
 | 
	
		
			
				|  |  | +self["@announcer"]=smalltalk.send((smalltalk.Announcer || Announcer),"_new",[]);
 | 
	
		
			
				|  |  | +self["@result"]=smalltalk.send((smalltalk.TestResult || TestResult),"_new",[]);
 | 
	
		
			
				|  |  | +return self},
 | 
	
		
			
				|  |  |  args: [],
 | 
	
		
			
				|  |  |  source: "initialize\x0a\x09super initialize.\x0a\x09announcer := Announcer new.\x0a    result := TestResult new",
 | 
	
		
			
				|  |  |  messageSends: ["initialize", "new"],
 | 
	
	
		
			
				|  | @@ -704,8 +705,8 @@ selector: "result",
 | 
	
		
			
				|  |  |  category: 'accessing',
 | 
	
		
			
				|  |  |  fn: function (){
 | 
	
		
			
				|  |  |  var self=this;
 | 
	
		
			
				|  |  | -return smalltalk.withContext(function($ctx) { return self["@result"];
 | 
	
		
			
				|  |  | -}, self, "result", [], smalltalk.TestSuiteRunner)},
 | 
	
		
			
				|  |  | +return self["@result"];
 | 
	
		
			
				|  |  | +},
 | 
	
		
			
				|  |  |  args: [],
 | 
	
		
			
				|  |  |  source: "result\x0a\x09^result",
 | 
	
		
			
				|  |  |  messageSends: [],
 | 
	
	
		
			
				|  | @@ -720,26 +721,24 @@ selector: "run",
 | 
	
		
			
				|  |  |  category: 'actions',
 | 
	
		
			
				|  |  |  fn: function (){
 | 
	
		
			
				|  |  |  var self=this;
 | 
	
		
			
				|  |  | -return smalltalk.withContext(function($ctx) { var worker;
 | 
	
		
			
				|  |  | -_st(self["@result"])._total_(_st(self["@suite"])._size());
 | 
	
		
			
				|  |  | -_st(self["@announcer"])._announce_(_st(_st((smalltalk.ResultAnnouncement || ResultAnnouncement))._new())._result_(self["@result"]));
 | 
	
		
			
				|  |  | +var worker;
 | 
	
		
			
				|  |  | +smalltalk.send(self["@result"],"_total_",[smalltalk.send(self["@suite"],"_size",[])]);
 | 
	
		
			
				|  |  | +smalltalk.send(self["@announcer"],"_announce_",[smalltalk.send(smalltalk.send((smalltalk.ResultAnnouncement || ResultAnnouncement),"_new",[]),"_result_",[self["@result"]])]);
 | 
	
		
			
				|  |  |  worker=(function(){
 | 
	
		
			
				|  |  | -return _st(self["@result"])._nextRunDo_((function(index){
 | 
	
		
			
				|  |  | -return _st((function(){
 | 
	
		
			
				|  |  | -return _st(self["@result"])._runCase_(_st(self["@suite"])._at_(index));
 | 
	
		
			
				|  |  | -}))._ensure_((function(){
 | 
	
		
			
				|  |  | -_st(worker)._valueWithTimeout_((0));
 | 
	
		
			
				|  |  | -return _st(self["@announcer"])._announce_(_st(_st((smalltalk.ResultAnnouncement || ResultAnnouncement))._new())._result_(self["@result"]));
 | 
	
		
			
				|  |  | -}));
 | 
	
		
			
				|  |  | -}));
 | 
	
		
			
				|  |  | +return smalltalk.send(self["@result"],"_nextRunDo_",[(function(index){
 | 
	
		
			
				|  |  | +return smalltalk.send((function(){
 | 
	
		
			
				|  |  | +return smalltalk.send(self["@result"],"_runCase_",[smalltalk.send(self["@suite"],"_at_",[index])]);
 | 
	
		
			
				|  |  | +}),"_ensure_",[(function(){
 | 
	
		
			
				|  |  | +smalltalk.send(worker,"_fork",[]);
 | 
	
		
			
				|  |  | +return smalltalk.send(self["@announcer"],"_announce_",[smalltalk.send(smalltalk.send((smalltalk.ResultAnnouncement || ResultAnnouncement),"_new",[]),"_result_",[self["@result"]])]);
 | 
	
		
			
				|  |  | +})]);
 | 
	
		
			
				|  |  | +})]);
 | 
	
		
			
				|  |  |  });
 | 
	
		
			
				|  |  | -_st(_st(_st(self["@suite"])._size())._min_((25)))._timesRepeat_((function(){
 | 
	
		
			
				|  |  | -return _st(worker)._valueWithTimeout_((0));
 | 
	
		
			
				|  |  | -}));
 | 
	
		
			
				|  |  | -return self}, self, "run", [], smalltalk.TestSuiteRunner)},
 | 
	
		
			
				|  |  | +smalltalk.send(worker,"_fork",[]);
 | 
	
		
			
				|  |  | +return self},
 | 
	
		
			
				|  |  |  args: [],
 | 
	
		
			
				|  |  | -source: "run\x0a\x09| worker |\x0a\x09result total: suite size.\x0a    announcer announce: (ResultAnnouncement new result: result).\x0a    worker := [ result nextRunDo: [ :index |\x0a\x09\x09[ result runCase: (suite at: index) ]\x0a\x09\x09ensure: [ worker valueWithTimeout: 0.\x0a        \x09announcer announce: (ResultAnnouncement new result: result) ]]].\x0a\x09(suite size min: 25) timesRepeat: [ worker valueWithTimeout: 0 ]",
 | 
	
		
			
				|  |  | -messageSends: ["total:", "size", "announce:", "result:", "new", "nextRunDo:", "ensure:", "valueWithTimeout:", "runCase:", "at:", "timesRepeat:", "min:"],
 | 
	
		
			
				|  |  | +source: "run\x0a\x09| worker |\x0a\x09result total: suite size.\x0a    announcer announce: (ResultAnnouncement new result: result).\x0a    worker := [ result nextRunDo: [ :index |\x0a\x09\x09[ result runCase: (suite at: index) ]\x0a\x09\x09ensure: [ worker fork.\x0a        \x09announcer announce: (ResultAnnouncement new result: result) ]]].\x0a\x09worker fork",
 | 
	
		
			
				|  |  | +messageSends: ["total:", "size", "announce:", "result:", "new", "nextRunDo:", "ensure:", "fork", "runCase:", "at:"],
 | 
	
		
			
				|  |  |  referencedClasses: ["ResultAnnouncement"]
 | 
	
		
			
				|  |  |  }),
 | 
	
		
			
				|  |  |  smalltalk.TestSuiteRunner);
 | 
	
	
		
			
				|  | @@ -751,8 +750,8 @@ selector: "suite:",
 | 
	
		
			
				|  |  |  category: 'accessing',
 | 
	
		
			
				|  |  |  fn: function (aCollection){
 | 
	
		
			
				|  |  |  var self=this;
 | 
	
		
			
				|  |  | -return smalltalk.withContext(function($ctx) { self["@suite"]=aCollection;
 | 
	
		
			
				|  |  | -return self}, self, "suite:", [aCollection], smalltalk.TestSuiteRunner)},
 | 
	
		
			
				|  |  | +self["@suite"]=aCollection;
 | 
	
		
			
				|  |  | +return self},
 | 
	
		
			
				|  |  |  args: ["aCollection"],
 | 
	
		
			
				|  |  |  source: "suite: aCollection\x0a\x09suite := aCollection",
 | 
	
		
			
				|  |  |  messageSends: [],
 | 
	
	
		
			
				|  | @@ -768,8 +767,8 @@ selector: "new",
 | 
	
		
			
				|  |  |  category: 'instance creation',
 | 
	
		
			
				|  |  |  fn: function (){
 | 
	
		
			
				|  |  |  var self=this;
 | 
	
		
			
				|  |  | -return smalltalk.withContext(function($ctx) { _st(self)._shouldNotImplement();
 | 
	
		
			
				|  |  | -return self}, self, "new", [], smalltalk.TestSuiteRunner.klass)},
 | 
	
		
			
				|  |  | +smalltalk.send(self,"_shouldNotImplement",[]);
 | 
	
		
			
				|  |  | +return self},
 | 
	
		
			
				|  |  |  args: [],
 | 
	
		
			
				|  |  |  source: "new\x0a\x09self shouldNotImplement",
 | 
	
		
			
				|  |  |  messageSends: ["shouldNotImplement"],
 | 
	
	
		
			
				|  | @@ -784,10 +783,10 @@ selector: "on:",
 | 
	
		
			
				|  |  |  category: 'instance creation',
 | 
	
		
			
				|  |  |  fn: function (aCollection){
 | 
	
		
			
				|  |  |  var self=this;
 | 
	
		
			
				|  |  | -return smalltalk.withContext(function($ctx) { var $1;
 | 
	
		
			
				|  |  | -$1=_st(smalltalk.Object.klass.fn.prototype._new.apply(_st(self), []))._suite_(aCollection);
 | 
	
		
			
				|  |  | +var $1;
 | 
	
		
			
				|  |  | +$1=smalltalk.send(smalltalk.send(self,"_new",[],smalltalk.Object.klass),"_suite_",[aCollection]);
 | 
	
		
			
				|  |  |  return $1;
 | 
	
		
			
				|  |  | -}, self, "on:", [aCollection], smalltalk.TestSuiteRunner.klass)},
 | 
	
		
			
				|  |  | +},
 | 
	
		
			
				|  |  |  args: ["aCollection"],
 | 
	
		
			
				|  |  |  source: "on: aCollection\x0a\x09^super new suite: aCollection",
 | 
	
		
			
				|  |  |  messageSends: ["suite:", "new"],
 |