resin 0.3.1 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. data/amber/bin/amberc +10 -350
  2. data/amber/js/Benchfib.deploy.js +80 -89
  3. data/amber/js/Benchfib.js +80 -89
  4. data/amber/js/Canvas.deploy.js +558 -545
  5. data/amber/js/Canvas.js +563 -545
  6. data/amber/js/Compiler-AST.deploy.js +431 -243
  7. data/amber/js/Compiler-AST.js +487 -244
  8. data/amber/js/Compiler-Core.deploy.js +201 -1045
  9. data/amber/js/Compiler-Core.js +208 -1207
  10. data/amber/js/Compiler-Exceptions.deploy.js +37 -18
  11. data/amber/js/Compiler-Exceptions.js +42 -18
  12. data/amber/js/Compiler-IR.deploy.js +1071 -774
  13. data/amber/js/Compiler-IR.js +1194 -848
  14. data/amber/js/Compiler-Inlining.deploy.js +395 -373
  15. data/amber/js/Compiler-Inlining.js +395 -373
  16. data/amber/js/Compiler-Interpreter.deploy.js +1202 -0
  17. data/amber/js/Compiler-Interpreter.js +1631 -0
  18. data/amber/js/Compiler-Semantic.deploy.js +695 -600
  19. data/amber/js/Compiler-Semantic.js +721 -611
  20. data/amber/js/Compiler-Tests.deploy.js +699 -376
  21. data/amber/js/Compiler-Tests.js +834 -381
  22. data/amber/js/Compiler.deploy.js +8563 -1805
  23. data/amber/js/Compiler.js +11476 -2633
  24. data/amber/js/Examples.deploy.js +29 -29
  25. data/amber/js/Examples.js +29 -29
  26. data/amber/js/IDE.deploy.js +3292 -2649
  27. data/amber/js/IDE.js +3318 -2710
  28. data/amber/js/Importer-Exporter.deploy.js +393 -349
  29. data/amber/js/Importer-Exporter.js +398 -354
  30. data/amber/js/Kernel-Announcements.deploy.js +53 -44
  31. data/amber/js/Kernel-Announcements.js +55 -44
  32. data/amber/js/Kernel-Classes.deploy.js +566 -368
  33. data/amber/js/Kernel-Classes.js +660 -402
  34. data/amber/js/Kernel-Collections.deploy.js +1149 -1098
  35. data/amber/js/Kernel-Collections.js +1183 -1116
  36. data/amber/js/Kernel-Exceptions.deploy.js +173 -75
  37. data/amber/js/Kernel-Exceptions.js +215 -77
  38. data/amber/js/Kernel-Methods.deploy.js +530 -313
  39. data/amber/js/Kernel-Methods.js +632 -338
  40. data/amber/js/Kernel-Objects.deploy.js +1734 -1577
  41. data/amber/js/Kernel-Objects.js +1867 -1654
  42. data/amber/js/Kernel-Tests.deploy.js +1416 -973
  43. data/amber/js/Kernel-Tests.js +1495 -981
  44. data/amber/js/Kernel-Transcript.deploy.js +23 -24
  45. data/amber/js/Kernel-Transcript.js +25 -26
  46. data/amber/js/SUnit-Tests.deploy.js +402 -0
  47. data/amber/js/SUnit-Tests.js +518 -0
  48. data/amber/js/SUnit.deploy.js +535 -237
  49. data/amber/js/SUnit.js +634 -246
  50. data/amber/js/amber.js +90 -53
  51. data/amber/js/boot.js +441 -255
  52. data/amber/js/init.js +1 -3
  53. data/amber/js/lib/CodeMirror/codemirror.css +3 -0
  54. data/amber/js/lib/CodeMirror/codemirror.js +104 -55
  55. data/amber/js/lib/peg-0.7.0.min.js +9 -0
  56. data/amber/js/parser.js +1504 -802
  57. data/amber/js/parser.pegjs +170 -165
  58. data/amber/st/Canvas.st +6 -0
  59. data/amber/st/Compiler-AST.st +54 -3
  60. data/amber/st/Compiler-Core.st +6 -551
  61. data/amber/st/Compiler-Exceptions.st +4 -0
  62. data/amber/st/Compiler-IR.st +205 -87
  63. data/amber/st/Compiler-Interpreter.st +597 -0
  64. data/amber/st/Compiler-Semantic.st +46 -21
  65. data/amber/st/Compiler-Tests.st +254 -7
  66. data/amber/st/Compiler.st +3172 -1541
  67. data/amber/st/IDE.st +57 -93
  68. data/amber/st/Importer-Exporter.st +4 -7
  69. data/amber/st/Kernel-Announcements.st +8 -0
  70. data/amber/st/Kernel-Classes.st +149 -40
  71. data/amber/st/Kernel-Collections.st +43 -32
  72. data/amber/st/Kernel-Exceptions.st +70 -1
  73. data/amber/st/Kernel-Methods.st +165 -27
  74. data/amber/st/Kernel-Objects.st +215 -140
  75. data/amber/st/Kernel-Tests.st +195 -10
  76. data/amber/st/Kernel-Transcript.st +1 -3
  77. data/amber/st/SUnit-Tests.st +186 -0
  78. data/amber/st/SUnit.st +186 -14
  79. data/bin/resin +6 -0
  80. data/lib/resin/cli.rb +19 -0
  81. metadata +41 -25
  82. data/amber/js/lib/peg-0.6.2.min.js +0 -2
  83. data/bin/resin-compile +0 -6
  84. data/bin/runresin +0 -12
@@ -6,8 +6,10 @@ smalltalk.method({
6
6
  selector: "result",
7
7
  fn: function (){
8
8
  var self=this;
9
- return self["@result"];
10
- }
9
+ return smalltalk.withContext(function($ctx1) {
10
+ $1=self["@result"];
11
+ return $1;
12
+ }, function($ctx1) {$ctx1.fill(self,"result",{}, smalltalk.ResultAnnouncement)})}
11
13
  }),
12
14
  smalltalk.ResultAnnouncement);
13
15
 
@@ -17,23 +19,22 @@ smalltalk.method({
17
19
  selector: "result:",
18
20
  fn: function (aTestResult){
19
21
  var self=this;
20
- self["@result"]=aTestResult;
21
- return self}
22
+ return smalltalk.withContext(function($ctx1) {
23
+ return self}, function($ctx1) {$ctx1.fill(self,"result:",{aTestResult:aTestResult}, smalltalk.ResultAnnouncement)})}
22
24
  }),
23
25
  smalltalk.ResultAnnouncement);
24
26
 
25
27
 
26
28
 
27
- smalltalk.addClass('TestCase', smalltalk.Object, ['testSelector'], 'SUnit');
29
+ smalltalk.addClass('TestCase', smalltalk.Object, ['testSelector', 'asyncTimeout', 'context'], 'SUnit');
28
30
  smalltalk.addMethod(
29
31
  "_assert_",
30
32
  smalltalk.method({
31
33
  selector: "assert:",
32
- fn: function (aBoolean) {
33
- var self = this;
34
- smalltalk.send(self, "_assert_description_", [aBoolean, "Assertion failed"]);
35
- return self;
36
- }
34
+ fn: function (aBoolean){
35
+ var self=this;
36
+ return smalltalk.withContext(function($ctx1) {
37
+ return self}, function($ctx1) {$ctx1.fill(self,"assert:",{aBoolean:aBoolean}, smalltalk.TestCase)})}
37
38
  }),
38
39
  smalltalk.TestCase);
39
40
 
@@ -41,13 +42,14 @@ smalltalk.addMethod(
41
42
  "_assert_description_",
42
43
  smalltalk.method({
43
44
  selector: "assert:description:",
44
- fn: function (aBoolean, aString) {
45
- var self = this;
46
- if (!smalltalk.assert(aBoolean)) {
47
- smalltalk.send(self, "_signalFailure_", [aString]);
48
- }
49
- return self;
50
- }
45
+ fn: function (aBoolean,aString){
46
+ var self=this;
47
+ return smalltalk.withContext(function($ctx1) {
48
+ $1=aBoolean;
49
+ if(! smalltalk.assert($1)){
50
+ _st(self)._signalFailure_(aString);
51
+ };
52
+ return self}, function($ctx1) {$ctx1.fill(self,"assert:description:",{aBoolean:aBoolean,aString:aString}, smalltalk.TestCase)})}
51
53
  }),
52
54
  smalltalk.TestCase);
53
55
 
@@ -55,12 +57,44 @@ smalltalk.addMethod(
55
57
  "_assert_equals_",
56
58
  smalltalk.method({
57
59
  selector: "assert:equals:",
58
- fn: function (expected, actual) {
59
- var self = this;
60
- var $1;
61
- $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", [])])]);
62
- return $1;
63
- }
60
+ fn: function (expected,actual){
61
+ var self=this;
62
+ return smalltalk.withContext(function($ctx1) {
63
+ $1=_st(self)._assert_description_(_st(expected).__eq(actual),_st(_st(_st("Expected: ").__comma(_st(expected)._asString())).__comma(" but was: ")).__comma(_st(actual)._asString()));
64
+ return $1;
65
+ }, function($ctx1) {$ctx1.fill(self,"assert:equals:",{expected:expected,actual:actual}, smalltalk.TestCase)})}
66
+ }),
67
+ smalltalk.TestCase);
68
+
69
+ smalltalk.addMethod(
70
+ "_async_",
71
+ smalltalk.method({
72
+ selector: "async:",
73
+ fn: function (aBlock){
74
+ var self=this;
75
+ var c;
76
+ return smalltalk.withContext(function($ctx1) {
77
+ _st(self)._errorIfNotAsync_("#async");
78
+ c=self["@context"];
79
+ $1=(function(){
80
+ return smalltalk.withContext(function($ctx2) {
81
+ if(smalltalk.assert($2)){
82
+ return _st(c)._execute_(aBlock);
83
+ };
84
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
85
+ return $1;
86
+ }, function($ctx1) {$ctx1.fill(self,"async:",{aBlock:aBlock,c:c}, smalltalk.TestCase)})}
87
+ }),
88
+ smalltalk.TestCase);
89
+
90
+ smalltalk.addMethod(
91
+ "_context_",
92
+ smalltalk.method({
93
+ selector: "context:",
94
+ fn: function (aRunningTestContext){
95
+ var self=this;
96
+ return smalltalk.withContext(function($ctx1) {
97
+ return self}, function($ctx1) {$ctx1.fill(self,"context:",{aRunningTestContext:aRunningTestContext}, smalltalk.TestCase)})}
64
98
  }),
65
99
  smalltalk.TestCase);
66
100
 
@@ -68,11 +102,50 @@ smalltalk.addMethod(
68
102
  "_deny_",
69
103
  smalltalk.method({
70
104
  selector: "deny:",
71
- fn: function (aBoolean) {
72
- var self = this;
73
- smalltalk.send(self, "_assert_", [smalltalk.send(aBoolean, "_not", [])]);
74
- return self;
75
- }
105
+ fn: function (aBoolean){
106
+ var self=this;
107
+ return smalltalk.withContext(function($ctx1) {
108
+ return self}, function($ctx1) {$ctx1.fill(self,"deny:",{aBoolean:aBoolean}, smalltalk.TestCase)})}
109
+ }),
110
+ smalltalk.TestCase);
111
+
112
+ smalltalk.addMethod(
113
+ "_errorIfNotAsync_",
114
+ smalltalk.method({
115
+ selector: "errorIfNotAsync:",
116
+ fn: function (aString){
117
+ var self=this;
118
+ return smalltalk.withContext(function($ctx1) {
119
+ $1=_st(self)._isAsync();
120
+ if(! smalltalk.assert($1)){
121
+ _st(self)._error_(_st(aString).__comma(" used without prior #timeout:"));
122
+ };
123
+ return self}, function($ctx1) {$ctx1.fill(self,"errorIfNotAsync:",{aString:aString}, smalltalk.TestCase)})}
124
+ }),
125
+ smalltalk.TestCase);
126
+
127
+ smalltalk.addMethod(
128
+ "_finished",
129
+ smalltalk.method({
130
+ selector: "finished",
131
+ fn: function (){
132
+ var self=this;
133
+ return smalltalk.withContext(function($ctx1) {
134
+ self["@asyncTimeout"]=nil;
135
+ return self}, function($ctx1) {$ctx1.fill(self,"finished",{}, smalltalk.TestCase)})}
136
+ }),
137
+ smalltalk.TestCase);
138
+
139
+ smalltalk.addMethod(
140
+ "_isAsync",
141
+ smalltalk.method({
142
+ selector: "isAsync",
143
+ fn: function (){
144
+ var self=this;
145
+ return smalltalk.withContext(function($ctx1) {
146
+ $1=_st(self["@asyncTimeout"])._notNil();
147
+ return $1;
148
+ }, function($ctx1) {$ctx1.fill(self,"isAsync",{}, smalltalk.TestCase)})}
76
149
  }),
77
150
  smalltalk.TestCase);
78
151
 
@@ -82,8 +155,9 @@ smalltalk.method({
82
155
  selector: "performTest",
83
156
  fn: function (){
84
157
  var self=this;
85
- smalltalk.send(self,"_perform_",[smalltalk.send(self,"_selector",[])]);
86
- return self}
158
+ return smalltalk.withContext(function($ctx1) {
159
+ _st(self)._perform_(_st(self)._selector());
160
+ return self}, function($ctx1) {$ctx1.fill(self,"performTest",{}, smalltalk.TestCase)})}
87
161
  }),
88
162
  smalltalk.TestCase);
89
163
 
@@ -93,13 +167,8 @@ smalltalk.method({
93
167
  selector: "runCase",
94
168
  fn: function (){
95
169
  var self=this;
96
- smalltalk.send((function(){
97
- smalltalk.send(self,"_setUp",[]);
98
- return smalltalk.send(self,"_performTest",[]);
99
- }),"_ensure_",[(function(){
100
- return smalltalk.send(self,"_tearDown",[]);
101
- })]);
102
- return self}
170
+ return smalltalk.withContext(function($ctx1) {
171
+ return self}, function($ctx1) {$ctx1.fill(self,"runCase",{}, smalltalk.TestCase)})}
103
172
  }),
104
173
  smalltalk.TestCase);
105
174
 
@@ -107,10 +176,12 @@ smalltalk.addMethod(
107
176
  "_selector",
108
177
  smalltalk.method({
109
178
  selector: "selector",
110
- fn: function () {
111
- var self = this;
112
- return self['@testSelector'];
113
- }
179
+ fn: function (){
180
+ var self=this;
181
+ return smalltalk.withContext(function($ctx1) {
182
+ $1=self["@testSelector"];
183
+ return $1;
184
+ }, function($ctx1) {$ctx1.fill(self,"selector",{}, smalltalk.TestCase)})}
114
185
  }),
115
186
  smalltalk.TestCase);
116
187
 
@@ -118,11 +189,10 @@ smalltalk.addMethod(
118
189
  "_setTestSelector_",
119
190
  smalltalk.method({
120
191
  selector: "setTestSelector:",
121
- fn: function (aSelector) {
122
- var self = this;
123
- self['@testSelector'] = aSelector;
124
- return self;
125
- }
192
+ fn: function (aSelector){
193
+ var self=this;
194
+ return smalltalk.withContext(function($ctx1) {
195
+ return self}, function($ctx1) {$ctx1.fill(self,"setTestSelector:",{aSelector:aSelector}, smalltalk.TestCase)})}
126
196
  }),
127
197
  smalltalk.TestCase);
128
198
 
@@ -130,10 +200,9 @@ smalltalk.addMethod(
130
200
  "_setUp",
131
201
  smalltalk.method({
132
202
  selector: "setUp",
133
- fn: function () {
134
- var self = this;
135
- return self;
136
- }
203
+ fn: function (){
204
+ var self=this;
205
+ return smalltalk.withContext(function($ctx1) {
137
206
  }),
138
207
  smalltalk.TestCase);
139
208
 
@@ -141,11 +210,10 @@ smalltalk.addMethod(
141
210
  "_should_",
142
211
  smalltalk.method({
143
212
  selector: "should:",
144
- fn: function (aBlock) {
145
- var self = this;
146
- smalltalk.send(self, "_assert_", [smalltalk.send(aBlock, "_value", [])]);
147
- return self;
148
- }
213
+ fn: function (aBlock){
214
+ var self=this;
215
+ return smalltalk.withContext(function($ctx1) {
216
+ return self}, function($ctx1) {$ctx1.fill(self,"should:",{aBlock:aBlock}, smalltalk.TestCase)})}
149
217
  }),
150
218
  smalltalk.TestCase);
151
219
 
@@ -153,11 +221,15 @@ smalltalk.addMethod(
153
221
  "_should_raise_",
154
222
  smalltalk.method({
155
223
  selector: "should:raise:",
156
- fn: function (aBlock, anExceptionClass) {
157
- var self = this;
158
- smalltalk.send(self, "_assert_", [smalltalk.send(function () {smalltalk.send(aBlock, "_value", []);return false;}, "_on_do_", [anExceptionClass, function (ex) {return true;}])]);
159
- return self;
160
- }
224
+ fn: function (aBlock,anExceptionClass){
225
+ var self=this;
226
+ return smalltalk.withContext(function($ctx1) {
227
+ return smalltalk.withContext(function($ctx2) {
228
+ return false;
229
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._on_do_(anExceptionClass,(function(ex){
230
+ return smalltalk.withContext(function($ctx2) {
231
+ }, function($ctx2) {$ctx2.fillBlock({ex:ex},$ctx1)})})));
232
+ return self}, function($ctx1) {$ctx1.fill(self,"should:raise:",{aBlock:aBlock,anExceptionClass:anExceptionClass}, smalltalk.TestCase)})}
161
233
  }),
162
234
  smalltalk.TestCase);
163
235
 
@@ -165,11 +237,15 @@ smalltalk.addMethod(
165
237
  "_shouldnt_raise_",
166
238
  smalltalk.method({
167
239
  selector: "shouldnt:raise:",
168
- fn: function (aBlock, anExceptionClass) {
169
- var self = this;
170
- smalltalk.send(self, "_assert_", [smalltalk.send(function () {smalltalk.send(aBlock, "_value", []);return true;}, "_on_do_", [anExceptionClass, function (ex) {return false;}])]);
171
- return self;
172
- }
240
+ fn: function (aBlock,anExceptionClass){
241
+ var self=this;
242
+ return smalltalk.withContext(function($ctx1) {
243
+ return smalltalk.withContext(function($ctx2) {
244
+ return true;
245
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._on_do_(anExceptionClass,(function(ex){
246
+ return smalltalk.withContext(function($ctx2) {
247
+ }, function($ctx2) {$ctx2.fillBlock({ex:ex},$ctx1)})})));
248
+ return self}, function($ctx1) {$ctx1.fill(self,"shouldnt:raise:",{aBlock:aBlock,anExceptionClass:anExceptionClass}, smalltalk.TestCase)})}
173
249
  }),
174
250
  smalltalk.TestCase);
175
251
 
@@ -177,14 +253,13 @@ smalltalk.addMethod(
177
253
  "_signalFailure_",
178
254
  smalltalk.method({
179
255
  selector: "signalFailure:",
180
- fn: function (aString) {
181
- var self = this;
182
- var $1, $2;
183
- $1 = smalltalk.send(smalltalk.TestFailure || TestFailure, "_new", []);
184
- smalltalk.send($1, "_messageText_", [aString]);
185
- $2 = smalltalk.send($1, "_signal", []);
186
- return self;
187
- }
256
+ fn: function (aString){
257
+ var self=this;
258
+ return smalltalk.withContext(function($ctx1) {
259
+ $1=_st((smalltalk.TestFailure || TestFailure))._new();
260
+ _st($1)._messageText_(aString);
261
+ $2=_st($1)._signal();
262
+ return self}, function($ctx1) {$ctx1.fill(self,"signalFailure:",{aString:aString}, smalltalk.TestCase)})}
188
263
  }),
189
264
  smalltalk.TestCase);
190
265
 
@@ -192,10 +267,30 @@ smalltalk.addMethod(
192
267
  "_tearDown",
193
268
  smalltalk.method({
194
269
  selector: "tearDown",
195
- fn: function () {
196
- var self = this;
197
- return self;
198
- }
270
+ fn: function (){
271
+ var self=this;
272
+ return smalltalk.withContext(function($ctx1) {
273
+ }),
274
+ smalltalk.TestCase);
275
+
276
+ smalltalk.addMethod(
277
+ "_timeout_",
278
+ smalltalk.method({
279
+ selector: "timeout:",
280
+ fn: function (aNumber){
281
+ var self=this;
282
+ return smalltalk.withContext(function($ctx1) {
283
+ $1=self["@asyncTimeout"];
284
+ if(($receiver = $1) == nil || $receiver == undefined){
285
+ $1;
286
+ } else {
287
+ _st(self["@asyncTimeout"])._clearTimeout();
288
+ };
289
+ self["@asyncTimeout"]=(0);
290
+ self["@asyncTimeout"]=_st(_st(self)._async_((function(){
291
+ return smalltalk.withContext(function($ctx2) {
292
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._valueWithTimeout_(aNumber);
293
+ return self}, function($ctx1) {$ctx1.fill(self,"timeout:",{aNumber:aNumber}, smalltalk.TestCase)})}
199
294
  }),
200
295
  smalltalk.TestCase);
201
296
 
@@ -204,17 +299,18 @@ smalltalk.addMethod(
204
299
  "_allTestSelectors",
205
300
  smalltalk.method({
206
301
  selector: "allTestSelectors",
207
- fn: function () {
208
- var self = this;
209
- var $1;
210
- var selectors;
211
- selectors = smalltalk.send(self, "_testSelectors", []);
212
- $1 = smalltalk.send(self, "_shouldInheritSelectors", []);
213
- if (smalltalk.assert($1)) {
214
- smalltalk.send(selectors, "_addAll_", [smalltalk.send(smalltalk.send(self, "_superclass", []), "_allTestSelectors", [])]);
215
- }
216
- return selectors;
217
- }
302
+ fn: function (){
303
+ var self=this;
304
+ var selectors;
305
+ return smalltalk.withContext(function($ctx1) {
306
+ selectors=_st(self)._testSelectors();
307
+ $1=_st(self)._shouldInheritSelectors();
308
+ if(smalltalk.assert($1)){
309
+ _st(selectors)._addAll_(_st(_st(self)._superclass())._allTestSelectors());
310
+ };
311
+ $2=selectors;
312
+ return $2;
313
+ }, function($ctx1) {$ctx1.fill(self,"allTestSelectors",{selectors:selectors}, smalltalk.TestCase.klass)})}
218
314
  }),
219
315
  smalltalk.TestCase.klass);
220
316
 
@@ -222,12 +318,14 @@ smalltalk.addMethod(
222
318
  "_buildSuite",
223
319
  smalltalk.method({
224
320
  selector: "buildSuite",
225
- fn: function () {
226
- var self = this;
227
- var $1;
228
- $1 = smalltalk.send(smalltalk.send(self, "_allTestSelectors", []), "_collect_", [function (each) {return smalltalk.send(self, "_selector_", [each]);}]);
229
- return $1;
230
- }
321
+ fn: function (){
322
+ var self=this;
323
+ return smalltalk.withContext(function($ctx1) {
324
+ $1=_st(_st(self)._allTestSelectors())._collect_((function(each){
325
+ return smalltalk.withContext(function($ctx2) {
326
+ }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
327
+ return $1;
328
+ }, function($ctx1) {$ctx1.fill(self,"buildSuite",{}, smalltalk.TestCase.klass)})}
231
329
  }),
232
330
  smalltalk.TestCase.klass);
233
331
 
@@ -235,12 +333,12 @@ smalltalk.addMethod(
235
333
  "_isAbstract",
236
334
  smalltalk.method({
237
335
  selector: "isAbstract",
238
- fn: function () {
239
- var self = this;
240
- var $1;
241
- $1 = smalltalk.send(smalltalk.send(self, "_name", []), "__eq", ["TestCase"]);
242
- return $1;
243
- }
336
+ fn: function (){
337
+ var self=this;
338
+ return smalltalk.withContext(function($ctx1) {
339
+ $1=_st(_st(self)._name()).__eq("TestCase");
340
+ return $1;
341
+ }, function($ctx1) {$ctx1.fill(self,"isAbstract",{}, smalltalk.TestCase.klass)})}
244
342
  }),
245
343
  smalltalk.TestCase.klass);
246
344
 
@@ -248,10 +346,12 @@ smalltalk.addMethod(
248
346
  "_lookupHierarchyRoot",
249
347
  smalltalk.method({
250
348
  selector: "lookupHierarchyRoot",
251
- fn: function () {
252
- var self = this;
253
- return smalltalk.TestCase || TestCase;
254
- }
349
+ fn: function (){
350
+ var self=this;
351
+ return smalltalk.withContext(function($ctx1) {
352
+ $1=(smalltalk.TestCase || TestCase);
353
+ return $1;
354
+ }, function($ctx1) {$ctx1.fill(self,"lookupHierarchyRoot",{}, smalltalk.TestCase.klass)})}
255
355
  }),
256
356
  smalltalk.TestCase.klass);
257
357
 
@@ -259,15 +359,15 @@ smalltalk.addMethod(
259
359
  "_selector_",
260
360
  smalltalk.method({
261
361
  selector: "selector:",
262
- fn: function (aSelector) {
263
- var self = this;
264
- var $2, $3, $1;
265
- $2 = smalltalk.send(self, "_new", []);
266
- smalltalk.send($2, "_setTestSelector_", [aSelector]);
267
- $3 = smalltalk.send($2, "_yourself", []);
268
- $1 = $3;
269
- return $1;
270
- }
362
+ fn: function (aSelector){
363
+ var self=this;
364
+ return smalltalk.withContext(function($ctx1) {
365
+ $2=_st(self)._new();
366
+ _st($2)._setTestSelector_(aSelector);
367
+ $3=_st($2)._yourself();
368
+ $1=$3;
369
+ return $1;
370
+ }, function($ctx1) {$ctx1.fill(self,"selector:",{aSelector:aSelector}, smalltalk.TestCase.klass)})}
271
371
  }),
272
372
  smalltalk.TestCase.klass);
273
373
 
@@ -275,12 +375,12 @@ smalltalk.addMethod(
275
375
  "_shouldInheritSelectors",
276
376
  smalltalk.method({
277
377
  selector: "shouldInheritSelectors",
278
- fn: function () {
279
- var self = this;
280
- var $1;
281
- $1 = smalltalk.send(self, "_~_eq", [smalltalk.send(self, "_lookupHierarchyRoot", [])]);
282
- return $1;
283
- }
378
+ fn: function (){
379
+ var self=this;
380
+ return smalltalk.withContext(function($ctx1) {
381
+ $1=_st(self).__tild_eq(_st(self)._lookupHierarchyRoot());
382
+ return $1;
383
+ }, function($ctx1) {$ctx1.fill(self,"shouldInheritSelectors",{}, smalltalk.TestCase.klass)})}
284
384
  }),
285
385
  smalltalk.TestCase.klass);
286
386
 
@@ -288,16 +388,179 @@ smalltalk.addMethod(
288
388
  "_testSelectors",
289
389
  smalltalk.method({
290
390
  selector: "testSelectors",
291
- fn: function () {
292
- var self = this;
293
- var $1;
294
- $1 = smalltalk.send(smalltalk.send(smalltalk.send(self, "_methodDictionary", []), "_keys", []), "_select_", [function (each) {return smalltalk.send(each, "_match_", ["^test"]);}]);
295
- return $1;
296
- }
391
+ fn: function (){
392
+ var self=this;
393
+ return smalltalk.withContext(function($ctx1) {
394
+ $1=_st(_st(_st(self)._methodDictionary())._keys())._select_((function(each){
395
+ return smalltalk.withContext(function($ctx2) {
396
+ }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
397
+ return $1;
398
+ }, function($ctx1) {$ctx1.fill(self,"testSelectors",{}, smalltalk.TestCase.klass)})}
297
399
  }),
298
400
  smalltalk.TestCase.klass);
299
401
 
300
402
 
403
+ smalltalk.addClass('TestContext', smalltalk.Object, ['testCase'], 'SUnit');
404
+ smalltalk.addMethod(
405
+ "_execute_",
406
+ smalltalk.method({
407
+ selector: "execute:",
408
+ fn: function (aBlock){
409
+ var self=this;
410
+ var failed;
411
+ return smalltalk.withContext(function($ctx1) {
412
+ _st(self["@testCase"])._context_(self);
413
+ $1=(function(){
414
+ return smalltalk.withContext(function($ctx2) {
415
+ failed;
416
+ _st(aBlock)._value();
417
+ failed=false;
418
+ return failed;
419
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
420
+ $2=(function(){
421
+ return smalltalk.withContext(function($ctx2) {
422
+ $3=_st(failed)._and_((function(){
423
+ return smalltalk.withContext(function($ctx3) {
424
+ }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
425
+ if(smalltalk.assert($3)){
426
+ _st(self["@testCase"])._finished();
427
+ };
428
+ $4=_st(self["@testCase"])._isAsync();
429
+ if(! smalltalk.assert($4)){
430
+ return _st(self["@testCase"])._tearDown();
431
+ };
432
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
433
+ _st($1)._ensure_($2);
434
+ return self}, function($ctx1) {$ctx1.fill(self,"execute:",{aBlock:aBlock,failed:failed}, smalltalk.TestContext)})}
435
+ }),
436
+ smalltalk.TestContext);
437
+
438
+ smalltalk.addMethod(
439
+ "_start",
440
+ smalltalk.method({
441
+ selector: "start",
442
+ fn: function (){
443
+ var self=this;
444
+ return smalltalk.withContext(function($ctx1) {
445
+ return smalltalk.withContext(function($ctx2) {
446
+ return _st(self["@testCase"])._performTest();
447
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
448
+ return self}, function($ctx1) {$ctx1.fill(self,"start",{}, smalltalk.TestContext)})}
449
+ }),
450
+ smalltalk.TestContext);
451
+
452
+ smalltalk.addMethod(
453
+ "_testCase_",
454
+ smalltalk.method({
455
+ selector: "testCase:",
456
+ fn: function (aTestCase){
457
+ var self=this;
458
+ return smalltalk.withContext(function($ctx1) {
459
+ return self}, function($ctx1) {$ctx1.fill(self,"testCase:",{aTestCase:aTestCase}, smalltalk.TestContext)})}
460
+ }),
461
+ smalltalk.TestContext);
462
+
463
+
464
+ smalltalk.addMethod(
465
+ "_testCase_",
466
+ smalltalk.method({
467
+ selector: "testCase:",
468
+ fn: function (aTestCase){
469
+ var self=this;
470
+ return smalltalk.withContext(function($ctx1) {
471
+ $2=_st(self)._new();
472
+ _st($2)._testCase_(aTestCase);
473
+ $3=_st($2)._yourself();
474
+ $1=$3;
475
+ return $1;
476
+ }, function($ctx1) {$ctx1.fill(self,"testCase:",{aTestCase:aTestCase}, smalltalk.TestContext.klass)})}
477
+ }),
478
+ smalltalk.TestContext.klass);
479
+
480
+
481
+ smalltalk.addClass('ReportingTestContext', smalltalk.TestContext, ['finished', 'result'], 'SUnit');
482
+ smalltalk.addMethod(
483
+ "_execute_",
484
+ smalltalk.method({
485
+ selector: "execute:",
486
+ fn: function (aBlock){
487
+ var self=this;
488
+ return smalltalk.withContext(function($ctx1) {
489
+ $1=(function(){
490
+ return smalltalk.withContext(function($ctx2) {
491
+ return smalltalk.withContext(function($ctx3) {
492
+ }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
493
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
494
+ $2=(function(){
495
+ return smalltalk.withContext(function($ctx2) {
496
+ if(! smalltalk.assert($3)){
497
+ _st(self["@result"])._increaseRuns();
498
+ return _st(self["@finished"])._value();
499
+ };
500
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
501
+ _st($1)._ensure_($2);
502
+ return self}, function($ctx1) {$ctx1.fill(self,"execute:",{aBlock:aBlock}, smalltalk.ReportingTestContext)})}
503
+ }),
504
+ smalltalk.ReportingTestContext);
505
+
506
+ smalltalk.addMethod(
507
+ "_finished_",
508
+ smalltalk.method({
509
+ selector: "finished:",
510
+ fn: function (aBlock){
511
+ var self=this;
512
+ return smalltalk.withContext(function($ctx1) {
513
+ return self}, function($ctx1) {$ctx1.fill(self,"finished:",{aBlock:aBlock}, smalltalk.ReportingTestContext)})}
514
+ }),
515
+ smalltalk.ReportingTestContext);
516
+
517
+ smalltalk.addMethod(
518
+ "_result_",
519
+ smalltalk.method({
520
+ selector: "result:",
521
+ fn: function (aTestResult){
522
+ var self=this;
523
+ return smalltalk.withContext(function($ctx1) {
524
+ return self}, function($ctx1) {$ctx1.fill(self,"result:",{aTestResult:aTestResult}, smalltalk.ReportingTestContext)})}
525
+ }),
526
+ smalltalk.ReportingTestContext);
527
+
528
+ smalltalk.addMethod(
529
+ "_withErrorReporting_",
530
+ smalltalk.method({
531
+ selector: "withErrorReporting:",
532
+ fn: function (aBlock){
533
+ var self=this;
534
+ return smalltalk.withContext(function($ctx1) {
535
+ return smalltalk.withContext(function($ctx2) {
536
+ return smalltalk.withContext(function($ctx3) {
537
+ }, function($ctx3) {$ctx3.fillBlock({ex:ex},$ctx1)})}));
538
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._on_do_((smalltalk.Error || Error),(function(ex){
539
+ return smalltalk.withContext(function($ctx2) {
540
+ }, function($ctx2) {$ctx2.fillBlock({ex:ex},$ctx1)})}));
541
+ return self}, function($ctx1) {$ctx1.fill(self,"withErrorReporting:",{aBlock:aBlock}, smalltalk.ReportingTestContext)})}
542
+ }),
543
+ smalltalk.ReportingTestContext);
544
+
545
+
546
+ smalltalk.addMethod(
547
+ "_testCase_result_finished_",
548
+ smalltalk.method({
549
+ selector: "testCase:result:finished:",
550
+ fn: function (aTestCase,aTestResult,aBlock){
551
+ var self=this;
552
+ return smalltalk.withContext(function($ctx1) {
553
+ $2=smalltalk.TestContext.klass.fn.prototype._testCase_.apply(_st(self), [aTestCase]);
554
+ _st($2)._result_(aTestResult);
555
+ _st($2)._finished_(aBlock);
556
+ $3=_st($2)._yourself();
557
+ $1=$3;
558
+ return $1;
559
+ }, function($ctx1) {$ctx1.fill(self,"testCase:result:finished:",{aTestCase:aTestCase,aTestResult:aTestResult,aBlock:aBlock}, smalltalk.ReportingTestContext.klass)})}
560
+ }),
561
+ smalltalk.ReportingTestContext.klass);
562
+
563
+
301
564
  smalltalk.addClass('TestFailure', smalltalk.Error, [], 'SUnit');
302
565
 
303
566
 
@@ -306,11 +569,10 @@ smalltalk.addMethod(
306
569
  "_addError_",
307
570
  smalltalk.method({
308
571
  selector: "addError:",
309
- fn: function (anError) {
310
- var self = this;
311
- smalltalk.send(smalltalk.send(self, "_errors", []), "_add_", [anError]);
312
- return self;
313
- }
572
+ fn: function (anError){
573
+ var self=this;
574
+ return smalltalk.withContext(function($ctx1) {
575
+ return self}, function($ctx1) {$ctx1.fill(self,"addError:",{anError:anError}, smalltalk.TestResult)})}
314
576
  }),
315
577
  smalltalk.TestResult);
316
578
 
@@ -318,11 +580,10 @@ smalltalk.addMethod(
318
580
  "_addFailure_",
319
581
  smalltalk.method({
320
582
  selector: "addFailure:",
321
- fn: function (aFailure) {
322
- var self = this;
323
- smalltalk.send(smalltalk.send(self, "_failures", []), "_add_", [aFailure]);
324
- return self;
325
- }
583
+ fn: function (aFailure){
584
+ var self=this;
585
+ return smalltalk.withContext(function($ctx1) {
586
+ return self}, function($ctx1) {$ctx1.fill(self,"addFailure:",{aFailure:aFailure}, smalltalk.TestResult)})}
326
587
  }),
327
588
  smalltalk.TestResult);
328
589
 
@@ -330,10 +591,12 @@ smalltalk.addMethod(
330
591
  "_errors",
331
592
  smalltalk.method({
332
593
  selector: "errors",
333
- fn: function () {
334
- var self = this;
335
- return self['@errors'];
336
- }
594
+ fn: function (){
595
+ var self=this;
596
+ return smalltalk.withContext(function($ctx1) {
597
+ $1=self["@errors"];
598
+ return $1;
599
+ }, function($ctx1) {$ctx1.fill(self,"errors",{}, smalltalk.TestResult)})}
337
600
  }),
338
601
  smalltalk.TestResult);
339
602
 
@@ -341,10 +604,12 @@ smalltalk.addMethod(
341
604
  "_failures",
342
605
  smalltalk.method({
343
606
  selector: "failures",
344
- fn: function () {
345
- var self = this;
346
- return self['@failures'];
347
- }
607
+ fn: function (){
608
+ var self=this;
609
+ return smalltalk.withContext(function($ctx1) {
610
+ $1=self["@failures"];
611
+ return $1;
612
+ }, function($ctx1) {$ctx1.fill(self,"failures",{}, smalltalk.TestResult)})}
348
613
  }),
349
614
  smalltalk.TestResult);
350
615
 
@@ -352,11 +617,10 @@ smalltalk.addMethod(
352
617
  "_increaseRuns",
353
618
  smalltalk.method({
354
619
  selector: "increaseRuns",
355
- fn: function () {
356
- var self = this;
357
- self['@runs'] = smalltalk.send(self['@runs'], "__plus", [1]);
358
- return self;
359
- }
620
+ fn: function (){
621
+ var self=this;
622
+ return smalltalk.withContext(function($ctx1) {
623
+ return self}, function($ctx1) {$ctx1.fill(self,"increaseRuns",{}, smalltalk.TestResult)})}
360
624
  }),
361
625
  smalltalk.TestResult);
362
626
 
@@ -364,16 +628,15 @@ smalltalk.addMethod(
364
628
  "_initialize",
365
629
  smalltalk.method({
366
630
  selector: "initialize",
367
- fn: function () {
368
- var self = this;
369
- smalltalk.send(self, "_initialize", [], smalltalk.Object);
370
- self['@timestamp'] = smalltalk.send(smalltalk.Date || Date, "_now", []);
371
- self['@runs'] = 0;
372
- self['@errors'] = smalltalk.send(smalltalk.Array || Array, "_new", []);
373
- self['@failures'] = smalltalk.send(smalltalk.Array || Array, "_new", []);
374
- self['@total'] = 0;
375
- return self;
376
- }
631
+ fn: function (){
632
+ var self=this;
633
+ return smalltalk.withContext(function($ctx1) {
634
+ self["@timestamp"]=_st((smalltalk.Date || Date))._now();
635
+ self["@runs"]=(0);
636
+ self["@errors"]=_st((smalltalk.Array || Array))._new();
637
+ self["@failures"]=_st((smalltalk.Array || Array))._new();
638
+ self["@total"]=(0);
639
+ return self}, function($ctx1) {$ctx1.fill(self,"initialize",{}, smalltalk.TestResult)})}
377
640
  }),
378
641
  smalltalk.TestResult);
379
642
 
@@ -383,13 +646,13 @@ smalltalk.method({
383
646
  selector: "nextRunDo:",
384
647
  fn: function (aBlock){
385
648
  var self=this;
386
- var $2,$1;
387
- $2=smalltalk.send(smalltalk.send(self,"_runs",[]),"__eq_eq",[smalltalk.send(self,"_total",[])]);
649
+ return smalltalk.withContext(function($ctx1) {
650
+ $2=_st(_st(self)._runs()).__eq_eq(_st(self)._total());
388
651
  if(! smalltalk.assert($2)){
389
- $1=smalltalk.send(aBlock,"_value_",[smalltalk.send(smalltalk.send(self,"_runs",[]),"__plus",[(1)])]);
652
+ $1=_st(aBlock)._value_(_st(_st(self)._runs()).__plus((1)));
390
653
  };
391
654
  return $1;
392
- }
655
+ }, function($ctx1) {$ctx1.fill(self,"nextRunDo:",{aBlock:aBlock}, smalltalk.TestResult)})}
393
656
  }),
394
657
  smalltalk.TestResult);
395
658
 
@@ -399,17 +662,17 @@ smalltalk.method({
399
662
  selector: "runCase:",
400
663
  fn: function (aTestCase){
401
664
  var self=this;
402
- smalltalk.send((function(){
403
- return smalltalk.send((function(){
404
- smalltalk.send(self,"_increaseRuns",[]);
405
- return smalltalk.send(aTestCase,"_runCase",[]);
406
- }),"_on_do_",[(smalltalk.TestFailure || TestFailure),(function(ex){
407
- return smalltalk.send(self,"_addFailure_",[aTestCase]);
408
- })]);
409
- }),"_on_do_",[(smalltalk.Error || Error),(function(ex){
410
- return smalltalk.send(self,"_addError_",[aTestCase]);
411
- })]);
412
- return self}
665
+ return smalltalk.withContext(function($ctx1) {
666
+ return smalltalk.withContext(function($ctx2) {
667
+ return smalltalk.withContext(function($ctx3) {
668
+ return _st(aTestCase)._runCase();
669
+ }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}))._on_do_((smalltalk.TestFailure || TestFailure),(function(ex){
670
+ return smalltalk.withContext(function($ctx3) {
671
+ }, function($ctx3) {$ctx3.fillBlock({ex:ex},$ctx1)})}));
672
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._on_do_((smalltalk.Error || Error),(function(ex){
673
+ return smalltalk.withContext(function($ctx2) {
674
+ }, function($ctx2) {$ctx2.fillBlock({ex:ex},$ctx1)})}));
675
+ return self}, function($ctx1) {$ctx1.fill(self,"runCase:",{aTestCase:aTestCase}, smalltalk.TestResult)})}
413
676
  }),
414
677
  smalltalk.TestResult);
415
678
 
@@ -417,10 +680,12 @@ smalltalk.addMethod(
417
680
  "_runs",
418
681
  smalltalk.method({
419
682
  selector: "runs",
420
- fn: function () {
421
- var self = this;
422
- return self['@runs'];
423
- }
683
+ fn: function (){
684
+ var self=this;
685
+ return smalltalk.withContext(function($ctx1) {
686
+ $1=self["@runs"];
687
+ return $1;
688
+ }, function($ctx1) {$ctx1.fill(self,"runs",{}, smalltalk.TestResult)})}
424
689
  }),
425
690
  smalltalk.TestResult);
426
691
 
@@ -428,22 +693,23 @@ smalltalk.addMethod(
428
693
  "_status",
429
694
  smalltalk.method({
430
695
  selector: "status",
431
- fn: function () {
432
- var self = this;
433
- var $2, $3, $1;
434
- $2 = smalltalk.send(smalltalk.send(self, "_errors", []), "_isEmpty", []);
435
- if (smalltalk.assert($2)) {
436
- $3 = smalltalk.send(smalltalk.send(self, "_failures", []), "_isEmpty", []);
437
- if (smalltalk.assert($3)) {
438
- $1 = "success";
439
- } else {
440
- $1 = "failure";
441
- }
442
- } else {
443
- $1 = "error";
444
- }
445
- return $1;
446
- }
696
+ fn: function (){
697
+ var self=this;
698
+ return smalltalk.withContext(function($ctx1) {
699
+ $2=_st(_st(self)._errors())._isEmpty();
700
+ $3=(function(){
701
+ return smalltalk.withContext(function($ctx2) {
702
+ if(smalltalk.assert($4)){
703
+ return "success";
704
+ } else {
705
+ return "failure";
706
+ };
707
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
708
+ $1=_st($2)._ifTrue_ifFalse_($3,(function(){
709
+ return smalltalk.withContext(function($ctx2) {
710
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
711
+ return $1;
712
+ }, function($ctx1) {$ctx1.fill(self,"status",{}, smalltalk.TestResult)})}
447
713
  }),
448
714
  smalltalk.TestResult);
449
715
 
@@ -451,10 +717,12 @@ smalltalk.addMethod(
451
717
  "_timestamp",
452
718
  smalltalk.method({
453
719
  selector: "timestamp",
454
- fn: function () {
455
- var self = this;
456
- return self['@timestamp'];
457
- }
720
+ fn: function (){
721
+ var self=this;
722
+ return smalltalk.withContext(function($ctx1) {
723
+ $1=self["@timestamp"];
724
+ return $1;
725
+ }, function($ctx1) {$ctx1.fill(self,"timestamp",{}, smalltalk.TestResult)})}
458
726
  }),
459
727
  smalltalk.TestResult);
460
728
 
@@ -462,10 +730,12 @@ smalltalk.addMethod(
462
730
  "_total",
463
731
  smalltalk.method({
464
732
  selector: "total",
465
- fn: function () {
466
- var self = this;
467
- return self['@total'];
468
- }
733
+ fn: function (){
734
+ var self=this;
735
+ return smalltalk.withContext(function($ctx1) {
736
+ $1=self["@total"];
737
+ return $1;
738
+ }, function($ctx1) {$ctx1.fill(self,"total",{}, smalltalk.TestResult)})}
469
739
  }),
470
740
  smalltalk.TestResult);
471
741
 
@@ -473,25 +743,41 @@ smalltalk.addMethod(
473
743
  "_total_",
474
744
  smalltalk.method({
475
745
  selector: "total:",
476
- fn: function (aNumber) {
477
- var self = this;
478
- self['@total'] = aNumber;
479
- return self;
480
- }
746
+ fn: function (aNumber){
747
+ var self=this;
748
+ return smalltalk.withContext(function($ctx1) {
749
+ return self}, function($ctx1) {$ctx1.fill(self,"total:",{aNumber:aNumber}, smalltalk.TestResult)})}
481
750
  }),
482
751
  smalltalk.TestResult);
483
752
 
484
753
 
485
754
 
486
- smalltalk.addClass('TestSuiteRunner', smalltalk.Object, ['suite', 'result', 'announcer'], 'SUnit');
755
+ smalltalk.addClass('TestSuiteRunner', smalltalk.Object, ['suite', 'result', 'announcer', 'runNextTest'], 'SUnit');
487
756
  smalltalk.addMethod(
488
757
  "_announcer",
489
758
  smalltalk.method({
490
759
  selector: "announcer",
491
760
  fn: function (){
492
761
  var self=this;
493
- return self["@announcer"];
494
- }
762
+ return smalltalk.withContext(function($ctx1) {
763
+ $1=self["@announcer"];
764
+ return $1;
765
+ }, function($ctx1) {$ctx1.fill(self,"announcer",{}, smalltalk.TestSuiteRunner)})}
766
+ }),
767
+ smalltalk.TestSuiteRunner);
768
+
769
+ smalltalk.addMethod(
770
+ "_contextOf_",
771
+ smalltalk.method({
772
+ selector: "contextOf:",
773
+ fn: function (anInteger){
774
+ var self=this;
775
+ return smalltalk.withContext(function($ctx1) {
776
+ $1=_st((smalltalk.ReportingTestContext || ReportingTestContext))._testCase_result_finished_(_st(self["@suite"])._at_(anInteger),self["@result"],(function(){
777
+ return smalltalk.withContext(function($ctx2) {
778
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
779
+ return $1;
780
+ }, function($ctx1) {$ctx1.fill(self,"contextOf:",{anInteger:anInteger}, smalltalk.TestSuiteRunner)})}
495
781
  }),
496
782
  smalltalk.TestSuiteRunner);
497
783
 
@@ -501,10 +787,20 @@ smalltalk.method({
501
787
  selector: "initialize",
502
788
  fn: function (){
503
789
  var self=this;
504
- smalltalk.send(self,"_initialize",[],smalltalk.Object);
505
- self["@announcer"]=smalltalk.send((smalltalk.Announcer || Announcer),"_new",[]);
506
- self["@result"]=smalltalk.send((smalltalk.TestResult || TestResult),"_new",[]);
507
- return self}
790
+ return smalltalk.withContext(function($ctx1) {
791
+ smalltalk.Object.fn.prototype._initialize.apply(_st(self), []);
792
+ self["@announcer"]=_st((smalltalk.Announcer || Announcer))._new();
793
+ self["@result"]=_st((smalltalk.TestResult || TestResult))._new();
794
+ self["@runNextTest"]=(function(){
795
+ var runs;
796
+ return smalltalk.withContext(function($ctx2) {
797
+ runs;
798
+ $1=_st(runs).__lt(_st(self["@result"])._total());
799
+ if(smalltalk.assert($1)){
800
+ return _st(_st(self)._contextOf_(_st(runs).__plus((1))))._start();
801
+ };
802
+ }, function($ctx2) {$ctx2.fillBlock({runs:runs},$ctx1)})});
803
+ return self}, function($ctx1) {$ctx1.fill(self,"initialize",{}, smalltalk.TestSuiteRunner)})}
508
804
  }),
509
805
  smalltalk.TestSuiteRunner);
510
806
 
@@ -514,8 +810,22 @@ smalltalk.method({
514
810
  selector: "result",
515
811
  fn: function (){
516
812
  var self=this;
517
- return self["@result"];
518
- }
813
+ return smalltalk.withContext(function($ctx1) {
814
+ $1=self["@result"];
815
+ return $1;
816
+ }, function($ctx1) {$ctx1.fill(self,"result",{}, smalltalk.TestSuiteRunner)})}
817
+ }),
818
+ smalltalk.TestSuiteRunner);
819
+
820
+ smalltalk.addMethod(
821
+ "_resume",
822
+ smalltalk.method({
823
+ selector: "resume",
824
+ fn: function (){
825
+ var self=this;
826
+ return smalltalk.withContext(function($ctx1) {
827
+ _st(self["@announcer"])._announce_(_st(_st((smalltalk.ResultAnnouncement || ResultAnnouncement))._new())._result_(self["@result"]));
828
+ return self}, function($ctx1) {$ctx1.fill(self,"resume",{}, smalltalk.TestSuiteRunner)})}
519
829
  }),
520
830
  smalltalk.TestSuiteRunner);
521
831
 
@@ -525,21 +835,9 @@ smalltalk.method({
525
835
  selector: "run",
526
836
  fn: function (){
527
837
  var self=this;
528
- var worker;
529
- smalltalk.send(self["@result"],"_total_",[smalltalk.send(self["@suite"],"_size",[])]);
530
- smalltalk.send(self["@announcer"],"_announce_",[smalltalk.send(smalltalk.send((smalltalk.ResultAnnouncement || ResultAnnouncement),"_new",[]),"_result_",[self["@result"]])]);
531
- worker=(function(){
532
- return smalltalk.send(self["@result"],"_nextRunDo_",[(function(index){
533
- return smalltalk.send((function(){
534
- return smalltalk.send(self["@result"],"_runCase_",[smalltalk.send(self["@suite"],"_at_",[index])]);
535
- }),"_ensure_",[(function(){
536
- smalltalk.send(worker,"_fork",[]);
537
- return smalltalk.send(self["@announcer"],"_announce_",[smalltalk.send(smalltalk.send((smalltalk.ResultAnnouncement || ResultAnnouncement),"_new",[]),"_result_",[self["@result"]])]);
538
- })]);
539
- })]);
540
- });
541
- smalltalk.send(worker,"_fork",[]);
542
- return self}
838
+ return smalltalk.withContext(function($ctx1) {
839
+ _st(self)._resume();
840
+ return self}, function($ctx1) {$ctx1.fill(self,"run",{}, smalltalk.TestSuiteRunner)})}
543
841
  }),
544
842
  smalltalk.TestSuiteRunner);
545
843
 
@@ -549,8 +847,8 @@ smalltalk.method({
549
847
  selector: "suite:",
550
848
  fn: function (aCollection){
551
849
  var self=this;
552
- self["@suite"]=aCollection;
553
- return self}
850
+ return smalltalk.withContext(function($ctx1) {
851
+ return self}, function($ctx1) {$ctx1.fill(self,"suite:",{aCollection:aCollection}, smalltalk.TestSuiteRunner)})}
554
852
  }),
555
853
  smalltalk.TestSuiteRunner);
556
854
 
@@ -561,8 +859,8 @@ smalltalk.method({
561
859
  selector: "new",
562
860
  fn: function (){
563
861
  var self=this;
564
- smalltalk.send(self,"_shouldNotImplement",[]);
565
- return self}
862
+ return smalltalk.withContext(function($ctx1) {
863
+ return self}, function($ctx1) {$ctx1.fill(self,"new",{}, smalltalk.TestSuiteRunner.klass)})}
566
864
  }),
567
865
  smalltalk.TestSuiteRunner.klass);
568
866
 
@@ -572,10 +870,10 @@ smalltalk.method({
572
870
  selector: "on:",
573
871
  fn: function (aCollection){
574
872
  var self=this;
575
- var $1;
576
- $1=smalltalk.send(smalltalk.send(self,"_new",[],smalltalk.Object.klass),"_suite_",[aCollection]);
873
+ return smalltalk.withContext(function($ctx1) {
874
+ $1=_st(smalltalk.Object.klass.fn.prototype._new.apply(_st(self), []))._suite_(aCollection);
577
875
  return $1;
578
- }
876
+ }, function($ctx1) {$ctx1.fill(self,"on:",{aCollection:aCollection}, smalltalk.TestSuiteRunner.klass)})}
579
877
  }),
580
878
  smalltalk.TestSuiteRunner.klass);
581
879