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
@@ -1,13 +1,336 @@
1
1
  smalltalk.addPackage('Compiler-Tests', {});
2
+ smalltalk.addClass('AbstractASTInterpreterTest', smalltalk.TestCase, [], 'Compiler-Tests');
3
+ smalltalk.addMethod(
4
+ "_analyze_forClass_",
5
+ smalltalk.method({
6
+ selector: "analyze:forClass:",
7
+ fn: function (aNode,aClass){
8
+ var self=this;
9
+ return smalltalk.withContext(function($ctx1) {
10
+ _st(_st((smalltalk.SemanticAnalyzer || SemanticAnalyzer))._on_(aClass))._visit_(aNode);
11
+ $1=aNode;
12
+ return $1;
13
+ }, function($ctx1) {$ctx1.fill(self,"analyze:forClass:",{aNode:aNode,aClass:aClass}, smalltalk.AbstractASTInterpreterTest)})}
14
+ }),
15
+ smalltalk.AbstractASTInterpreterTest);
16
+
17
+ smalltalk.addMethod(
18
+ "_interpret_",
19
+ smalltalk.method({
20
+ selector: "interpret:",
21
+ fn: function (aString){
22
+ var self=this;
23
+ return smalltalk.withContext(function($ctx1) {
24
+ $1=_st(self)._interpret_withArguments_(aString,_st((smalltalk.Dictionary || Dictionary))._new());
25
+ return $1;
26
+ }, function($ctx1) {$ctx1.fill(self,"interpret:",{aString:aString}, smalltalk.AbstractASTInterpreterTest)})}
27
+ }),
28
+ smalltalk.AbstractASTInterpreterTest);
29
+
30
+ smalltalk.addMethod(
31
+ "_interpret_receiver_withArguments_",
32
+ smalltalk.method({
33
+ selector: "interpret:receiver:withArguments:",
34
+ fn: function (aString,anObject,aDictionary){
35
+ var self=this;
36
+ var ctx;
37
+ return smalltalk.withContext(function($ctx1) {
38
+ ctx=_st((smalltalk.AIContext || AIContext))._new();
39
+ _st(ctx)._receiver_(anObject);
40
+ _st(aDictionary)._keysAndValuesDo_((function(key,value){
41
+ return smalltalk.withContext(function($ctx2) {
42
+ }, function($ctx2) {$ctx2.fillBlock({key:key,value:value},$ctx1)})}));
43
+ $2=_st(self)._interpreter();
44
+ _st($2)._context_(ctx);
45
+ _st($2)._interpret_(_st(_st(_st(self)._parse_forClass_(aString,_st(anObject)._class()))._nodes())._first());
46
+ $3=_st($2)._result();
47
+ $1=$3;
48
+ return $1;
49
+ }, function($ctx1) {$ctx1.fill(self,"interpret:receiver:withArguments:",{aString:aString,anObject:anObject,aDictionary:aDictionary,ctx:ctx}, smalltalk.AbstractASTInterpreterTest)})}
50
+ }),
51
+ smalltalk.AbstractASTInterpreterTest);
52
+
53
+ smalltalk.addMethod(
54
+ "_interpret_withArguments_",
55
+ smalltalk.method({
56
+ selector: "interpret:withArguments:",
57
+ fn: function (aString,aDictionary){
58
+ var self=this;
59
+ return smalltalk.withContext(function($ctx1) {
60
+ $1=_st(self)._interpret_receiver_withArguments_(aString,_st((smalltalk.Object || Object))._new(),aDictionary);
61
+ return $1;
62
+ }, function($ctx1) {$ctx1.fill(self,"interpret:withArguments:",{aString:aString,aDictionary:aDictionary}, smalltalk.AbstractASTInterpreterTest)})}
63
+ }),
64
+ smalltalk.AbstractASTInterpreterTest);
65
+
66
+ smalltalk.addMethod(
67
+ "_interpreter",
68
+ smalltalk.method({
69
+ selector: "interpreter",
70
+ fn: function (){
71
+ var self=this;
72
+ return smalltalk.withContext(function($ctx1) {
73
+ $1=_st(self)._subclassResponsibility();
74
+ return $1;
75
+ }, function($ctx1) {$ctx1.fill(self,"interpreter",{}, smalltalk.AbstractASTInterpreterTest)})}
76
+ }),
77
+ smalltalk.AbstractASTInterpreterTest);
78
+
79
+ smalltalk.addMethod(
80
+ "_parse_",
81
+ smalltalk.method({
82
+ selector: "parse:",
83
+ fn: function (aString){
84
+ var self=this;
85
+ return smalltalk.withContext(function($ctx1) {
86
+ $1=_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._parse_(aString);
87
+ return $1;
88
+ }, function($ctx1) {$ctx1.fill(self,"parse:",{aString:aString}, smalltalk.AbstractASTInterpreterTest)})}
89
+ }),
90
+ smalltalk.AbstractASTInterpreterTest);
91
+
92
+ smalltalk.addMethod(
93
+ "_parse_forClass_",
94
+ smalltalk.method({
95
+ selector: "parse:forClass:",
96
+ fn: function (aString,aClass){
97
+ var self=this;
98
+ return smalltalk.withContext(function($ctx1) {
99
+ $1=_st(self)._analyze_forClass_(_st(self)._parse_(aString),aClass);
100
+ return $1;
101
+ }, function($ctx1) {$ctx1.fill(self,"parse:forClass:",{aString:aString,aClass:aClass}, smalltalk.AbstractASTInterpreterTest)})}
102
+ }),
103
+ smalltalk.AbstractASTInterpreterTest);
104
+
105
+
106
+
107
+ smalltalk.addClass('ASTInterpreterTest', smalltalk.AbstractASTInterpreterTest, [], 'Compiler-Tests');
108
+ smalltalk.addMethod(
109
+ "_interpreter",
110
+ smalltalk.method({
111
+ selector: "interpreter",
112
+ fn: function (){
113
+ var self=this;
114
+ return smalltalk.withContext(function($ctx1) {
115
+ $1=_st((smalltalk.ASTInterpreter || ASTInterpreter))._new();
116
+ return $1;
117
+ }, function($ctx1) {$ctx1.fill(self,"interpreter",{}, smalltalk.ASTInterpreterTest)})}
118
+ }),
119
+ smalltalk.ASTInterpreterTest);
120
+
121
+ smalltalk.addMethod(
122
+ "_testBinarySend",
123
+ smalltalk.method({
124
+ selector: "testBinarySend",
125
+ fn: function (){
126
+ var self=this;
127
+ return smalltalk.withContext(function($ctx1) {
128
+ return self}, function($ctx1) {$ctx1.fill(self,"testBinarySend",{}, smalltalk.ASTInterpreterTest)})}
129
+ }),
130
+ smalltalk.ASTInterpreterTest);
131
+
132
+ smalltalk.addMethod(
133
+ "_testBlockLiteral",
134
+ smalltalk.method({
135
+ selector: "testBlockLiteral",
136
+ fn: function (){
137
+ var self=this;
138
+ return smalltalk.withContext(function($ctx1) {
139
+ _st(self)._assert_equals_(_st(self)._interpret_("foo true ifTrue: [ ^ 1 ] ifFalse: [ 2 ]"),(1));
140
+ _st(self)._assert_equals_(_st(self)._interpret_("foo ^ false ifTrue: [ 1 ] ifFalse: [ 2 ]"),(2));
141
+ return self}, function($ctx1) {$ctx1.fill(self,"testBlockLiteral",{}, smalltalk.ASTInterpreterTest)})}
142
+ }),
143
+ smalltalk.ASTInterpreterTest);
144
+
145
+ smalltalk.addMethod(
146
+ "_testCascade",
147
+ smalltalk.method({
148
+ selector: "testCascade",
149
+ fn: function (){
150
+ var self=this;
151
+ return smalltalk.withContext(function($ctx1) {
152
+ return self}, function($ctx1) {$ctx1.fill(self,"testCascade",{}, smalltalk.ASTInterpreterTest)})}
153
+ }),
154
+ smalltalk.ASTInterpreterTest);
155
+
156
+ smalltalk.addMethod(
157
+ "_testDynamicArray",
158
+ smalltalk.method({
159
+ selector: "testDynamicArray",
160
+ fn: function (){
161
+ var self=this;
162
+ return smalltalk.withContext(function($ctx1) {
163
+ return self}, function($ctx1) {$ctx1.fill(self,"testDynamicArray",{}, smalltalk.ASTInterpreterTest)})}
164
+ }),
165
+ smalltalk.ASTInterpreterTest);
166
+
167
+ smalltalk.addMethod(
168
+ "_testDynamicDictionary",
169
+ smalltalk.method({
170
+ selector: "testDynamicDictionary",
171
+ fn: function (){
172
+ var self=this;
173
+ return smalltalk.withContext(function($ctx1) {
174
+ return self}, function($ctx1) {$ctx1.fill(self,"testDynamicDictionary",{}, smalltalk.ASTInterpreterTest)})}
175
+ }),
176
+ smalltalk.ASTInterpreterTest);
177
+
178
+ smalltalk.addMethod(
179
+ "_testInlinedJSStatement",
180
+ smalltalk.method({
181
+ selector: "testInlinedJSStatement",
182
+ fn: function (){
183
+ var self=this;
184
+ return smalltalk.withContext(function($ctx1) {
185
+ _st(self)._assert_equals_(_st(self)._interpret_withArguments_("foo: anInteger <return 2 + anInteger>",smalltalk.HashedCollection._fromPairs_([_st("anInteger").__minus_gt((3))])),(5));
186
+ return self}, function($ctx1) {$ctx1.fill(self,"testInlinedJSStatement",{}, smalltalk.ASTInterpreterTest)})}
187
+ }),
188
+ smalltalk.ASTInterpreterTest);
189
+
190
+ smalltalk.addMethod(
191
+ "_testInstVarAccess",
192
+ smalltalk.method({
193
+ selector: "testInstVarAccess",
194
+ fn: function (){
195
+ var self=this;
196
+ return smalltalk.withContext(function($ctx1) {
197
+ return self}, function($ctx1) {$ctx1.fill(self,"testInstVarAccess",{}, smalltalk.ASTInterpreterTest)})}
198
+ }),
199
+ smalltalk.ASTInterpreterTest);
200
+
201
+ smalltalk.addMethod(
202
+ "_testInstVarAssignment",
203
+ smalltalk.method({
204
+ selector: "testInstVarAssignment",
205
+ fn: function (){
206
+ var self=this;
207
+ return smalltalk.withContext(function($ctx1) {
208
+ return self}, function($ctx1) {$ctx1.fill(self,"testInstVarAssignment",{}, smalltalk.ASTInterpreterTest)})}
209
+ }),
210
+ smalltalk.ASTInterpreterTest);
211
+
212
+ smalltalk.addMethod(
213
+ "_testNonlocalReturn",
214
+ smalltalk.method({
215
+ selector: "testNonlocalReturn",
216
+ fn: function (){
217
+ var self=this;
218
+ return smalltalk.withContext(function($ctx1) {
219
+ return self}, function($ctx1) {$ctx1.fill(self,"testNonlocalReturn",{}, smalltalk.ASTInterpreterTest)})}
220
+ }),
221
+ smalltalk.ASTInterpreterTest);
222
+
223
+ smalltalk.addMethod(
224
+ "_testReceiver",
225
+ smalltalk.method({
226
+ selector: "testReceiver",
227
+ fn: function (){
228
+ var self=this;
229
+ return smalltalk.withContext(function($ctx1) {
230
+ return self}, function($ctx1) {$ctx1.fill(self,"testReceiver",{}, smalltalk.ASTInterpreterTest)})}
231
+ }),
232
+ smalltalk.ASTInterpreterTest);
233
+
234
+ smalltalk.addMethod(
235
+ "_testTempAssignment",
236
+ smalltalk.method({
237
+ selector: "testTempAssignment",
238
+ fn: function (){
239
+ var self=this;
240
+ return smalltalk.withContext(function($ctx1) {
241
+ return self}, function($ctx1) {$ctx1.fill(self,"testTempAssignment",{}, smalltalk.ASTInterpreterTest)})}
242
+ }),
243
+ smalltalk.ASTInterpreterTest);
244
+
245
+
246
+
247
+ smalltalk.addClass('ASTSteppingInterpreterTest', smalltalk.AbstractASTInterpreterTest, ['interpreter'], 'Compiler-Tests');
248
+ smalltalk.addMethod(
249
+ "_interpreter",
250
+ smalltalk.method({
251
+ selector: "interpreter",
252
+ fn: function (){
253
+ var self=this;
254
+ return smalltalk.withContext(function($ctx1) {
255
+ $2=self["@interpreter"];
256
+ if(($receiver = $2) == nil || $receiver == undefined){
257
+ self["@interpreter"]=_st((smalltalk.ASTSteppingInterpreter || ASTSteppingInterpreter))._new();
258
+ $1=self["@interpreter"];
259
+ } else {
260
+ $1=$2;
261
+ };
262
+ return $1;
263
+ }, function($ctx1) {$ctx1.fill(self,"interpreter",{}, smalltalk.ASTSteppingInterpreterTest)})}
264
+ }),
265
+ smalltalk.ASTSteppingInterpreterTest);
266
+
267
+ smalltalk.addMethod(
268
+ "_testAtEnd",
269
+ smalltalk.method({
270
+ selector: "testAtEnd",
271
+ fn: function (){
272
+ var self=this;
273
+ return smalltalk.withContext(function($ctx1) {
274
+ _st(self)._deny_(_st(_st(self)._interpreter())._atEnd());
275
+ _st(_st(self)._interpreter())._step();
276
+ _st(self)._deny_(_st(_st(self)._interpreter())._atEnd());
277
+ _st(_st(self)._interpreter())._step();
278
+ _st(self)._deny_(_st(_st(self)._interpreter())._atEnd());
279
+ _st(_st(self)._interpreter())._step();
280
+ _st(self)._deny_(_st(_st(self)._interpreter())._atEnd());
281
+ _st(_st(self)._interpreter())._step();
282
+ _st(self)._assert_(_st(_st(self)._interpreter())._atEnd());
283
+ return self}, function($ctx1) {$ctx1.fill(self,"testAtEnd",{}, smalltalk.ASTSteppingInterpreterTest)})}
284
+ }),
285
+ smalltalk.ASTSteppingInterpreterTest);
286
+
287
+ smalltalk.addMethod(
288
+ "_testMessageSend",
289
+ smalltalk.method({
290
+ selector: "testMessageSend",
291
+ fn: function (){
292
+ var self=this;
293
+ return smalltalk.withContext(function($ctx1) {
294
+ _st(_st(self)._interpreter())._step();
295
+ _st(_st(self)._interpreter())._step();
296
+ _st(_st(self)._interpreter())._step();
297
+ _st(self)._assert_equals_(_st(_st(_st(self)._interpreter())._currentNode())._value(),(1));
298
+ _st(_st(self)._interpreter())._step();
299
+ _st(self)._assert_equals_(_st(_st(_st(self)._interpreter())._currentNode())._value(),(2));
300
+ _st(_st(self)._interpreter())._step();
301
+ _st(self)._assert_equals_(_st(_st(self)._interpreter())._result(),(3));
302
+ return self}, function($ctx1) {$ctx1.fill(self,"testMessageSend",{}, smalltalk.ASTSteppingInterpreterTest)})}
303
+ }),
304
+ smalltalk.ASTSteppingInterpreterTest);
305
+
306
+ smalltalk.addMethod(
307
+ "_testSimpleStepping",
308
+ smalltalk.method({
309
+ selector: "testSimpleStepping",
310
+ fn: function (){
311
+ var self=this;
312
+ return smalltalk.withContext(function($ctx1) {
313
+ _st(_st(self)._interpreter())._step();
314
+ _st(self)._assert_(_st(_st(_st(self)._interpreter())._result())._isNil());
315
+ _st(_st(self)._interpreter())._step();
316
+ _st(self)._assert_equals_(_st(_st(self)._interpreter())._result(),(1));
317
+ return self}, function($ctx1) {$ctx1.fill(self,"testSimpleStepping",{}, smalltalk.ASTSteppingInterpreterTest)})}
318
+ }),
319
+ smalltalk.ASTSteppingInterpreterTest);
320
+
321
+
322
+
2
323
  smalltalk.addClass('CodeGeneratorTest', smalltalk.TestCase, ['receiver'], 'Compiler-Tests');
3
324
  smalltalk.addMethod(
4
325
  "_codeGeneratorClass",
5
326
  smalltalk.method({
6
327
  selector: "codeGeneratorClass",
7
- fn: function () {
8
- var self = this;
9
- return smalltalk.CodeGenerator || CodeGenerator;
10
- }
328
+ fn: function (){
329
+ var self=this;
330
+ return smalltalk.withContext(function($ctx1) {
331
+ $1=(smalltalk.CodeGenerator || CodeGenerator);
332
+ return $1;
333
+ }, function($ctx1) {$ctx1.fill(self,"codeGeneratorClass",{}, smalltalk.CodeGeneratorTest)})}
11
334
  }),
12
335
  smalltalk.CodeGeneratorTest);
13
336
 
@@ -15,15 +338,15 @@ smalltalk.addMethod(
15
338
  "_compiler",
16
339
  smalltalk.method({
17
340
  selector: "compiler",
18
- fn: function () {
19
- var self = this;
20
- var $2, $3, $1;
21
- $2 = smalltalk.send(smalltalk.Compiler || Compiler, "_new", []);
22
- smalltalk.send($2, "_codeGeneratorClass_", [smalltalk.send(self, "_codeGeneratorClass", [])]);
23
- $3 = smalltalk.send($2, "_yourself", []);
24
- $1 = $3;
25
- return $1;
26
- }
341
+ fn: function (){
342
+ var self=this;
343
+ return smalltalk.withContext(function($ctx1) {
344
+ $2=_st((smalltalk.Compiler || Compiler))._new();
345
+ _st($2)._codeGeneratorClass_(_st(self)._codeGeneratorClass());
346
+ $3=_st($2)._yourself();
347
+ $1=$3;
348
+ return $1;
349
+ }, function($ctx1) {$ctx1.fill(self,"compiler",{}, smalltalk.CodeGeneratorTest)})}
27
350
  }),
28
351
  smalltalk.CodeGeneratorTest);
29
352
 
@@ -31,11 +354,10 @@ smalltalk.addMethod(
31
354
  "_setUp",
32
355
  smalltalk.method({
33
356
  selector: "setUp",
34
- fn: function () {
35
- var self = this;
36
- self['@receiver'] = smalltalk.send(smalltalk.send(self, "_targetClass", []), "_new", []);
37
- return self;
38
- }
357
+ fn: function (){
358
+ var self=this;
359
+ return smalltalk.withContext(function($ctx1) {
360
+ return self}, function($ctx1) {$ctx1.fill(self,"setUp",{}, smalltalk.CodeGeneratorTest)})}
39
361
  }),
40
362
  smalltalk.CodeGeneratorTest);
41
363
 
@@ -43,16 +365,14 @@ smalltalk.addMethod(
43
365
  "_should_return_",
44
366
  smalltalk.method({
45
367
  selector: "should:return:",
46
- fn: function (aString, anObject) {
47
- var self = this;
48
- var method;
49
- var result;
50
- method = smalltalk.send(smalltalk.send(self, "_compiler", []), "_install_forClass_category_", [aString, smalltalk.send(self, "_targetClass", []), "tests"]);
51
- result = smalltalk.send(self['@receiver'], "_perform_", [smalltalk.send(method, "_selector", [])]);
52
- smalltalk.send(smalltalk.send(self, "_targetClass", []), "_removeCompiledMethod_", [method]);
53
- smalltalk.send(self, "_assert_equals_", [anObject, result]);
54
- return self;
55
- }
368
+ fn: function (aString,anObject){
369
+ var self=this;
370
+ var method,result;
371
+ return smalltalk.withContext(function($ctx1) {
372
+ result=_st(self["@receiver"])._perform_(_st(method)._selector());
373
+ _st(_st(self)._targetClass())._removeCompiledMethod_(method);
374
+ _st(self)._assert_equals_(anObject,result);
375
+ return self}, function($ctx1) {$ctx1.fill(self,"should:return:",{aString:aString,anObject:anObject,method:method,result:result}, smalltalk.CodeGeneratorTest)})}
56
376
  }),
57
377
  smalltalk.CodeGeneratorTest);
58
378
 
@@ -60,10 +380,12 @@ smalltalk.addMethod(
60
380
  "_targetClass",
61
381
  smalltalk.method({
62
382
  selector: "targetClass",
63
- fn: function () {
64
- var self = this;
65
- return smalltalk.DoIt || DoIt;
66
- }
383
+ fn: function (){
384
+ var self=this;
385
+ return smalltalk.withContext(function($ctx1) {
386
+ $1=(smalltalk.DoIt || DoIt);
387
+ return $1;
388
+ }, function($ctx1) {$ctx1.fill(self,"targetClass",{}, smalltalk.CodeGeneratorTest)})}
67
389
  }),
68
390
  smalltalk.CodeGeneratorTest);
69
391
 
@@ -71,10 +393,9 @@ smalltalk.addMethod(
71
393
  "_tearDown",
72
394
  smalltalk.method({
73
395
  selector: "tearDown",
74
- fn: function () {
75
- var self = this;
76
- return self;
77
- }
396
+ fn: function (){
397
+ var self=this;
398
+ return smalltalk.withContext(function($ctx1) {
78
399
  }),
79
400
  smalltalk.CodeGeneratorTest);
80
401
 
@@ -82,13 +403,12 @@ smalltalk.addMethod(
82
403
  "_testAssignment",
83
404
  smalltalk.method({
84
405
  selector: "testAssignment",
85
- fn: function () {
86
- var self = this;
87
- smalltalk.send(self, "_should_return_", ["foo | a | a := true ifTrue: [ 1 ]. ^ a", 1]);
88
- smalltalk.send(self, "_should_return_", ["foo | a | a := false ifTrue: [ 1 ]. ^ a", nil]);
89
- smalltalk.send(self, "_should_return_", ["foo | a | ^ a := true ifTrue: [ 1 ]", 1]);
90
- return self;
91
- }
406
+ fn: function (){
407
+ var self=this;
408
+ return smalltalk.withContext(function($ctx1) {
409
+ _st(self)._should_return_("foo | a | a := false ifTrue: [ 1 ]. ^ a",nil);
410
+ _st(self)._should_return_("foo | a | ^ a := true ifTrue: [ 1 ]",(1));
411
+ return self}, function($ctx1) {$ctx1.fill(self,"testAssignment",{}, smalltalk.CodeGeneratorTest)})}
92
412
  }),
93
413
  smalltalk.CodeGeneratorTest);
94
414
 
@@ -96,13 +416,12 @@ smalltalk.addMethod(
96
416
  "_testBlockReturn",
97
417
  smalltalk.method({
98
418
  selector: "testBlockReturn",
99
- fn: function () {
100
- var self = this;
101
- smalltalk.send(self, "_should_return_", ["foo ^ #(1 2 3) collect: [ :each | true ifTrue: [ each + 1 ] ]", [2, 3, 4]]);
102
- smalltalk.send(self, "_should_return_", ["foo ^ #(1 2 3) collect: [ :each | false ifFalse: [ each + 1 ] ]", [2, 3, 4]]);
103
- smalltalk.send(self, "_should_return_", ["foo ^ #(1 2 3) collect: [ :each | each odd ifTrue: [ each + 1 ] ifFalse: [ each - 1 ] ]", [2, 1, 4]]);
104
- return self;
105
- }
419
+ fn: function (){
420
+ var self=this;
421
+ return smalltalk.withContext(function($ctx1) {
422
+ _st(self)._should_return_("foo ^ #(1 2 3) collect: [ :each | false ifFalse: [ each + 1 ] ]",[(2), (3), (4)]);
423
+ _st(self)._should_return_("foo ^ #(1 2 3) collect: [ :each | each odd ifTrue: [ each + 1 ] ifFalse: [ each - 1 ] ]",[(2), (1), (4)]);
424
+ return self}, function($ctx1) {$ctx1.fill(self,"testBlockReturn",{}, smalltalk.CodeGeneratorTest)})}
106
425
  }),
107
426
  smalltalk.CodeGeneratorTest);
108
427
 
@@ -110,11 +429,46 @@ smalltalk.addMethod(
110
429
  "_testCascades",
111
430
  smalltalk.method({
112
431
  selector: "testCascades",
113
- fn: function () {
114
- var self = this;
115
- smalltalk.send(self, "_should_return_", ["foo ^ Array new add: 3; add: 4; yourself", [3, 4]]);
116
- return self;
117
- }
432
+ fn: function (){
433
+ var self=this;
434
+ return smalltalk.withContext(function($ctx1) {
435
+ return self}, function($ctx1) {$ctx1.fill(self,"testCascades",{}, smalltalk.CodeGeneratorTest)})}
436
+ }),
437
+ smalltalk.CodeGeneratorTest);
438
+
439
+ smalltalk.addMethod(
440
+ "_testDynamicArrayElementsOrdered",
441
+ smalltalk.method({
442
+ selector: "testDynamicArrayElementsOrdered",
443
+ fn: function (){
444
+ var self=this;
445
+ return smalltalk.withContext(function($ctx1) {
446
+ return self}, function($ctx1) {$ctx1.fill(self,"testDynamicArrayElementsOrdered",{}, smalltalk.CodeGeneratorTest)})}
447
+ }),
448
+ smalltalk.CodeGeneratorTest);
449
+
450
+ smalltalk.addMethod(
451
+ "_testDynamicDictionaryElementsOrdered",
452
+ smalltalk.method({
453
+ selector: "testDynamicDictionaryElementsOrdered",
454
+ fn: function (){
455
+ var self=this;
456
+ return smalltalk.withContext(function($ctx1) {
457
+ return self}, function($ctx1) {$ctx1.fill(self,"testDynamicDictionaryElementsOrdered",{}, smalltalk.CodeGeneratorTest)})}
458
+ }),
459
+ smalltalk.CodeGeneratorTest);
460
+
461
+ smalltalk.addMethod(
462
+ "_testInnerTemporalDependentElementsOrdered",
463
+ smalltalk.method({
464
+ selector: "testInnerTemporalDependentElementsOrdered",
465
+ fn: function (){
466
+ var self=this;
467
+ return smalltalk.withContext(function($ctx1) {
468
+ _st(self)._should_return_("foo\x0a | x |\x0a x := 1.\x0a ^ Array with: 'foo'->x with: 'bar'->(true ifTrue: [ x := 2 ])\x0a",[_st("foo").__minus_gt((1)),_st("bar").__minus_gt((2))]);
469
+ _st(self)._should_return_("foo\x0a | x |\x0a x := 1.\x0a ^ { 'foo'->x. 'bar'->(true ifTrue: [ x := 2 ]) }\x0a",[_st("foo").__minus_gt((1)),_st("bar").__minus_gt((2))]);
470
+ _st(self)._should_return_("foo\x0a | x |\x0a x := 1.\x0a ^ #{ 'foo'->x. 'bar'->(true ifTrue: [ x := 2 ]) }\x0a",smalltalk.HashedCollection._fromPairs_([_st("foo").__minus_gt((1)),_st("bar").__minus_gt((2))]));
471
+ return self}, function($ctx1) {$ctx1.fill(self,"testInnerTemporalDependentElementsOrdered",{}, smalltalk.CodeGeneratorTest)})}
118
472
  }),
119
473
  smalltalk.CodeGeneratorTest);
120
474
 
@@ -122,19 +476,18 @@ smalltalk.addMethod(
122
476
  "_testLiterals",
123
477
  smalltalk.method({
124
478
  selector: "testLiterals",
125
- fn: function () {
126
- var self = this;
127
- smalltalk.send(self, "_should_return_", ["foo ^ 1", 1]);
128
- smalltalk.send(self, "_should_return_", ["foo ^ 'hello'", "hello"]);
129
- smalltalk.send(self, "_should_return_", ["foo ^ #(1 2 3 4)", [1, 2, 3, 4]]);
130
- smalltalk.send(self, "_should_return_", ["foo ^ {1. [:x | x ] value: 2. 3. [4] value}", [1, 2, 3, 4]]);
131
- smalltalk.send(self, "_should_return_", ["foo ^ true", true]);
132
- smalltalk.send(self, "_should_return_", ["foo ^ false", false]);
133
- smalltalk.send(self, "_should_return_", ["foo ^ #{1->2. 3->4}", smalltalk.HashedCollection._fromPairs_([smalltalk.send(1, "__minus_gt", [2]), smalltalk.send(3, "__minus_gt", [4])])]);
134
- smalltalk.send(self, "_should_return_", ["foo ^ #hello", smalltalk.symbolFor("hello")]);
135
- smalltalk.send(self, "_should_return_", ["foo ^ -123.456", -123.456]);
136
- return self;
137
- }
479
+ fn: function (){
480
+ var self=this;
481
+ return smalltalk.withContext(function($ctx1) {
482
+ _st(self)._should_return_("foo ^ 'hello'","hello");
483
+ _st(self)._should_return_("foo ^ #(1 2 3 4)",[(1), (2), (3), (4)]);
484
+ _st(self)._should_return_("foo ^ {1. [:x | x ] value: 2. 3. [4] value}",[(1), (2), (3), (4)]);
485
+ _st(self)._should_return_("foo ^ true",true);
486
+ _st(self)._should_return_("foo ^ false",false);
487
+ _st(self)._should_return_("foo ^ #{1->2. 3->4}",smalltalk.HashedCollection._fromPairs_([_st((1)).__minus_gt((2)),_st((3)).__minus_gt((4))]));
488
+ _st(self)._should_return_("foo ^ #hello",smalltalk.symbolFor("hello"));
489
+ _st(self)._should_return_("foo ^ -123.456",(-123.456));
490
+ return self}, function($ctx1) {$ctx1.fill(self,"testLiterals",{}, smalltalk.CodeGeneratorTest)})}
138
491
  }),
139
492
  smalltalk.CodeGeneratorTest);
140
493
 
@@ -142,15 +495,14 @@ smalltalk.addMethod(
142
495
  "_testLocalReturn",
143
496
  smalltalk.method({
144
497
  selector: "testLocalReturn",
145
- fn: function () {
146
- var self = this;
147
- smalltalk.send(self, "_should_return_", ["foo ^ 1", 1]);
148
- smalltalk.send(self, "_should_return_", ["foo ^ 1 + 1", 2]);
149
- smalltalk.send(self, "_should_return_", ["foo ", self['@receiver']]);
150
- smalltalk.send(self, "_should_return_", ["foo self asString", self['@receiver']]);
151
- smalltalk.send(self, "_should_return_", ["foo | a b | a := 1. b := 2. ^ a + b", 3]);
152
- return self;
153
- }
498
+ fn: function (){
499
+ var self=this;
500
+ return smalltalk.withContext(function($ctx1) {
501
+ _st(self)._should_return_("foo ^ 1 + 1",(2));
502
+ _st(self)._should_return_("foo ",self["@receiver"]);
503
+ _st(self)._should_return_("foo self asString",self["@receiver"]);
504
+ _st(self)._should_return_("foo | a b | a := 1. b := 2. ^ a + b",(3));
505
+ return self}, function($ctx1) {$ctx1.fill(self,"testLocalReturn",{}, smalltalk.CodeGeneratorTest)})}
154
506
  }),
155
507
  smalltalk.CodeGeneratorTest);
156
508
 
@@ -158,15 +510,14 @@ smalltalk.addMethod(
158
510
  "_testMessageSends",
159
511
  smalltalk.method({
160
512
  selector: "testMessageSends",
161
- fn: function () {
162
- var self = this;
163
- smalltalk.send(self, "_should_return_", ["foo ^ 1 asString", "1"]);
164
- smalltalk.send(self, "_should_return_", ["foo ^ 1 + 1", 2]);
165
- smalltalk.send(self, "_should_return_", ["foo ^ 1 + 2 * 3", 9]);
166
- smalltalk.send(self, "_should_return_", ["foo ^ 1 to: 3", [1, 2, 3]]);
167
- smalltalk.send(self, "_should_return_", ["foo ^ 1 to: 5 by: 2", [1, 3, 5]]);
168
- return self;
169
- }
513
+ fn: function (){
514
+ var self=this;
515
+ return smalltalk.withContext(function($ctx1) {
516
+ _st(self)._should_return_("foo ^ 1 + 1",(2));
517
+ _st(self)._should_return_("foo ^ 1 + 2 * 3",(9));
518
+ _st(self)._should_return_("foo ^ 1 to: 3",[(1), (2), (3)]);
519
+ _st(self)._should_return_("foo ^ 1 to: 5 by: 2",[(1), (3), (5)]);
520
+ return self}, function($ctx1) {$ctx1.fill(self,"testMessageSends",{}, smalltalk.CodeGeneratorTest)})}
170
521
  }),
171
522
  smalltalk.CodeGeneratorTest);
172
523
 
@@ -174,14 +525,13 @@ smalltalk.addMethod(
174
525
  "_testNestedIfTrue",
175
526
  smalltalk.method({
176
527
  selector: "testNestedIfTrue",
177
- fn: function () {
178
- var self = this;
179
- smalltalk.send(self, "_should_return_", ["foo ^ true ifTrue: [ false ifFalse: [ 1 ] ]", 1]);
180
- smalltalk.send(self, "_should_return_", ["foo ^ true ifTrue: [ false ifTrue: [ 1 ] ]", nil]);
181
- smalltalk.send(self, "_should_return_", ["foo true ifTrue: [ false ifFalse: [ ^ 1 ] ]", 1]);
182
- smalltalk.send(self, "_should_return_", ["foo true ifTrue: [ false ifTrue: [ ^ 1 ] ]", self['@receiver']]);
183
- return self;
184
- }
528
+ fn: function (){
529
+ var self=this;
530
+ return smalltalk.withContext(function($ctx1) {
531
+ _st(self)._should_return_("foo ^ true ifTrue: [ false ifTrue: [ 1 ] ]",nil);
532
+ _st(self)._should_return_("foo true ifTrue: [ false ifFalse: [ ^ 1 ] ]",(1));
533
+ _st(self)._should_return_("foo true ifTrue: [ false ifTrue: [ ^ 1 ] ]",self["@receiver"]);
534
+ return self}, function($ctx1) {$ctx1.fill(self,"testNestedIfTrue",{}, smalltalk.CodeGeneratorTest)})}
185
535
  }),
186
536
  smalltalk.CodeGeneratorTest);
187
537
 
@@ -189,14 +539,25 @@ smalltalk.addMethod(
189
539
  "_testNonLocalReturn",
190
540
  smalltalk.method({
191
541
  selector: "testNonLocalReturn",
192
- fn: function () {
193
- var self = this;
194
- smalltalk.send(self, "_should_return_", ["foo [ ^ 1 ] value", 1]);
195
- smalltalk.send(self, "_should_return_", ["foo [ ^ 1 + 1 ] value", 2]);
196
- smalltalk.send(self, "_should_return_", ["foo | a b | a := 1. b := 2. [ ^ a + b ] value. self halt", 3]);
197
- smalltalk.send(self, "_should_return_", ["foo [ :x | ^ x + x ] value: 4. ^ 2", 8]);
198
- return self;
199
- }
542
+ fn: function (){
543
+ var self=this;
544
+ return smalltalk.withContext(function($ctx1) {
545
+ _st(self)._should_return_("foo [ ^ 1 + 1 ] value",(2));
546
+ _st(self)._should_return_("foo | a b | a := 1. b := 2. [ ^ a + b ] value. self halt",(3));
547
+ _st(self)._should_return_("foo [ :x | ^ x + x ] value: 4. ^ 2",(8));
548
+ return self}, function($ctx1) {$ctx1.fill(self,"testNonLocalReturn",{}, smalltalk.CodeGeneratorTest)})}
549
+ }),
550
+ smalltalk.CodeGeneratorTest);
551
+
552
+ smalltalk.addMethod(
553
+ "_testSendReceiverAndArgumentsOrdered",
554
+ smalltalk.method({
555
+ selector: "testSendReceiverAndArgumentsOrdered",
556
+ fn: function (){
557
+ var self=this;
558
+ return smalltalk.withContext(function($ctx1) {
559
+ _st(self)._should_return_("foo\x0a | x |\x0a x := Array.\x0a ^ x with: x with: (true ifTrue: [ x := 2 ])\x0a",[(smalltalk.Array || Array),(2)]);
560
+ return self}, function($ctx1) {$ctx1.fill(self,"testSendReceiverAndArgumentsOrdered",{}, smalltalk.CodeGeneratorTest)})}
200
561
  }),
201
562
  smalltalk.CodeGeneratorTest);
202
563
 
@@ -204,14 +565,13 @@ smalltalk.addMethod(
204
565
  "_testifFalse",
205
566
  smalltalk.method({
206
567
  selector: "testifFalse",
207
- fn: function () {
208
- var self = this;
209
- smalltalk.send(self, "_should_return_", ["foo true ifFalse: [ ^ 1 ]", self['@receiver']]);
210
- smalltalk.send(self, "_should_return_", ["foo false ifFalse: [ ^ 2 ]", 2]);
211
- smalltalk.send(self, "_should_return_", ["foo ^ true ifFalse: [ 1 ]", nil]);
212
- smalltalk.send(self, "_should_return_", ["foo ^ false ifFalse: [ 2 ]", 2]);
213
- return self;
214
- }
568
+ fn: function (){
569
+ var self=this;
570
+ return smalltalk.withContext(function($ctx1) {
571
+ _st(self)._should_return_("foo false ifFalse: [ ^ 2 ]",(2));
572
+ _st(self)._should_return_("foo ^ true ifFalse: [ 1 ]",nil);
573
+ _st(self)._should_return_("foo ^ false ifFalse: [ 2 ]",(2));
574
+ return self}, function($ctx1) {$ctx1.fill(self,"testifFalse",{}, smalltalk.CodeGeneratorTest)})}
215
575
  }),
216
576
  smalltalk.CodeGeneratorTest);
217
577
 
@@ -219,14 +579,13 @@ smalltalk.addMethod(
219
579
  "_testifFalseIfTrue",
220
580
  smalltalk.method({
221
581
  selector: "testifFalseIfTrue",
222
- fn: function () {
223
- var self = this;
224
- smalltalk.send(self, "_should_return_", ["foo true ifFalse: [ ^ 1 ] ifTrue: [ ^ 2 ]", 2]);
225
- smalltalk.send(self, "_should_return_", ["foo false ifFalse: [ ^ 2 ] ifTrue: [ ^1 ]", 2]);
226
- smalltalk.send(self, "_should_return_", ["foo ^ true ifFalse: [ 1 ] ifTrue: [ 2 ]", 2]);
227
- smalltalk.send(self, "_should_return_", ["foo ^ false ifFalse: [ 2 ] ifTrue: [ 1 ]", 2]);
228
- return self;
229
- }
582
+ fn: function (){
583
+ var self=this;
584
+ return smalltalk.withContext(function($ctx1) {
585
+ _st(self)._should_return_("foo false ifFalse: [ ^ 2 ] ifTrue: [ ^1 ]",(2));
586
+ _st(self)._should_return_("foo ^ true ifFalse: [ 1 ] ifTrue: [ 2 ]",(2));
587
+ _st(self)._should_return_("foo ^ false ifFalse: [ 2 ] ifTrue: [ 1 ]",(2));
588
+ return self}, function($ctx1) {$ctx1.fill(self,"testifFalseIfTrue",{}, smalltalk.CodeGeneratorTest)})}
230
589
  }),
231
590
  smalltalk.CodeGeneratorTest);
232
591
 
@@ -234,14 +593,13 @@ smalltalk.addMethod(
234
593
  "_testifNil",
235
594
  smalltalk.method({
236
595
  selector: "testifNil",
237
- fn: function () {
238
- var self = this;
239
- smalltalk.send(self, "_should_return_", ["foo ^ 1 ifNil: [ 2 ]", 1]);
240
- smalltalk.send(self, "_should_return_", ["foo ^ nil ifNil: [ 2 ]", 2]);
241
- smalltalk.send(self, "_should_return_", ["foo 1 ifNil: [ ^ 2 ]", self['@receiver']]);
242
- smalltalk.send(self, "_should_return_", ["foo nil ifNil: [ ^ 2 ]", 2]);
243
- return self;
244
- }
596
+ fn: function (){
597
+ var self=this;
598
+ return smalltalk.withContext(function($ctx1) {
599
+ _st(self)._should_return_("foo ^ nil ifNil: [ 2 ]",(2));
600
+ _st(self)._should_return_("foo 1 ifNil: [ ^ 2 ]",self["@receiver"]);
601
+ _st(self)._should_return_("foo nil ifNil: [ ^ 2 ]",(2));
602
+ return self}, function($ctx1) {$ctx1.fill(self,"testifNil",{}, smalltalk.CodeGeneratorTest)})}
245
603
  }),
246
604
  smalltalk.CodeGeneratorTest);
247
605
 
@@ -249,14 +607,13 @@ smalltalk.addMethod(
249
607
  "_testifNilIfNotNil",
250
608
  smalltalk.method({
251
609
  selector: "testifNilIfNotNil",
252
- fn: function () {
253
- var self = this;
254
- smalltalk.send(self, "_should_return_", ["foo ^ 1 ifNil: [ 2 ] ifNotNil: [ 3 ]", 3]);
255
- smalltalk.send(self, "_should_return_", ["foo ^ nil ifNil: [ 2 ] ifNotNil: [ 3 ]", 2]);
256
- smalltalk.send(self, "_should_return_", ["foo 1 ifNil: [ ^ 2 ] ifNotNil: [ ^3 ]", 3]);
257
- smalltalk.send(self, "_should_return_", ["foo nil ifNil: [ ^ 2 ] ifNotNil: [ ^3 ]", 2]);
258
- return self;
259
- }
610
+ fn: function (){
611
+ var self=this;
612
+ return smalltalk.withContext(function($ctx1) {
613
+ _st(self)._should_return_("foo ^ nil ifNil: [ 2 ] ifNotNil: [ 3 ]",(2));
614
+ _st(self)._should_return_("foo 1 ifNil: [ ^ 2 ] ifNotNil: [ ^3 ]",(3));
615
+ _st(self)._should_return_("foo nil ifNil: [ ^ 2 ] ifNotNil: [ ^3 ]",(2));
616
+ return self}, function($ctx1) {$ctx1.fill(self,"testifNilIfNotNil",{}, smalltalk.CodeGeneratorTest)})}
260
617
  }),
261
618
  smalltalk.CodeGeneratorTest);
262
619
 
@@ -264,14 +621,13 @@ smalltalk.addMethod(
264
621
  "_testifNotNil",
265
622
  smalltalk.method({
266
623
  selector: "testifNotNil",
267
- fn: function () {
268
- var self = this;
269
- smalltalk.send(self, "_should_return_", ["foo ^ 1 ifNotNil: [ 2 ]", 2]);
270
- smalltalk.send(self, "_should_return_", ["foo ^ nil ifNotNil: [ 2 ]", nil]);
271
- smalltalk.send(self, "_should_return_", ["foo 1 ifNotNil: [ ^ 2 ]", 2]);
272
- smalltalk.send(self, "_should_return_", ["foo nil ifNotNil: [ ^ 2 ]", self['@receiver']]);
273
- return self;
274
- }
624
+ fn: function (){
625
+ var self=this;
626
+ return smalltalk.withContext(function($ctx1) {
627
+ _st(self)._should_return_("foo ^ nil ifNotNil: [ 2 ]",nil);
628
+ _st(self)._should_return_("foo 1 ifNotNil: [ ^ 2 ]",(2));
629
+ _st(self)._should_return_("foo nil ifNotNil: [ ^ 2 ]",self["@receiver"]);
630
+ return self}, function($ctx1) {$ctx1.fill(self,"testifNotNil",{}, smalltalk.CodeGeneratorTest)})}
275
631
  }),
276
632
  smalltalk.CodeGeneratorTest);
277
633
 
@@ -279,14 +635,13 @@ smalltalk.addMethod(
279
635
  "_testifTrue",
280
636
  smalltalk.method({
281
637
  selector: "testifTrue",
282
- fn: function () {
283
- var self = this;
284
- smalltalk.send(self, "_should_return_", ["foo false ifTrue: [ ^ 1 ]", self['@receiver']]);
285
- smalltalk.send(self, "_should_return_", ["foo true ifTrue: [ ^ 2 ]", 2]);
286
- smalltalk.send(self, "_should_return_", ["foo ^ false ifTrue: [ 1 ]", nil]);
287
- smalltalk.send(self, "_should_return_", ["foo ^ true ifTrue: [ 2 ]", 2]);
288
- return self;
289
- }
638
+ fn: function (){
639
+ var self=this;
640
+ return smalltalk.withContext(function($ctx1) {
641
+ _st(self)._should_return_("foo true ifTrue: [ ^ 2 ]",(2));
642
+ _st(self)._should_return_("foo ^ false ifTrue: [ 1 ]",nil);
643
+ _st(self)._should_return_("foo ^ true ifTrue: [ 2 ]",(2));
644
+ return self}, function($ctx1) {$ctx1.fill(self,"testifTrue",{}, smalltalk.CodeGeneratorTest)})}
290
645
  }),
291
646
  smalltalk.CodeGeneratorTest);
292
647
 
@@ -294,14 +649,13 @@ smalltalk.addMethod(
294
649
  "_testifTrueIfFalse",
295
650
  smalltalk.method({
296
651
  selector: "testifTrueIfFalse",
297
- fn: function () {
298
- var self = this;
299
- smalltalk.send(self, "_should_return_", ["foo false ifTrue: [ ^ 1 ] ifFalse: [ ^2 ]", 2]);
300
- smalltalk.send(self, "_should_return_", ["foo true ifTrue: [ ^ 1 ] ifFalse: [ ^ 2 ]", 1]);
301
- smalltalk.send(self, "_should_return_", ["foo ^ false ifTrue: [ 2 ] ifFalse: [ 1 ]", 1]);
302
- smalltalk.send(self, "_should_return_", ["foo ^ true ifTrue: [ 2 ] ifFalse: [ 1 ]", 2]);
303
- return self;
304
- }
652
+ fn: function (){
653
+ var self=this;
654
+ return smalltalk.withContext(function($ctx1) {
655
+ _st(self)._should_return_("foo true ifTrue: [ ^ 1 ] ifFalse: [ ^ 2 ]",(1));
656
+ _st(self)._should_return_("foo ^ false ifTrue: [ 2 ] ifFalse: [ 1 ]",(1));
657
+ _st(self)._should_return_("foo ^ true ifTrue: [ 2 ] ifFalse: [ 1 ]",(2));
658
+ return self}, function($ctx1) {$ctx1.fill(self,"testifTrueIfFalse",{}, smalltalk.CodeGeneratorTest)})}
305
659
  }),
306
660
  smalltalk.CodeGeneratorTest);
307
661
 
@@ -312,10 +666,12 @@ smalltalk.addMethod(
312
666
  "_codeGeneratorClass",
313
667
  smalltalk.method({
314
668
  selector: "codeGeneratorClass",
315
- fn: function () {
316
- var self = this;
317
- return smalltalk.InliningCodeGenerator || InliningCodeGenerator;
318
- }
669
+ fn: function (){
670
+ var self=this;
671
+ return smalltalk.withContext(function($ctx1) {
672
+ $1=(smalltalk.InliningCodeGenerator || InliningCodeGenerator);
673
+ return $1;
674
+ }, function($ctx1) {$ctx1.fill(self,"codeGeneratorClass",{}, smalltalk.InliningCodeGeneratorTest)})}
319
675
  }),
320
676
  smalltalk.InliningCodeGeneratorTest);
321
677
 
@@ -326,18 +682,17 @@ smalltalk.addMethod(
326
682
  "_testClassRefVar",
327
683
  smalltalk.method({
328
684
  selector: "testClassRefVar",
329
- fn: function () {
330
- var self = this;
331
- var $1, $2;
332
- var node;
333
- $1 = smalltalk.send(smalltalk.ClassReferenceNode || ClassReferenceNode, "_new", []);
334
- smalltalk.send($1, "_value_", ["Object"]);
335
- $2 = smalltalk.send($1, "_yourself", []);
336
- node = $2;
337
- smalltalk.send(smalltalk.send(smalltalk.SemanticAnalyzer || SemanticAnalyzer, "_new", []), "_visit_", [node]);
338
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(node, "_binding", []), "_isClassRefVar", [])]);
339
- return self;
340
- }
685
+ fn: function (){
686
+ var self=this;
687
+ var node;
688
+ return smalltalk.withContext(function($ctx1) {
689
+ $1=_st((smalltalk.ClassReferenceNode || ClassReferenceNode))._new();
690
+ _st($1)._value_("Object");
691
+ $2=_st($1)._yourself();
692
+ node=$2;
693
+ _st(_st((smalltalk.SemanticAnalyzer || SemanticAnalyzer))._new())._visit_(node);
694
+ _st(self)._assert_(_st(_st(node)._binding())._isClassRefVar());
695
+ return self}, function($ctx1) {$ctx1.fill(self,"testClassRefVar",{node:node}, smalltalk.ScopeVarTest)})}
341
696
  }),
342
697
  smalltalk.ScopeVarTest);
343
698
 
@@ -345,20 +700,18 @@ smalltalk.addMethod(
345
700
  "_testInstanceVar",
346
701
  smalltalk.method({
347
702
  selector: "testInstanceVar",
348
- fn: function () {
349
- var self = this;
350
- var $1, $2;
351
- var node;
352
- var scope;
353
- $1 = smalltalk.send(smalltalk.VariableNode || VariableNode, "_new", []);
354
- smalltalk.send($1, "_value_", ["bzzz"]);
355
- $2 = smalltalk.send($1, "_yourself", []);
356
- node = $2;
357
- scope = smalltalk.send(smalltalk.MethodLexicalScope || MethodLexicalScope, "_new", []);
358
- smalltalk.send(scope, "_addIVar_", ["bzzz"]);
359
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(scope, "_bindingFor_", [node]), "_isInstanceVar", [])]);
360
- return self;
361
- }
703
+ fn: function (){
704
+ var self=this;
705
+ var node,scope;
706
+ return smalltalk.withContext(function($ctx1) {
707
+ $1=_st((smalltalk.VariableNode || VariableNode))._new();
708
+ _st($1)._value_("bzzz");
709
+ $2=_st($1)._yourself();
710
+ node=$2;
711
+ scope=_st((smalltalk.MethodLexicalScope || MethodLexicalScope))._new();
712
+ _st(scope)._addIVar_("bzzz");
713
+ _st(self)._assert_(_st(_st(scope)._bindingFor_(node))._isInstanceVar());
714
+ return self}, function($ctx1) {$ctx1.fill(self,"testInstanceVar",{node:node,scope:scope}, smalltalk.ScopeVarTest)})}
362
715
  }),
363
716
  smalltalk.ScopeVarTest);
364
717
 
@@ -366,15 +719,20 @@ smalltalk.addMethod(
366
719
  "_testPseudoVar",
367
720
  smalltalk.method({
368
721
  selector: "testPseudoVar",
369
- fn: function () {
370
- var self = this;
371
- var $1, $2;
372
- var node;
373
- var pseudoVars;
374
- pseudoVars = ["self", "super", "true", "false", "nil"];
375
- smalltalk.send(pseudoVars, "_do_", [function (each) {$1 = smalltalk.send(smalltalk.VariableNode || VariableNode, "_new", []);smalltalk.send($1, "_value_", [each]);$2 = smalltalk.send($1, "_yourself", []);node = $2;node;return smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.MethodLexicalScope || MethodLexicalScope, "_new", []), "_bindingFor_", [node]), "_isPseudoVar", [])]);}]);
376
- return self;
377
- }
722
+ fn: function (){
723
+ var self=this;
724
+ var node,pseudoVars;
725
+ return smalltalk.withContext(function($ctx1) {
726
+ pseudoVars=["self", "super", "true", "false", "nil"];
727
+ _st(pseudoVars)._do_((function(each){
728
+ return smalltalk.withContext(function($ctx2) {
729
+ _st($1)._value_(each);
730
+ $2=_st($1)._yourself();
731
+ node=$2;
732
+ node;
733
+ return _st(self)._assert_(_st(_st(_st((smalltalk.MethodLexicalScope || MethodLexicalScope))._new())._bindingFor_(node))._isPseudoVar());
734
+ }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
735
+ return self}, function($ctx1) {$ctx1.fill(self,"testPseudoVar",{node:node,pseudoVars:pseudoVars}, smalltalk.ScopeVarTest)})}
378
736
  }),
379
737
  smalltalk.ScopeVarTest);
380
738
 
@@ -382,20 +740,18 @@ smalltalk.addMethod(
382
740
  "_testTempVar",
383
741
  smalltalk.method({
384
742
  selector: "testTempVar",
385
- fn: function () {
386
- var self = this;
387
- var $1, $2;
388
- var node;
389
- var scope;
390
- $1 = smalltalk.send(smalltalk.VariableNode || VariableNode, "_new", []);
391
- smalltalk.send($1, "_value_", ["bzzz"]);
392
- $2 = smalltalk.send($1, "_yourself", []);
393
- node = $2;
394
- scope = smalltalk.send(smalltalk.MethodLexicalScope || MethodLexicalScope, "_new", []);
395
- smalltalk.send(scope, "_addTemp_", ["bzzz"]);
396
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(scope, "_bindingFor_", [node]), "_isTempVar", [])]);
397
- return self;
398
- }
743
+ fn: function (){
744
+ var self=this;
745
+ var node,scope;
746
+ return smalltalk.withContext(function($ctx1) {
747
+ $1=_st((smalltalk.VariableNode || VariableNode))._new();
748
+ _st($1)._value_("bzzz");
749
+ $2=_st($1)._yourself();
750
+ node=$2;
751
+ scope=_st((smalltalk.MethodLexicalScope || MethodLexicalScope))._new();
752
+ _st(scope)._addTemp_("bzzz");
753
+ _st(self)._assert_(_st(_st(scope)._bindingFor_(node))._isTempVar());
754
+ return self}, function($ctx1) {$ctx1.fill(self,"testTempVar",{node:node,scope:scope}, smalltalk.ScopeVarTest)})}
399
755
  }),
400
756
  smalltalk.ScopeVarTest);
401
757
 
@@ -403,17 +759,16 @@ smalltalk.addMethod(
403
759
  "_testUnknownVar",
404
760
  smalltalk.method({
405
761
  selector: "testUnknownVar",
406
- fn: function () {
407
- var self = this;
408
- var $1, $2;
409
- var node;
410
- $1 = smalltalk.send(smalltalk.VariableNode || VariableNode, "_new", []);
411
- smalltalk.send($1, "_value_", ["bzzz"]);
412
- $2 = smalltalk.send($1, "_yourself", []);
413
- node = $2;
414
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.MethodLexicalScope || MethodLexicalScope, "_new", []), "_bindingFor_", [node]), "_isNil", [])]);
415
- return self;
416
- }
762
+ fn: function (){
763
+ var self=this;
764
+ var node;
765
+ return smalltalk.withContext(function($ctx1) {
766
+ $1=_st((smalltalk.VariableNode || VariableNode))._new();
767
+ _st($1)._value_("bzzz");
768
+ $2=_st($1)._yourself();
769
+ node=$2;
770
+ _st(self)._assert_(_st(_st(_st((smalltalk.MethodLexicalScope || MethodLexicalScope))._new())._bindingFor_(node))._isNil());
771
+ return self}, function($ctx1) {$ctx1.fill(self,"testUnknownVar",{node:node}, smalltalk.ScopeVarTest)})}
417
772
  }),
418
773
  smalltalk.ScopeVarTest);
419
774
 
@@ -424,11 +779,10 @@ smalltalk.addMethod(
424
779
  "_setUp",
425
780
  smalltalk.method({
426
781
  selector: "setUp",
427
- fn: function () {
428
- var self = this;
429
- self['@analyzer'] = smalltalk.send(smalltalk.SemanticAnalyzer || SemanticAnalyzer, "_on_", [smalltalk.Object || Object]);
430
- return self;
431
- }
782
+ fn: function (){
783
+ var self=this;
784
+ return smalltalk.withContext(function($ctx1) {
785
+ return self}, function($ctx1) {$ctx1.fill(self,"setUp",{}, smalltalk.SemanticAnalyzerTest)})}
432
786
  }),
433
787
  smalltalk.SemanticAnalyzerTest);
434
788
 
@@ -436,15 +790,15 @@ smalltalk.addMethod(
436
790
  "_testAssignment",
437
791
  smalltalk.method({
438
792
  selector: "testAssignment",
439
- fn: function () {
440
- var self = this;
441
- var src;
442
- var ast;
443
- src = "foo self := 1";
444
- ast = smalltalk.send(smalltalk, "_parse_", [src]);
445
- smalltalk.send(self, "_should_raise_", [function () {return smalltalk.send(self['@analyzer'], "_visit_", [ast]);}, smalltalk.InvalidAssignmentError || InvalidAssignmentError]);
446
- return self;
447
- }
793
+ fn: function (){
794
+ var self=this;
795
+ var src,ast;
796
+ return smalltalk.withContext(function($ctx1) {
797
+ ast=_st(smalltalk)._parse_(src);
798
+ _st(self)._should_raise_((function(){
799
+ return smalltalk.withContext(function($ctx2) {
800
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.InvalidAssignmentError || InvalidAssignmentError));
801
+ return self}, function($ctx1) {$ctx1.fill(self,"testAssignment",{src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})}
448
802
  }),
449
803
  smalltalk.SemanticAnalyzerTest);
450
804
 
@@ -452,16 +806,14 @@ smalltalk.addMethod(
452
806
  "_testNonLocalReturn",
453
807
  smalltalk.method({
454
808
  selector: "testNonLocalReturn",
455
- fn: function () {
456
- var self = this;
457
- var src;
458
- var ast;
459
- src = "foo | a | a + 1. ^ a";
460
- ast = smalltalk.send(smalltalk, "_parse_", [src]);
461
- smalltalk.send(self['@analyzer'], "_visit_", [ast]);
462
- smalltalk.send(self, "_deny_", [smalltalk.send(smalltalk.send(ast, "_scope", []), "_hasNonLocalReturn", [])]);
463
- return self;
464
- }
809
+ fn: function (){
810
+ var self=this;
811
+ var src,ast;
812
+ return smalltalk.withContext(function($ctx1) {
813
+ ast=_st(smalltalk)._parse_(src);
814
+ _st(self["@analyzer"])._visit_(ast);
815
+ _st(self)._deny_(_st(_st(ast)._scope())._hasNonLocalReturn());
816
+ return self}, function($ctx1) {$ctx1.fill(self,"testNonLocalReturn",{src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})}
465
817
  }),
466
818
  smalltalk.SemanticAnalyzerTest);
467
819
 
@@ -469,16 +821,14 @@ smalltalk.addMethod(
469
821
  "_testNonLocalReturn2",
470
822
  smalltalk.method({
471
823
  selector: "testNonLocalReturn2",
472
- fn: function () {
473
- var self = this;
474
- var src;
475
- var ast;
476
- src = "foo | a | a + 1. [\xA0[ ^ a]\xA0]";
477
- ast = smalltalk.send(smalltalk, "_parse_", [src]);
478
- smalltalk.send(self['@analyzer'], "_visit_", [ast]);
479
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(ast, "_scope", []), "_hasNonLocalReturn", [])]);
480
- return self;
481
- }
824
+ fn: function (){
825
+ var self=this;
826
+ var src,ast;
827
+ return smalltalk.withContext(function($ctx1) {
828
+ ast=_st(smalltalk)._parse_(src);
829
+ _st(self["@analyzer"])._visit_(ast);
830
+ _st(self)._assert_(_st(_st(ast)._scope())._hasNonLocalReturn());
831
+ return self}, function($ctx1) {$ctx1.fill(self,"testNonLocalReturn2",{src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})}
482
832
  }),
483
833
  smalltalk.SemanticAnalyzerTest);
484
834
 
@@ -486,16 +836,14 @@ smalltalk.addMethod(
486
836
  "_testScope",
487
837
  smalltalk.method({
488
838
  selector: "testScope",
489
- fn: function () {
490
- var self = this;
491
- var src;
492
- var ast;
493
- src = "foo | a | a + 1. [ | b | b := a ]";
494
- ast = smalltalk.send(smalltalk, "_parse_", [src]);
495
- smalltalk.send(self['@analyzer'], "_visit_", [ast]);
496
- smalltalk.send(self, "_deny_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(ast, "_nodes", []), "_first", []), "_nodes", []), "_last", []), "_scope", []), "__eq_eq", [smalltalk.send(ast, "_scope", [])])]);
497
- return self;
498
- }
839
+ fn: function (){
840
+ var self=this;
841
+ var src,ast;
842
+ return smalltalk.withContext(function($ctx1) {
843
+ ast=_st(smalltalk)._parse_(src);
844
+ _st(self["@analyzer"])._visit_(ast);
845
+ _st(self)._deny_(_st(_st(_st(_st(_st(_st(ast)._nodes())._first())._nodes())._last())._scope()).__eq_eq(_st(ast)._scope()));
846
+ return self}, function($ctx1) {$ctx1.fill(self,"testScope",{src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})}
499
847
  }),
500
848
  smalltalk.SemanticAnalyzerTest);
501
849
 
@@ -503,16 +851,14 @@ smalltalk.addMethod(
503
851
  "_testScope2",
504
852
  smalltalk.method({
505
853
  selector: "testScope2",
506
- fn: function () {
507
- var self = this;
508
- var src;
509
- var ast;
510
- src = "foo | a | a + 1. [ [ | b | b := a\xA0] ]";
511
- ast = smalltalk.send(smalltalk, "_parse_", [src]);
512
- smalltalk.send(self['@analyzer'], "_visit_", [ast]);
513
- smalltalk.send(self, "_deny_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(ast, "_nodes", []), "_first", []), "_nodes", []), "_last", []), "_nodes", []), "_first", []), "_nodes", []), "_first", []), "_scope", []), "__eq_eq", [smalltalk.send(ast, "_scope", [])])]);
514
- return self;
515
- }
854
+ fn: function (){
855
+ var self=this;
856
+ var src,ast;
857
+ return smalltalk.withContext(function($ctx1) {
858
+ ast=_st(smalltalk)._parse_(src);
859
+ _st(self["@analyzer"])._visit_(ast);
860
+ _st(self)._deny_(_st(_st(_st(_st(_st(_st(_st(_st(_st(_st(ast)._nodes())._first())._nodes())._last())._nodes())._first())._nodes())._first())._scope()).__eq_eq(_st(ast)._scope()));
861
+ return self}, function($ctx1) {$ctx1.fill(self,"testScope2",{src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})}
516
862
  }),
517
863
  smalltalk.SemanticAnalyzerTest);
518
864
 
@@ -520,17 +866,15 @@ smalltalk.addMethod(
520
866
  "_testScopeLevel",
521
867
  smalltalk.method({
522
868
  selector: "testScopeLevel",
523
- fn: function () {
524
- var self = this;
525
- var src;
526
- var ast;
527
- src = "foo | a | a + 1. [ [ | b | b := a\xA0] ]";
528
- ast = smalltalk.send(smalltalk, "_parse_", [src]);
529
- smalltalk.send(self['@analyzer'], "_visit_", [ast]);
530
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(smalltalk.send(ast, "_scope", []), "_scopeLevel", []), "__eq", [1])]);
531
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(ast, "_nodes", []), "_first", []), "_nodes", []), "_last", []), "_nodes", []), "_first", []), "_nodes", []), "_first", []), "_scope", []), "_scopeLevel", []), "__eq", [3])]);
532
- return self;
533
- }
869
+ fn: function (){
870
+ var self=this;
871
+ var src,ast;
872
+ return smalltalk.withContext(function($ctx1) {
873
+ ast=_st(smalltalk)._parse_(src);
874
+ _st(self["@analyzer"])._visit_(ast);
875
+ _st(self)._assert_(_st(_st(_st(ast)._scope())._scopeLevel()).__eq((1)));
876
+ _st(self)._assert_(_st(_st(_st(_st(_st(_st(_st(_st(_st(_st(_st(ast)._nodes())._first())._nodes())._last())._nodes())._first())._nodes())._first())._scope())._scopeLevel()).__eq((3)));
877
+ return self}, function($ctx1) {$ctx1.fill(self,"testScopeLevel",{src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})}
534
878
  }),
535
879
  smalltalk.SemanticAnalyzerTest);
536
880
 
@@ -538,28 +882,15 @@ smalltalk.addMethod(
538
882
  "_testUnknownVariables",
539
883
  smalltalk.method({
540
884
  selector: "testUnknownVariables",
541
- fn: function () {
542
- var self = this;
543
- var src;
544
- var ast;
545
- src = "foo | a | b + a";
546
- ast = smalltalk.send(smalltalk, "_parse_", [src]);
547
- smalltalk.send(self, "_should_raise_", [function () {return smalltalk.send(self['@analyzer'], "_visit_", [ast]);}, smalltalk.UnknownVariableError || UnknownVariableError]);
548
- return self;
549
- }
550
- }),
551
- smalltalk.SemanticAnalyzerTest);
552
-
553
- smalltalk.addMethod(
554
- "_testUnknownVariablesDefinedInJS",
555
- smalltalk.method({
556
- selector: "testUnknownVariablesDefinedInJS",
557
- fn: function () {
558
- var self = this;
559
- var someVariable = 1;
560
- smalltalk.send(self, "_shouldnt_raise_", [function () {return smalltalk.send(smalltalk, "_parse_", ["foo someVariable"]);}, smalltalk.UnknownVariableError || UnknownVariableError]);
561
- return self;
562
- }
885
+ fn: function (){
886
+ var self=this;
887
+ var src,ast;
888
+ return smalltalk.withContext(function($ctx1) {
889
+ ast=_st(smalltalk)._parse_(src);
890
+ _st(self)._should_raise_((function(){
891
+ return smalltalk.withContext(function($ctx2) {
892
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.UnknownVariableError || UnknownVariableError));
893
+ return self}, function($ctx1) {$ctx1.fill(self,"testUnknownVariables",{src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})}
563
894
  }),
564
895
  smalltalk.SemanticAnalyzerTest);
565
896
 
@@ -567,15 +898,15 @@ smalltalk.addMethod(
567
898
  "_testUnknownVariablesWithScope",
568
899
  smalltalk.method({
569
900
  selector: "testUnknownVariablesWithScope",
570
- fn: function () {
571
- var self = this;
572
- var src;
573
- var ast;
574
- src = "foo | a b | [ c + 1. [ a + 1. d + 1 ]]";
575
- ast = smalltalk.send(smalltalk, "_parse_", [src]);
576
- smalltalk.send(self, "_should_raise_", [function () {return smalltalk.send(self['@analyzer'], "_visit_", [ast]);}, smalltalk.UnknownVariableError || UnknownVariableError]);
577
- return self;
578
- }
901
+ fn: function (){
902
+ var self=this;
903
+ var src,ast;
904
+ return smalltalk.withContext(function($ctx1) {
905
+ ast=_st(smalltalk)._parse_(src);
906
+ _st(self)._should_raise_((function(){
907
+ return smalltalk.withContext(function($ctx2) {
908
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.UnknownVariableError || UnknownVariableError));
909
+ return self}, function($ctx1) {$ctx1.fill(self,"testUnknownVariablesWithScope",{src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})}
579
910
  }),
580
911
  smalltalk.SemanticAnalyzerTest);
581
912
 
@@ -583,15 +914,13 @@ smalltalk.addMethod(
583
914
  "_testVariableShadowing",
584
915
  smalltalk.method({
585
916
  selector: "testVariableShadowing",
586
- fn: function () {
587
- var self = this;
588
- var src;
589
- var ast;
590
- src = "foo | a | a + 1";
591
- ast = smalltalk.send(smalltalk, "_parse_", [src]);
592
- smalltalk.send(self['@analyzer'], "_visit_", [ast]);
593
- return self;
594
- }
917
+ fn: function (){
918
+ var self=this;
919
+ var src,ast;
920
+ return smalltalk.withContext(function($ctx1) {
921
+ ast=_st(smalltalk)._parse_(src);
922
+ _st(self["@analyzer"])._visit_(ast);
923
+ return self}, function($ctx1) {$ctx1.fill(self,"testVariableShadowing",{src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})}
595
924
  }),
596
925
  smalltalk.SemanticAnalyzerTest);
597
926
 
@@ -599,15 +928,15 @@ smalltalk.addMethod(
599
928
  "_testVariableShadowing2",
600
929
  smalltalk.method({
601
930
  selector: "testVariableShadowing2",
602
- fn: function () {
603
- var self = this;
604
- var src;
605
- var ast;
606
- src = "foo | a | a + 1. [ | a | a := 2 ]";
607
- ast = smalltalk.send(smalltalk, "_parse_", [src]);
608
- smalltalk.send(self, "_should_raise_", [function () {return smalltalk.send(self['@analyzer'], "_visit_", [ast]);}, smalltalk.ShadowingVariableError || ShadowingVariableError]);
609
- return self;
610
- }
931
+ fn: function (){
932
+ var self=this;
933
+ var src,ast;
934
+ return smalltalk.withContext(function($ctx1) {
935
+ ast=_st(smalltalk)._parse_(src);
936
+ _st(self)._should_raise_((function(){
937
+ return smalltalk.withContext(function($ctx2) {
938
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.ShadowingVariableError || ShadowingVariableError));
939
+ return self}, function($ctx1) {$ctx1.fill(self,"testVariableShadowing2",{src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})}
611
940
  }),
612
941
  smalltalk.SemanticAnalyzerTest);
613
942
 
@@ -615,15 +944,13 @@ smalltalk.addMethod(
615
944
  "_testVariableShadowing3",
616
945
  smalltalk.method({
617
946
  selector: "testVariableShadowing3",
618
- fn: function () {
619
- var self = this;
620
- var src;
621
- var ast;
622
- src = "foo | a | a + 1. [ | b | b := 2 ]";
623
- ast = smalltalk.send(smalltalk, "_parse_", [src]);
624
- smalltalk.send(self['@analyzer'], "_visit_", [ast]);
625
- return self;
626
- }
947
+ fn: function (){
948
+ var self=this;
949
+ var src,ast;
950
+ return smalltalk.withContext(function($ctx1) {
951
+ ast=_st(smalltalk)._parse_(src);
952
+ _st(self["@analyzer"])._visit_(ast);
953
+ return self}, function($ctx1) {$ctx1.fill(self,"testVariableShadowing3",{src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})}
627
954
  }),
628
955
  smalltalk.SemanticAnalyzerTest);
629
956
 
@@ -631,15 +958,13 @@ smalltalk.addMethod(
631
958
  "_testVariableShadowing4",
632
959
  smalltalk.method({
633
960
  selector: "testVariableShadowing4",
634
- fn: function () {
635
- var self = this;
636
- var src;
637
- var ast;
638
- src = "foo | a | a + 1. [ [\xA0[ | b | b := 2 ]\xA0]\xA0]";
639
- ast = smalltalk.send(smalltalk, "_parse_", [src]);
640
- smalltalk.send(self['@analyzer'], "_visit_", [ast]);
641
- return self;
642
- }
961
+ fn: function (){
962
+ var self=this;
963
+ var src,ast;
964
+ return smalltalk.withContext(function($ctx1) {
965
+ ast=_st(smalltalk)._parse_(src);
966
+ _st(self["@analyzer"])._visit_(ast);
967
+ return self}, function($ctx1) {$ctx1.fill(self,"testVariableShadowing4",{src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})}
643
968
  }),
644
969
  smalltalk.SemanticAnalyzerTest);
645
970
 
@@ -647,15 +972,15 @@ smalltalk.addMethod(
647
972
  "_testVariableShadowing5",
648
973
  smalltalk.method({
649
974
  selector: "testVariableShadowing5",
650
- fn: function () {
651
- var self = this;
652
- var src;
653
- var ast;
654
- src = "foo | a | a + 1. [ [\xA0[ | a | a := 2 ]\xA0]\xA0]";
655
- ast = smalltalk.send(smalltalk, "_parse_", [src]);
656
- smalltalk.send(self, "_should_raise_", [function () {return smalltalk.send(self['@analyzer'], "_visit_", [ast]);}, smalltalk.ShadowingVariableError || ShadowingVariableError]);
657
- return self;
658
- }
975
+ fn: function (){
976
+ var self=this;
977
+ var src,ast;
978
+ return smalltalk.withContext(function($ctx1) {
979
+ ast=_st(smalltalk)._parse_(src);
980
+ _st(self)._should_raise_((function(){
981
+ return smalltalk.withContext(function($ctx2) {
982
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(smalltalk.ShadowingVariableError || ShadowingVariableError));
983
+ return self}, function($ctx1) {$ctx1.fill(self,"testVariableShadowing5",{src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})}
659
984
  }),
660
985
  smalltalk.SemanticAnalyzerTest);
661
986
 
@@ -663,19 +988,17 @@ smalltalk.addMethod(
663
988
  "_testVariablesLookup",
664
989
  smalltalk.method({
665
990
  selector: "testVariablesLookup",
666
- fn: function () {
667
- var self = this;
668
- var src;
669
- var ast;
670
- src = "foo | a | a + 1. [ | b | b := a ]";
671
- ast = smalltalk.send(smalltalk, "_parse_", [src]);
672
- smalltalk.send(self['@analyzer'], "_visit_", [ast]);
673
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(ast, "_nodes", []), "_first", []), "_nodes", []), "_first", []), "_receiver", []), "_binding", []), "_isTempVar", [])]);
674
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(ast, "_nodes", []), "_first", []), "_nodes", []), "_first", []), "_receiver", []), "_binding", []), "_scope", []), "__eq_eq", [smalltalk.send(ast, "_scope", [])])]);
675
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(ast, "_nodes", []), "_first", []), "_nodes", []), "_last", []), "_nodes", []), "_first", []), "_nodes", []), "_first", []), "_left", []), "_binding", []), "_isTempVar", [])]);
676
- smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(ast, "_nodes", []), "_first", []), "_nodes", []), "_last", []), "_nodes", []), "_first", []), "_nodes", []), "_first", []), "_left", []), "_binding", []), "_scope", []), "__eq_eq", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(ast, "_nodes", []), "_first", []), "_nodes", []), "_last", []), "_scope", [])])]);
677
- return self;
678
- }
991
+ fn: function (){
992
+ var self=this;
993
+ var src,ast;
994
+ return smalltalk.withContext(function($ctx1) {
995
+ ast=_st(smalltalk)._parse_(src);
996
+ _st(self["@analyzer"])._visit_(ast);
997
+ _st(self)._assert_(_st(_st(_st(_st(_st(_st(_st(ast)._nodes())._first())._nodes())._first())._receiver())._binding())._isTempVar());
998
+ _st(self)._assert_(_st(_st(_st(_st(_st(_st(_st(_st(ast)._nodes())._first())._nodes())._first())._receiver())._binding())._scope()).__eq_eq(_st(ast)._scope()));
999
+ _st(self)._assert_(_st(_st(_st(_st(_st(_st(_st(_st(_st(_st(_st(ast)._nodes())._first())._nodes())._last())._nodes())._first())._nodes())._first())._left())._binding())._isTempVar());
1000
+ _st(self)._assert_(_st(_st(_st(_st(_st(_st(_st(_st(_st(_st(_st(_st(ast)._nodes())._first())._nodes())._last())._nodes())._first())._nodes())._first())._left())._binding())._scope()).__eq_eq(_st(_st(_st(_st(_st(ast)._nodes())._first())._nodes())._last())._scope()));
1001
+ return self}, function($ctx1) {$ctx1.fill(self,"testVariablesLookup",{src:src,ast:ast}, smalltalk.SemanticAnalyzerTest)})}
679
1002
  }),
680
1003
  smalltalk.SemanticAnalyzerTest);
681
1004