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,6 +1,6 @@
1
1
  smalltalk.addPackage('Compiler-AST', {});
2
- smalltalk.addClass('Node', smalltalk.Object, ['nodes', 'shouldBeInlined', 'shouldBeAliased'], 'Compiler-AST');
3
- smalltalk.Node.comment="I am the abstract root class of the abstract syntax tree."
2
+ smalltalk.addClass('Node', smalltalk.Object, ['position', 'nodes', 'shouldBeInlined', 'shouldBeAliased'], 'Compiler-AST');
3
+ smalltalk.Node.comment="I am the abstract root class of the abstract syntax tree.\x0a\x0aposition: holds a point containing lline- and column number of the symbol location in the original source file"
4
4
  smalltalk.addMethod(
5
5
  "_accept_",
6
6
  smalltalk.method({
@@ -8,10 +8,10 @@ selector: "accept:",
8
8
  category: 'visiting',
9
9
  fn: function (aVisitor){
10
10
  var self=this;
11
- var $1;
12
- $1=smalltalk.send(aVisitor,"_visitNode_",[self]);
11
+ return smalltalk.withContext(function($ctx1) {
12
+ $1=_st(aVisitor)._visitNode_(self);
13
13
  return $1;
14
- },
14
+ }, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.Node)})},
15
15
  args: ["aVisitor"],
16
16
  source: "accept: aVisitor\x0a\x09^ aVisitor visitNode: self",
17
17
  messageSends: ["visitNode:"],
@@ -26,8 +26,8 @@ selector: "addNode:",
26
26
  category: 'accessing',
27
27
  fn: function (aNode){
28
28
  var self=this;
29
- smalltalk.send(smalltalk.send(self,"_nodes",[]),"_add_",[aNode]);
30
- return self},
29
+ return smalltalk.withContext(function($ctx1) {
30
+ return self}, function($ctx1) {$ctx1.fill(self,"addNode:",{aNode:aNode}, smalltalk.Node)})},
31
31
  args: ["aNode"],
32
32
  source: "addNode: aNode\x0a\x09self nodes add: aNode",
33
33
  messageSends: ["add:", "nodes"],
@@ -42,8 +42,8 @@ selector: "isAssignmentNode",
42
42
  category: 'testing',
43
43
  fn: function (){
44
44
  var self=this;
45
- return false;
46
- },
45
+ return smalltalk.withContext(function($ctx1) {
46
+ }, function($ctx1) {$ctx1.fill(self,"isAssignmentNode",{}, smalltalk.Node)})},
47
47
  args: [],
48
48
  source: "isAssignmentNode\x0a\x09^ false",
49
49
  messageSends: [],
@@ -58,8 +58,8 @@ selector: "isBlockNode",
58
58
  category: 'testing',
59
59
  fn: function (){
60
60
  var self=this;
61
- return false;
62
- },
61
+ return smalltalk.withContext(function($ctx1) {
62
+ }, function($ctx1) {$ctx1.fill(self,"isBlockNode",{}, smalltalk.Node)})},
63
63
  args: [],
64
64
  source: "isBlockNode\x0a\x09^false",
65
65
  messageSends: [],
@@ -74,8 +74,8 @@ selector: "isBlockSequenceNode",
74
74
  category: 'testing',
75
75
  fn: function (){
76
76
  var self=this;
77
- return false;
78
- },
77
+ return smalltalk.withContext(function($ctx1) {
78
+ }, function($ctx1) {$ctx1.fill(self,"isBlockSequenceNode",{}, smalltalk.Node)})},
79
79
  args: [],
80
80
  source: "isBlockSequenceNode\x0a\x09^false",
81
81
  messageSends: [],
@@ -83,6 +83,38 @@ referencedClasses: []
83
83
  }),
84
84
  smalltalk.Node);
85
85
 
86
+ smalltalk.addMethod(
87
+ "_isImmutable",
88
+ smalltalk.method({
89
+ selector: "isImmutable",
90
+ category: 'testing',
91
+ fn: function (){
92
+ var self=this;
93
+ return smalltalk.withContext(function($ctx1) {
94
+ }, function($ctx1) {$ctx1.fill(self,"isImmutable",{}, smalltalk.Node)})},
95
+ args: [],
96
+ source: "isImmutable\x0a\x09^false",
97
+ messageSends: [],
98
+ referencedClasses: []
99
+ }),
100
+ smalltalk.Node);
101
+
102
+ smalltalk.addMethod(
103
+ "_isNode",
104
+ smalltalk.method({
105
+ selector: "isNode",
106
+ category: 'testing',
107
+ fn: function (){
108
+ var self=this;
109
+ return smalltalk.withContext(function($ctx1) {
110
+ }, function($ctx1) {$ctx1.fill(self,"isNode",{}, smalltalk.Node)})},
111
+ args: [],
112
+ source: "isNode\x0a\x09^ true",
113
+ messageSends: [],
114
+ referencedClasses: []
115
+ }),
116
+ smalltalk.Node);
117
+
86
118
  smalltalk.addMethod(
87
119
  "_isReturnNode",
88
120
  smalltalk.method({
@@ -90,8 +122,8 @@ selector: "isReturnNode",
90
122
  category: 'testing',
91
123
  fn: function (){
92
124
  var self=this;
93
- return false;
94
- },
125
+ return smalltalk.withContext(function($ctx1) {
126
+ }, function($ctx1) {$ctx1.fill(self,"isReturnNode",{}, smalltalk.Node)})},
95
127
  args: [],
96
128
  source: "isReturnNode\x0a\x09^false",
97
129
  messageSends: [],
@@ -106,8 +138,8 @@ selector: "isSendNode",
106
138
  category: 'testing',
107
139
  fn: function (){
108
140
  var self=this;
109
- return false;
110
- },
141
+ return smalltalk.withContext(function($ctx1) {
142
+ }, function($ctx1) {$ctx1.fill(self,"isSendNode",{}, smalltalk.Node)})},
111
143
  args: [],
112
144
  source: "isSendNode\x0a\x09^false",
113
145
  messageSends: [],
@@ -122,8 +154,8 @@ selector: "isValueNode",
122
154
  category: 'testing',
123
155
  fn: function (){
124
156
  var self=this;
125
- return false;
126
- },
157
+ return smalltalk.withContext(function($ctx1) {
158
+ }, function($ctx1) {$ctx1.fill(self,"isValueNode",{}, smalltalk.Node)})},
127
159
  args: [],
128
160
  source: "isValueNode\x0a\x09^false",
129
161
  messageSends: [],
@@ -138,15 +170,16 @@ selector: "nodes",
138
170
  category: 'accessing',
139
171
  fn: function (){
140
172
  var self=this;
141
- var $1;
142
- if(($receiver = self["@nodes"]) == nil || $receiver == undefined){
143
- self["@nodes"]=smalltalk.send((smalltalk.Array || Array),"_new",[]);
173
+ return smalltalk.withContext(function($ctx1) {
174
+ $2=self["@nodes"];
175
+ if(($receiver = $2) == nil || $receiver == undefined){
176
+ self["@nodes"]=_st((smalltalk.Array || Array))._new();
144
177
  $1=self["@nodes"];
145
178
  } else {
146
- $1=self["@nodes"];
179
+ $1=$2;
147
180
  };
148
181
  return $1;
149
- },
182
+ }, function($ctx1) {$ctx1.fill(self,"nodes",{}, smalltalk.Node)})},
150
183
  args: [],
151
184
  source: "nodes\x0a\x09^nodes ifNil: [nodes := Array new]",
152
185
  messageSends: ["ifNil:", "new"],
@@ -161,8 +194,8 @@ selector: "nodes:",
161
194
  category: 'building',
162
195
  fn: function (aCollection){
163
196
  var self=this;
164
- self["@nodes"]=aCollection;
165
- return self},
197
+ return smalltalk.withContext(function($ctx1) {
198
+ return self}, function($ctx1) {$ctx1.fill(self,"nodes:",{aCollection:aCollection}, smalltalk.Node)})},
166
199
  args: ["aCollection"],
167
200
  source: "nodes: aCollection\x0a\x09nodes := aCollection",
168
201
  messageSends: [],
@@ -170,6 +203,46 @@ referencedClasses: []
170
203
  }),
171
204
  smalltalk.Node);
172
205
 
206
+ smalltalk.addMethod(
207
+ "_position",
208
+ smalltalk.method({
209
+ selector: "position",
210
+ category: 'accessing',
211
+ fn: function (){
212
+ var self=this;
213
+ return smalltalk.withContext(function($ctx1) {
214
+ $2=self["@position"];
215
+ if(($receiver = $2) == nil || $receiver == undefined){
216
+ self["@position"]=_st((0)).__at((0));
217
+ $1=self["@position"];
218
+ } else {
219
+ $1=$2;
220
+ };
221
+ return $1;
222
+ }, function($ctx1) {$ctx1.fill(self,"position",{}, smalltalk.Node)})},
223
+ args: [],
224
+ source: "position\x0a\x09^position ifNil: [position := 0@0]",
225
+ messageSends: ["ifNil:", "@"],
226
+ referencedClasses: []
227
+ }),
228
+ smalltalk.Node);
229
+
230
+ smalltalk.addMethod(
231
+ "_position_",
232
+ smalltalk.method({
233
+ selector: "position:",
234
+ category: 'building',
235
+ fn: function (aPosition){
236
+ var self=this;
237
+ return smalltalk.withContext(function($ctx1) {
238
+ return self}, function($ctx1) {$ctx1.fill(self,"position:",{aPosition:aPosition}, smalltalk.Node)})},
239
+ args: ["aPosition"],
240
+ source: "position: aPosition\x0a\x09position := aPosition",
241
+ messageSends: [],
242
+ referencedClasses: []
243
+ }),
244
+ smalltalk.Node);
245
+
173
246
  smalltalk.addMethod(
174
247
  "_shouldBeAliased",
175
248
  smalltalk.method({
@@ -177,14 +250,15 @@ selector: "shouldBeAliased",
177
250
  category: 'accessing',
178
251
  fn: function (){
179
252
  var self=this;
180
- var $1;
181
- if(($receiver = self["@shouldBeAliased"]) == nil || $receiver == undefined){
253
+ return smalltalk.withContext(function($ctx1) {
254
+ $2=self["@shouldBeAliased"];
255
+ if(($receiver = $2) == nil || $receiver == undefined){
182
256
  $1=false;
183
257
  } else {
184
- $1=self["@shouldBeAliased"];
258
+ $1=$2;
185
259
  };
186
260
  return $1;
187
- },
261
+ }, function($ctx1) {$ctx1.fill(self,"shouldBeAliased",{}, smalltalk.Node)})},
188
262
  args: [],
189
263
  source: "shouldBeAliased\x0a\x09^ shouldBeAliased ifNil: [ false ]",
190
264
  messageSends: ["ifNil:"],
@@ -199,8 +273,8 @@ selector: "shouldBeAliased:",
199
273
  category: 'accessing',
200
274
  fn: function (aBoolean){
201
275
  var self=this;
202
- self["@shouldBeAliased"]=aBoolean;
203
- return self},
276
+ return smalltalk.withContext(function($ctx1) {
277
+ return self}, function($ctx1) {$ctx1.fill(self,"shouldBeAliased:",{aBoolean:aBoolean}, smalltalk.Node)})},
204
278
  args: ["aBoolean"],
205
279
  source: "shouldBeAliased: aBoolean\x0a\x09shouldBeAliased := aBoolean",
206
280
  messageSends: [],
@@ -215,14 +289,15 @@ selector: "shouldBeInlined",
215
289
  category: 'accessing',
216
290
  fn: function (){
217
291
  var self=this;
218
- var $1;
219
- if(($receiver = self["@shouldBeInlined"]) == nil || $receiver == undefined){
292
+ return smalltalk.withContext(function($ctx1) {
293
+ $2=self["@shouldBeInlined"];
294
+ if(($receiver = $2) == nil || $receiver == undefined){
220
295
  $1=false;
221
296
  } else {
222
- $1=self["@shouldBeInlined"];
297
+ $1=$2;
223
298
  };
224
299
  return $1;
225
- },
300
+ }, function($ctx1) {$ctx1.fill(self,"shouldBeInlined",{}, smalltalk.Node)})},
226
301
  args: [],
227
302
  source: "shouldBeInlined\x0a\x09^ shouldBeInlined ifNil: [ false ]",
228
303
  messageSends: ["ifNil:"],
@@ -237,8 +312,8 @@ selector: "shouldBeInlined:",
237
312
  category: 'accessing',
238
313
  fn: function (aBoolean){
239
314
  var self=this;
240
- self["@shouldBeInlined"]=aBoolean;
241
- return self},
315
+ return smalltalk.withContext(function($ctx1) {
316
+ return self}, function($ctx1) {$ctx1.fill(self,"shouldBeInlined:",{aBoolean:aBoolean}, smalltalk.Node)})},
242
317
  args: ["aBoolean"],
243
318
  source: "shouldBeInlined: aBoolean\x0a\x09shouldBeInlined := aBoolean",
244
319
  messageSends: [],
@@ -246,6 +321,32 @@ referencedClasses: []
246
321
  }),
247
322
  smalltalk.Node);
248
323
 
324
+ smalltalk.addMethod(
325
+ "_subtreeNeedsAliasing",
326
+ smalltalk.method({
327
+ selector: "subtreeNeedsAliasing",
328
+ category: 'testing',
329
+ fn: function (){
330
+ var self=this;
331
+ return smalltalk.withContext(function($ctx1) {
332
+ $1=_st(_st(_st(self)._shouldBeAliased())._or_((function(){
333
+ return smalltalk.withContext(function($ctx2) {
334
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._or_((function(){
335
+ return smalltalk.withContext(function($ctx2) {
336
+ return smalltalk.withContext(function($ctx3) {
337
+ }, function($ctx3) {$ctx3.fillBlock({each:each},$ctx1)})}),(function(){
338
+ return smalltalk.withContext(function($ctx3) {
339
+ }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}))).__tild_eq(false);
340
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
341
+ return $1;
342
+ }, function($ctx1) {$ctx1.fill(self,"subtreeNeedsAliasing",{}, smalltalk.Node)})},
343
+ args: [],
344
+ source: "subtreeNeedsAliasing\x0a ^(self shouldBeAliased or: [ self shouldBeInlined ]) or: [\x0a (self nodes detect: [ :each | each subtreeNeedsAliasing ] ifNone: [ false ]) ~= false ]",
345
+ messageSends: ["or:", "~=", "detect:ifNone:", "subtreeNeedsAliasing", "nodes", "shouldBeInlined", "shouldBeAliased"],
346
+ referencedClasses: []
347
+ }),
348
+ smalltalk.Node);
349
+
249
350
 
250
351
 
251
352
  smalltalk.addClass('AssignmentNode', smalltalk.Node, ['left', 'right'], 'Compiler-AST');
@@ -256,10 +357,10 @@ selector: "accept:",
256
357
  category: 'visiting',
257
358
  fn: function (aVisitor){
258
359
  var self=this;
259
- var $1;
260
- $1=smalltalk.send(aVisitor,"_visitAssignmentNode_",[self]);
360
+ return smalltalk.withContext(function($ctx1) {
361
+ $1=_st(aVisitor)._visitAssignmentNode_(self);
261
362
  return $1;
262
- },
363
+ }, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.AssignmentNode)})},
263
364
  args: ["aVisitor"],
264
365
  source: "accept: aVisitor\x0a\x09^ aVisitor visitAssignmentNode: self",
265
366
  messageSends: ["visitAssignmentNode:"],
@@ -274,8 +375,8 @@ selector: "isAssignmentNode",
274
375
  category: 'testing',
275
376
  fn: function (){
276
377
  var self=this;
277
- return true;
278
- },
378
+ return smalltalk.withContext(function($ctx1) {
379
+ }, function($ctx1) {$ctx1.fill(self,"isAssignmentNode",{}, smalltalk.AssignmentNode)})},
279
380
  args: [],
280
381
  source: "isAssignmentNode\x0a\x09^ true",
281
382
  messageSends: [],
@@ -290,8 +391,10 @@ selector: "left",
290
391
  category: 'accessing',
291
392
  fn: function (){
292
393
  var self=this;
293
- return self["@left"];
294
- },
394
+ return smalltalk.withContext(function($ctx1) {
395
+ $1=self["@left"];
396
+ return $1;
397
+ }, function($ctx1) {$ctx1.fill(self,"left",{}, smalltalk.AssignmentNode)})},
295
398
  args: [],
296
399
  source: "left\x0a\x09^left",
297
400
  messageSends: [],
@@ -306,8 +409,8 @@ selector: "left:",
306
409
  category: 'accessing',
307
410
  fn: function (aNode){
308
411
  var self=this;
309
- self["@left"]=aNode;
310
- return self},
412
+ return smalltalk.withContext(function($ctx1) {
413
+ return self}, function($ctx1) {$ctx1.fill(self,"left:",{aNode:aNode}, smalltalk.AssignmentNode)})},
311
414
  args: ["aNode"],
312
415
  source: "left: aNode\x0a\x09left := aNode",
313
416
  messageSends: [],
@@ -322,10 +425,10 @@ selector: "nodes",
322
425
  category: 'accessing',
323
426
  fn: function (){
324
427
  var self=this;
325
- var $1;
326
- $1=smalltalk.send((smalltalk.Array || Array),"_with_with_",[smalltalk.send(self,"_left",[]),smalltalk.send(self,"_right",[])]);
428
+ return smalltalk.withContext(function($ctx1) {
429
+ $1=_st((smalltalk.Array || Array))._with_with_(_st(self)._left(),_st(self)._right());
327
430
  return $1;
328
- },
431
+ }, function($ctx1) {$ctx1.fill(self,"nodes",{}, smalltalk.AssignmentNode)})},
329
432
  args: [],
330
433
  source: "nodes\x0a\x09^ Array with: self left with: self right",
331
434
  messageSends: ["with:with:", "left", "right"],
@@ -340,8 +443,10 @@ selector: "right",
340
443
  category: 'accessing',
341
444
  fn: function (){
342
445
  var self=this;
343
- return self["@right"];
344
- },
446
+ return smalltalk.withContext(function($ctx1) {
447
+ $1=self["@right"];
448
+ return $1;
449
+ }, function($ctx1) {$ctx1.fill(self,"right",{}, smalltalk.AssignmentNode)})},
345
450
  args: [],
346
451
  source: "right\x0a\x09^right",
347
452
  messageSends: [],
@@ -356,8 +461,8 @@ selector: "right:",
356
461
  category: 'accessing',
357
462
  fn: function (aNode){
358
463
  var self=this;
359
- self["@right"]=aNode;
360
- return self},
464
+ return smalltalk.withContext(function($ctx1) {
465
+ return self}, function($ctx1) {$ctx1.fill(self,"right:",{aNode:aNode}, smalltalk.AssignmentNode)})},
361
466
  args: ["aNode"],
362
467
  source: "right: aNode\x0a\x09right := aNode",
363
468
  messageSends: [],
@@ -375,10 +480,10 @@ selector: "accept:",
375
480
  category: 'visiting',
376
481
  fn: function (aVisitor){
377
482
  var self=this;
378
- var $1;
379
- $1=smalltalk.send(aVisitor,"_visitBlockNode_",[self]);
483
+ return smalltalk.withContext(function($ctx1) {
484
+ $1=_st(aVisitor)._visitBlockNode_(self);
380
485
  return $1;
381
- },
486
+ }, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.BlockNode)})},
382
487
  args: ["aVisitor"],
383
488
  source: "accept: aVisitor\x0a\x09^ aVisitor visitBlockNode: self",
384
489
  messageSends: ["visitBlockNode:"],
@@ -393,8 +498,8 @@ selector: "isBlockNode",
393
498
  category: 'testing',
394
499
  fn: function (){
395
500
  var self=this;
396
- return true;
397
- },
501
+ return smalltalk.withContext(function($ctx1) {
502
+ }, function($ctx1) {$ctx1.fill(self,"isBlockNode",{}, smalltalk.BlockNode)})},
398
503
  args: [],
399
504
  source: "isBlockNode\x0a\x09^true",
400
505
  messageSends: [],
@@ -409,15 +514,16 @@ selector: "parameters",
409
514
  category: 'accessing',
410
515
  fn: function (){
411
516
  var self=this;
412
- var $1;
413
- if(($receiver = self["@parameters"]) == nil || $receiver == undefined){
414
- self["@parameters"]=smalltalk.send((smalltalk.Array || Array),"_new",[]);
517
+ return smalltalk.withContext(function($ctx1) {
518
+ $2=self["@parameters"];
519
+ if(($receiver = $2) == nil || $receiver == undefined){
520
+ self["@parameters"]=_st((smalltalk.Array || Array))._new();
415
521
  $1=self["@parameters"];
416
522
  } else {
417
- $1=self["@parameters"];
523
+ $1=$2;
418
524
  };
419
525
  return $1;
420
- },
526
+ }, function($ctx1) {$ctx1.fill(self,"parameters",{}, smalltalk.BlockNode)})},
421
527
  args: [],
422
528
  source: "parameters\x0a\x09^parameters ifNil: [parameters := Array new]",
423
529
  messageSends: ["ifNil:", "new"],
@@ -432,8 +538,8 @@ selector: "parameters:",
432
538
  category: 'accessing',
433
539
  fn: function (aCollection){
434
540
  var self=this;
435
- self["@parameters"]=aCollection;
436
- return self},
541
+ return smalltalk.withContext(function($ctx1) {
542
+ return self}, function($ctx1) {$ctx1.fill(self,"parameters:",{aCollection:aCollection}, smalltalk.BlockNode)})},
437
543
  args: ["aCollection"],
438
544
  source: "parameters: aCollection\x0a\x09parameters := aCollection",
439
545
  messageSends: [],
@@ -448,8 +554,10 @@ selector: "scope",
448
554
  category: 'accessing',
449
555
  fn: function (){
450
556
  var self=this;
451
- return self["@scope"];
452
- },
557
+ return smalltalk.withContext(function($ctx1) {
558
+ $1=self["@scope"];
559
+ return $1;
560
+ }, function($ctx1) {$ctx1.fill(self,"scope",{}, smalltalk.BlockNode)})},
453
561
  args: [],
454
562
  source: "scope\x0a\x09^ scope",
455
563
  messageSends: [],
@@ -464,8 +572,8 @@ selector: "scope:",
464
572
  category: 'accessing',
465
573
  fn: function (aLexicalScope){
466
574
  var self=this;
467
- self["@scope"]=aLexicalScope;
468
- return self},
575
+ return smalltalk.withContext(function($ctx1) {
576
+ return self}, function($ctx1) {$ctx1.fill(self,"scope:",{aLexicalScope:aLexicalScope}, smalltalk.BlockNode)})},
469
577
  args: ["aLexicalScope"],
470
578
  source: "scope: aLexicalScope\x0a\x09scope := aLexicalScope",
471
579
  messageSends: [],
@@ -473,6 +581,26 @@ referencedClasses: []
473
581
  }),
474
582
  smalltalk.BlockNode);
475
583
 
584
+ smalltalk.addMethod(
585
+ "_subtreeNeedsAliasing",
586
+ smalltalk.method({
587
+ selector: "subtreeNeedsAliasing",
588
+ category: 'testing',
589
+ fn: function (){
590
+ var self=this;
591
+ return smalltalk.withContext(function($ctx1) {
592
+ $1=_st(_st(self)._shouldBeAliased())._or_((function(){
593
+ return smalltalk.withContext(function($ctx2) {
594
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
595
+ return $1;
596
+ }, function($ctx1) {$ctx1.fill(self,"subtreeNeedsAliasing",{}, smalltalk.BlockNode)})},
597
+ args: [],
598
+ source: "subtreeNeedsAliasing\x0a ^ self shouldBeAliased or: [ self shouldBeInlined ]",
599
+ messageSends: ["or:", "shouldBeInlined", "shouldBeAliased"],
600
+ referencedClasses: []
601
+ }),
602
+ smalltalk.BlockNode);
603
+
476
604
 
477
605
 
478
606
  smalltalk.addClass('CascadeNode', smalltalk.Node, ['receiver'], 'Compiler-AST');
@@ -483,10 +611,10 @@ selector: "accept:",
483
611
  category: 'visiting',
484
612
  fn: function (aVisitor){
485
613
  var self=this;
486
- var $1;
487
- $1=smalltalk.send(aVisitor,"_visitCascadeNode_",[self]);
614
+ return smalltalk.withContext(function($ctx1) {
615
+ $1=_st(aVisitor)._visitCascadeNode_(self);
488
616
  return $1;
489
- },
617
+ }, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.CascadeNode)})},
490
618
  args: ["aVisitor"],
491
619
  source: "accept: aVisitor\x0a\x09^ aVisitor visitCascadeNode: self",
492
620
  messageSends: ["visitCascadeNode:"],
@@ -501,8 +629,10 @@ selector: "receiver",
501
629
  category: 'accessing',
502
630
  fn: function (){
503
631
  var self=this;
504
- return self["@receiver"];
505
- },
632
+ return smalltalk.withContext(function($ctx1) {
633
+ $1=self["@receiver"];
634
+ return $1;
635
+ }, function($ctx1) {$ctx1.fill(self,"receiver",{}, smalltalk.CascadeNode)})},
506
636
  args: [],
507
637
  source: "receiver\x0a\x09^receiver",
508
638
  messageSends: [],
@@ -517,8 +647,8 @@ selector: "receiver:",
517
647
  category: 'accessing',
518
648
  fn: function (aNode){
519
649
  var self=this;
520
- self["@receiver"]=aNode;
521
- return self},
650
+ return smalltalk.withContext(function($ctx1) {
651
+ return self}, function($ctx1) {$ctx1.fill(self,"receiver:",{aNode:aNode}, smalltalk.CascadeNode)})},
522
652
  args: ["aNode"],
523
653
  source: "receiver: aNode\x0a\x09receiver := aNode",
524
654
  messageSends: [],
@@ -536,10 +666,10 @@ selector: "accept:",
536
666
  category: 'visiting',
537
667
  fn: function (aVisitor){
538
668
  var self=this;
539
- var $1;
540
- $1=smalltalk.send(aVisitor,"_visitDynamicArrayNode_",[self]);
669
+ return smalltalk.withContext(function($ctx1) {
670
+ $1=_st(aVisitor)._visitDynamicArrayNode_(self);
541
671
  return $1;
542
- },
672
+ }, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.DynamicArrayNode)})},
543
673
  args: ["aVisitor"],
544
674
  source: "accept: aVisitor\x0a\x09^ aVisitor visitDynamicArrayNode: self",
545
675
  messageSends: ["visitDynamicArrayNode:"],
@@ -557,10 +687,10 @@ selector: "accept:",
557
687
  category: 'visiting',
558
688
  fn: function (aVisitor){
559
689
  var self=this;
560
- var $1;
561
- $1=smalltalk.send(aVisitor,"_visitDynamicDictionaryNode_",[self]);
690
+ return smalltalk.withContext(function($ctx1) {
691
+ $1=_st(aVisitor)._visitDynamicDictionaryNode_(self);
562
692
  return $1;
563
- },
693
+ }, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.DynamicDictionaryNode)})},
564
694
  args: ["aVisitor"],
565
695
  source: "accept: aVisitor\x0a\x09^ aVisitor visitDynamicDictionaryNode: self",
566
696
  messageSends: ["visitDynamicDictionaryNode:"],
@@ -578,10 +708,10 @@ selector: "accept:",
578
708
  category: 'visiting',
579
709
  fn: function (aVisitor){
580
710
  var self=this;
581
- var $1;
582
- $1=smalltalk.send(aVisitor,"_visitJSStatementNode_",[self]);
711
+ return smalltalk.withContext(function($ctx1) {
712
+ $1=_st(aVisitor)._visitJSStatementNode_(self);
583
713
  return $1;
584
- },
714
+ }, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.JSStatementNode)})},
585
715
  args: ["aVisitor"],
586
716
  source: "accept: aVisitor\x0a\x09^ aVisitor visitJSStatementNode: self",
587
717
  messageSends: ["visitJSStatementNode:"],
@@ -596,14 +726,15 @@ selector: "source",
596
726
  category: 'accessing',
597
727
  fn: function (){
598
728
  var self=this;
599
- var $1;
600
- if(($receiver = self["@source"]) == nil || $receiver == undefined){
729
+ return smalltalk.withContext(function($ctx1) {
730
+ $2=self["@source"];
731
+ if(($receiver = $2) == nil || $receiver == undefined){
601
732
  $1="";
602
733
  } else {
603
- $1=self["@source"];
734
+ $1=$2;
604
735
  };
605
736
  return $1;
606
- },
737
+ }, function($ctx1) {$ctx1.fill(self,"source",{}, smalltalk.JSStatementNode)})},
607
738
  args: [],
608
739
  source: "source\x0a\x09^source ifNil: ['']",
609
740
  messageSends: ["ifNil:"],
@@ -618,8 +749,8 @@ selector: "source:",
618
749
  category: 'accessing',
619
750
  fn: function (aString){
620
751
  var self=this;
621
- self["@source"]=aString;
622
- return self},
752
+ return smalltalk.withContext(function($ctx1) {
753
+ return self}, function($ctx1) {$ctx1.fill(self,"source:",{aString:aString}, smalltalk.JSStatementNode)})},
623
754
  args: ["aString"],
624
755
  source: "source: aString\x0a\x09source := aString",
625
756
  messageSends: [],
@@ -629,7 +760,7 @@ smalltalk.JSStatementNode);
629
760
 
630
761
 
631
762
 
632
- smalltalk.addClass('MethodNode', smalltalk.Node, ['selector', 'arguments', 'source', 'scope', 'classReferences', 'messageSends'], 'Compiler-AST');
763
+ smalltalk.addClass('MethodNode', smalltalk.Node, ['selector', 'arguments', 'source', 'scope', 'classReferences', 'messageSends', 'superSends'], 'Compiler-AST');
633
764
  smalltalk.addMethod(
634
765
  "_accept_",
635
766
  smalltalk.method({
@@ -637,10 +768,10 @@ selector: "accept:",
637
768
  category: 'visiting',
638
769
  fn: function (aVisitor){
639
770
  var self=this;
640
- var $1;
641
- $1=smalltalk.send(aVisitor,"_visitMethodNode_",[self]);
771
+ return smalltalk.withContext(function($ctx1) {
772
+ $1=_st(aVisitor)._visitMethodNode_(self);
642
773
  return $1;
643
- },
774
+ }, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.MethodNode)})},
644
775
  args: ["aVisitor"],
645
776
  source: "accept: aVisitor\x0a\x09^ aVisitor visitMethodNode: self",
646
777
  messageSends: ["visitMethodNode:"],
@@ -655,14 +786,15 @@ selector: "arguments",
655
786
  category: 'accessing',
656
787
  fn: function (){
657
788
  var self=this;
658
- var $1;
659
- if(($receiver = self["@arguments"]) == nil || $receiver == undefined){
789
+ return smalltalk.withContext(function($ctx1) {
790
+ $2=self["@arguments"];
791
+ if(($receiver = $2) == nil || $receiver == undefined){
660
792
  $1=[];
661
793
  } else {
662
- $1=self["@arguments"];
794
+ $1=$2;
663
795
  };
664
796
  return $1;
665
- },
797
+ }, function($ctx1) {$ctx1.fill(self,"arguments",{}, smalltalk.MethodNode)})},
666
798
  args: [],
667
799
  source: "arguments\x0a\x09^arguments ifNil: [#()]",
668
800
  messageSends: ["ifNil:"],
@@ -677,8 +809,8 @@ selector: "arguments:",
677
809
  category: 'accessing',
678
810
  fn: function (aCollection){
679
811
  var self=this;
680
- self["@arguments"]=aCollection;
681
- return self},
812
+ return smalltalk.withContext(function($ctx1) {
813
+ return self}, function($ctx1) {$ctx1.fill(self,"arguments:",{aCollection:aCollection}, smalltalk.MethodNode)})},
682
814
  args: ["aCollection"],
683
815
  source: "arguments: aCollection\x0a\x09arguments := aCollection",
684
816
  messageSends: [],
@@ -693,8 +825,10 @@ selector: "classReferences",
693
825
  category: 'accessing',
694
826
  fn: function (){
695
827
  var self=this;
696
- return self["@classReferences"];
697
- },
828
+ return smalltalk.withContext(function($ctx1) {
829
+ $1=self["@classReferences"];
830
+ return $1;
831
+ }, function($ctx1) {$ctx1.fill(self,"classReferences",{}, smalltalk.MethodNode)})},
698
832
  args: [],
699
833
  source: "classReferences\x0a\x09^ classReferences",
700
834
  messageSends: [],
@@ -709,8 +843,8 @@ selector: "classReferences:",
709
843
  category: 'accessing',
710
844
  fn: function (aCollection){
711
845
  var self=this;
712
- self["@classReferences"]=aCollection;
713
- return self},
846
+ return smalltalk.withContext(function($ctx1) {
847
+ return self}, function($ctx1) {$ctx1.fill(self,"classReferences:",{aCollection:aCollection}, smalltalk.MethodNode)})},
714
848
  args: ["aCollection"],
715
849
  source: "classReferences: aCollection\x0a\x09classReferences := aCollection",
716
850
  messageSends: [],
@@ -725,8 +859,10 @@ selector: "messageSends",
725
859
  category: 'accessing',
726
860
  fn: function (){
727
861
  var self=this;
728
- return self["@messageSends"];
729
- },
862
+ return smalltalk.withContext(function($ctx1) {
863
+ $1=self["@messageSends"];
864
+ return $1;
865
+ }, function($ctx1) {$ctx1.fill(self,"messageSends",{}, smalltalk.MethodNode)})},
730
866
  args: [],
731
867
  source: "messageSends\x0a\x09^ messageSends",
732
868
  messageSends: [],
@@ -741,8 +877,8 @@ selector: "messageSends:",
741
877
  category: 'accessing',
742
878
  fn: function (aCollection){
743
879
  var self=this;
744
- self["@messageSends"]=aCollection;
745
- return self},
880
+ return smalltalk.withContext(function($ctx1) {
881
+ return self}, function($ctx1) {$ctx1.fill(self,"messageSends:",{aCollection:aCollection}, smalltalk.MethodNode)})},
746
882
  args: ["aCollection"],
747
883
  source: "messageSends: aCollection\x0a\x09messageSends := aCollection",
748
884
  messageSends: [],
@@ -757,8 +893,10 @@ selector: "scope",
757
893
  category: 'accessing',
758
894
  fn: function (){
759
895
  var self=this;
760
- return self["@scope"];
761
- },
896
+ return smalltalk.withContext(function($ctx1) {
897
+ $1=self["@scope"];
898
+ return $1;
899
+ }, function($ctx1) {$ctx1.fill(self,"scope",{}, smalltalk.MethodNode)})},
762
900
  args: [],
763
901
  source: "scope\x0a\x09^ scope",
764
902
  messageSends: [],
@@ -773,8 +911,8 @@ selector: "scope:",
773
911
  category: 'accessing',
774
912
  fn: function (aMethodScope){
775
913
  var self=this;
776
- self["@scope"]=aMethodScope;
777
- return self},
914
+ return smalltalk.withContext(function($ctx1) {
915
+ return self}, function($ctx1) {$ctx1.fill(self,"scope:",{aMethodScope:aMethodScope}, smalltalk.MethodNode)})},
778
916
  args: ["aMethodScope"],
779
917
  source: "scope: aMethodScope\x0a\x09scope := aMethodScope",
780
918
  messageSends: [],
@@ -789,8 +927,10 @@ selector: "selector",
789
927
  category: 'accessing',
790
928
  fn: function (){
791
929
  var self=this;
792
- return self["@selector"];
793
- },
930
+ return smalltalk.withContext(function($ctx1) {
931
+ $1=self["@selector"];
932
+ return $1;
933
+ }, function($ctx1) {$ctx1.fill(self,"selector",{}, smalltalk.MethodNode)})},
794
934
  args: [],
795
935
  source: "selector\x0a\x09^selector",
796
936
  messageSends: [],
@@ -805,8 +945,8 @@ selector: "selector:",
805
945
  category: 'accessing',
806
946
  fn: function (aString){
807
947
  var self=this;
808
- self["@selector"]=aString;
809
- return self},
948
+ return smalltalk.withContext(function($ctx1) {
949
+ return self}, function($ctx1) {$ctx1.fill(self,"selector:",{aString:aString}, smalltalk.MethodNode)})},
810
950
  args: ["aString"],
811
951
  source: "selector: aString\x0a\x09selector := aString",
812
952
  messageSends: [],
@@ -821,8 +961,10 @@ selector: "source",
821
961
  category: 'accessing',
822
962
  fn: function (){
823
963
  var self=this;
824
- return self["@source"];
825
- },
964
+ return smalltalk.withContext(function($ctx1) {
965
+ $1=self["@source"];
966
+ return $1;
967
+ }, function($ctx1) {$ctx1.fill(self,"source",{}, smalltalk.MethodNode)})},
826
968
  args: [],
827
969
  source: "source\x0a\x09^source",
828
970
  messageSends: [],
@@ -837,8 +979,8 @@ selector: "source:",
837
979
  category: 'accessing',
838
980
  fn: function (aString){
839
981
  var self=this;
840
- self["@source"]=aString;
841
- return self},
982
+ return smalltalk.withContext(function($ctx1) {
983
+ return self}, function($ctx1) {$ctx1.fill(self,"source:",{aString:aString}, smalltalk.MethodNode)})},
842
984
  args: ["aString"],
843
985
  source: "source: aString\x0a\x09source := aString",
844
986
  messageSends: [],
@@ -846,6 +988,40 @@ referencedClasses: []
846
988
  }),
847
989
  smalltalk.MethodNode);
848
990
 
991
+ smalltalk.addMethod(
992
+ "_superSends",
993
+ smalltalk.method({
994
+ selector: "superSends",
995
+ category: 'accessing',
996
+ fn: function (){
997
+ var self=this;
998
+ return smalltalk.withContext(function($ctx1) {
999
+ $1=self["@superSends"];
1000
+ return $1;
1001
+ }, function($ctx1) {$ctx1.fill(self,"superSends",{}, smalltalk.MethodNode)})},
1002
+ args: [],
1003
+ source: "superSends\x0a\x09^ superSends",
1004
+ messageSends: [],
1005
+ referencedClasses: []
1006
+ }),
1007
+ smalltalk.MethodNode);
1008
+
1009
+ smalltalk.addMethod(
1010
+ "_superSends_",
1011
+ smalltalk.method({
1012
+ selector: "superSends:",
1013
+ category: 'accessing',
1014
+ fn: function (aCollection){
1015
+ var self=this;
1016
+ return smalltalk.withContext(function($ctx1) {
1017
+ return self}, function($ctx1) {$ctx1.fill(self,"superSends:",{aCollection:aCollection}, smalltalk.MethodNode)})},
1018
+ args: ["aCollection"],
1019
+ source: "superSends: aCollection\x0a\x09superSends := aCollection",
1020
+ messageSends: [],
1021
+ referencedClasses: []
1022
+ }),
1023
+ smalltalk.MethodNode);
1024
+
849
1025
 
850
1026
 
851
1027
  smalltalk.addClass('ReturnNode', smalltalk.Node, ['scope'], 'Compiler-AST');
@@ -856,10 +1032,10 @@ selector: "accept:",
856
1032
  category: 'visiting',
857
1033
  fn: function (aVisitor){
858
1034
  var self=this;
859
- var $1;
860
- $1=smalltalk.send(aVisitor,"_visitReturnNode_",[self]);
1035
+ return smalltalk.withContext(function($ctx1) {
1036
+ $1=_st(aVisitor)._visitReturnNode_(self);
861
1037
  return $1;
862
- },
1038
+ }, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.ReturnNode)})},
863
1039
  args: ["aVisitor"],
864
1040
  source: "accept: aVisitor\x0a\x09^ aVisitor visitReturnNode: self",
865
1041
  messageSends: ["visitReturnNode:"],
@@ -874,8 +1050,8 @@ selector: "isReturnNode",
874
1050
  category: 'testing',
875
1051
  fn: function (){
876
1052
  var self=this;
877
- return true;
878
- },
1053
+ return smalltalk.withContext(function($ctx1) {
1054
+ }, function($ctx1) {$ctx1.fill(self,"isReturnNode",{}, smalltalk.ReturnNode)})},
879
1055
  args: [],
880
1056
  source: "isReturnNode\x0a\x09^ true",
881
1057
  messageSends: [],
@@ -890,10 +1066,10 @@ selector: "nonLocalReturn",
890
1066
  category: 'testing',
891
1067
  fn: function (){
892
1068
  var self=this;
893
- var $1;
894
- $1=smalltalk.send(smalltalk.send(smalltalk.send(self,"_scope",[]),"_isMethodScope",[]),"_not",[]);
1069
+ return smalltalk.withContext(function($ctx1) {
1070
+ $1=_st(_st(_st(self)._scope())._isMethodScope())._not();
895
1071
  return $1;
896
- },
1072
+ }, function($ctx1) {$ctx1.fill(self,"nonLocalReturn",{}, smalltalk.ReturnNode)})},
897
1073
  args: [],
898
1074
  source: "nonLocalReturn\x0a\x09^ self scope isMethodScope not",
899
1075
  messageSends: ["not", "isMethodScope", "scope"],
@@ -908,8 +1084,10 @@ selector: "scope",
908
1084
  category: 'accessing',
909
1085
  fn: function (){
910
1086
  var self=this;
911
- return self["@scope"];
912
- },
1087
+ return smalltalk.withContext(function($ctx1) {
1088
+ $1=self["@scope"];
1089
+ return $1;
1090
+ }, function($ctx1) {$ctx1.fill(self,"scope",{}, smalltalk.ReturnNode)})},
913
1091
  args: [],
914
1092
  source: "scope\x0a\x09^ scope",
915
1093
  messageSends: [],
@@ -924,8 +1102,8 @@ selector: "scope:",
924
1102
  category: 'accessing',
925
1103
  fn: function (aLexicalScope){
926
1104
  var self=this;
927
- self["@scope"]=aLexicalScope;
928
- return self},
1105
+ return smalltalk.withContext(function($ctx1) {
1106
+ return self}, function($ctx1) {$ctx1.fill(self,"scope:",{aLexicalScope:aLexicalScope}, smalltalk.ReturnNode)})},
929
1107
  args: ["aLexicalScope"],
930
1108
  source: "scope: aLexicalScope\x0a\x09scope := aLexicalScope",
931
1109
  messageSends: [],
@@ -943,10 +1121,10 @@ selector: "accept:",
943
1121
  category: 'visiting',
944
1122
  fn: function (aVisitor){
945
1123
  var self=this;
946
- var $1;
947
- $1=smalltalk.send(aVisitor,"_visitSendNode_",[self]);
1124
+ return smalltalk.withContext(function($ctx1) {
1125
+ $1=_st(aVisitor)._visitSendNode_(self);
948
1126
  return $1;
949
- },
1127
+ }, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.SendNode)})},
950
1128
  args: ["aVisitor"],
951
1129
  source: "accept: aVisitor\x0a\x09^ aVisitor visitSendNode: self",
952
1130
  messageSends: ["visitSendNode:"],
@@ -961,15 +1139,16 @@ selector: "arguments",
961
1139
  category: 'accessing',
962
1140
  fn: function (){
963
1141
  var self=this;
964
- var $1;
965
- if(($receiver = self["@arguments"]) == nil || $receiver == undefined){
1142
+ return smalltalk.withContext(function($ctx1) {
1143
+ $2=self["@arguments"];
1144
+ if(($receiver = $2) == nil || $receiver == undefined){
966
1145
  self["@arguments"]=[];
967
1146
  $1=self["@arguments"];
968
1147
  } else {
969
- $1=self["@arguments"];
1148
+ $1=$2;
970
1149
  };
971
1150
  return $1;
972
- },
1151
+ }, function($ctx1) {$ctx1.fill(self,"arguments",{}, smalltalk.SendNode)})},
973
1152
  args: [],
974
1153
  source: "arguments\x0a\x09^arguments ifNil: [arguments := #()]",
975
1154
  messageSends: ["ifNil:"],
@@ -984,8 +1163,8 @@ selector: "arguments:",
984
1163
  category: 'accessing',
985
1164
  fn: function (aCollection){
986
1165
  var self=this;
987
- self["@arguments"]=aCollection;
988
- return self},
1166
+ return smalltalk.withContext(function($ctx1) {
1167
+ return self}, function($ctx1) {$ctx1.fill(self,"arguments:",{aCollection:aCollection}, smalltalk.SendNode)})},
989
1168
  args: ["aCollection"],
990
1169
  source: "arguments: aCollection\x0a\x09arguments := aCollection",
991
1170
  messageSends: [],
@@ -1000,20 +1179,20 @@ selector: "cascadeNodeWithMessages:",
1000
1179
  category: 'accessing',
1001
1180
  fn: function (aCollection){
1002
1181
  var self=this;
1003
- var $1,$2,$4,$5,$3;
1004
1182
  var first;
1005
- $1=smalltalk.send((smalltalk.SendNode || SendNode),"_new",[]);
1006
- smalltalk.send($1,"_selector_",[smalltalk.send(self,"_selector",[])]);
1007
- smalltalk.send($1,"_arguments_",[smalltalk.send(self,"_arguments",[])]);
1008
- $2=smalltalk.send($1,"_yourself",[]);
1183
+ return smalltalk.withContext(function($ctx1) {
1184
+ $1=_st((smalltalk.SendNode || SendNode))._new();
1185
+ _st($1)._selector_(_st(self)._selector());
1186
+ _st($1)._arguments_(_st(self)._arguments());
1187
+ $2=_st($1)._yourself();
1009
1188
  first=$2;
1010
- $4=smalltalk.send((smalltalk.CascadeNode || CascadeNode),"_new",[]);
1011
- smalltalk.send($4,"_receiver_",[smalltalk.send(self,"_receiver",[])]);
1012
- smalltalk.send($4,"_nodes_",[smalltalk.send(smalltalk.send((smalltalk.Array || Array),"_with_",[first]),"__comma",[aCollection])]);
1013
- $5=smalltalk.send($4,"_yourself",[]);
1189
+ $4=_st((smalltalk.CascadeNode || CascadeNode))._new();
1190
+ _st($4)._receiver_(_st(self)._receiver());
1191
+ _st($4)._nodes_(_st(_st((smalltalk.Array || Array))._with_(first)).__comma(aCollection));
1192
+ $5=_st($4)._yourself();
1014
1193
  $3=$5;
1015
1194
  return $3;
1016
- },
1195
+ }, function($ctx1) {$ctx1.fill(self,"cascadeNodeWithMessages:",{aCollection:aCollection,first:first}, smalltalk.SendNode)})},
1017
1196
  args: ["aCollection"],
1018
1197
  source: "cascadeNodeWithMessages: aCollection\x0a\x09| first |\x0a\x09first := SendNode new\x0a\x09 selector: self selector;\x0a\x09 arguments: self arguments;\x0a\x09 yourself.\x0a\x09^CascadeNode new\x0a\x09 receiver: self receiver;\x0a\x09 nodes: (Array with: first), aCollection;\x0a\x09 yourself",
1019
1198
  messageSends: ["selector:", "selector", "new", "arguments:", "arguments", "yourself", "receiver:", "receiver", "nodes:", ",", "with:"],
@@ -1028,8 +1207,10 @@ selector: "index",
1028
1207
  category: 'accessing',
1029
1208
  fn: function (){
1030
1209
  var self=this;
1031
- return self["@index"];
1032
- },
1210
+ return smalltalk.withContext(function($ctx1) {
1211
+ $1=self["@index"];
1212
+ return $1;
1213
+ }, function($ctx1) {$ctx1.fill(self,"index",{}, smalltalk.SendNode)})},
1033
1214
  args: [],
1034
1215
  source: "index\x0a\x09^ index",
1035
1216
  messageSends: [],
@@ -1044,8 +1225,8 @@ selector: "index:",
1044
1225
  category: 'accessing',
1045
1226
  fn: function (anInteger){
1046
1227
  var self=this;
1047
- self["@index"]=anInteger;
1048
- return self},
1228
+ return smalltalk.withContext(function($ctx1) {
1229
+ return self}, function($ctx1) {$ctx1.fill(self,"index:",{anInteger:anInteger}, smalltalk.SendNode)})},
1049
1230
  args: ["anInteger"],
1050
1231
  source: "index: anInteger\x0a\x09index := anInteger",
1051
1232
  messageSends: [],
@@ -1060,8 +1241,8 @@ selector: "isSendNode",
1060
1241
  category: 'testing',
1061
1242
  fn: function (){
1062
1243
  var self=this;
1063
- return true;
1064
- },
1244
+ return smalltalk.withContext(function($ctx1) {
1245
+ }, function($ctx1) {$ctx1.fill(self,"isSendNode",{}, smalltalk.SendNode)})},
1065
1246
  args: [],
1066
1247
  source: "isSendNode\x0a\x09^ true",
1067
1248
  messageSends: [],
@@ -1076,13 +1257,13 @@ selector: "nodes",
1076
1257
  category: 'accessing',
1077
1258
  fn: function (){
1078
1259
  var self=this;
1079
- var $2,$3,$1;
1080
- $2=smalltalk.send((smalltalk.Array || Array),"_withAll_",[smalltalk.send(self,"_arguments",[])]);
1081
- smalltalk.send($2,"_add_",[smalltalk.send(self,"_receiver",[])]);
1082
- $3=smalltalk.send($2,"_yourself",[]);
1260
+ return smalltalk.withContext(function($ctx1) {
1261
+ $2=_st((smalltalk.Array || Array))._withAll_(_st(self)._arguments());
1262
+ _st($2)._add_(_st(self)._receiver());
1263
+ $3=_st($2)._yourself();
1083
1264
  $1=$3;
1084
1265
  return $1;
1085
- },
1266
+ }, function($ctx1) {$ctx1.fill(self,"nodes",{}, smalltalk.SendNode)})},
1086
1267
  args: [],
1087
1268
  source: "nodes\x0a\x09^ (Array withAll: self arguments)\x0a\x09\x09add: self receiver;\x0a\x09\x09yourself",
1088
1269
  messageSends: ["add:", "receiver", "withAll:", "arguments", "yourself"],
@@ -1097,8 +1278,10 @@ selector: "receiver",
1097
1278
  category: 'accessing',
1098
1279
  fn: function (){
1099
1280
  var self=this;
1100
- return self["@receiver"];
1101
- },
1281
+ return smalltalk.withContext(function($ctx1) {
1282
+ $1=self["@receiver"];
1283
+ return $1;
1284
+ }, function($ctx1) {$ctx1.fill(self,"receiver",{}, smalltalk.SendNode)})},
1102
1285
  args: [],
1103
1286
  source: "receiver\x0a\x09^receiver",
1104
1287
  messageSends: [],
@@ -1113,8 +1296,8 @@ selector: "receiver:",
1113
1296
  category: 'accessing',
1114
1297
  fn: function (aNode){
1115
1298
  var self=this;
1116
- self["@receiver"]=aNode;
1117
- return self},
1299
+ return smalltalk.withContext(function($ctx1) {
1300
+ return self}, function($ctx1) {$ctx1.fill(self,"receiver:",{aNode:aNode}, smalltalk.SendNode)})},
1118
1301
  args: ["aNode"],
1119
1302
  source: "receiver: aNode\x0a\x09receiver := aNode",
1120
1303
  messageSends: [],
@@ -1129,8 +1312,10 @@ selector: "selector",
1129
1312
  category: 'accessing',
1130
1313
  fn: function (){
1131
1314
  var self=this;
1132
- return self["@selector"];
1133
- },
1315
+ return smalltalk.withContext(function($ctx1) {
1316
+ $1=self["@selector"];
1317
+ return $1;
1318
+ }, function($ctx1) {$ctx1.fill(self,"selector",{}, smalltalk.SendNode)})},
1134
1319
  args: [],
1135
1320
  source: "selector\x0a\x09^selector",
1136
1321
  messageSends: [],
@@ -1145,8 +1330,8 @@ selector: "selector:",
1145
1330
  category: 'accessing',
1146
1331
  fn: function (aString){
1147
1332
  var self=this;
1148
- self["@selector"]=aString;
1149
- return self},
1333
+ return smalltalk.withContext(function($ctx1) {
1334
+ return self}, function($ctx1) {$ctx1.fill(self,"selector:",{aString:aString}, smalltalk.SendNode)})},
1150
1335
  args: ["aString"],
1151
1336
  source: "selector: aString\x0a\x09selector := aString",
1152
1337
  messageSends: [],
@@ -1161,14 +1346,15 @@ selector: "superSend",
1161
1346
  category: 'accessing',
1162
1347
  fn: function (){
1163
1348
  var self=this;
1164
- var $1;
1165
- if(($receiver = self["@superSend"]) == nil || $receiver == undefined){
1349
+ return smalltalk.withContext(function($ctx1) {
1350
+ $2=self["@superSend"];
1351
+ if(($receiver = $2) == nil || $receiver == undefined){
1166
1352
  $1=false;
1167
1353
  } else {
1168
- $1=self["@superSend"];
1354
+ $1=$2;
1169
1355
  };
1170
1356
  return $1;
1171
- },
1357
+ }, function($ctx1) {$ctx1.fill(self,"superSend",{}, smalltalk.SendNode)})},
1172
1358
  args: [],
1173
1359
  source: "superSend\x0a\x09^ superSend ifNil: [ false ]",
1174
1360
  messageSends: ["ifNil:"],
@@ -1183,8 +1369,8 @@ selector: "superSend:",
1183
1369
  category: 'accessing',
1184
1370
  fn: function (aBoolean){
1185
1371
  var self=this;
1186
- self["@superSend"]=aBoolean;
1187
- return self},
1372
+ return smalltalk.withContext(function($ctx1) {
1373
+ return self}, function($ctx1) {$ctx1.fill(self,"superSend:",{aBoolean:aBoolean}, smalltalk.SendNode)})},
1188
1374
  args: ["aBoolean"],
1189
1375
  source: "superSend: aBoolean\x0a\x09superSend := aBoolean",
1190
1376
  messageSends: [],
@@ -1199,21 +1385,22 @@ selector: "valueForReceiver:",
1199
1385
  category: 'accessing',
1200
1386
  fn: function (anObject){
1201
1387
  var self=this;
1202
- var $2,$4,$3,$5,$1;
1203
- $2=smalltalk.send((smalltalk.SendNode || SendNode),"_new",[]);
1204
- $4=smalltalk.send(self,"_receiver",[]);
1205
- if(($receiver = $4) == nil || $receiver == undefined){
1206
- $3=anObject;
1388
+ return smalltalk.withContext(function($ctx1) {
1389
+ $2=_st((smalltalk.SendNode || SendNode))._new();
1390
+ $3=$2;
1391
+ $5=_st(self)._receiver();
1392
+ if(($receiver = $5) == nil || $receiver == undefined){
1393
+ $4=anObject;
1207
1394
  } else {
1208
- $3=smalltalk.send(smalltalk.send(self,"_receiver",[]),"_valueForReceiver_",[anObject]);
1395
+ $4=_st(_st(self)._receiver())._valueForReceiver_(anObject);
1209
1396
  };
1210
- smalltalk.send($2,"_receiver_",[$3]);
1211
- smalltalk.send($2,"_selector_",[smalltalk.send(self,"_selector",[])]);
1212
- smalltalk.send($2,"_arguments_",[smalltalk.send(self,"_arguments",[])]);
1213
- $5=smalltalk.send($2,"_yourself",[]);
1214
- $1=$5;
1397
+ _st($3)._receiver_($4);
1398
+ _st($2)._selector_(_st(self)._selector());
1399
+ _st($2)._arguments_(_st(self)._arguments());
1400
+ $6=_st($2)._yourself();
1401
+ $1=$6;
1215
1402
  return $1;
1216
- },
1403
+ }, function($ctx1) {$ctx1.fill(self,"valueForReceiver:",{anObject:anObject}, smalltalk.SendNode)})},
1217
1404
  args: ["anObject"],
1218
1405
  source: "valueForReceiver: anObject\x0a\x09^SendNode new\x0a\x09 receiver: (self receiver \x0a\x09\x09ifNil: [anObject]\x0a\x09\x09ifNotNil: [self receiver valueForReceiver: anObject]);\x0a\x09 selector: self selector;\x0a\x09 arguments: self arguments;\x0a\x09 yourself",
1219
1406
  messageSends: ["receiver:", "ifNil:ifNotNil:", "valueForReceiver:", "receiver", "new", "selector:", "selector", "arguments:", "arguments", "yourself"],
@@ -1231,10 +1418,10 @@ selector: "accept:",
1231
1418
  category: 'visiting',
1232
1419
  fn: function (aVisitor){
1233
1420
  var self=this;
1234
- var $1;
1235
- $1=smalltalk.send(aVisitor,"_visitSequenceNode_",[self]);
1421
+ return smalltalk.withContext(function($ctx1) {
1422
+ $1=_st(aVisitor)._visitSequenceNode_(self);
1236
1423
  return $1;
1237
- },
1424
+ }, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.SequenceNode)})},
1238
1425
  args: ["aVisitor"],
1239
1426
  source: "accept: aVisitor\x0a\x09^ aVisitor visitSequenceNode: self",
1240
1427
  messageSends: ["visitSequenceNode:"],
@@ -1249,14 +1436,14 @@ selector: "asBlockSequenceNode",
1249
1436
  category: 'testing',
1250
1437
  fn: function (){
1251
1438
  var self=this;
1252
- var $2,$3,$1;
1253
- $2=smalltalk.send((smalltalk.BlockSequenceNode || BlockSequenceNode),"_new",[]);
1254
- smalltalk.send($2,"_nodes_",[smalltalk.send(self,"_nodes",[])]);
1255
- smalltalk.send($2,"_temps_",[smalltalk.send(self,"_temps",[])]);
1256
- $3=smalltalk.send($2,"_yourself",[]);
1439
+ return smalltalk.withContext(function($ctx1) {
1440
+ $2=_st((smalltalk.BlockSequenceNode || BlockSequenceNode))._new();
1441
+ _st($2)._nodes_(_st(self)._nodes());
1442
+ _st($2)._temps_(_st(self)._temps());
1443
+ $3=_st($2)._yourself();
1257
1444
  $1=$3;
1258
1445
  return $1;
1259
- },
1446
+ }, function($ctx1) {$ctx1.fill(self,"asBlockSequenceNode",{}, smalltalk.SequenceNode)})},
1260
1447
  args: [],
1261
1448
  source: "asBlockSequenceNode\x0a\x09^BlockSequenceNode new\x0a\x09 nodes: self nodes;\x0a\x09 temps: self temps;\x0a\x09 yourself",
1262
1449
  messageSends: ["nodes:", "nodes", "new", "temps:", "temps", "yourself"],
@@ -1271,8 +1458,10 @@ selector: "scope",
1271
1458
  category: 'accessing',
1272
1459
  fn: function (){
1273
1460
  var self=this;
1274
- return self["@scope"];
1275
- },
1461
+ return smalltalk.withContext(function($ctx1) {
1462
+ $1=self["@scope"];
1463
+ return $1;
1464
+ }, function($ctx1) {$ctx1.fill(self,"scope",{}, smalltalk.SequenceNode)})},
1276
1465
  args: [],
1277
1466
  source: "scope\x0a\x09^ scope",
1278
1467
  messageSends: [],
@@ -1287,8 +1476,8 @@ selector: "scope:",
1287
1476
  category: 'accessing',
1288
1477
  fn: function (aLexicalScope){
1289
1478
  var self=this;
1290
- self["@scope"]=aLexicalScope;
1291
- return self},
1479
+ return smalltalk.withContext(function($ctx1) {
1480
+ return self}, function($ctx1) {$ctx1.fill(self,"scope:",{aLexicalScope:aLexicalScope}, smalltalk.SequenceNode)})},
1292
1481
  args: ["aLexicalScope"],
1293
1482
  source: "scope: aLexicalScope\x0a\x09scope := aLexicalScope",
1294
1483
  messageSends: [],
@@ -1303,14 +1492,15 @@ selector: "temps",
1303
1492
  category: 'accessing',
1304
1493
  fn: function (){
1305
1494
  var self=this;
1306
- var $1;
1307
- if(($receiver = self["@temps"]) == nil || $receiver == undefined){
1495
+ return smalltalk.withContext(function($ctx1) {
1496
+ $2=self["@temps"];
1497
+ if(($receiver = $2) == nil || $receiver == undefined){
1308
1498
  $1=[];
1309
1499
  } else {
1310
- $1=self["@temps"];
1500
+ $1=$2;
1311
1501
  };
1312
1502
  return $1;
1313
- },
1503
+ }, function($ctx1) {$ctx1.fill(self,"temps",{}, smalltalk.SequenceNode)})},
1314
1504
  args: [],
1315
1505
  source: "temps\x0a\x09^temps ifNil: [#()]",
1316
1506
  messageSends: ["ifNil:"],
@@ -1325,8 +1515,8 @@ selector: "temps:",
1325
1515
  category: 'accessing',
1326
1516
  fn: function (aCollection){
1327
1517
  var self=this;
1328
- self["@temps"]=aCollection;
1329
- return self},
1518
+ return smalltalk.withContext(function($ctx1) {
1519
+ return self}, function($ctx1) {$ctx1.fill(self,"temps:",{aCollection:aCollection}, smalltalk.SequenceNode)})},
1330
1520
  args: ["aCollection"],
1331
1521
  source: "temps: aCollection\x0a\x09temps := aCollection",
1332
1522
  messageSends: [],
@@ -1344,10 +1534,10 @@ selector: "accept:",
1344
1534
  category: 'visiting',
1345
1535
  fn: function (aVisitor){
1346
1536
  var self=this;
1347
- var $1;
1348
- $1=smalltalk.send(aVisitor,"_visitBlockSequenceNode_",[self]);
1537
+ return smalltalk.withContext(function($ctx1) {
1538
+ $1=_st(aVisitor)._visitBlockSequenceNode_(self);
1349
1539
  return $1;
1350
- },
1540
+ }, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.BlockSequenceNode)})},
1351
1541
  args: ["aVisitor"],
1352
1542
  source: "accept: aVisitor\x0a\x09^ aVisitor visitBlockSequenceNode: self",
1353
1543
  messageSends: ["visitBlockSequenceNode:"],
@@ -1362,8 +1552,8 @@ selector: "isBlockSequenceNode",
1362
1552
  category: 'testing',
1363
1553
  fn: function (){
1364
1554
  var self=this;
1365
- return true;
1366
- },
1555
+ return smalltalk.withContext(function($ctx1) {
1556
+ }, function($ctx1) {$ctx1.fill(self,"isBlockSequenceNode",{}, smalltalk.BlockSequenceNode)})},
1367
1557
  args: [],
1368
1558
  source: "isBlockSequenceNode\x0a\x09^true",
1369
1559
  messageSends: [],
@@ -1381,10 +1571,10 @@ selector: "accept:",
1381
1571
  category: 'visiting',
1382
1572
  fn: function (aVisitor){
1383
1573
  var self=this;
1384
- var $1;
1385
- $1=smalltalk.send(aVisitor,"_visitValueNode_",[self]);
1574
+ return smalltalk.withContext(function($ctx1) {
1575
+ $1=_st(aVisitor)._visitValueNode_(self);
1386
1576
  return $1;
1387
- },
1577
+ }, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.ValueNode)})},
1388
1578
  args: ["aVisitor"],
1389
1579
  source: "accept: aVisitor\x0a\x09^ aVisitor visitValueNode: self",
1390
1580
  messageSends: ["visitValueNode:"],
@@ -1392,6 +1582,22 @@ referencedClasses: []
1392
1582
  }),
1393
1583
  smalltalk.ValueNode);
1394
1584
 
1585
+ smalltalk.addMethod(
1586
+ "_isImmutable",
1587
+ smalltalk.method({
1588
+ selector: "isImmutable",
1589
+ category: 'testing',
1590
+ fn: function (){
1591
+ var self=this;
1592
+ return smalltalk.withContext(function($ctx1) {
1593
+ }, function($ctx1) {$ctx1.fill(self,"isImmutable",{}, smalltalk.ValueNode)})},
1594
+ args: [],
1595
+ source: "isImmutable\x0a\x09^true",
1596
+ messageSends: [],
1597
+ referencedClasses: []
1598
+ }),
1599
+ smalltalk.ValueNode);
1600
+
1395
1601
  smalltalk.addMethod(
1396
1602
  "_isValueNode",
1397
1603
  smalltalk.method({
@@ -1399,8 +1605,8 @@ selector: "isValueNode",
1399
1605
  category: 'testing',
1400
1606
  fn: function (){
1401
1607
  var self=this;
1402
- return true;
1403
- },
1608
+ return smalltalk.withContext(function($ctx1) {
1609
+ }, function($ctx1) {$ctx1.fill(self,"isValueNode",{}, smalltalk.ValueNode)})},
1404
1610
  args: [],
1405
1611
  source: "isValueNode\x0a\x09^true",
1406
1612
  messageSends: [],
@@ -1415,8 +1621,10 @@ selector: "value",
1415
1621
  category: 'accessing',
1416
1622
  fn: function (){
1417
1623
  var self=this;
1418
- return self["@value"];
1419
- },
1624
+ return smalltalk.withContext(function($ctx1) {
1625
+ $1=self["@value"];
1626
+ return $1;
1627
+ }, function($ctx1) {$ctx1.fill(self,"value",{}, smalltalk.ValueNode)})},
1420
1628
  args: [],
1421
1629
  source: "value\x0a\x09^value",
1422
1630
  messageSends: [],
@@ -1431,8 +1639,8 @@ selector: "value:",
1431
1639
  category: 'accessing',
1432
1640
  fn: function (anObject){
1433
1641
  var self=this;
1434
- self["@value"]=anObject;
1435
- return self},
1642
+ return smalltalk.withContext(function($ctx1) {
1643
+ return self}, function($ctx1) {$ctx1.fill(self,"value:",{anObject:anObject}, smalltalk.ValueNode)})},
1436
1644
  args: ["anObject"],
1437
1645
  source: "value: anObject\x0a\x09value := anObject",
1438
1646
  messageSends: [],
@@ -1450,10 +1658,10 @@ selector: "accept:",
1450
1658
  category: 'visiting',
1451
1659
  fn: function (aVisitor){
1452
1660
  var self=this;
1453
- var $1;
1454
- $1=smalltalk.send(aVisitor,"_visitVariableNode_",[self]);
1661
+ return smalltalk.withContext(function($ctx1) {
1662
+ $1=_st(aVisitor)._visitVariableNode_(self);
1455
1663
  return $1;
1456
- },
1664
+ }, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.VariableNode)})},
1457
1665
  args: ["aVisitor"],
1458
1666
  source: "accept: aVisitor\x0a\x09^ aVisitor visitVariableNode: self",
1459
1667
  messageSends: ["visitVariableNode:"],
@@ -1468,10 +1676,10 @@ selector: "alias",
1468
1676
  category: 'accessing',
1469
1677
  fn: function (){
1470
1678
  var self=this;
1471
- var $1;
1472
- $1=smalltalk.send(smalltalk.send(self,"_binding",[]),"_alias",[]);
1679
+ return smalltalk.withContext(function($ctx1) {
1680
+ $1=_st(_st(self)._binding())._alias();
1473
1681
  return $1;
1474
- },
1682
+ }, function($ctx1) {$ctx1.fill(self,"alias",{}, smalltalk.VariableNode)})},
1475
1683
  args: [],
1476
1684
  source: "alias\x0a\x09^ self binding alias",
1477
1685
  messageSends: ["alias", "binding"],
@@ -1486,14 +1694,15 @@ selector: "assigned",
1486
1694
  category: 'accessing',
1487
1695
  fn: function (){
1488
1696
  var self=this;
1489
- var $1;
1490
- if(($receiver = self["@assigned"]) == nil || $receiver == undefined){
1697
+ return smalltalk.withContext(function($ctx1) {
1698
+ $2=self["@assigned"];
1699
+ if(($receiver = $2) == nil || $receiver == undefined){
1491
1700
  $1=false;
1492
1701
  } else {
1493
- $1=self["@assigned"];
1702
+ $1=$2;
1494
1703
  };
1495
1704
  return $1;
1496
- },
1705
+ }, function($ctx1) {$ctx1.fill(self,"assigned",{}, smalltalk.VariableNode)})},
1497
1706
  args: [],
1498
1707
  source: "assigned\x0a\x09^assigned ifNil: [false]",
1499
1708
  messageSends: ["ifNil:"],
@@ -1508,8 +1717,8 @@ selector: "assigned:",
1508
1717
  category: 'accessing',
1509
1718
  fn: function (aBoolean){
1510
1719
  var self=this;
1511
- self["@assigned"]=aBoolean;
1512
- return self},
1720
+ return smalltalk.withContext(function($ctx1) {
1721
+ return self}, function($ctx1) {$ctx1.fill(self,"assigned:",{aBoolean:aBoolean}, smalltalk.VariableNode)})},
1513
1722
  args: ["aBoolean"],
1514
1723
  source: "assigned: aBoolean\x0a\x09assigned := aBoolean",
1515
1724
  messageSends: [],
@@ -1524,9 +1733,9 @@ selector: "beAssigned",
1524
1733
  category: 'accessing',
1525
1734
  fn: function (){
1526
1735
  var self=this;
1527
- smalltalk.send(smalltalk.send(self,"_binding",[]),"_validateAssignment",[]);
1736
+ return smalltalk.withContext(function($ctx1) {
1528
1737
  self["@assigned"]=true;
1529
- return self},
1738
+ return self}, function($ctx1) {$ctx1.fill(self,"beAssigned",{}, smalltalk.VariableNode)})},
1530
1739
  args: [],
1531
1740
  source: "beAssigned\x0a\x09self binding validateAssignment.\x0a\x09assigned := true",
1532
1741
  messageSends: ["validateAssignment", "binding"],
@@ -1541,8 +1750,10 @@ selector: "binding",
1541
1750
  category: 'accessing',
1542
1751
  fn: function (){
1543
1752
  var self=this;
1544
- return self["@binding"];
1545
- },
1753
+ return smalltalk.withContext(function($ctx1) {
1754
+ $1=self["@binding"];
1755
+ return $1;
1756
+ }, function($ctx1) {$ctx1.fill(self,"binding",{}, smalltalk.VariableNode)})},
1546
1757
  args: [],
1547
1758
  source: "binding\x0a\x09^ binding",
1548
1759
  messageSends: [],
@@ -1557,8 +1768,8 @@ selector: "binding:",
1557
1768
  category: 'accessing',
1558
1769
  fn: function (aScopeVar){
1559
1770
  var self=this;
1560
- self["@binding"]=aScopeVar;
1561
- return self},
1771
+ return smalltalk.withContext(function($ctx1) {
1772
+ return self}, function($ctx1) {$ctx1.fill(self,"binding:",{aScopeVar:aScopeVar}, smalltalk.VariableNode)})},
1562
1773
  args: ["aScopeVar"],
1563
1774
  source: "binding: aScopeVar\x0a\x09binding := aScopeVar",
1564
1775
  messageSends: [],
@@ -1566,6 +1777,22 @@ referencedClasses: []
1566
1777
  }),
1567
1778
  smalltalk.VariableNode);
1568
1779
 
1780
+ smalltalk.addMethod(
1781
+ "_isImmutable",
1782
+ smalltalk.method({
1783
+ selector: "isImmutable",
1784
+ category: 'testing',
1785
+ fn: function (){
1786
+ var self=this;
1787
+ return smalltalk.withContext(function($ctx1) {
1788
+ }, function($ctx1) {$ctx1.fill(self,"isImmutable",{}, smalltalk.VariableNode)})},
1789
+ args: [],
1790
+ source: "isImmutable\x0a\x09^false",
1791
+ messageSends: [],
1792
+ referencedClasses: []
1793
+ }),
1794
+ smalltalk.VariableNode);
1795
+
1569
1796
 
1570
1797
 
1571
1798
  smalltalk.addClass('ClassReferenceNode', smalltalk.VariableNode, [], 'Compiler-AST');
@@ -1576,10 +1803,10 @@ selector: "accept:",
1576
1803
  category: 'visiting',
1577
1804
  fn: function (aVisitor){
1578
1805
  var self=this;
1579
- var $1;
1580
- $1=smalltalk.send(aVisitor,"_visitClassReferenceNode_",[self]);
1806
+ return smalltalk.withContext(function($ctx1) {
1807
+ $1=_st(aVisitor)._visitClassReferenceNode_(self);
1581
1808
  return $1;
1582
- },
1809
+ }, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.ClassReferenceNode)})},
1583
1810
  args: ["aVisitor"],
1584
1811
  source: "accept: aVisitor\x0a\x09^ aVisitor visitClassReferenceNode: self",
1585
1812
  messageSends: ["visitClassReferenceNode:"],
@@ -1589,3 +1816,19 @@ smalltalk.ClassReferenceNode);
1589
1816
 
1590
1817
 
1591
1818
 
1819
+ smalltalk.addMethod(
1820
+ "_isNode",
1821
+ smalltalk.method({
1822
+ selector: "isNode",
1823
+ category: '*Compiler-AST',
1824
+ fn: function (){
1825
+ var self=this;
1826
+ return smalltalk.withContext(function($ctx1) {
1827
+ }, function($ctx1) {$ctx1.fill(self,"isNode",{}, smalltalk.Object)})},
1828
+ args: [],
1829
+ source: "isNode\x0a\x09^ false",
1830
+ messageSends: [],
1831
+ referencedClasses: []
1832
+ }),
1833
+ smalltalk.Object);
1834
+