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,15 +1,15 @@
1
1
  smalltalk.addPackage('Compiler-AST', {});
2
- smalltalk.addClass('Node', smalltalk.Object, ['nodes', 'shouldBeInlined', 'shouldBeAliased'], 'Compiler-AST');
2
+ smalltalk.addClass('Node', smalltalk.Object, ['position', 'nodes', 'shouldBeInlined', 'shouldBeAliased'], 'Compiler-AST');
3
3
  smalltalk.addMethod(
4
4
  "_accept_",
5
5
  smalltalk.method({
6
6
  selector: "accept:",
7
7
  fn: function (aVisitor){
8
8
  var self=this;
9
- var $1;
10
- $1=smalltalk.send(aVisitor,"_visitNode_",[self]);
9
+ return smalltalk.withContext(function($ctx1) {
10
+ $1=_st(aVisitor)._visitNode_(self);
11
11
  return $1;
12
- }
12
+ }, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.Node)})}
13
13
  }),
14
14
  smalltalk.Node);
15
15
 
@@ -19,8 +19,8 @@ smalltalk.method({
19
19
  selector: "addNode:",
20
20
  fn: function (aNode){
21
21
  var self=this;
22
- smalltalk.send(smalltalk.send(self,"_nodes",[]),"_add_",[aNode]);
23
- return self}
22
+ return smalltalk.withContext(function($ctx1) {
23
+ return self}, function($ctx1) {$ctx1.fill(self,"addNode:",{aNode:aNode}, smalltalk.Node)})}
24
24
  }),
25
25
  smalltalk.Node);
26
26
 
@@ -30,8 +30,8 @@ smalltalk.method({
30
30
  selector: "isAssignmentNode",
31
31
  fn: function (){
32
32
  var self=this;
33
- return false;
34
- }
33
+ return smalltalk.withContext(function($ctx1) {
34
+ }, function($ctx1) {$ctx1.fill(self,"isAssignmentNode",{}, smalltalk.Node)})}
35
35
  }),
36
36
  smalltalk.Node);
37
37
 
@@ -41,8 +41,8 @@ smalltalk.method({
41
41
  selector: "isBlockNode",
42
42
  fn: function (){
43
43
  var self=this;
44
- return false;
45
- }
44
+ return smalltalk.withContext(function($ctx1) {
45
+ }, function($ctx1) {$ctx1.fill(self,"isBlockNode",{}, smalltalk.Node)})}
46
46
  }),
47
47
  smalltalk.Node);
48
48
 
@@ -52,8 +52,30 @@ smalltalk.method({
52
52
  selector: "isBlockSequenceNode",
53
53
  fn: function (){
54
54
  var self=this;
55
- return false;
56
- }
55
+ return smalltalk.withContext(function($ctx1) {
56
+ }, function($ctx1) {$ctx1.fill(self,"isBlockSequenceNode",{}, smalltalk.Node)})}
57
+ }),
58
+ smalltalk.Node);
59
+
60
+ smalltalk.addMethod(
61
+ "_isImmutable",
62
+ smalltalk.method({
63
+ selector: "isImmutable",
64
+ fn: function (){
65
+ var self=this;
66
+ return smalltalk.withContext(function($ctx1) {
67
+ }, function($ctx1) {$ctx1.fill(self,"isImmutable",{}, smalltalk.Node)})}
68
+ }),
69
+ smalltalk.Node);
70
+
71
+ smalltalk.addMethod(
72
+ "_isNode",
73
+ smalltalk.method({
74
+ selector: "isNode",
75
+ fn: function (){
76
+ var self=this;
77
+ return smalltalk.withContext(function($ctx1) {
78
+ }, function($ctx1) {$ctx1.fill(self,"isNode",{}, smalltalk.Node)})}
57
79
  }),
58
80
  smalltalk.Node);
59
81
 
@@ -63,8 +85,8 @@ smalltalk.method({
63
85
  selector: "isReturnNode",
64
86
  fn: function (){
65
87
  var self=this;
66
- return false;
67
- }
88
+ return smalltalk.withContext(function($ctx1) {
89
+ }, function($ctx1) {$ctx1.fill(self,"isReturnNode",{}, smalltalk.Node)})}
68
90
  }),
69
91
  smalltalk.Node);
70
92
 
@@ -74,8 +96,8 @@ smalltalk.method({
74
96
  selector: "isSendNode",
75
97
  fn: function (){
76
98
  var self=this;
77
- return false;
78
- }
99
+ return smalltalk.withContext(function($ctx1) {
100
+ }, function($ctx1) {$ctx1.fill(self,"isSendNode",{}, smalltalk.Node)})}
79
101
  }),
80
102
  smalltalk.Node);
81
103
 
@@ -85,8 +107,8 @@ smalltalk.method({
85
107
  selector: "isValueNode",
86
108
  fn: function (){
87
109
  var self=this;
88
- return false;
89
- }
110
+ return smalltalk.withContext(function($ctx1) {
111
+ }, function($ctx1) {$ctx1.fill(self,"isValueNode",{}, smalltalk.Node)})}
90
112
  }),
91
113
  smalltalk.Node);
92
114
 
@@ -96,15 +118,16 @@ smalltalk.method({
96
118
  selector: "nodes",
97
119
  fn: function (){
98
120
  var self=this;
99
- var $1;
100
- if(($receiver = self["@nodes"]) == nil || $receiver == undefined){
101
- self["@nodes"]=smalltalk.send((smalltalk.Array || Array),"_new",[]);
121
+ return smalltalk.withContext(function($ctx1) {
122
+ $2=self["@nodes"];
123
+ if(($receiver = $2) == nil || $receiver == undefined){
124
+ self["@nodes"]=_st((smalltalk.Array || Array))._new();
102
125
  $1=self["@nodes"];
103
126
  } else {
104
- $1=self["@nodes"];
127
+ $1=$2;
105
128
  };
106
129
  return $1;
107
- }
130
+ }, function($ctx1) {$ctx1.fill(self,"nodes",{}, smalltalk.Node)})}
108
131
  }),
109
132
  smalltalk.Node);
110
133
 
@@ -114,8 +137,38 @@ smalltalk.method({
114
137
  selector: "nodes:",
115
138
  fn: function (aCollection){
116
139
  var self=this;
117
- self["@nodes"]=aCollection;
118
- return self}
140
+ return smalltalk.withContext(function($ctx1) {
141
+ return self}, function($ctx1) {$ctx1.fill(self,"nodes:",{aCollection:aCollection}, smalltalk.Node)})}
142
+ }),
143
+ smalltalk.Node);
144
+
145
+ smalltalk.addMethod(
146
+ "_position",
147
+ smalltalk.method({
148
+ selector: "position",
149
+ fn: function (){
150
+ var self=this;
151
+ return smalltalk.withContext(function($ctx1) {
152
+ $2=self["@position"];
153
+ if(($receiver = $2) == nil || $receiver == undefined){
154
+ self["@position"]=_st((0)).__at((0));
155
+ $1=self["@position"];
156
+ } else {
157
+ $1=$2;
158
+ };
159
+ return $1;
160
+ }, function($ctx1) {$ctx1.fill(self,"position",{}, smalltalk.Node)})}
161
+ }),
162
+ smalltalk.Node);
163
+
164
+ smalltalk.addMethod(
165
+ "_position_",
166
+ smalltalk.method({
167
+ selector: "position:",
168
+ fn: function (aPosition){
169
+ var self=this;
170
+ return smalltalk.withContext(function($ctx1) {
171
+ return self}, function($ctx1) {$ctx1.fill(self,"position:",{aPosition:aPosition}, smalltalk.Node)})}
119
172
  }),
120
173
  smalltalk.Node);
121
174
 
@@ -125,14 +178,15 @@ smalltalk.method({
125
178
  selector: "shouldBeAliased",
126
179
  fn: function (){
127
180
  var self=this;
128
- var $1;
129
- if(($receiver = self["@shouldBeAliased"]) == nil || $receiver == undefined){
181
+ return smalltalk.withContext(function($ctx1) {
182
+ $2=self["@shouldBeAliased"];
183
+ if(($receiver = $2) == nil || $receiver == undefined){
130
184
  $1=false;
131
185
  } else {
132
- $1=self["@shouldBeAliased"];
186
+ $1=$2;
133
187
  };
134
188
  return $1;
135
- }
189
+ }, function($ctx1) {$ctx1.fill(self,"shouldBeAliased",{}, smalltalk.Node)})}
136
190
  }),
137
191
  smalltalk.Node);
138
192
 
@@ -142,8 +196,8 @@ smalltalk.method({
142
196
  selector: "shouldBeAliased:",
143
197
  fn: function (aBoolean){
144
198
  var self=this;
145
- self["@shouldBeAliased"]=aBoolean;
146
- return self}
199
+ return smalltalk.withContext(function($ctx1) {
200
+ return self}, function($ctx1) {$ctx1.fill(self,"shouldBeAliased:",{aBoolean:aBoolean}, smalltalk.Node)})}
147
201
  }),
148
202
  smalltalk.Node);
149
203
 
@@ -153,14 +207,15 @@ smalltalk.method({
153
207
  selector: "shouldBeInlined",
154
208
  fn: function (){
155
209
  var self=this;
156
- var $1;
157
- if(($receiver = self["@shouldBeInlined"]) == nil || $receiver == undefined){
210
+ return smalltalk.withContext(function($ctx1) {
211
+ $2=self["@shouldBeInlined"];
212
+ if(($receiver = $2) == nil || $receiver == undefined){
158
213
  $1=false;
159
214
  } else {
160
- $1=self["@shouldBeInlined"];
215
+ $1=$2;
161
216
  };
162
217
  return $1;
163
- }
218
+ }, function($ctx1) {$ctx1.fill(self,"shouldBeInlined",{}, smalltalk.Node)})}
164
219
  }),
165
220
  smalltalk.Node);
166
221
 
@@ -170,8 +225,29 @@ smalltalk.method({
170
225
  selector: "shouldBeInlined:",
171
226
  fn: function (aBoolean){
172
227
  var self=this;
173
- self["@shouldBeInlined"]=aBoolean;
174
- return self}
228
+ return smalltalk.withContext(function($ctx1) {
229
+ return self}, function($ctx1) {$ctx1.fill(self,"shouldBeInlined:",{aBoolean:aBoolean}, smalltalk.Node)})}
230
+ }),
231
+ smalltalk.Node);
232
+
233
+ smalltalk.addMethod(
234
+ "_subtreeNeedsAliasing",
235
+ smalltalk.method({
236
+ selector: "subtreeNeedsAliasing",
237
+ fn: function (){
238
+ var self=this;
239
+ return smalltalk.withContext(function($ctx1) {
240
+ $1=_st(_st(_st(self)._shouldBeAliased())._or_((function(){
241
+ return smalltalk.withContext(function($ctx2) {
242
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._or_((function(){
243
+ return smalltalk.withContext(function($ctx2) {
244
+ return smalltalk.withContext(function($ctx3) {
245
+ }, function($ctx3) {$ctx3.fillBlock({each:each},$ctx1)})}),(function(){
246
+ return smalltalk.withContext(function($ctx3) {
247
+ }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}))).__tild_eq(false);
248
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
249
+ return $1;
250
+ }, function($ctx1) {$ctx1.fill(self,"subtreeNeedsAliasing",{}, smalltalk.Node)})}
175
251
  }),
176
252
  smalltalk.Node);
177
253
 
@@ -184,10 +260,10 @@ smalltalk.method({
184
260
  selector: "accept:",
185
261
  fn: function (aVisitor){
186
262
  var self=this;
187
- var $1;
188
- $1=smalltalk.send(aVisitor,"_visitAssignmentNode_",[self]);
263
+ return smalltalk.withContext(function($ctx1) {
264
+ $1=_st(aVisitor)._visitAssignmentNode_(self);
189
265
  return $1;
190
- }
266
+ }, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.AssignmentNode)})}
191
267
  }),
192
268
  smalltalk.AssignmentNode);
193
269
 
@@ -197,8 +273,8 @@ smalltalk.method({
197
273
  selector: "isAssignmentNode",
198
274
  fn: function (){
199
275
  var self=this;
200
- return true;
201
- }
276
+ return smalltalk.withContext(function($ctx1) {
277
+ }, function($ctx1) {$ctx1.fill(self,"isAssignmentNode",{}, smalltalk.AssignmentNode)})}
202
278
  }),
203
279
  smalltalk.AssignmentNode);
204
280
 
@@ -208,8 +284,10 @@ smalltalk.method({
208
284
  selector: "left",
209
285
  fn: function (){
210
286
  var self=this;
211
- return self["@left"];
212
- }
287
+ return smalltalk.withContext(function($ctx1) {
288
+ $1=self["@left"];
289
+ return $1;
290
+ }, function($ctx1) {$ctx1.fill(self,"left",{}, smalltalk.AssignmentNode)})}
213
291
  }),
214
292
  smalltalk.AssignmentNode);
215
293
 
@@ -219,8 +297,8 @@ smalltalk.method({
219
297
  selector: "left:",
220
298
  fn: function (aNode){
221
299
  var self=this;
222
- self["@left"]=aNode;
223
- return self}
300
+ return smalltalk.withContext(function($ctx1) {
301
+ return self}, function($ctx1) {$ctx1.fill(self,"left:",{aNode:aNode}, smalltalk.AssignmentNode)})}
224
302
  }),
225
303
  smalltalk.AssignmentNode);
226
304
 
@@ -230,10 +308,10 @@ smalltalk.method({
230
308
  selector: "nodes",
231
309
  fn: function (){
232
310
  var self=this;
233
- var $1;
234
- $1=smalltalk.send((smalltalk.Array || Array),"_with_with_",[smalltalk.send(self,"_left",[]),smalltalk.send(self,"_right",[])]);
311
+ return smalltalk.withContext(function($ctx1) {
312
+ $1=_st((smalltalk.Array || Array))._with_with_(_st(self)._left(),_st(self)._right());
235
313
  return $1;
236
- }
314
+ }, function($ctx1) {$ctx1.fill(self,"nodes",{}, smalltalk.AssignmentNode)})}
237
315
  }),
238
316
  smalltalk.AssignmentNode);
239
317
 
@@ -243,8 +321,10 @@ smalltalk.method({
243
321
  selector: "right",
244
322
  fn: function (){
245
323
  var self=this;
246
- return self["@right"];
247
- }
324
+ return smalltalk.withContext(function($ctx1) {
325
+ $1=self["@right"];
326
+ return $1;
327
+ }, function($ctx1) {$ctx1.fill(self,"right",{}, smalltalk.AssignmentNode)})}
248
328
  }),
249
329
  smalltalk.AssignmentNode);
250
330
 
@@ -254,8 +334,8 @@ smalltalk.method({
254
334
  selector: "right:",
255
335
  fn: function (aNode){
256
336
  var self=this;
257
- self["@right"]=aNode;
258
- return self}
337
+ return smalltalk.withContext(function($ctx1) {
338
+ return self}, function($ctx1) {$ctx1.fill(self,"right:",{aNode:aNode}, smalltalk.AssignmentNode)})}
259
339
  }),
260
340
  smalltalk.AssignmentNode);
261
341
 
@@ -268,10 +348,10 @@ smalltalk.method({
268
348
  selector: "accept:",
269
349
  fn: function (aVisitor){
270
350
  var self=this;
271
- var $1;
272
- $1=smalltalk.send(aVisitor,"_visitBlockNode_",[self]);
351
+ return smalltalk.withContext(function($ctx1) {
352
+ $1=_st(aVisitor)._visitBlockNode_(self);
273
353
  return $1;
274
- }
354
+ }, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.BlockNode)})}
275
355
  }),
276
356
  smalltalk.BlockNode);
277
357
 
@@ -281,8 +361,8 @@ smalltalk.method({
281
361
  selector: "isBlockNode",
282
362
  fn: function (){
283
363
  var self=this;
284
- return true;
285
- }
364
+ return smalltalk.withContext(function($ctx1) {
365
+ }, function($ctx1) {$ctx1.fill(self,"isBlockNode",{}, smalltalk.BlockNode)})}
286
366
  }),
287
367
  smalltalk.BlockNode);
288
368
 
@@ -292,15 +372,16 @@ smalltalk.method({
292
372
  selector: "parameters",
293
373
  fn: function (){
294
374
  var self=this;
295
- var $1;
296
- if(($receiver = self["@parameters"]) == nil || $receiver == undefined){
297
- self["@parameters"]=smalltalk.send((smalltalk.Array || Array),"_new",[]);
375
+ return smalltalk.withContext(function($ctx1) {
376
+ $2=self["@parameters"];
377
+ if(($receiver = $2) == nil || $receiver == undefined){
378
+ self["@parameters"]=_st((smalltalk.Array || Array))._new();
298
379
  $1=self["@parameters"];
299
380
  } else {
300
- $1=self["@parameters"];
381
+ $1=$2;
301
382
  };
302
383
  return $1;
303
- }
384
+ }, function($ctx1) {$ctx1.fill(self,"parameters",{}, smalltalk.BlockNode)})}
304
385
  }),
305
386
  smalltalk.BlockNode);
306
387
 
@@ -310,8 +391,8 @@ smalltalk.method({
310
391
  selector: "parameters:",
311
392
  fn: function (aCollection){
312
393
  var self=this;
313
- self["@parameters"]=aCollection;
314
- return self}
394
+ return smalltalk.withContext(function($ctx1) {
395
+ return self}, function($ctx1) {$ctx1.fill(self,"parameters:",{aCollection:aCollection}, smalltalk.BlockNode)})}
315
396
  }),
316
397
  smalltalk.BlockNode);
317
398
 
@@ -321,8 +402,10 @@ smalltalk.method({
321
402
  selector: "scope",
322
403
  fn: function (){
323
404
  var self=this;
324
- return self["@scope"];
325
- }
405
+ return smalltalk.withContext(function($ctx1) {
406
+ $1=self["@scope"];
407
+ return $1;
408
+ }, function($ctx1) {$ctx1.fill(self,"scope",{}, smalltalk.BlockNode)})}
326
409
  }),
327
410
  smalltalk.BlockNode);
328
411
 
@@ -332,8 +415,23 @@ smalltalk.method({
332
415
  selector: "scope:",
333
416
  fn: function (aLexicalScope){
334
417
  var self=this;
335
- self["@scope"]=aLexicalScope;
336
- return self}
418
+ return smalltalk.withContext(function($ctx1) {
419
+ return self}, function($ctx1) {$ctx1.fill(self,"scope:",{aLexicalScope:aLexicalScope}, smalltalk.BlockNode)})}
420
+ }),
421
+ smalltalk.BlockNode);
422
+
423
+ smalltalk.addMethod(
424
+ "_subtreeNeedsAliasing",
425
+ smalltalk.method({
426
+ selector: "subtreeNeedsAliasing",
427
+ fn: function (){
428
+ var self=this;
429
+ return smalltalk.withContext(function($ctx1) {
430
+ $1=_st(_st(self)._shouldBeAliased())._or_((function(){
431
+ return smalltalk.withContext(function($ctx2) {
432
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
433
+ return $1;
434
+ }, function($ctx1) {$ctx1.fill(self,"subtreeNeedsAliasing",{}, smalltalk.BlockNode)})}
337
435
  }),
338
436
  smalltalk.BlockNode);
339
437
 
@@ -346,10 +444,10 @@ smalltalk.method({
346
444
  selector: "accept:",
347
445
  fn: function (aVisitor){
348
446
  var self=this;
349
- var $1;
350
- $1=smalltalk.send(aVisitor,"_visitCascadeNode_",[self]);
447
+ return smalltalk.withContext(function($ctx1) {
448
+ $1=_st(aVisitor)._visitCascadeNode_(self);
351
449
  return $1;
352
- }
450
+ }, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.CascadeNode)})}
353
451
  }),
354
452
  smalltalk.CascadeNode);
355
453
 
@@ -359,8 +457,10 @@ smalltalk.method({
359
457
  selector: "receiver",
360
458
  fn: function (){
361
459
  var self=this;
362
- return self["@receiver"];
363
- }
460
+ return smalltalk.withContext(function($ctx1) {
461
+ $1=self["@receiver"];
462
+ return $1;
463
+ }, function($ctx1) {$ctx1.fill(self,"receiver",{}, smalltalk.CascadeNode)})}
364
464
  }),
365
465
  smalltalk.CascadeNode);
366
466
 
@@ -370,8 +470,8 @@ smalltalk.method({
370
470
  selector: "receiver:",
371
471
  fn: function (aNode){
372
472
  var self=this;
373
- self["@receiver"]=aNode;
374
- return self}
473
+ return smalltalk.withContext(function($ctx1) {
474
+ return self}, function($ctx1) {$ctx1.fill(self,"receiver:",{aNode:aNode}, smalltalk.CascadeNode)})}
375
475
  }),
376
476
  smalltalk.CascadeNode);
377
477
 
@@ -384,10 +484,10 @@ smalltalk.method({
384
484
  selector: "accept:",
385
485
  fn: function (aVisitor){
386
486
  var self=this;
387
- var $1;
388
- $1=smalltalk.send(aVisitor,"_visitDynamicArrayNode_",[self]);
487
+ return smalltalk.withContext(function($ctx1) {
488
+ $1=_st(aVisitor)._visitDynamicArrayNode_(self);
389
489
  return $1;
390
- }
490
+ }, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.DynamicArrayNode)})}
391
491
  }),
392
492
  smalltalk.DynamicArrayNode);
393
493
 
@@ -400,10 +500,10 @@ smalltalk.method({
400
500
  selector: "accept:",
401
501
  fn: function (aVisitor){
402
502
  var self=this;
403
- var $1;
404
- $1=smalltalk.send(aVisitor,"_visitDynamicDictionaryNode_",[self]);
503
+ return smalltalk.withContext(function($ctx1) {
504
+ $1=_st(aVisitor)._visitDynamicDictionaryNode_(self);
405
505
  return $1;
406
- }
506
+ }, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.DynamicDictionaryNode)})}
407
507
  }),
408
508
  smalltalk.DynamicDictionaryNode);
409
509
 
@@ -416,10 +516,10 @@ smalltalk.method({
416
516
  selector: "accept:",
417
517
  fn: function (aVisitor){
418
518
  var self=this;
419
- var $1;
420
- $1=smalltalk.send(aVisitor,"_visitJSStatementNode_",[self]);
519
+ return smalltalk.withContext(function($ctx1) {
520
+ $1=_st(aVisitor)._visitJSStatementNode_(self);
421
521
  return $1;
422
- }
522
+ }, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.JSStatementNode)})}
423
523
  }),
424
524
  smalltalk.JSStatementNode);
425
525
 
@@ -429,14 +529,15 @@ smalltalk.method({
429
529
  selector: "source",
430
530
  fn: function (){
431
531
  var self=this;
432
- var $1;
433
- if(($receiver = self["@source"]) == nil || $receiver == undefined){
532
+ return smalltalk.withContext(function($ctx1) {
533
+ $2=self["@source"];
534
+ if(($receiver = $2) == nil || $receiver == undefined){
434
535
  $1="";
435
536
  } else {
436
- $1=self["@source"];
537
+ $1=$2;
437
538
  };
438
539
  return $1;
439
- }
540
+ }, function($ctx1) {$ctx1.fill(self,"source",{}, smalltalk.JSStatementNode)})}
440
541
  }),
441
542
  smalltalk.JSStatementNode);
442
543
 
@@ -446,24 +547,24 @@ smalltalk.method({
446
547
  selector: "source:",
447
548
  fn: function (aString){
448
549
  var self=this;
449
- self["@source"]=aString;
450
- return self}
550
+ return smalltalk.withContext(function($ctx1) {
551
+ return self}, function($ctx1) {$ctx1.fill(self,"source:",{aString:aString}, smalltalk.JSStatementNode)})}
451
552
  }),
452
553
  smalltalk.JSStatementNode);
453
554
 
454
555
 
455
556
 
456
- smalltalk.addClass('MethodNode', smalltalk.Node, ['selector', 'arguments', 'source', 'scope', 'classReferences', 'messageSends'], 'Compiler-AST');
557
+ smalltalk.addClass('MethodNode', smalltalk.Node, ['selector', 'arguments', 'source', 'scope', 'classReferences', 'messageSends', 'superSends'], 'Compiler-AST');
457
558
  smalltalk.addMethod(
458
559
  "_accept_",
459
560
  smalltalk.method({
460
561
  selector: "accept:",
461
562
  fn: function (aVisitor){
462
563
  var self=this;
463
- var $1;
464
- $1=smalltalk.send(aVisitor,"_visitMethodNode_",[self]);
564
+ return smalltalk.withContext(function($ctx1) {
565
+ $1=_st(aVisitor)._visitMethodNode_(self);
465
566
  return $1;
466
- }
567
+ }, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.MethodNode)})}
467
568
  }),
468
569
  smalltalk.MethodNode);
469
570
 
@@ -473,14 +574,15 @@ smalltalk.method({
473
574
  selector: "arguments",
474
575
  fn: function (){
475
576
  var self=this;
476
- var $1;
477
- if(($receiver = self["@arguments"]) == nil || $receiver == undefined){
577
+ return smalltalk.withContext(function($ctx1) {
578
+ $2=self["@arguments"];
579
+ if(($receiver = $2) == nil || $receiver == undefined){
478
580
  $1=[];
479
581
  } else {
480
- $1=self["@arguments"];
582
+ $1=$2;
481
583
  };
482
584
  return $1;
483
- }
585
+ }, function($ctx1) {$ctx1.fill(self,"arguments",{}, smalltalk.MethodNode)})}
484
586
  }),
485
587
  smalltalk.MethodNode);
486
588
 
@@ -490,8 +592,8 @@ smalltalk.method({
490
592
  selector: "arguments:",
491
593
  fn: function (aCollection){
492
594
  var self=this;
493
- self["@arguments"]=aCollection;
494
- return self}
595
+ return smalltalk.withContext(function($ctx1) {
596
+ return self}, function($ctx1) {$ctx1.fill(self,"arguments:",{aCollection:aCollection}, smalltalk.MethodNode)})}
495
597
  }),
496
598
  smalltalk.MethodNode);
497
599
 
@@ -501,8 +603,10 @@ smalltalk.method({
501
603
  selector: "classReferences",
502
604
  fn: function (){
503
605
  var self=this;
504
- return self["@classReferences"];
505
- }
606
+ return smalltalk.withContext(function($ctx1) {
607
+ $1=self["@classReferences"];
608
+ return $1;
609
+ }, function($ctx1) {$ctx1.fill(self,"classReferences",{}, smalltalk.MethodNode)})}
506
610
  }),
507
611
  smalltalk.MethodNode);
508
612
 
@@ -512,8 +616,8 @@ smalltalk.method({
512
616
  selector: "classReferences:",
513
617
  fn: function (aCollection){
514
618
  var self=this;
515
- self["@classReferences"]=aCollection;
516
- return self}
619
+ return smalltalk.withContext(function($ctx1) {
620
+ return self}, function($ctx1) {$ctx1.fill(self,"classReferences:",{aCollection:aCollection}, smalltalk.MethodNode)})}
517
621
  }),
518
622
  smalltalk.MethodNode);
519
623
 
@@ -523,8 +627,10 @@ smalltalk.method({
523
627
  selector: "messageSends",
524
628
  fn: function (){
525
629
  var self=this;
526
- return self["@messageSends"];
527
- }
630
+ return smalltalk.withContext(function($ctx1) {
631
+ $1=self["@messageSends"];
632
+ return $1;
633
+ }, function($ctx1) {$ctx1.fill(self,"messageSends",{}, smalltalk.MethodNode)})}
528
634
  }),
529
635
  smalltalk.MethodNode);
530
636
 
@@ -534,8 +640,8 @@ smalltalk.method({
534
640
  selector: "messageSends:",
535
641
  fn: function (aCollection){
536
642
  var self=this;
537
- self["@messageSends"]=aCollection;
538
- return self}
643
+ return smalltalk.withContext(function($ctx1) {
644
+ return self}, function($ctx1) {$ctx1.fill(self,"messageSends:",{aCollection:aCollection}, smalltalk.MethodNode)})}
539
645
  }),
540
646
  smalltalk.MethodNode);
541
647
 
@@ -545,8 +651,10 @@ smalltalk.method({
545
651
  selector: "scope",
546
652
  fn: function (){
547
653
  var self=this;
548
- return self["@scope"];
549
- }
654
+ return smalltalk.withContext(function($ctx1) {
655
+ $1=self["@scope"];
656
+ return $1;
657
+ }, function($ctx1) {$ctx1.fill(self,"scope",{}, smalltalk.MethodNode)})}
550
658
  }),
551
659
  smalltalk.MethodNode);
552
660
 
@@ -556,8 +664,8 @@ smalltalk.method({
556
664
  selector: "scope:",
557
665
  fn: function (aMethodScope){
558
666
  var self=this;
559
- self["@scope"]=aMethodScope;
560
- return self}
667
+ return smalltalk.withContext(function($ctx1) {
668
+ return self}, function($ctx1) {$ctx1.fill(self,"scope:",{aMethodScope:aMethodScope}, smalltalk.MethodNode)})}
561
669
  }),
562
670
  smalltalk.MethodNode);
563
671
 
@@ -567,8 +675,10 @@ smalltalk.method({
567
675
  selector: "selector",
568
676
  fn: function (){
569
677
  var self=this;
570
- return self["@selector"];
571
- }
678
+ return smalltalk.withContext(function($ctx1) {
679
+ $1=self["@selector"];
680
+ return $1;
681
+ }, function($ctx1) {$ctx1.fill(self,"selector",{}, smalltalk.MethodNode)})}
572
682
  }),
573
683
  smalltalk.MethodNode);
574
684
 
@@ -578,8 +688,8 @@ smalltalk.method({
578
688
  selector: "selector:",
579
689
  fn: function (aString){
580
690
  var self=this;
581
- self["@selector"]=aString;
582
- return self}
691
+ return smalltalk.withContext(function($ctx1) {
692
+ return self}, function($ctx1) {$ctx1.fill(self,"selector:",{aString:aString}, smalltalk.MethodNode)})}
583
693
  }),
584
694
  smalltalk.MethodNode);
585
695
 
@@ -589,8 +699,10 @@ smalltalk.method({
589
699
  selector: "source",
590
700
  fn: function (){
591
701
  var self=this;
592
- return self["@source"];
593
- }
702
+ return smalltalk.withContext(function($ctx1) {
703
+ $1=self["@source"];
704
+ return $1;
705
+ }, function($ctx1) {$ctx1.fill(self,"source",{}, smalltalk.MethodNode)})}
594
706
  }),
595
707
  smalltalk.MethodNode);
596
708
 
@@ -600,8 +712,32 @@ smalltalk.method({
600
712
  selector: "source:",
601
713
  fn: function (aString){
602
714
  var self=this;
603
- self["@source"]=aString;
604
- return self}
715
+ return smalltalk.withContext(function($ctx1) {
716
+ return self}, function($ctx1) {$ctx1.fill(self,"source:",{aString:aString}, smalltalk.MethodNode)})}
717
+ }),
718
+ smalltalk.MethodNode);
719
+
720
+ smalltalk.addMethod(
721
+ "_superSends",
722
+ smalltalk.method({
723
+ selector: "superSends",
724
+ fn: function (){
725
+ var self=this;
726
+ return smalltalk.withContext(function($ctx1) {
727
+ $1=self["@superSends"];
728
+ return $1;
729
+ }, function($ctx1) {$ctx1.fill(self,"superSends",{}, smalltalk.MethodNode)})}
730
+ }),
731
+ smalltalk.MethodNode);
732
+
733
+ smalltalk.addMethod(
734
+ "_superSends_",
735
+ smalltalk.method({
736
+ selector: "superSends:",
737
+ fn: function (aCollection){
738
+ var self=this;
739
+ return smalltalk.withContext(function($ctx1) {
740
+ return self}, function($ctx1) {$ctx1.fill(self,"superSends:",{aCollection:aCollection}, smalltalk.MethodNode)})}
605
741
  }),
606
742
  smalltalk.MethodNode);
607
743
 
@@ -614,10 +750,10 @@ smalltalk.method({
614
750
  selector: "accept:",
615
751
  fn: function (aVisitor){
616
752
  var self=this;
617
- var $1;
618
- $1=smalltalk.send(aVisitor,"_visitReturnNode_",[self]);
753
+ return smalltalk.withContext(function($ctx1) {
754
+ $1=_st(aVisitor)._visitReturnNode_(self);
619
755
  return $1;
620
- }
756
+ }, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.ReturnNode)})}
621
757
  }),
622
758
  smalltalk.ReturnNode);
623
759
 
@@ -627,8 +763,8 @@ smalltalk.method({
627
763
  selector: "isReturnNode",
628
764
  fn: function (){
629
765
  var self=this;
630
- return true;
631
- }
766
+ return smalltalk.withContext(function($ctx1) {
767
+ }, function($ctx1) {$ctx1.fill(self,"isReturnNode",{}, smalltalk.ReturnNode)})}
632
768
  }),
633
769
  smalltalk.ReturnNode);
634
770
 
@@ -638,10 +774,10 @@ smalltalk.method({
638
774
  selector: "nonLocalReturn",
639
775
  fn: function (){
640
776
  var self=this;
641
- var $1;
642
- $1=smalltalk.send(smalltalk.send(smalltalk.send(self,"_scope",[]),"_isMethodScope",[]),"_not",[]);
777
+ return smalltalk.withContext(function($ctx1) {
778
+ $1=_st(_st(_st(self)._scope())._isMethodScope())._not();
643
779
  return $1;
644
- }
780
+ }, function($ctx1) {$ctx1.fill(self,"nonLocalReturn",{}, smalltalk.ReturnNode)})}
645
781
  }),
646
782
  smalltalk.ReturnNode);
647
783
 
@@ -651,8 +787,10 @@ smalltalk.method({
651
787
  selector: "scope",
652
788
  fn: function (){
653
789
  var self=this;
654
- return self["@scope"];
655
- }
790
+ return smalltalk.withContext(function($ctx1) {
791
+ $1=self["@scope"];
792
+ return $1;
793
+ }, function($ctx1) {$ctx1.fill(self,"scope",{}, smalltalk.ReturnNode)})}
656
794
  }),
657
795
  smalltalk.ReturnNode);
658
796
 
@@ -662,8 +800,8 @@ smalltalk.method({
662
800
  selector: "scope:",
663
801
  fn: function (aLexicalScope){
664
802
  var self=this;
665
- self["@scope"]=aLexicalScope;
666
- return self}
803
+ return smalltalk.withContext(function($ctx1) {
804
+ return self}, function($ctx1) {$ctx1.fill(self,"scope:",{aLexicalScope:aLexicalScope}, smalltalk.ReturnNode)})}
667
805
  }),
668
806
  smalltalk.ReturnNode);
669
807
 
@@ -676,10 +814,10 @@ smalltalk.method({
676
814
  selector: "accept:",
677
815
  fn: function (aVisitor){
678
816
  var self=this;
679
- var $1;
680
- $1=smalltalk.send(aVisitor,"_visitSendNode_",[self]);
817
+ return smalltalk.withContext(function($ctx1) {
818
+ $1=_st(aVisitor)._visitSendNode_(self);
681
819
  return $1;
682
- }
820
+ }, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.SendNode)})}
683
821
  }),
684
822
  smalltalk.SendNode);
685
823
 
@@ -689,15 +827,16 @@ smalltalk.method({
689
827
  selector: "arguments",
690
828
  fn: function (){
691
829
  var self=this;
692
- var $1;
693
- if(($receiver = self["@arguments"]) == nil || $receiver == undefined){
830
+ return smalltalk.withContext(function($ctx1) {
831
+ $2=self["@arguments"];
832
+ if(($receiver = $2) == nil || $receiver == undefined){
694
833
  self["@arguments"]=[];
695
834
  $1=self["@arguments"];
696
835
  } else {
697
- $1=self["@arguments"];
836
+ $1=$2;
698
837
  };
699
838
  return $1;
700
- }
839
+ }, function($ctx1) {$ctx1.fill(self,"arguments",{}, smalltalk.SendNode)})}
701
840
  }),
702
841
  smalltalk.SendNode);
703
842
 
@@ -707,8 +846,8 @@ smalltalk.method({
707
846
  selector: "arguments:",
708
847
  fn: function (aCollection){
709
848
  var self=this;
710
- self["@arguments"]=aCollection;
711
- return self}
849
+ return smalltalk.withContext(function($ctx1) {
850
+ return self}, function($ctx1) {$ctx1.fill(self,"arguments:",{aCollection:aCollection}, smalltalk.SendNode)})}
712
851
  }),
713
852
  smalltalk.SendNode);
714
853
 
@@ -718,20 +857,20 @@ smalltalk.method({
718
857
  selector: "cascadeNodeWithMessages:",
719
858
  fn: function (aCollection){
720
859
  var self=this;
721
- var $1,$2,$4,$5,$3;
722
860
  var first;
723
- $1=smalltalk.send((smalltalk.SendNode || SendNode),"_new",[]);
724
- smalltalk.send($1,"_selector_",[smalltalk.send(self,"_selector",[])]);
725
- smalltalk.send($1,"_arguments_",[smalltalk.send(self,"_arguments",[])]);
726
- $2=smalltalk.send($1,"_yourself",[]);
861
+ return smalltalk.withContext(function($ctx1) {
862
+ $1=_st((smalltalk.SendNode || SendNode))._new();
863
+ _st($1)._selector_(_st(self)._selector());
864
+ _st($1)._arguments_(_st(self)._arguments());
865
+ $2=_st($1)._yourself();
727
866
  first=$2;
728
- $4=smalltalk.send((smalltalk.CascadeNode || CascadeNode),"_new",[]);
729
- smalltalk.send($4,"_receiver_",[smalltalk.send(self,"_receiver",[])]);
730
- smalltalk.send($4,"_nodes_",[smalltalk.send(smalltalk.send((smalltalk.Array || Array),"_with_",[first]),"__comma",[aCollection])]);
731
- $5=smalltalk.send($4,"_yourself",[]);
867
+ $4=_st((smalltalk.CascadeNode || CascadeNode))._new();
868
+ _st($4)._receiver_(_st(self)._receiver());
869
+ _st($4)._nodes_(_st(_st((smalltalk.Array || Array))._with_(first)).__comma(aCollection));
870
+ $5=_st($4)._yourself();
732
871
  $3=$5;
733
872
  return $3;
734
- }
873
+ }, function($ctx1) {$ctx1.fill(self,"cascadeNodeWithMessages:",{aCollection:aCollection,first:first}, smalltalk.SendNode)})}
735
874
  }),
736
875
  smalltalk.SendNode);
737
876
 
@@ -741,8 +880,10 @@ smalltalk.method({
741
880
  selector: "index",
742
881
  fn: function (){
743
882
  var self=this;
744
- return self["@index"];
745
- }
883
+ return smalltalk.withContext(function($ctx1) {
884
+ $1=self["@index"];
885
+ return $1;
886
+ }, function($ctx1) {$ctx1.fill(self,"index",{}, smalltalk.SendNode)})}
746
887
  }),
747
888
  smalltalk.SendNode);
748
889
 
@@ -752,8 +893,8 @@ smalltalk.method({
752
893
  selector: "index:",
753
894
  fn: function (anInteger){
754
895
  var self=this;
755
- self["@index"]=anInteger;
756
- return self}
896
+ return smalltalk.withContext(function($ctx1) {
897
+ return self}, function($ctx1) {$ctx1.fill(self,"index:",{anInteger:anInteger}, smalltalk.SendNode)})}
757
898
  }),
758
899
  smalltalk.SendNode);
759
900
 
@@ -763,8 +904,8 @@ smalltalk.method({
763
904
  selector: "isSendNode",
764
905
  fn: function (){
765
906
  var self=this;
766
- return true;
767
- }
907
+ return smalltalk.withContext(function($ctx1) {
908
+ }, function($ctx1) {$ctx1.fill(self,"isSendNode",{}, smalltalk.SendNode)})}
768
909
  }),
769
910
  smalltalk.SendNode);
770
911
 
@@ -774,13 +915,13 @@ smalltalk.method({
774
915
  selector: "nodes",
775
916
  fn: function (){
776
917
  var self=this;
777
- var $2,$3,$1;
778
- $2=smalltalk.send((smalltalk.Array || Array),"_withAll_",[smalltalk.send(self,"_arguments",[])]);
779
- smalltalk.send($2,"_add_",[smalltalk.send(self,"_receiver",[])]);
780
- $3=smalltalk.send($2,"_yourself",[]);
918
+ return smalltalk.withContext(function($ctx1) {
919
+ $2=_st((smalltalk.Array || Array))._withAll_(_st(self)._arguments());
920
+ _st($2)._add_(_st(self)._receiver());
921
+ $3=_st($2)._yourself();
781
922
  $1=$3;
782
923
  return $1;
783
- }
924
+ }, function($ctx1) {$ctx1.fill(self,"nodes",{}, smalltalk.SendNode)})}
784
925
  }),
785
926
  smalltalk.SendNode);
786
927
 
@@ -790,8 +931,10 @@ smalltalk.method({
790
931
  selector: "receiver",
791
932
  fn: function (){
792
933
  var self=this;
793
- return self["@receiver"];
794
- }
934
+ return smalltalk.withContext(function($ctx1) {
935
+ $1=self["@receiver"];
936
+ return $1;
937
+ }, function($ctx1) {$ctx1.fill(self,"receiver",{}, smalltalk.SendNode)})}
795
938
  }),
796
939
  smalltalk.SendNode);
797
940
 
@@ -801,8 +944,8 @@ smalltalk.method({
801
944
  selector: "receiver:",
802
945
  fn: function (aNode){
803
946
  var self=this;
804
- self["@receiver"]=aNode;
805
- return self}
947
+ return smalltalk.withContext(function($ctx1) {
948
+ return self}, function($ctx1) {$ctx1.fill(self,"receiver:",{aNode:aNode}, smalltalk.SendNode)})}
806
949
  }),
807
950
  smalltalk.SendNode);
808
951
 
@@ -812,8 +955,10 @@ smalltalk.method({
812
955
  selector: "selector",
813
956
  fn: function (){
814
957
  var self=this;
815
- return self["@selector"];
816
- }
958
+ return smalltalk.withContext(function($ctx1) {
959
+ $1=self["@selector"];
960
+ return $1;
961
+ }, function($ctx1) {$ctx1.fill(self,"selector",{}, smalltalk.SendNode)})}
817
962
  }),
818
963
  smalltalk.SendNode);
819
964
 
@@ -823,8 +968,8 @@ smalltalk.method({
823
968
  selector: "selector:",
824
969
  fn: function (aString){
825
970
  var self=this;
826
- self["@selector"]=aString;
827
- return self}
971
+ return smalltalk.withContext(function($ctx1) {
972
+ return self}, function($ctx1) {$ctx1.fill(self,"selector:",{aString:aString}, smalltalk.SendNode)})}
828
973
  }),
829
974
  smalltalk.SendNode);
830
975
 
@@ -834,14 +979,15 @@ smalltalk.method({
834
979
  selector: "superSend",
835
980
  fn: function (){
836
981
  var self=this;
837
- var $1;
838
- if(($receiver = self["@superSend"]) == nil || $receiver == undefined){
982
+ return smalltalk.withContext(function($ctx1) {
983
+ $2=self["@superSend"];
984
+ if(($receiver = $2) == nil || $receiver == undefined){
839
985
  $1=false;
840
986
  } else {
841
- $1=self["@superSend"];
987
+ $1=$2;
842
988
  };
843
989
  return $1;
844
- }
990
+ }, function($ctx1) {$ctx1.fill(self,"superSend",{}, smalltalk.SendNode)})}
845
991
  }),
846
992
  smalltalk.SendNode);
847
993
 
@@ -851,8 +997,8 @@ smalltalk.method({
851
997
  selector: "superSend:",
852
998
  fn: function (aBoolean){
853
999
  var self=this;
854
- self["@superSend"]=aBoolean;
855
- return self}
1000
+ return smalltalk.withContext(function($ctx1) {
1001
+ return self}, function($ctx1) {$ctx1.fill(self,"superSend:",{aBoolean:aBoolean}, smalltalk.SendNode)})}
856
1002
  }),
857
1003
  smalltalk.SendNode);
858
1004
 
@@ -862,21 +1008,22 @@ smalltalk.method({
862
1008
  selector: "valueForReceiver:",
863
1009
  fn: function (anObject){
864
1010
  var self=this;
865
- var $2,$4,$3,$5,$1;
866
- $2=smalltalk.send((smalltalk.SendNode || SendNode),"_new",[]);
867
- $4=smalltalk.send(self,"_receiver",[]);
868
- if(($receiver = $4) == nil || $receiver == undefined){
869
- $3=anObject;
1011
+ return smalltalk.withContext(function($ctx1) {
1012
+ $2=_st((smalltalk.SendNode || SendNode))._new();
1013
+ $3=$2;
1014
+ $5=_st(self)._receiver();
1015
+ if(($receiver = $5) == nil || $receiver == undefined){
1016
+ $4=anObject;
870
1017
  } else {
871
- $3=smalltalk.send(smalltalk.send(self,"_receiver",[]),"_valueForReceiver_",[anObject]);
1018
+ $4=_st(_st(self)._receiver())._valueForReceiver_(anObject);
872
1019
  };
873
- smalltalk.send($2,"_receiver_",[$3]);
874
- smalltalk.send($2,"_selector_",[smalltalk.send(self,"_selector",[])]);
875
- smalltalk.send($2,"_arguments_",[smalltalk.send(self,"_arguments",[])]);
876
- $5=smalltalk.send($2,"_yourself",[]);
877
- $1=$5;
1020
+ _st($3)._receiver_($4);
1021
+ _st($2)._selector_(_st(self)._selector());
1022
+ _st($2)._arguments_(_st(self)._arguments());
1023
+ $6=_st($2)._yourself();
1024
+ $1=$6;
878
1025
  return $1;
879
- }
1026
+ }, function($ctx1) {$ctx1.fill(self,"valueForReceiver:",{anObject:anObject}, smalltalk.SendNode)})}
880
1027
  }),
881
1028
  smalltalk.SendNode);
882
1029
 
@@ -889,10 +1036,10 @@ smalltalk.method({
889
1036
  selector: "accept:",
890
1037
  fn: function (aVisitor){
891
1038
  var self=this;
892
- var $1;
893
- $1=smalltalk.send(aVisitor,"_visitSequenceNode_",[self]);
1039
+ return smalltalk.withContext(function($ctx1) {
1040
+ $1=_st(aVisitor)._visitSequenceNode_(self);
894
1041
  return $1;
895
- }
1042
+ }, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.SequenceNode)})}
896
1043
  }),
897
1044
  smalltalk.SequenceNode);
898
1045
 
@@ -902,14 +1049,14 @@ smalltalk.method({
902
1049
  selector: "asBlockSequenceNode",
903
1050
  fn: function (){
904
1051
  var self=this;
905
- var $2,$3,$1;
906
- $2=smalltalk.send((smalltalk.BlockSequenceNode || BlockSequenceNode),"_new",[]);
907
- smalltalk.send($2,"_nodes_",[smalltalk.send(self,"_nodes",[])]);
908
- smalltalk.send($2,"_temps_",[smalltalk.send(self,"_temps",[])]);
909
- $3=smalltalk.send($2,"_yourself",[]);
1052
+ return smalltalk.withContext(function($ctx1) {
1053
+ $2=_st((smalltalk.BlockSequenceNode || BlockSequenceNode))._new();
1054
+ _st($2)._nodes_(_st(self)._nodes());
1055
+ _st($2)._temps_(_st(self)._temps());
1056
+ $3=_st($2)._yourself();
910
1057
  $1=$3;
911
1058
  return $1;
912
- }
1059
+ }, function($ctx1) {$ctx1.fill(self,"asBlockSequenceNode",{}, smalltalk.SequenceNode)})}
913
1060
  }),
914
1061
  smalltalk.SequenceNode);
915
1062
 
@@ -919,8 +1066,10 @@ smalltalk.method({
919
1066
  selector: "scope",
920
1067
  fn: function (){
921
1068
  var self=this;
922
- return self["@scope"];
923
- }
1069
+ return smalltalk.withContext(function($ctx1) {
1070
+ $1=self["@scope"];
1071
+ return $1;
1072
+ }, function($ctx1) {$ctx1.fill(self,"scope",{}, smalltalk.SequenceNode)})}
924
1073
  }),
925
1074
  smalltalk.SequenceNode);
926
1075
 
@@ -930,8 +1079,8 @@ smalltalk.method({
930
1079
  selector: "scope:",
931
1080
  fn: function (aLexicalScope){
932
1081
  var self=this;
933
- self["@scope"]=aLexicalScope;
934
- return self}
1082
+ return smalltalk.withContext(function($ctx1) {
1083
+ return self}, function($ctx1) {$ctx1.fill(self,"scope:",{aLexicalScope:aLexicalScope}, smalltalk.SequenceNode)})}
935
1084
  }),
936
1085
  smalltalk.SequenceNode);
937
1086
 
@@ -941,14 +1090,15 @@ smalltalk.method({
941
1090
  selector: "temps",
942
1091
  fn: function (){
943
1092
  var self=this;
944
- var $1;
945
- if(($receiver = self["@temps"]) == nil || $receiver == undefined){
1093
+ return smalltalk.withContext(function($ctx1) {
1094
+ $2=self["@temps"];
1095
+ if(($receiver = $2) == nil || $receiver == undefined){
946
1096
  $1=[];
947
1097
  } else {
948
- $1=self["@temps"];
1098
+ $1=$2;
949
1099
  };
950
1100
  return $1;
951
- }
1101
+ }, function($ctx1) {$ctx1.fill(self,"temps",{}, smalltalk.SequenceNode)})}
952
1102
  }),
953
1103
  smalltalk.SequenceNode);
954
1104
 
@@ -958,8 +1108,8 @@ smalltalk.method({
958
1108
  selector: "temps:",
959
1109
  fn: function (aCollection){
960
1110
  var self=this;
961
- self["@temps"]=aCollection;
962
- return self}
1111
+ return smalltalk.withContext(function($ctx1) {
1112
+ return self}, function($ctx1) {$ctx1.fill(self,"temps:",{aCollection:aCollection}, smalltalk.SequenceNode)})}
963
1113
  }),
964
1114
  smalltalk.SequenceNode);
965
1115
 
@@ -972,10 +1122,10 @@ smalltalk.method({
972
1122
  selector: "accept:",
973
1123
  fn: function (aVisitor){
974
1124
  var self=this;
975
- var $1;
976
- $1=smalltalk.send(aVisitor,"_visitBlockSequenceNode_",[self]);
1125
+ return smalltalk.withContext(function($ctx1) {
1126
+ $1=_st(aVisitor)._visitBlockSequenceNode_(self);
977
1127
  return $1;
978
- }
1128
+ }, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.BlockSequenceNode)})}
979
1129
  }),
980
1130
  smalltalk.BlockSequenceNode);
981
1131
 
@@ -985,8 +1135,8 @@ smalltalk.method({
985
1135
  selector: "isBlockSequenceNode",
986
1136
  fn: function (){
987
1137
  var self=this;
988
- return true;
989
- }
1138
+ return smalltalk.withContext(function($ctx1) {
1139
+ }, function($ctx1) {$ctx1.fill(self,"isBlockSequenceNode",{}, smalltalk.BlockSequenceNode)})}
990
1140
  }),
991
1141
  smalltalk.BlockSequenceNode);
992
1142
 
@@ -999,10 +1149,21 @@ smalltalk.method({
999
1149
  selector: "accept:",
1000
1150
  fn: function (aVisitor){
1001
1151
  var self=this;
1002
- var $1;
1003
- $1=smalltalk.send(aVisitor,"_visitValueNode_",[self]);
1152
+ return smalltalk.withContext(function($ctx1) {
1153
+ $1=_st(aVisitor)._visitValueNode_(self);
1004
1154
  return $1;
1005
- }
1155
+ }, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.ValueNode)})}
1156
+ }),
1157
+ smalltalk.ValueNode);
1158
+
1159
+ smalltalk.addMethod(
1160
+ "_isImmutable",
1161
+ smalltalk.method({
1162
+ selector: "isImmutable",
1163
+ fn: function (){
1164
+ var self=this;
1165
+ return smalltalk.withContext(function($ctx1) {
1166
+ }, function($ctx1) {$ctx1.fill(self,"isImmutable",{}, smalltalk.ValueNode)})}
1006
1167
  }),
1007
1168
  smalltalk.ValueNode);
1008
1169
 
@@ -1012,8 +1173,8 @@ smalltalk.method({
1012
1173
  selector: "isValueNode",
1013
1174
  fn: function (){
1014
1175
  var self=this;
1015
- return true;
1016
- }
1176
+ return smalltalk.withContext(function($ctx1) {
1177
+ }, function($ctx1) {$ctx1.fill(self,"isValueNode",{}, smalltalk.ValueNode)})}
1017
1178
  }),
1018
1179
  smalltalk.ValueNode);
1019
1180
 
@@ -1023,8 +1184,10 @@ smalltalk.method({
1023
1184
  selector: "value",
1024
1185
  fn: function (){
1025
1186
  var self=this;
1026
- return self["@value"];
1027
- }
1187
+ return smalltalk.withContext(function($ctx1) {
1188
+ $1=self["@value"];
1189
+ return $1;
1190
+ }, function($ctx1) {$ctx1.fill(self,"value",{}, smalltalk.ValueNode)})}
1028
1191
  }),
1029
1192
  smalltalk.ValueNode);
1030
1193
 
@@ -1034,8 +1197,8 @@ smalltalk.method({
1034
1197
  selector: "value:",
1035
1198
  fn: function (anObject){
1036
1199
  var self=this;
1037
- self["@value"]=anObject;
1038
- return self}
1200
+ return smalltalk.withContext(function($ctx1) {
1201
+ return self}, function($ctx1) {$ctx1.fill(self,"value:",{anObject:anObject}, smalltalk.ValueNode)})}
1039
1202
  }),
1040
1203
  smalltalk.ValueNode);
1041
1204
 
@@ -1048,10 +1211,10 @@ smalltalk.method({
1048
1211
  selector: "accept:",
1049
1212
  fn: function (aVisitor){
1050
1213
  var self=this;
1051
- var $1;
1052
- $1=smalltalk.send(aVisitor,"_visitVariableNode_",[self]);
1214
+ return smalltalk.withContext(function($ctx1) {
1215
+ $1=_st(aVisitor)._visitVariableNode_(self);
1053
1216
  return $1;
1054
- }
1217
+ }, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.VariableNode)})}
1055
1218
  }),
1056
1219
  smalltalk.VariableNode);
1057
1220
 
@@ -1061,10 +1224,10 @@ smalltalk.method({
1061
1224
  selector: "alias",
1062
1225
  fn: function (){
1063
1226
  var self=this;
1064
- var $1;
1065
- $1=smalltalk.send(smalltalk.send(self,"_binding",[]),"_alias",[]);
1227
+ return smalltalk.withContext(function($ctx1) {
1228
+ $1=_st(_st(self)._binding())._alias();
1066
1229
  return $1;
1067
- }
1230
+ }, function($ctx1) {$ctx1.fill(self,"alias",{}, smalltalk.VariableNode)})}
1068
1231
  }),
1069
1232
  smalltalk.VariableNode);
1070
1233
 
@@ -1074,14 +1237,15 @@ smalltalk.method({
1074
1237
  selector: "assigned",
1075
1238
  fn: function (){
1076
1239
  var self=this;
1077
- var $1;
1078
- if(($receiver = self["@assigned"]) == nil || $receiver == undefined){
1240
+ return smalltalk.withContext(function($ctx1) {
1241
+ $2=self["@assigned"];
1242
+ if(($receiver = $2) == nil || $receiver == undefined){
1079
1243
  $1=false;
1080
1244
  } else {
1081
- $1=self["@assigned"];
1245
+ $1=$2;
1082
1246
  };
1083
1247
  return $1;
1084
- }
1248
+ }, function($ctx1) {$ctx1.fill(self,"assigned",{}, smalltalk.VariableNode)})}
1085
1249
  }),
1086
1250
  smalltalk.VariableNode);
1087
1251
 
@@ -1091,8 +1255,8 @@ smalltalk.method({
1091
1255
  selector: "assigned:",
1092
1256
  fn: function (aBoolean){
1093
1257
  var self=this;
1094
- self["@assigned"]=aBoolean;
1095
- return self}
1258
+ return smalltalk.withContext(function($ctx1) {
1259
+ return self}, function($ctx1) {$ctx1.fill(self,"assigned:",{aBoolean:aBoolean}, smalltalk.VariableNode)})}
1096
1260
  }),
1097
1261
  smalltalk.VariableNode);
1098
1262
 
@@ -1102,9 +1266,9 @@ smalltalk.method({
1102
1266
  selector: "beAssigned",
1103
1267
  fn: function (){
1104
1268
  var self=this;
1105
- smalltalk.send(smalltalk.send(self,"_binding",[]),"_validateAssignment",[]);
1269
+ return smalltalk.withContext(function($ctx1) {
1106
1270
  self["@assigned"]=true;
1107
- return self}
1271
+ return self}, function($ctx1) {$ctx1.fill(self,"beAssigned",{}, smalltalk.VariableNode)})}
1108
1272
  }),
1109
1273
  smalltalk.VariableNode);
1110
1274
 
@@ -1114,8 +1278,10 @@ smalltalk.method({
1114
1278
  selector: "binding",
1115
1279
  fn: function (){
1116
1280
  var self=this;
1117
- return self["@binding"];
1118
- }
1281
+ return smalltalk.withContext(function($ctx1) {
1282
+ $1=self["@binding"];
1283
+ return $1;
1284
+ }, function($ctx1) {$ctx1.fill(self,"binding",{}, smalltalk.VariableNode)})}
1119
1285
  }),
1120
1286
  smalltalk.VariableNode);
1121
1287
 
@@ -1125,8 +1291,19 @@ smalltalk.method({
1125
1291
  selector: "binding:",
1126
1292
  fn: function (aScopeVar){
1127
1293
  var self=this;
1128
- self["@binding"]=aScopeVar;
1129
- return self}
1294
+ return smalltalk.withContext(function($ctx1) {
1295
+ return self}, function($ctx1) {$ctx1.fill(self,"binding:",{aScopeVar:aScopeVar}, smalltalk.VariableNode)})}
1296
+ }),
1297
+ smalltalk.VariableNode);
1298
+
1299
+ smalltalk.addMethod(
1300
+ "_isImmutable",
1301
+ smalltalk.method({
1302
+ selector: "isImmutable",
1303
+ fn: function (){
1304
+ var self=this;
1305
+ return smalltalk.withContext(function($ctx1) {
1306
+ }, function($ctx1) {$ctx1.fill(self,"isImmutable",{}, smalltalk.VariableNode)})}
1130
1307
  }),
1131
1308
  smalltalk.VariableNode);
1132
1309
 
@@ -1139,12 +1316,23 @@ smalltalk.method({
1139
1316
  selector: "accept:",
1140
1317
  fn: function (aVisitor){
1141
1318
  var self=this;
1142
- var $1;
1143
- $1=smalltalk.send(aVisitor,"_visitClassReferenceNode_",[self]);
1319
+ return smalltalk.withContext(function($ctx1) {
1320
+ $1=_st(aVisitor)._visitClassReferenceNode_(self);
1144
1321
  return $1;
1145
- }
1322
+ }, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.ClassReferenceNode)})}
1146
1323
  }),
1147
1324
  smalltalk.ClassReferenceNode);
1148
1325
 
1149
1326
 
1150
1327
 
1328
+ smalltalk.addMethod(
1329
+ "_isNode",
1330
+ smalltalk.method({
1331
+ selector: "isNode",
1332
+ fn: function (){
1333
+ var self=this;
1334
+ return smalltalk.withContext(function($ctx1) {
1335
+ }, function($ctx1) {$ctx1.fill(self,"isNode",{}, smalltalk.Object)})}
1336
+ }),
1337
+ smalltalk.Object);
1338
+