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
@@ -4,12 +4,11 @@ smalltalk.addMethod(
4
4
  "_addArg_",
5
5
  smalltalk.method({
6
6
  selector: "addArg:",
7
- fn: function (aString) {
8
- var self = this;
9
- smalltalk.send(smalltalk.send(self, "_args", []), "_at_put_", [aString, smalltalk.send(smalltalk.ArgVar || ArgVar, "_on_", [aString])]);
10
- smalltalk.send(smalltalk.send(smalltalk.send(self, "_args", []), "_at_", [aString]), "_scope_", [self]);
11
- return self;
12
- }
7
+ fn: function (aString){
8
+ var self=this;
9
+ return smalltalk.withContext(function($ctx1) {
10
+ _st(_st(_st(self)._args())._at_(aString))._scope_(self);
11
+ return self}, function($ctx1) {$ctx1.fill(self,"addArg:",{aString:aString}, smalltalk.LexicalScope)})}
13
12
  }),
14
13
  smalltalk.LexicalScope);
15
14
 
@@ -17,12 +16,24 @@ smalltalk.addMethod(
17
16
  "_addTemp_",
18
17
  smalltalk.method({
19
18
  selector: "addTemp:",
20
- fn: function (aString) {
21
- var self = this;
22
- smalltalk.send(smalltalk.send(self, "_temps", []), "_at_put_", [aString, smalltalk.send(smalltalk.TempVar || TempVar, "_on_", [aString])]);
23
- smalltalk.send(smalltalk.send(smalltalk.send(self, "_temps", []), "_at_", [aString]), "_scope_", [self]);
24
- return self;
25
- }
19
+ fn: function (aString){
20
+ var self=this;
21
+ return smalltalk.withContext(function($ctx1) {
22
+ _st(_st(_st(self)._temps())._at_(aString))._scope_(self);
23
+ return self}, function($ctx1) {$ctx1.fill(self,"addTemp:",{aString:aString}, smalltalk.LexicalScope)})}
24
+ }),
25
+ smalltalk.LexicalScope);
26
+
27
+ smalltalk.addMethod(
28
+ "_alias",
29
+ smalltalk.method({
30
+ selector: "alias",
31
+ fn: function (){
32
+ var self=this;
33
+ return smalltalk.withContext(function($ctx1) {
34
+ $1=_st("$ctx").__comma(_st(_st(self)._scopeLevel())._asString());
35
+ return $1;
36
+ }, function($ctx1) {$ctx1.fill(self,"alias",{}, smalltalk.LexicalScope)})}
26
37
  }),
27
38
  smalltalk.LexicalScope);
28
39
 
@@ -30,12 +41,12 @@ smalltalk.addMethod(
30
41
  "_allVariableNames",
31
42
  smalltalk.method({
32
43
  selector: "allVariableNames",
33
- fn: function () {
34
- var self = this;
35
- var $1;
36
- $1 = smalltalk.send(smalltalk.send(smalltalk.send(self, "_args", []), "_keys", []), "__comma", [smalltalk.send(smalltalk.send(self, "_temps", []), "_keys", [])]);
37
- return $1;
38
- }
44
+ fn: function (){
45
+ var self=this;
46
+ return smalltalk.withContext(function($ctx1) {
47
+ $1=_st(_st(_st(self)._args())._keys()).__comma(_st(_st(self)._temps())._keys());
48
+ return $1;
49
+ }, function($ctx1) {$ctx1.fill(self,"allVariableNames",{}, smalltalk.LexicalScope)})}
39
50
  }),
40
51
  smalltalk.LexicalScope);
41
52
 
@@ -43,17 +54,18 @@ smalltalk.addMethod(
43
54
  "_args",
44
55
  smalltalk.method({
45
56
  selector: "args",
46
- fn: function () {
47
- var self = this;
48
- var $1;
49
- if (($receiver = self['@args']) == nil || $receiver == undefined) {
50
- self['@args'] = smalltalk.send(smalltalk.Dictionary || Dictionary, "_new", []);
51
- $1 = self['@args'];
52
- } else {
53
- $1 = self['@args'];
54
- }
55
- return $1;
56
- }
57
+ fn: function (){
58
+ var self=this;
59
+ return smalltalk.withContext(function($ctx1) {
60
+ $2=self["@args"];
61
+ if(($receiver = $2) == nil || $receiver == undefined){
62
+ self["@args"]=_st((smalltalk.Dictionary || Dictionary))._new();
63
+ $1=self["@args"];
64
+ } else {
65
+ $1=$2;
66
+ };
67
+ return $1;
68
+ }, function($ctx1) {$ctx1.fill(self,"args",{}, smalltalk.LexicalScope)})}
57
69
  }),
58
70
  smalltalk.LexicalScope);
59
71
 
@@ -61,12 +73,18 @@ smalltalk.addMethod(
61
73
  "_bindingFor_",
62
74
  smalltalk.method({
63
75
  selector: "bindingFor:",
64
- fn: function (aStringOrNode) {
65
- var self = this;
66
- var $1;
67
- $1 = smalltalk.send(smalltalk.send(self, "_pseudoVars", []), "_at_ifAbsent_", [smalltalk.send(aStringOrNode, "_value", []), function () {return smalltalk.send(smalltalk.send(self, "_args", []), "_at_ifAbsent_", [smalltalk.send(aStringOrNode, "_value", []), function () {return smalltalk.send(smalltalk.send(self, "_temps", []), "_at_ifAbsent_", [smalltalk.send(aStringOrNode, "_value", []), function () {return nil;}]);}]);}]);
68
- return $1;
69
- }
76
+ fn: function (aStringOrNode){
77
+ var self=this;
78
+ return smalltalk.withContext(function($ctx1) {
79
+ $1=_st(_st(self)._pseudoVars())._at_ifAbsent_(_st(aStringOrNode)._value(),(function(){
80
+ return smalltalk.withContext(function($ctx2) {
81
+ return smalltalk.withContext(function($ctx3) {
82
+ return smalltalk.withContext(function($ctx4) {
83
+ }, function($ctx4) {$ctx4.fillBlock({},$ctx1)})}));
84
+ }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
85
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
86
+ return $1;
87
+ }, function($ctx1) {$ctx1.fill(self,"bindingFor:",{aStringOrNode:aStringOrNode}, smalltalk.LexicalScope)})}
70
88
  }),
71
89
  smalltalk.LexicalScope);
72
90
 
@@ -74,12 +92,14 @@ smalltalk.addMethod(
74
92
  "_canInlineNonLocalReturns",
75
93
  smalltalk.method({
76
94
  selector: "canInlineNonLocalReturns",
77
- fn: function () {
78
- var self = this;
79
- var $1;
80
- $1 = smalltalk.send(smalltalk.send(self, "_isInlined", []), "_and_", [function () {return smalltalk.send(smalltalk.send(self, "_outerScope", []), "_canInlineNonLocalReturns", []);}]);
81
- return $1;
82
- }
95
+ fn: function (){
96
+ var self=this;
97
+ return smalltalk.withContext(function($ctx1) {
98
+ $1=_st(_st(self)._isInlined())._and_((function(){
99
+ return smalltalk.withContext(function($ctx2) {
100
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
101
+ return $1;
102
+ }, function($ctx1) {$ctx1.fill(self,"canInlineNonLocalReturns",{}, smalltalk.LexicalScope)})}
83
103
  }),
84
104
  smalltalk.LexicalScope);
85
105
 
@@ -87,10 +107,12 @@ smalltalk.addMethod(
87
107
  "_instruction",
88
108
  smalltalk.method({
89
109
  selector: "instruction",
90
- fn: function () {
91
- var self = this;
92
- return self['@instruction'];
93
- }
110
+ fn: function (){
111
+ var self=this;
112
+ return smalltalk.withContext(function($ctx1) {
113
+ $1=self["@instruction"];
114
+ return $1;
115
+ }, function($ctx1) {$ctx1.fill(self,"instruction",{}, smalltalk.LexicalScope)})}
94
116
  }),
95
117
  smalltalk.LexicalScope);
96
118
 
@@ -98,11 +120,10 @@ smalltalk.addMethod(
98
120
  "_instruction_",
99
121
  smalltalk.method({
100
122
  selector: "instruction:",
101
- fn: function (anIRInstruction) {
102
- var self = this;
103
- self['@instruction'] = anIRInstruction;
104
- return self;
105
- }
123
+ fn: function (anIRInstruction){
124
+ var self=this;
125
+ return smalltalk.withContext(function($ctx1) {
126
+ return self}, function($ctx1) {$ctx1.fill(self,"instruction:",{anIRInstruction:anIRInstruction}, smalltalk.LexicalScope)})}
106
127
  }),
107
128
  smalltalk.LexicalScope);
108
129
 
@@ -110,12 +131,12 @@ smalltalk.addMethod(
110
131
  "_isBlockScope",
111
132
  smalltalk.method({
112
133
  selector: "isBlockScope",
113
- fn: function () {
114
- var self = this;
115
- var $1;
116
- $1 = smalltalk.send(smalltalk.send(self, "_isMethodScope", []), "_not", []);
117
- return $1;
118
- }
134
+ fn: function (){
135
+ var self=this;
136
+ return smalltalk.withContext(function($ctx1) {
137
+ $1=_st(_st(self)._isMethodScope())._not();
138
+ return $1;
139
+ }, function($ctx1) {$ctx1.fill(self,"isBlockScope",{}, smalltalk.LexicalScope)})}
119
140
  }),
120
141
  smalltalk.LexicalScope);
121
142
 
@@ -123,12 +144,14 @@ smalltalk.addMethod(
123
144
  "_isInlined",
124
145
  smalltalk.method({
125
146
  selector: "isInlined",
126
- fn: function () {
127
- var self = this;
128
- var $1;
129
- $1 = smalltalk.send(smalltalk.send(self, "_instruction", []), "_isInlined", []);
130
- return $1;
131
- }
147
+ fn: function (){
148
+ var self=this;
149
+ return smalltalk.withContext(function($ctx1) {
150
+ $1=_st(_st(_st(self)._instruction())._notNil())._and_((function(){
151
+ return smalltalk.withContext(function($ctx2) {
152
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
153
+ return $1;
154
+ }, function($ctx1) {$ctx1.fill(self,"isInlined",{}, smalltalk.LexicalScope)})}
132
155
  }),
133
156
  smalltalk.LexicalScope);
134
157
 
@@ -136,10 +159,10 @@ smalltalk.addMethod(
136
159
  "_isMethodScope",
137
160
  smalltalk.method({
138
161
  selector: "isMethodScope",
139
- fn: function () {
140
- var self = this;
141
- return false;
142
- }
162
+ fn: function (){
163
+ var self=this;
164
+ return smalltalk.withContext(function($ctx1) {
165
+ }, function($ctx1) {$ctx1.fill(self,"isMethodScope",{}, smalltalk.LexicalScope)})}
143
166
  }),
144
167
  smalltalk.LexicalScope);
145
168
 
@@ -147,22 +170,25 @@ smalltalk.addMethod(
147
170
  "_lookupVariable_",
148
171
  smalltalk.method({
149
172
  selector: "lookupVariable:",
150
- fn: function (aNode) {
151
- var self = this;
152
- var $1;
153
- var lookup;
154
- lookup = smalltalk.send(self, "_bindingFor_", [aNode]);
155
- if (($receiver = lookup) == nil || $receiver == undefined) {
156
- $1 = smalltalk.send(self, "_outerScope", []);
157
- if (($receiver = $1) == nil || $receiver == undefined) {
158
- lookup = $1;
159
- } else {
160
- lookup = smalltalk.send(smalltalk.send(self, "_outerScope", []), "_lookupVariable_", [aNode]);
161
- }
162
- } else {
163
- }
164
- return lookup;
165
- }
173
+ fn: function (aNode){
174
+ var self=this;
175
+ var lookup;
176
+ return smalltalk.withContext(function($ctx1) {
177
+ lookup=_st(self)._bindingFor_(aNode);
178
+ $1=lookup;
179
+ $2=(function(){
180
+ return smalltalk.withContext(function($ctx2) {
181
+ if(($receiver = $3) == nil || $receiver == undefined){
182
+ lookup=$3;
183
+ } else {
184
+ lookup=_st(_st(self)._outerScope())._lookupVariable_(aNode);
185
+ };
186
+ return lookup;
187
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
188
+ _st($1)._ifNil_($2);
189
+ $4=lookup;
190
+ return $4;
191
+ }, function($ctx1) {$ctx1.fill(self,"lookupVariable:",{aNode:aNode,lookup:lookup}, smalltalk.LexicalScope)})}
166
192
  }),
167
193
  smalltalk.LexicalScope);
168
194
 
@@ -170,17 +196,17 @@ smalltalk.addMethod(
170
196
  "_methodScope",
171
197
  smalltalk.method({
172
198
  selector: "methodScope",
173
- fn: function () {
174
- var self = this;
175
- var $2, $1;
176
- $2 = smalltalk.send(self, "_outerScope", []);
177
- if (($receiver = $2) == nil || $receiver == undefined) {
178
- $1 = $2;
179
- } else {
180
- $1 = smalltalk.send(smalltalk.send(self, "_outerScope", []), "_methodScope", []);
181
- }
182
- return $1;
183
- }
199
+ fn: function (){
200
+ var self=this;
201
+ return smalltalk.withContext(function($ctx1) {
202
+ $2=_st(self)._outerScope();
203
+ if(($receiver = $2) == nil || $receiver == undefined){
204
+ $1=$2;
205
+ } else {
206
+ $1=_st(_st(self)._outerScope())._methodScope();
207
+ };
208
+ return $1;
209
+ }, function($ctx1) {$ctx1.fill(self,"methodScope",{}, smalltalk.LexicalScope)})}
184
210
  }),
185
211
  smalltalk.LexicalScope);
186
212
 
@@ -188,10 +214,12 @@ smalltalk.addMethod(
188
214
  "_node",
189
215
  smalltalk.method({
190
216
  selector: "node",
191
- fn: function () {
192
- var self = this;
193
- return self['@node'];
194
- }
217
+ fn: function (){
218
+ var self=this;
219
+ return smalltalk.withContext(function($ctx1) {
220
+ $1=self["@node"];
221
+ return $1;
222
+ }, function($ctx1) {$ctx1.fill(self,"node",{}, smalltalk.LexicalScope)})}
195
223
  }),
196
224
  smalltalk.LexicalScope);
197
225
 
@@ -199,11 +227,10 @@ smalltalk.addMethod(
199
227
  "_node_",
200
228
  smalltalk.method({
201
229
  selector: "node:",
202
- fn: function (aNode) {
203
- var self = this;
204
- self['@node'] = aNode;
205
- return self;
206
- }
230
+ fn: function (aNode){
231
+ var self=this;
232
+ return smalltalk.withContext(function($ctx1) {
233
+ return self}, function($ctx1) {$ctx1.fill(self,"node:",{aNode:aNode}, smalltalk.LexicalScope)})}
207
234
  }),
208
235
  smalltalk.LexicalScope);
209
236
 
@@ -211,10 +238,12 @@ smalltalk.addMethod(
211
238
  "_outerScope",
212
239
  smalltalk.method({
213
240
  selector: "outerScope",
214
- fn: function () {
215
- var self = this;
216
- return self['@outerScope'];
217
- }
241
+ fn: function (){
242
+ var self=this;
243
+ return smalltalk.withContext(function($ctx1) {
244
+ $1=self["@outerScope"];
245
+ return $1;
246
+ }, function($ctx1) {$ctx1.fill(self,"outerScope",{}, smalltalk.LexicalScope)})}
218
247
  }),
219
248
  smalltalk.LexicalScope);
220
249
 
@@ -222,11 +251,10 @@ smalltalk.addMethod(
222
251
  "_outerScope_",
223
252
  smalltalk.method({
224
253
  selector: "outerScope:",
225
- fn: function (aLexicalScope) {
226
- var self = this;
227
- self['@outerScope'] = aLexicalScope;
228
- return self;
229
- }
254
+ fn: function (aLexicalScope){
255
+ var self=this;
256
+ return smalltalk.withContext(function($ctx1) {
257
+ return self}, function($ctx1) {$ctx1.fill(self,"outerScope:",{aLexicalScope:aLexicalScope}, smalltalk.LexicalScope)})}
230
258
  }),
231
259
  smalltalk.LexicalScope);
232
260
 
@@ -234,12 +262,12 @@ smalltalk.addMethod(
234
262
  "_pseudoVars",
235
263
  smalltalk.method({
236
264
  selector: "pseudoVars",
237
- fn: function () {
238
- var self = this;
239
- var $1;
240
- $1 = smalltalk.send(smalltalk.send(self, "_methodScope", []), "_pseudoVars", []);
241
- return $1;
242
- }
265
+ fn: function (){
266
+ var self=this;
267
+ return smalltalk.withContext(function($ctx1) {
268
+ $1=_st(_st(self)._methodScope())._pseudoVars();
269
+ return $1;
270
+ }, function($ctx1) {$ctx1.fill(self,"pseudoVars",{}, smalltalk.LexicalScope)})}
243
271
  }),
244
272
  smalltalk.LexicalScope);
245
273
 
@@ -247,18 +275,23 @@ smalltalk.addMethod(
247
275
  "_scopeLevel",
248
276
  smalltalk.method({
249
277
  selector: "scopeLevel",
250
- fn: function () {
251
- var self = this;
252
- var $3, $2, $1;
253
- $3 = smalltalk.send(self, "_outerScope", []);
254
- if (($receiver = $3) == nil || $receiver == undefined) {
255
- $2 = 0;
256
- } else {
257
- $2 = smalltalk.send(smalltalk.send(self, "_outerScope", []), "_scopeLevel", []);
258
- }
259
- $1 = smalltalk.send($2, "__plus", [1]);
260
- return $1;
261
- }
278
+ fn: function (){
279
+ var self=this;
280
+ return smalltalk.withContext(function($ctx1) {
281
+ $1=_st(self)._outerScope();
282
+ if(($receiver = $1) == nil || $receiver == undefined){
283
+ return (1);
284
+ } else {
285
+ $1;
286
+ };
287
+ $2=_st(self)._isInlined();
288
+ if(smalltalk.assert($2)){
289
+ $3=_st(_st(self)._outerScope())._scopeLevel();
290
+ return $3;
291
+ };
292
+ $4=_st(_st(_st(self)._outerScope())._scopeLevel()).__plus((1));
293
+ return $4;
294
+ }, function($ctx1) {$ctx1.fill(self,"scopeLevel",{}, smalltalk.LexicalScope)})}
262
295
  }),
263
296
  smalltalk.LexicalScope);
264
297
 
@@ -266,17 +299,18 @@ smalltalk.addMethod(
266
299
  "_temps",
267
300
  smalltalk.method({
268
301
  selector: "temps",
269
- fn: function () {
270
- var self = this;
271
- var $1;
272
- if (($receiver = self['@temps']) == nil || $receiver == undefined) {
273
- self['@temps'] = smalltalk.send(smalltalk.Dictionary || Dictionary, "_new", []);
274
- $1 = self['@temps'];
275
- } else {
276
- $1 = self['@temps'];
277
- }
278
- return $1;
279
- }
302
+ fn: function (){
303
+ var self=this;
304
+ return smalltalk.withContext(function($ctx1) {
305
+ $2=self["@temps"];
306
+ if(($receiver = $2) == nil || $receiver == undefined){
307
+ self["@temps"]=_st((smalltalk.Dictionary || Dictionary))._new();
308
+ $1=self["@temps"];
309
+ } else {
310
+ $1=$2;
311
+ };
312
+ return $1;
313
+ }, function($ctx1) {$ctx1.fill(self,"temps",{}, smalltalk.LexicalScope)})}
280
314
  }),
281
315
  smalltalk.LexicalScope);
282
316
 
@@ -287,12 +321,11 @@ smalltalk.addMethod(
287
321
  "_addIVar_",
288
322
  smalltalk.method({
289
323
  selector: "addIVar:",
290
- fn: function (aString) {
291
- var self = this;
292
- smalltalk.send(smalltalk.send(self, "_iVars", []), "_at_put_", [aString, smalltalk.send(smalltalk.InstanceVar || InstanceVar, "_on_", [aString])]);
293
- smalltalk.send(smalltalk.send(smalltalk.send(self, "_iVars", []), "_at_", [aString]), "_scope_", [self]);
294
- return self;
295
- }
324
+ fn: function (aString){
325
+ var self=this;
326
+ return smalltalk.withContext(function($ctx1) {
327
+ _st(_st(_st(self)._iVars())._at_(aString))._scope_(self);
328
+ return self}, function($ctx1) {$ctx1.fill(self,"addIVar:",{aString:aString}, smalltalk.MethodLexicalScope)})}
296
329
  }),
297
330
  smalltalk.MethodLexicalScope);
298
331
 
@@ -300,11 +333,10 @@ smalltalk.addMethod(
300
333
  "_addNonLocalReturn_",
301
334
  smalltalk.method({
302
335
  selector: "addNonLocalReturn:",
303
- fn: function (aScope) {
304
- var self = this;
305
- smalltalk.send(smalltalk.send(self, "_nonLocalReturns", []), "_add_", [aScope]);
306
- return self;
307
- }
336
+ fn: function (aScope){
337
+ var self=this;
338
+ return smalltalk.withContext(function($ctx1) {
339
+ return self}, function($ctx1) {$ctx1.fill(self,"addNonLocalReturn:",{aScope:aScope}, smalltalk.MethodLexicalScope)})}
308
340
  }),
309
341
  smalltalk.MethodLexicalScope);
310
342
 
@@ -312,12 +344,12 @@ smalltalk.addMethod(
312
344
  "_allVariableNames",
313
345
  smalltalk.method({
314
346
  selector: "allVariableNames",
315
- fn: function () {
316
- var self = this;
317
- var $1;
318
- $1 = smalltalk.send(smalltalk.send(self, "_allVariableNames", [], smalltalk.LexicalScope), "__comma", [smalltalk.send(smalltalk.send(self, "_iVars", []), "_keys", [])]);
319
- return $1;
320
- }
347
+ fn: function (){
348
+ var self=this;
349
+ return smalltalk.withContext(function($ctx1) {
350
+ $1=_st(smalltalk.LexicalScope.fn.prototype._allVariableNames.apply(_st(self), [])).__comma(_st(_st(self)._iVars())._keys());
351
+ return $1;
352
+ }, function($ctx1) {$ctx1.fill(self,"allVariableNames",{}, smalltalk.MethodLexicalScope)})}
321
353
  }),
322
354
  smalltalk.MethodLexicalScope);
323
355
 
@@ -325,17 +357,19 @@ smalltalk.addMethod(
325
357
  "_bindingFor_",
326
358
  smalltalk.method({
327
359
  selector: "bindingFor:",
328
- fn: function (aNode) {
329
- var self = this;
330
- var $2, $1;
331
- $2 = smalltalk.send(self, "_bindingFor_", [aNode], smalltalk.LexicalScope);
332
- if (($receiver = $2) == nil || $receiver == undefined) {
333
- $1 = smalltalk.send(smalltalk.send(self, "_iVars", []), "_at_ifAbsent_", [smalltalk.send(aNode, "_value", []), function () {return nil;}]);
334
- } else {
335
- $1 = $2;
336
- }
337
- return $1;
338
- }
360
+ fn: function (aNode){
361
+ var self=this;
362
+ return smalltalk.withContext(function($ctx1) {
363
+ $2=smalltalk.LexicalScope.fn.prototype._bindingFor_.apply(_st(self), [aNode]);
364
+ if(($receiver = $2) == nil || $receiver == undefined){
365
+ $1=_st(_st(self)._iVars())._at_ifAbsent_(_st(aNode)._value(),(function(){
366
+ return smalltalk.withContext(function($ctx2) {
367
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
368
+ } else {
369
+ $1=$2;
370
+ };
371
+ return $1;
372
+ }, function($ctx1) {$ctx1.fill(self,"bindingFor:",{aNode:aNode}, smalltalk.MethodLexicalScope)})}
339
373
  }),
340
374
  smalltalk.MethodLexicalScope);
341
375
 
@@ -343,10 +377,10 @@ smalltalk.addMethod(
343
377
  "_canInlineNonLocalReturns",
344
378
  smalltalk.method({
345
379
  selector: "canInlineNonLocalReturns",
346
- fn: function () {
347
- var self = this;
348
- return true;
349
- }
380
+ fn: function (){
381
+ var self=this;
382
+ return smalltalk.withContext(function($ctx1) {
383
+ }, function($ctx1) {$ctx1.fill(self,"canInlineNonLocalReturns",{}, smalltalk.MethodLexicalScope)})}
350
384
  }),
351
385
  smalltalk.MethodLexicalScope);
352
386
 
@@ -354,12 +388,12 @@ smalltalk.addMethod(
354
388
  "_hasLocalReturn",
355
389
  smalltalk.method({
356
390
  selector: "hasLocalReturn",
357
- fn: function () {
358
- var self = this;
359
- var $1;
360
- $1 = smalltalk.send(self, "_localReturn", []);
361
- return $1;
362
- }
391
+ fn: function (){
392
+ var self=this;
393
+ return smalltalk.withContext(function($ctx1) {
394
+ $1=_st(self)._localReturn();
395
+ return $1;
396
+ }, function($ctx1) {$ctx1.fill(self,"hasLocalReturn",{}, smalltalk.MethodLexicalScope)})}
363
397
  }),
364
398
  smalltalk.MethodLexicalScope);
365
399
 
@@ -367,12 +401,12 @@ smalltalk.addMethod(
367
401
  "_hasNonLocalReturn",
368
402
  smalltalk.method({
369
403
  selector: "hasNonLocalReturn",
370
- fn: function () {
371
- var self = this;
372
- var $1;
373
- $1 = smalltalk.send(smalltalk.send(self, "_nonLocalReturns", []), "_notEmpty", []);
374
- return $1;
375
- }
404
+ fn: function (){
405
+ var self=this;
406
+ return smalltalk.withContext(function($ctx1) {
407
+ $1=_st(_st(self)._nonLocalReturns())._notEmpty();
408
+ return $1;
409
+ }, function($ctx1) {$ctx1.fill(self,"hasNonLocalReturn",{}, smalltalk.MethodLexicalScope)})}
376
410
  }),
377
411
  smalltalk.MethodLexicalScope);
378
412
 
@@ -380,17 +414,18 @@ smalltalk.addMethod(
380
414
  "_iVars",
381
415
  smalltalk.method({
382
416
  selector: "iVars",
383
- fn: function () {
384
- var self = this;
385
- var $1;
386
- if (($receiver = self['@iVars']) == nil || $receiver == undefined) {
387
- self['@iVars'] = smalltalk.send(smalltalk.Dictionary || Dictionary, "_new", []);
388
- $1 = self['@iVars'];
389
- } else {
390
- $1 = self['@iVars'];
391
- }
392
- return $1;
393
- }
417
+ fn: function (){
418
+ var self=this;
419
+ return smalltalk.withContext(function($ctx1) {
420
+ $2=self["@iVars"];
421
+ if(($receiver = $2) == nil || $receiver == undefined){
422
+ self["@iVars"]=_st((smalltalk.Dictionary || Dictionary))._new();
423
+ $1=self["@iVars"];
424
+ } else {
425
+ $1=$2;
426
+ };
427
+ return $1;
428
+ }, function($ctx1) {$ctx1.fill(self,"iVars",{}, smalltalk.MethodLexicalScope)})}
394
429
  }),
395
430
  smalltalk.MethodLexicalScope);
396
431
 
@@ -398,10 +433,10 @@ smalltalk.addMethod(
398
433
  "_isMethodScope",
399
434
  smalltalk.method({
400
435
  selector: "isMethodScope",
401
- fn: function () {
402
- var self = this;
403
- return true;
404
- }
436
+ fn: function (){
437
+ var self=this;
438
+ return smalltalk.withContext(function($ctx1) {
439
+ }, function($ctx1) {$ctx1.fill(self,"isMethodScope",{}, smalltalk.MethodLexicalScope)})}
405
440
  }),
406
441
  smalltalk.MethodLexicalScope);
407
442
 
@@ -409,16 +444,17 @@ smalltalk.addMethod(
409
444
  "_localReturn",
410
445
  smalltalk.method({
411
446
  selector: "localReturn",
412
- fn: function () {
413
- var self = this;
414
- var $1;
415
- if (($receiver = self['@localReturn']) == nil || $receiver == undefined) {
416
- $1 = false;
417
- } else {
418
- $1 = self['@localReturn'];
419
- }
420
- return $1;
421
- }
447
+ fn: function (){
448
+ var self=this;
449
+ return smalltalk.withContext(function($ctx1) {
450
+ $2=self["@localReturn"];
451
+ if(($receiver = $2) == nil || $receiver == undefined){
452
+ $1=false;
453
+ } else {
454
+ $1=$2;
455
+ };
456
+ return $1;
457
+ }, function($ctx1) {$ctx1.fill(self,"localReturn",{}, smalltalk.MethodLexicalScope)})}
422
458
  }),
423
459
  smalltalk.MethodLexicalScope);
424
460
 
@@ -426,11 +462,10 @@ smalltalk.addMethod(
426
462
  "_localReturn_",
427
463
  smalltalk.method({
428
464
  selector: "localReturn:",
429
- fn: function (aBoolean) {
430
- var self = this;
431
- self['@localReturn'] = aBoolean;
432
- return self;
433
- }
465
+ fn: function (aBoolean){
466
+ var self=this;
467
+ return smalltalk.withContext(function($ctx1) {
468
+ return self}, function($ctx1) {$ctx1.fill(self,"localReturn:",{aBoolean:aBoolean}, smalltalk.MethodLexicalScope)})}
434
469
  }),
435
470
  smalltalk.MethodLexicalScope);
436
471
 
@@ -438,10 +473,12 @@ smalltalk.addMethod(
438
473
  "_methodScope",
439
474
  smalltalk.method({
440
475
  selector: "methodScope",
441
- fn: function () {
442
- var self = this;
443
- return self;
444
- }
476
+ fn: function (){
477
+ var self=this;
478
+ return smalltalk.withContext(function($ctx1) {
479
+ $1=self;
480
+ return $1;
481
+ }, function($ctx1) {$ctx1.fill(self,"methodScope",{}, smalltalk.MethodLexicalScope)})}
445
482
  }),
446
483
  smalltalk.MethodLexicalScope);
447
484
 
@@ -449,18 +486,18 @@ smalltalk.addMethod(
449
486
  "_nonLocalReturns",
450
487
  smalltalk.method({
451
488
  selector: "nonLocalReturns",
452
- fn: function () {
453
- var self = this;
454
- var $1;
455
- if (($receiver = self['@nonLocalReturns']) == nil ||
456
- $receiver == undefined) {
457
- self['@nonLocalReturns'] = smalltalk.send(smalltalk.OrderedCollection || OrderedCollection, "_new", []);
458
- $1 = self['@nonLocalReturns'];
459
- } else {
460
- $1 = self['@nonLocalReturns'];
461
- }
462
- return $1;
463
- }
489
+ fn: function (){
490
+ var self=this;
491
+ return smalltalk.withContext(function($ctx1) {
492
+ $2=self["@nonLocalReturns"];
493
+ if(($receiver = $2) == nil || $receiver == undefined){
494
+ self["@nonLocalReturns"]=_st((smalltalk.OrderedCollection || OrderedCollection))._new();
495
+ $1=self["@nonLocalReturns"];
496
+ } else {
497
+ $1=$2;
498
+ };
499
+ return $1;
500
+ }, function($ctx1) {$ctx1.fill(self,"nonLocalReturns",{}, smalltalk.MethodLexicalScope)})}
464
501
  }),
465
502
  smalltalk.MethodLexicalScope);
466
503
 
@@ -468,18 +505,25 @@ smalltalk.addMethod(
468
505
  "_pseudoVars",
469
506
  smalltalk.method({
470
507
  selector: "pseudoVars",
471
- fn: function () {
472
- var self = this;
473
- var $1, $2;
474
- if (($receiver = self['@pseudoVars']) == nil || $receiver == undefined) {
475
- self['@pseudoVars'] = smalltalk.send(smalltalk.Dictionary || Dictionary, "_new", []);
476
- self['@pseudoVars'];
477
- smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.Smalltalk || Smalltalk, "_current", []), "_pseudoVariableNames", []), "_do_", [function (each) {$1 = smalltalk.send(smalltalk.PseudoVar || PseudoVar, "_on_", [each]);smalltalk.send($1, "_scope_", [smalltalk.send(self, "_methodScope", [])]);$2 = smalltalk.send($1, "_yourself", []);return smalltalk.send(self['@pseudoVars'], "_at_put_", [each, $2]);}]);
478
- } else {
479
- self['@pseudoVars'];
480
- }
481
- return self['@pseudoVars'];
482
- }
508
+ fn: function (){
509
+ var self=this;
510
+ return smalltalk.withContext(function($ctx1) {
511
+ $1=self["@pseudoVars"];
512
+ if(($receiver = $1) == nil || $receiver == undefined){
513
+ self["@pseudoVars"]=_st((smalltalk.Dictionary || Dictionary))._new();
514
+ self["@pseudoVars"];
515
+ _st(_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._pseudoVariableNames())._do_((function(each){
516
+ return smalltalk.withContext(function($ctx2) {
517
+ _st($2)._scope_(_st(self)._methodScope());
518
+ $3=_st($2)._yourself();
519
+ return _st(self["@pseudoVars"])._at_put_(each,$3);
520
+ }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
521
+ } else {
522
+ $1;
523
+ };
524
+ $4=self["@pseudoVars"];
525
+ return $4;
526
+ }, function($ctx1) {$ctx1.fill(self,"pseudoVars",{}, smalltalk.MethodLexicalScope)})}
483
527
  }),
484
528
  smalltalk.MethodLexicalScope);
485
529
 
@@ -487,11 +531,11 @@ smalltalk.addMethod(
487
531
  "_removeNonLocalReturn_",
488
532
  smalltalk.method({
489
533
  selector: "removeNonLocalReturn:",
490
- fn: function (aScope) {
491
- var self = this;
492
- smalltalk.send(smalltalk.send(self, "_nonLocalReturns", []), "_remove_ifAbsent_", [aScope, function () {}]);
493
- return self;
494
- }
534
+ fn: function (aScope){
535
+ var self=this;
536
+ return smalltalk.withContext(function($ctx1) {
537
+ return smalltalk.withContext(function($ctx2) {
538
+ return self}, function($ctx1) {$ctx1.fill(self,"removeNonLocalReturn:",{aScope:aScope}, smalltalk.MethodLexicalScope)})}
495
539
  }),
496
540
  smalltalk.MethodLexicalScope);
497
541
 
@@ -499,18 +543,18 @@ smalltalk.addMethod(
499
543
  "_unknownVariables",
500
544
  smalltalk.method({
501
545
  selector: "unknownVariables",
502
- fn: function () {
503
- var self = this;
504
- var $1;
505
- if (($receiver = self['@unknownVariables']) == nil ||
506
- $receiver == undefined) {
507
- self['@unknownVariables'] = smalltalk.send(smalltalk.OrderedCollection || OrderedCollection, "_new", []);
508
- $1 = self['@unknownVariables'];
509
- } else {
510
- $1 = self['@unknownVariables'];
511
- }
512
- return $1;
513
- }
546
+ fn: function (){
547
+ var self=this;
548
+ return smalltalk.withContext(function($ctx1) {
549
+ $2=self["@unknownVariables"];
550
+ if(($receiver = $2) == nil || $receiver == undefined){
551
+ self["@unknownVariables"]=_st((smalltalk.OrderedCollection || OrderedCollection))._new();
552
+ $1=self["@unknownVariables"];
553
+ } else {
554
+ $1=$2;
555
+ };
556
+ return $1;
557
+ }, function($ctx1) {$ctx1.fill(self,"unknownVariables",{}, smalltalk.MethodLexicalScope)})}
514
558
  }),
515
559
  smalltalk.MethodLexicalScope);
516
560
 
@@ -521,12 +565,12 @@ smalltalk.addMethod(
521
565
  "_alias",
522
566
  smalltalk.method({
523
567
  selector: "alias",
524
- fn: function () {
525
- var self = this;
526
- var $1;
527
- $1 = smalltalk.send(smalltalk.send(self, "_name", []), "_asVariableName", []);
528
- return $1;
529
- }
568
+ fn: function (){
569
+ var self=this;
570
+ return smalltalk.withContext(function($ctx1) {
571
+ $1=_st(_st(self)._name())._asVariableName();
572
+ return $1;
573
+ }, function($ctx1) {$ctx1.fill(self,"alias",{}, smalltalk.ScopeVar)})}
530
574
  }),
531
575
  smalltalk.ScopeVar);
532
576
 
@@ -534,10 +578,10 @@ smalltalk.addMethod(
534
578
  "_isArgVar",
535
579
  smalltalk.method({
536
580
  selector: "isArgVar",
537
- fn: function () {
538
- var self = this;
539
- return false;
540
- }
581
+ fn: function (){
582
+ var self=this;
583
+ return smalltalk.withContext(function($ctx1) {
584
+ }, function($ctx1) {$ctx1.fill(self,"isArgVar",{}, smalltalk.ScopeVar)})}
541
585
  }),
542
586
  smalltalk.ScopeVar);
543
587
 
@@ -545,10 +589,10 @@ smalltalk.addMethod(
545
589
  "_isClassRefVar",
546
590
  smalltalk.method({
547
591
  selector: "isClassRefVar",
548
- fn: function () {
549
- var self = this;
550
- return false;
551
- }
592
+ fn: function (){
593
+ var self=this;
594
+ return smalltalk.withContext(function($ctx1) {
595
+ }, function($ctx1) {$ctx1.fill(self,"isClassRefVar",{}, smalltalk.ScopeVar)})}
552
596
  }),
553
597
  smalltalk.ScopeVar);
554
598
 
@@ -556,10 +600,10 @@ smalltalk.addMethod(
556
600
  "_isInstanceVar",
557
601
  smalltalk.method({
558
602
  selector: "isInstanceVar",
559
- fn: function () {
560
- var self = this;
561
- return false;
562
- }
603
+ fn: function (){
604
+ var self=this;
605
+ return smalltalk.withContext(function($ctx1) {
606
+ }, function($ctx1) {$ctx1.fill(self,"isInstanceVar",{}, smalltalk.ScopeVar)})}
563
607
  }),
564
608
  smalltalk.ScopeVar);
565
609
 
@@ -567,10 +611,10 @@ smalltalk.addMethod(
567
611
  "_isPseudoVar",
568
612
  smalltalk.method({
569
613
  selector: "isPseudoVar",
570
- fn: function () {
571
- var self = this;
572
- return false;
573
- }
614
+ fn: function (){
615
+ var self=this;
616
+ return smalltalk.withContext(function($ctx1) {
617
+ }, function($ctx1) {$ctx1.fill(self,"isPseudoVar",{}, smalltalk.ScopeVar)})}
574
618
  }),
575
619
  smalltalk.ScopeVar);
576
620
 
@@ -578,10 +622,10 @@ smalltalk.addMethod(
578
622
  "_isTempVar",
579
623
  smalltalk.method({
580
624
  selector: "isTempVar",
581
- fn: function () {
582
- var self = this;
583
- return false;
584
- }
625
+ fn: function (){
626
+ var self=this;
627
+ return smalltalk.withContext(function($ctx1) {
628
+ }, function($ctx1) {$ctx1.fill(self,"isTempVar",{}, smalltalk.ScopeVar)})}
585
629
  }),
586
630
  smalltalk.ScopeVar);
587
631
 
@@ -589,10 +633,10 @@ smalltalk.addMethod(
589
633
  "_isUnknownVar",
590
634
  smalltalk.method({
591
635
  selector: "isUnknownVar",
592
- fn: function () {
593
- var self = this;
594
- return false;
595
- }
636
+ fn: function (){
637
+ var self=this;
638
+ return smalltalk.withContext(function($ctx1) {
639
+ }, function($ctx1) {$ctx1.fill(self,"isUnknownVar",{}, smalltalk.ScopeVar)})}
596
640
  }),
597
641
  smalltalk.ScopeVar);
598
642
 
@@ -600,10 +644,12 @@ smalltalk.addMethod(
600
644
  "_name",
601
645
  smalltalk.method({
602
646
  selector: "name",
603
- fn: function () {
604
- var self = this;
605
- return self['@name'];
606
- }
647
+ fn: function (){
648
+ var self=this;
649
+ return smalltalk.withContext(function($ctx1) {
650
+ $1=self["@name"];
651
+ return $1;
652
+ }, function($ctx1) {$ctx1.fill(self,"name",{}, smalltalk.ScopeVar)})}
607
653
  }),
608
654
  smalltalk.ScopeVar);
609
655
 
@@ -611,11 +657,10 @@ smalltalk.addMethod(
611
657
  "_name_",
612
658
  smalltalk.method({
613
659
  selector: "name:",
614
- fn: function (aString) {
615
- var self = this;
616
- self['@name'] = aString;
617
- return self;
618
- }
660
+ fn: function (aString){
661
+ var self=this;
662
+ return smalltalk.withContext(function($ctx1) {
663
+ return self}, function($ctx1) {$ctx1.fill(self,"name:",{aString:aString}, smalltalk.ScopeVar)})}
619
664
  }),
620
665
  smalltalk.ScopeVar);
621
666
 
@@ -623,10 +668,12 @@ smalltalk.addMethod(
623
668
  "_scope",
624
669
  smalltalk.method({
625
670
  selector: "scope",
626
- fn: function () {
627
- var self = this;
628
- return self['@scope'];
629
- }
671
+ fn: function (){
672
+ var self=this;
673
+ return smalltalk.withContext(function($ctx1) {
674
+ $1=self["@scope"];
675
+ return $1;
676
+ }, function($ctx1) {$ctx1.fill(self,"scope",{}, smalltalk.ScopeVar)})}
630
677
  }),
631
678
  smalltalk.ScopeVar);
632
679
 
@@ -634,11 +681,10 @@ smalltalk.addMethod(
634
681
  "_scope_",
635
682
  smalltalk.method({
636
683
  selector: "scope:",
637
- fn: function (aScope) {
638
- var self = this;
639
- self['@scope'] = aScope;
640
- return self;
641
- }
684
+ fn: function (aScope){
685
+ var self=this;
686
+ return smalltalk.withContext(function($ctx1) {
687
+ return self}, function($ctx1) {$ctx1.fill(self,"scope:",{aScope:aScope}, smalltalk.ScopeVar)})}
642
688
  }),
643
689
  smalltalk.ScopeVar);
644
690
 
@@ -646,17 +692,19 @@ smalltalk.addMethod(
646
692
  "_validateAssignment",
647
693
  smalltalk.method({
648
694
  selector: "validateAssignment",
649
- fn: function () {
650
- var self = this;
651
- var $1, $2, $3;
652
- $1 = smalltalk.send(smalltalk.send(self, "_isArgVar", []), "_or_", [function () {return smalltalk.send(self, "_isPseudoVar", []);}]);
653
- if (smalltalk.assert($1)) {
654
- $2 = smalltalk.send(smalltalk.InvalidAssignmentError || InvalidAssignmentError, "_new", []);
655
- smalltalk.send($2, "_variableName_", [smalltalk.send(self, "_name", [])]);
656
- $3 = smalltalk.send($2, "_signal", []);
657
- }
658
- return self;
659
- }
695
+ fn: function (){
696
+ var self=this;
697
+ return smalltalk.withContext(function($ctx1) {
698
+ $1=_st(_st(self)._isArgVar())._or_((function(){
699
+ return smalltalk.withContext(function($ctx2) {
700
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
701
+ if(smalltalk.assert($1)){
702
+ $2=_st((smalltalk.InvalidAssignmentError || InvalidAssignmentError))._new();
703
+ _st($2)._variableName_(_st(self)._name());
704
+ $3=_st($2)._signal();
705
+ $3;
706
+ };
707
+ return self}, function($ctx1) {$ctx1.fill(self,"validateAssignment",{}, smalltalk.ScopeVar)})}
660
708
  }),
661
709
  smalltalk.ScopeVar);
662
710
 
@@ -665,15 +713,15 @@ smalltalk.addMethod(
665
713
  "_on_",
666
714
  smalltalk.method({
667
715
  selector: "on:",
668
- fn: function (aString) {
669
- var self = this;
670
- var $2, $3, $1;
671
- $2 = smalltalk.send(self, "_new", []);
672
- smalltalk.send($2, "_name_", [aString]);
673
- $3 = smalltalk.send($2, "_yourself", []);
674
- $1 = $3;
675
- return $1;
676
- }
716
+ fn: function (aString){
717
+ var self=this;
718
+ return smalltalk.withContext(function($ctx1) {
719
+ $2=_st(self)._new();
720
+ _st($2)._name_(aString);
721
+ $3=_st($2)._yourself();
722
+ $1=$3;
723
+ return $1;
724
+ }, function($ctx1) {$ctx1.fill(self,"on:",{aString:aString}, smalltalk.ScopeVar.klass)})}
677
725
  }),
678
726
  smalltalk.ScopeVar.klass);
679
727
 
@@ -683,10 +731,12 @@ smalltalk.addMethod(
683
731
  "_node",
684
732
  smalltalk.method({
685
733
  selector: "node",
686
- fn: function () {
687
- var self = this;
688
- return self['@node'];
689
- }
734
+ fn: function (){
735
+ var self=this;
736
+ return smalltalk.withContext(function($ctx1) {
737
+ $1=self["@node"];
738
+ return $1;
739
+ }, function($ctx1) {$ctx1.fill(self,"node",{}, smalltalk.AliasVar)})}
690
740
  }),
691
741
  smalltalk.AliasVar);
692
742
 
@@ -694,11 +744,10 @@ smalltalk.addMethod(
694
744
  "_node_",
695
745
  smalltalk.method({
696
746
  selector: "node:",
697
- fn: function (aNode) {
698
- var self = this;
699
- self['@node'] = aNode;
700
- return self;
701
- }
747
+ fn: function (aNode){
748
+ var self=this;
749
+ return smalltalk.withContext(function($ctx1) {
750
+ return self}, function($ctx1) {$ctx1.fill(self,"node:",{aNode:aNode}, smalltalk.AliasVar)})}
702
751
  }),
703
752
  smalltalk.AliasVar);
704
753
 
@@ -709,10 +758,10 @@ smalltalk.addMethod(
709
758
  "_isArgVar",
710
759
  smalltalk.method({
711
760
  selector: "isArgVar",
712
- fn: function () {
713
- var self = this;
714
- return true;
715
- }
761
+ fn: function (){
762
+ var self=this;
763
+ return smalltalk.withContext(function($ctx1) {
764
+ }, function($ctx1) {$ctx1.fill(self,"isArgVar",{}, smalltalk.ArgVar)})}
716
765
  }),
717
766
  smalltalk.ArgVar);
718
767
 
@@ -723,12 +772,12 @@ smalltalk.addMethod(
723
772
  "_alias",
724
773
  smalltalk.method({
725
774
  selector: "alias",
726
- fn: function () {
727
- var self = this;
728
- var $1;
729
- $1 = smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("(smalltalk.", "__comma", [smalltalk.send(self, "_name", [])]), "__comma", [" || "]), "__comma", [smalltalk.send(self, "_name", [])]), "__comma", [")"]);
730
- return $1;
731
- }
775
+ fn: function (){
776
+ var self=this;
777
+ return smalltalk.withContext(function($ctx1) {
778
+ $1=_st(_st(_st(_st("(smalltalk.").__comma(_st(self)._name())).__comma(" || ")).__comma(_st(self)._name())).__comma(")");
779
+ return $1;
780
+ }, function($ctx1) {$ctx1.fill(self,"alias",{}, smalltalk.ClassRefVar)})}
732
781
  }),
733
782
  smalltalk.ClassRefVar);
734
783
 
@@ -736,10 +785,10 @@ smalltalk.addMethod(
736
785
  "_isClassRefVar",
737
786
  smalltalk.method({
738
787
  selector: "isClassRefVar",
739
- fn: function () {
740
- var self = this;
741
- return true;
742
- }
788
+ fn: function (){
789
+ var self=this;
790
+ return smalltalk.withContext(function($ctx1) {
791
+ }, function($ctx1) {$ctx1.fill(self,"isClassRefVar",{}, smalltalk.ClassRefVar)})}
743
792
  }),
744
793
  smalltalk.ClassRefVar);
745
794
 
@@ -750,12 +799,12 @@ smalltalk.addMethod(
750
799
  "_alias",
751
800
  smalltalk.method({
752
801
  selector: "alias",
753
- fn: function () {
754
- var self = this;
755
- var $1;
756
- $1 = smalltalk.send(smalltalk.send("self[\"@", "__comma", [smalltalk.send(self, "_name", [])]), "__comma", ["\"]"]);
757
- return $1;
758
- }
802
+ fn: function (){
803
+ var self=this;
804
+ return smalltalk.withContext(function($ctx1) {
805
+ $1=_st(_st("self[\x22@").__comma(_st(self)._name())).__comma("\x22]");
806
+ return $1;
807
+ }, function($ctx1) {$ctx1.fill(self,"alias",{}, smalltalk.InstanceVar)})}
759
808
  }),
760
809
  smalltalk.InstanceVar);
761
810
 
@@ -763,10 +812,10 @@ smalltalk.addMethod(
763
812
  "_isInstanceVar",
764
813
  smalltalk.method({
765
814
  selector: "isInstanceVar",
766
- fn: function () {
767
- var self = this;
768
- return true;
769
- }
815
+ fn: function (){
816
+ var self=this;
817
+ return smalltalk.withContext(function($ctx1) {
818
+ }, function($ctx1) {$ctx1.fill(self,"isInstanceVar",{}, smalltalk.InstanceVar)})}
770
819
  }),
771
820
  smalltalk.InstanceVar);
772
821
 
@@ -777,12 +826,12 @@ smalltalk.addMethod(
777
826
  "_alias",
778
827
  smalltalk.method({
779
828
  selector: "alias",
780
- fn: function () {
781
- var self = this;
782
- var $1;
783
- $1 = smalltalk.send(self, "_name", []);
784
- return $1;
785
- }
829
+ fn: function (){
830
+ var self=this;
831
+ return smalltalk.withContext(function($ctx1) {
832
+ $1=_st(self)._name();
833
+ return $1;
834
+ }, function($ctx1) {$ctx1.fill(self,"alias",{}, smalltalk.PseudoVar)})}
786
835
  }),
787
836
  smalltalk.PseudoVar);
788
837
 
@@ -790,10 +839,10 @@ smalltalk.addMethod(
790
839
  "_isPseudoVar",
791
840
  smalltalk.method({
792
841
  selector: "isPseudoVar",
793
- fn: function () {
794
- var self = this;
795
- return true;
796
- }
842
+ fn: function (){
843
+ var self=this;
844
+ return smalltalk.withContext(function($ctx1) {
845
+ }, function($ctx1) {$ctx1.fill(self,"isPseudoVar",{}, smalltalk.PseudoVar)})}
797
846
  }),
798
847
  smalltalk.PseudoVar);
799
848
 
@@ -804,10 +853,10 @@ smalltalk.addMethod(
804
853
  "_isTempVar",
805
854
  smalltalk.method({
806
855
  selector: "isTempVar",
807
- fn: function () {
808
- var self = this;
809
- return true;
810
- }
856
+ fn: function (){
857
+ var self=this;
858
+ return smalltalk.withContext(function($ctx1) {
859
+ }, function($ctx1) {$ctx1.fill(self,"isTempVar",{}, smalltalk.TempVar)})}
811
860
  }),
812
861
  smalltalk.TempVar);
813
862
 
@@ -818,32 +867,32 @@ smalltalk.addMethod(
818
867
  "_isUnknownVar",
819
868
  smalltalk.method({
820
869
  selector: "isUnknownVar",
821
- fn: function () {
822
- var self = this;
823
- return true;
824
- }
870
+ fn: function (){
871
+ var self=this;
872
+ return smalltalk.withContext(function($ctx1) {
873
+ }, function($ctx1) {$ctx1.fill(self,"isUnknownVar",{}, smalltalk.UnknownVar)})}
825
874
  }),
826
875
  smalltalk.UnknownVar);
827
876
 
828
877
 
829
878
 
830
- smalltalk.addClass('SemanticAnalyzer', smalltalk.NodeVisitor, ['currentScope', 'theClass', 'classReferences', 'messageSends'], 'Compiler-Semantic');
879
+ smalltalk.addClass('SemanticAnalyzer', smalltalk.NodeVisitor, ['currentScope', 'theClass', 'classReferences', 'messageSends', 'superSends'], 'Compiler-Semantic');
831
880
  smalltalk.addMethod(
832
881
  "_classReferences",
833
882
  smalltalk.method({
834
883
  selector: "classReferences",
835
- fn: function () {
836
- var self = this;
837
- var $1;
838
- if (($receiver = self['@classReferences']) == nil ||
839
- $receiver == undefined) {
840
- self['@classReferences'] = smalltalk.send(smalltalk.Set || Set, "_new", []);
841
- $1 = self['@classReferences'];
842
- } else {
843
- $1 = self['@classReferences'];
844
- }
845
- return $1;
846
- }
884
+ fn: function (){
885
+ var self=this;
886
+ return smalltalk.withContext(function($ctx1) {
887
+ $2=self["@classReferences"];
888
+ if(($receiver = $2) == nil || $receiver == undefined){
889
+ self["@classReferences"]=_st((smalltalk.Set || Set))._new();
890
+ $1=self["@classReferences"];
891
+ } else {
892
+ $1=$2;
893
+ };
894
+ return $1;
895
+ }, function($ctx1) {$ctx1.fill(self,"classReferences",{}, smalltalk.SemanticAnalyzer)})}
847
896
  }),
848
897
  smalltalk.SemanticAnalyzer);
849
898
 
@@ -851,14 +900,13 @@ smalltalk.addMethod(
851
900
  "_errorShadowingVariable_",
852
901
  smalltalk.method({
853
902
  selector: "errorShadowingVariable:",
854
- fn: function (aString) {
855
- var self = this;
856
- var $1, $2;
857
- $1 = smalltalk.send(smalltalk.ShadowingVariableError || ShadowingVariableError, "_new", []);
858
- smalltalk.send($1, "_variableName_", [aString]);
859
- $2 = smalltalk.send($1, "_signal", []);
860
- return self;
861
- }
903
+ fn: function (aString){
904
+ var self=this;
905
+ return smalltalk.withContext(function($ctx1) {
906
+ $1=_st((smalltalk.ShadowingVariableError || ShadowingVariableError))._new();
907
+ _st($1)._variableName_(aString);
908
+ $2=_st($1)._signal();
909
+ return self}, function($ctx1) {$ctx1.fill(self,"errorShadowingVariable:",{aString:aString}, smalltalk.SemanticAnalyzer)})}
862
910
  }),
863
911
  smalltalk.SemanticAnalyzer);
864
912
 
@@ -866,20 +914,34 @@ smalltalk.addMethod(
866
914
  "_errorUnknownVariable_",
867
915
  smalltalk.method({
868
916
  selector: "errorUnknownVariable:",
869
- fn: function (aNode) {
870
- var self = this;
871
- var $1, $2;
872
- var notDefined;
873
- notDefined = eval("typeof " + aNode._value() + " == \"undefined\"");
874
- if (smalltalk.assert(notDefined)) {
875
- $1 = smalltalk.send(smalltalk.UnknownVariableError || UnknownVariableError, "_new", []);
876
- smalltalk.send($1, "_variableName_", [smalltalk.send(aNode, "_value", [])]);
877
- $2 = smalltalk.send($1, "_signal", []);
878
- } else {
879
- smalltalk.send(smalltalk.send(smalltalk.send(self['@currentScope'], "_methodScope", []), "_unknownVariables", []), "_add_", [smalltalk.send(aNode, "_value", [])]);
880
- }
881
- return self;
882
- }
917
+ fn: function (aNode){
918
+ var self=this;
919
+ var identifier;
920
+ return smalltalk.withContext(function($ctx1) {
921
+ identifier=_st(aNode)._value();
922
+ $1=_st(_st(_st(["jQuery", "window", "process", "global"])._includes_(identifier))._not())._and_((function(){
923
+ return smalltalk.withContext(function($ctx2) {
924
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
925
+ if(smalltalk.assert($1)){
926
+ $2=_st((smalltalk.UnknownVariableError || UnknownVariableError))._new();
927
+ _st($2)._variableName_(_st(aNode)._value());
928
+ $3=_st($2)._signal();
929
+ $3;
930
+ } else {
931
+ _st(_st(_st(self["@currentScope"])._methodScope())._unknownVariables())._add_(_st(aNode)._value());
932
+ };
933
+ return self}, function($ctx1) {$ctx1.fill(self,"errorUnknownVariable:",{aNode:aNode,identifier:identifier}, smalltalk.SemanticAnalyzer)})}
934
+ }),
935
+ smalltalk.SemanticAnalyzer);
936
+
937
+ smalltalk.addMethod(
938
+ "_isVariableGloballyUndefined_",
939
+ smalltalk.method({
940
+ selector: "isVariableGloballyUndefined:",
941
+ fn: function (aString){
942
+ var self=this;
943
+ return smalltalk.withContext(function($ctx1) {
944
+ return self}, function($ctx1) {$ctx1.fill(self,"isVariableGloballyUndefined:",{aString:aString}, smalltalk.SemanticAnalyzer)})}
883
945
  }),
884
946
  smalltalk.SemanticAnalyzer);
885
947
 
@@ -887,18 +949,18 @@ smalltalk.addMethod(
887
949
  "_messageSends",
888
950
  smalltalk.method({
889
951
  selector: "messageSends",
890
- fn: function () {
891
- var self = this;
892
- var $1;
893
- if (($receiver = self['@messageSends']) == nil ||
894
- $receiver == undefined) {
895
- self['@messageSends'] = smalltalk.send(smalltalk.Dictionary || Dictionary, "_new", []);
896
- $1 = self['@messageSends'];
897
- } else {
898
- $1 = self['@messageSends'];
899
- }
900
- return $1;
901
- }
952
+ fn: function (){
953
+ var self=this;
954
+ return smalltalk.withContext(function($ctx1) {
955
+ $2=self["@messageSends"];
956
+ if(($receiver = $2) == nil || $receiver == undefined){
957
+ self["@messageSends"]=_st((smalltalk.Dictionary || Dictionary))._new();
958
+ $1=self["@messageSends"];
959
+ } else {
960
+ $1=$2;
961
+ };
962
+ return $1;
963
+ }, function($ctx1) {$ctx1.fill(self,"messageSends",{}, smalltalk.SemanticAnalyzer)})}
902
964
  }),
903
965
  smalltalk.SemanticAnalyzer);
904
966
 
@@ -906,12 +968,12 @@ smalltalk.addMethod(
906
968
  "_newBlockScope",
907
969
  smalltalk.method({
908
970
  selector: "newBlockScope",
909
- fn: function () {
910
- var self = this;
911
- var $1;
912
- $1 = smalltalk.send(self, "_newScopeOfClass_", [smalltalk.LexicalScope || LexicalScope]);
913
- return $1;
914
- }
971
+ fn: function (){
972
+ var self=this;
973
+ return smalltalk.withContext(function($ctx1) {
974
+ $1=_st(self)._newScopeOfClass_((smalltalk.LexicalScope || LexicalScope));
975
+ return $1;
976
+ }, function($ctx1) {$ctx1.fill(self,"newBlockScope",{}, smalltalk.SemanticAnalyzer)})}
915
977
  }),
916
978
  smalltalk.SemanticAnalyzer);
917
979
 
@@ -919,12 +981,12 @@ smalltalk.addMethod(
919
981
  "_newMethodScope",
920
982
  smalltalk.method({
921
983
  selector: "newMethodScope",
922
- fn: function () {
923
- var self = this;
924
- var $1;
925
- $1 = smalltalk.send(self, "_newScopeOfClass_", [smalltalk.MethodLexicalScope || MethodLexicalScope]);
926
- return $1;
927
- }
984
+ fn: function (){
985
+ var self=this;
986
+ return smalltalk.withContext(function($ctx1) {
987
+ $1=_st(self)._newScopeOfClass_((smalltalk.MethodLexicalScope || MethodLexicalScope));
988
+ return $1;
989
+ }, function($ctx1) {$ctx1.fill(self,"newMethodScope",{}, smalltalk.SemanticAnalyzer)})}
928
990
  }),
929
991
  smalltalk.SemanticAnalyzer);
930
992
 
@@ -932,15 +994,15 @@ smalltalk.addMethod(
932
994
  "_newScopeOfClass_",
933
995
  smalltalk.method({
934
996
  selector: "newScopeOfClass:",
935
- fn: function (aLexicalScopeClass) {
936
- var self = this;
937
- var $2, $3, $1;
938
- $2 = smalltalk.send(aLexicalScopeClass, "_new", []);
939
- smalltalk.send($2, "_outerScope_", [self['@currentScope']]);
940
- $3 = smalltalk.send($2, "_yourself", []);
941
- $1 = $3;
942
- return $1;
943
- }
997
+ fn: function (aLexicalScopeClass){
998
+ var self=this;
999
+ return smalltalk.withContext(function($ctx1) {
1000
+ $2=_st(aLexicalScopeClass)._new();
1001
+ _st($2)._outerScope_(self["@currentScope"]);
1002
+ $3=_st($2)._yourself();
1003
+ $1=$3;
1004
+ return $1;
1005
+ }, function($ctx1) {$ctx1.fill(self,"newScopeOfClass:",{aLexicalScopeClass:aLexicalScopeClass}, smalltalk.SemanticAnalyzer)})}
944
1006
  }),
945
1007
  smalltalk.SemanticAnalyzer);
946
1008
 
@@ -948,17 +1010,17 @@ smalltalk.addMethod(
948
1010
  "_popScope",
949
1011
  smalltalk.method({
950
1012
  selector: "popScope",
951
- fn: function () {
952
- var self = this;
953
- if (($receiver = self['@currentScope']) == nil ||
954
- $receiver == undefined) {
955
- self['@currentScope'];
956
- } else {
957
- self['@currentScope'] = smalltalk.send(self['@currentScope'], "_outerScope", []);
958
- self['@currentScope'];
959
- }
960
- return self;
961
- }
1013
+ fn: function (){
1014
+ var self=this;
1015
+ return smalltalk.withContext(function($ctx1) {
1016
+ $1=self["@currentScope"];
1017
+ if(($receiver = $1) == nil || $receiver == undefined){
1018
+ $1;
1019
+ } else {
1020
+ self["@currentScope"]=_st(self["@currentScope"])._outerScope();
1021
+ self["@currentScope"];
1022
+ };
1023
+ return self}, function($ctx1) {$ctx1.fill(self,"popScope",{}, smalltalk.SemanticAnalyzer)})}
962
1024
  }),
963
1025
  smalltalk.SemanticAnalyzer);
964
1026
 
@@ -966,12 +1028,30 @@ smalltalk.addMethod(
966
1028
  "_pushScope_",
967
1029
  smalltalk.method({
968
1030
  selector: "pushScope:",
969
- fn: function (aScope) {
970
- var self = this;
971
- smalltalk.send(aScope, "_outerScope_", [self['@currentScope']]);
972
- self['@currentScope'] = aScope;
973
- return self;
974
- }
1031
+ fn: function (aScope){
1032
+ var self=this;
1033
+ return smalltalk.withContext(function($ctx1) {
1034
+ self["@currentScope"]=aScope;
1035
+ return self}, function($ctx1) {$ctx1.fill(self,"pushScope:",{aScope:aScope}, smalltalk.SemanticAnalyzer)})}
1036
+ }),
1037
+ smalltalk.SemanticAnalyzer);
1038
+
1039
+ smalltalk.addMethod(
1040
+ "_superSends",
1041
+ smalltalk.method({
1042
+ selector: "superSends",
1043
+ fn: function (){
1044
+ var self=this;
1045
+ return smalltalk.withContext(function($ctx1) {
1046
+ $2=self["@superSends"];
1047
+ if(($receiver = $2) == nil || $receiver == undefined){
1048
+ self["@superSends"]=_st((smalltalk.Dictionary || Dictionary))._new();
1049
+ $1=self["@superSends"];
1050
+ } else {
1051
+ $1=$2;
1052
+ };
1053
+ return $1;
1054
+ }, function($ctx1) {$ctx1.fill(self,"superSends",{}, smalltalk.SemanticAnalyzer)})}
975
1055
  }),
976
1056
  smalltalk.SemanticAnalyzer);
977
1057
 
@@ -979,10 +1059,12 @@ smalltalk.addMethod(
979
1059
  "_theClass",
980
1060
  smalltalk.method({
981
1061
  selector: "theClass",
982
- fn: function () {
983
- var self = this;
984
- return self['@theClass'];
985
- }
1062
+ fn: function (){
1063
+ var self=this;
1064
+ return smalltalk.withContext(function($ctx1) {
1065
+ $1=self["@theClass"];
1066
+ return $1;
1067
+ }, function($ctx1) {$ctx1.fill(self,"theClass",{}, smalltalk.SemanticAnalyzer)})}
986
1068
  }),
987
1069
  smalltalk.SemanticAnalyzer);
988
1070
 
@@ -990,11 +1072,10 @@ smalltalk.addMethod(
990
1072
  "_theClass_",
991
1073
  smalltalk.method({
992
1074
  selector: "theClass:",
993
- fn: function (aClass) {
994
- var self = this;
995
- self['@theClass'] = aClass;
996
- return self;
997
- }
1075
+ fn: function (aClass){
1076
+ var self=this;
1077
+ return smalltalk.withContext(function($ctx1) {
1078
+ return self}, function($ctx1) {$ctx1.fill(self,"theClass:",{aClass:aClass}, smalltalk.SemanticAnalyzer)})}
998
1079
  }),
999
1080
  smalltalk.SemanticAnalyzer);
1000
1081
 
@@ -1002,16 +1083,16 @@ smalltalk.addMethod(
1002
1083
  "_validateVariableScope_",
1003
1084
  smalltalk.method({
1004
1085
  selector: "validateVariableScope:",
1005
- fn: function (aString) {
1006
- var self = this;
1007
- var $1;
1008
- $1 = smalltalk.send(self['@currentScope'], "_lookupVariable_", [aString]);
1009
- if (($receiver = $1) == nil || $receiver == undefined) {
1010
- } else {
1011
- smalltalk.send(self, "_errorShadowingVariable_", [aString]);
1012
- }
1013
- return self;
1014
- }
1086
+ fn: function (aString){
1087
+ var self=this;
1088
+ return smalltalk.withContext(function($ctx1) {
1089
+ $1=_st(self["@currentScope"])._lookupVariable_(aString);
1090
+ if(($receiver = $1) == nil || $receiver == undefined){
1091
+ $1;
1092
+ } else {
1093
+ _st(self)._errorShadowingVariable_(aString);
1094
+ };
1095
+ return self}, function($ctx1) {$ctx1.fill(self,"validateVariableScope:",{aString:aString}, smalltalk.SemanticAnalyzer)})}
1015
1096
  }),
1016
1097
  smalltalk.SemanticAnalyzer);
1017
1098
 
@@ -1019,12 +1100,11 @@ smalltalk.addMethod(
1019
1100
  "_visitAssignmentNode_",
1020
1101
  smalltalk.method({
1021
1102
  selector: "visitAssignmentNode:",
1022
- fn: function (aNode) {
1023
- var self = this;
1024
- smalltalk.send(self, "_visitAssignmentNode_", [aNode], smalltalk.NodeVisitor);
1025
- smalltalk.send(smalltalk.send(aNode, "_left", []), "_beAssigned", []);
1026
- return self;
1027
- }
1103
+ fn: function (aNode){
1104
+ var self=this;
1105
+ return smalltalk.withContext(function($ctx1) {
1106
+ _st(_st(aNode)._left())._beAssigned();
1107
+ return self}, function($ctx1) {$ctx1.fill(self,"visitAssignmentNode:",{aNode:aNode}, smalltalk.SemanticAnalyzer)})}
1028
1108
  }),
1029
1109
  smalltalk.SemanticAnalyzer);
1030
1110
 
@@ -1032,16 +1112,18 @@ smalltalk.addMethod(
1032
1112
  "_visitBlockNode_",
1033
1113
  smalltalk.method({
1034
1114
  selector: "visitBlockNode:",
1035
- fn: function (aNode) {
1036
- var self = this;
1037
- smalltalk.send(self, "_pushScope_", [smalltalk.send(self, "_newBlockScope", [])]);
1038
- smalltalk.send(aNode, "_scope_", [self['@currentScope']]);
1039
- smalltalk.send(self['@currentScope'], "_node_", [aNode]);
1040
- smalltalk.send(smalltalk.send(aNode, "_parameters", []), "_do_", [function (each) {smalltalk.send(self, "_validateVariableScope_", [each]);return smalltalk.send(self['@currentScope'], "_addArg_", [each]);}]);
1041
- smalltalk.send(self, "_visitBlockNode_", [aNode], smalltalk.NodeVisitor);
1042
- smalltalk.send(self, "_popScope", []);
1043
- return self;
1044
- }
1115
+ fn: function (aNode){
1116
+ var self=this;
1117
+ return smalltalk.withContext(function($ctx1) {
1118
+ _st(aNode)._scope_(self["@currentScope"]);
1119
+ _st(self["@currentScope"])._node_(aNode);
1120
+ _st(_st(aNode)._parameters())._do_((function(each){
1121
+ return smalltalk.withContext(function($ctx2) {
1122
+ return _st(self["@currentScope"])._addArg_(each);
1123
+ }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
1124
+ smalltalk.NodeVisitor.fn.prototype._visitBlockNode_.apply(_st(self), [aNode]);
1125
+ _st(self)._popScope();
1126
+ return self}, function($ctx1) {$ctx1.fill(self,"visitBlockNode:",{aNode:aNode}, smalltalk.SemanticAnalyzer)})}
1045
1127
  }),
1046
1128
  smalltalk.SemanticAnalyzer);
1047
1129
 
@@ -1049,17 +1131,20 @@ smalltalk.addMethod(
1049
1131
  "_visitCascadeNode_",
1050
1132
  smalltalk.method({
1051
1133
  selector: "visitCascadeNode:",
1052
- fn: function (aNode) {
1053
- var self = this;
1054
- var $1;
1055
- smalltalk.send(smalltalk.send(aNode, "_nodes", []), "_do_", [function (each) {return smalltalk.send(each, "_receiver_", [smalltalk.send(aNode, "_receiver", [])]);}]);
1056
- smalltalk.send(self, "_visitCascadeNode_", [aNode], smalltalk.NodeVisitor);
1057
- $1 = smalltalk.send(smalltalk.send(smalltalk.send(aNode, "_nodes", []), "_first", []), "_superSend", []);
1058
- if (smalltalk.assert($1)) {
1059
- smalltalk.send(smalltalk.send(aNode, "_nodes", []), "_do_", [function (each) {return smalltalk.send(each, "_superSend_", [true]);}]);
1060
- }
1061
- return self;
1062
- }
1134
+ fn: function (aNode){
1135
+ var self=this;
1136
+ return smalltalk.withContext(function($ctx1) {
1137
+ _st(_st(aNode)._nodes())._do_((function(each){
1138
+ return smalltalk.withContext(function($ctx2) {
1139
+ }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
1140
+ smalltalk.NodeVisitor.fn.prototype._visitCascadeNode_.apply(_st(self), [aNode]);
1141
+ $1=_st(_st(_st(aNode)._nodes())._first())._superSend();
1142
+ if(smalltalk.assert($1)){
1143
+ _st(_st(aNode)._nodes())._do_((function(each){
1144
+ return smalltalk.withContext(function($ctx2) {
1145
+ }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
1146
+ };
1147
+ return self}, function($ctx1) {$ctx1.fill(self,"visitCascadeNode:",{aNode:aNode}, smalltalk.SemanticAnalyzer)})}
1063
1148
  }),
1064
1149
  smalltalk.SemanticAnalyzer);
1065
1150
 
@@ -1067,16 +1152,15 @@ smalltalk.addMethod(
1067
1152
  "_visitClassReferenceNode_",
1068
1153
  smalltalk.method({
1069
1154
  selector: "visitClassReferenceNode:",
1070
- fn: function (aNode) {
1071
- var self = this;
1072
- var $1, $2;
1073
- smalltalk.send(smalltalk.send(self, "_classReferences", []), "_add_", [smalltalk.send(aNode, "_value", [])]);
1074
- $1 = smalltalk.send(smalltalk.ClassRefVar || ClassRefVar, "_new", []);
1075
- smalltalk.send($1, "_name_", [smalltalk.send(aNode, "_value", [])]);
1076
- $2 = smalltalk.send($1, "_yourself", []);
1077
- smalltalk.send(aNode, "_binding_", [$2]);
1078
- return self;
1079
- }
1155
+ fn: function (aNode){
1156
+ var self=this;
1157
+ return smalltalk.withContext(function($ctx1) {
1158
+ _st(_st(self)._classReferences())._add_(_st(aNode)._value());
1159
+ $1=_st((smalltalk.ClassRefVar || ClassRefVar))._new();
1160
+ _st($1)._name_(_st(aNode)._value());
1161
+ $2=_st($1)._yourself();
1162
+ _st(aNode)._binding_($2);
1163
+ return self}, function($ctx1) {$ctx1.fill(self,"visitClassReferenceNode:",{aNode:aNode}, smalltalk.SemanticAnalyzer)})}
1080
1164
  }),
1081
1165
  smalltalk.SemanticAnalyzer);
1082
1166
 
@@ -1084,20 +1168,26 @@ smalltalk.addMethod(
1084
1168
  "_visitMethodNode_",
1085
1169
  smalltalk.method({
1086
1170
  selector: "visitMethodNode:",
1087
- fn: function (aNode) {
1088
- var self = this;
1089
- var $1;
1090
- smalltalk.send(self, "_pushScope_", [smalltalk.send(self, "_newMethodScope", [])]);
1091
- smalltalk.send(aNode, "_scope_", [self['@currentScope']]);
1092
- smalltalk.send(self['@currentScope'], "_node_", [aNode]);
1093
- smalltalk.send(smalltalk.send(smalltalk.send(self, "_theClass", []), "_allInstanceVariableNames", []), "_do_", [function (each) {return smalltalk.send(self['@currentScope'], "_addIVar_", [each]);}]);
1094
- smalltalk.send(smalltalk.send(aNode, "_arguments", []), "_do_", [function (each) {smalltalk.send(self, "_validateVariableScope_", [each]);return smalltalk.send(self['@currentScope'], "_addArg_", [each]);}]);
1095
- smalltalk.send(self, "_visitMethodNode_", [aNode], smalltalk.NodeVisitor);
1096
- smalltalk.send(aNode, "_classReferences_", [smalltalk.send(self, "_classReferences", [])]);
1097
- $1 = smalltalk.send(aNode, "_messageSends_", [smalltalk.send(smalltalk.send(self, "_messageSends", []), "_keys", [])]);
1098
- smalltalk.send(self, "_popScope", []);
1099
- return self;
1100
- }
1171
+ fn: function (aNode){
1172
+ var self=this;
1173
+ return smalltalk.withContext(function($ctx1) {
1174
+ _st(self)._pushScope_(_st(self)._newMethodScope());
1175
+ _st(aNode)._scope_(self["@currentScope"]);
1176
+ _st(self["@currentScope"])._node_(aNode);
1177
+ _st(_st(_st(self)._theClass())._allInstanceVariableNames())._do_((function(each){
1178
+ return smalltalk.withContext(function($ctx2) {
1179
+ }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
1180
+ _st(_st(aNode)._arguments())._do_((function(each){
1181
+ return smalltalk.withContext(function($ctx2) {
1182
+ return _st(self["@currentScope"])._addArg_(each);
1183
+ }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
1184
+ smalltalk.NodeVisitor.fn.prototype._visitMethodNode_.apply(_st(self), [aNode]);
1185
+ $1=aNode;
1186
+ _st($1)._classReferences_(_st(self)._classReferences());
1187
+ _st($1)._messageSends_(_st(_st(self)._messageSends())._keys());
1188
+ $2=_st($1)._superSends_(_st(_st(self)._superSends())._keys());
1189
+ _st(self)._popScope();
1190
+ return self}, function($ctx1) {$ctx1.fill(self,"visitMethodNode:",{aNode:aNode}, smalltalk.SemanticAnalyzer)})}
1101
1191
  }),
1102
1192
  smalltalk.SemanticAnalyzer);
1103
1193
 
@@ -1105,19 +1195,18 @@ smalltalk.addMethod(
1105
1195
  "_visitReturnNode_",
1106
1196
  smalltalk.method({
1107
1197
  selector: "visitReturnNode:",
1108
- fn: function (aNode) {
1109
- var self = this;
1110
- var $1;
1111
- smalltalk.send(aNode, "_scope_", [self['@currentScope']]);
1112
- $1 = smalltalk.send(self['@currentScope'], "_isMethodScope", []);
1113
- if (smalltalk.assert($1)) {
1114
- smalltalk.send(self['@currentScope'], "_localReturn_", [true]);
1115
- } else {
1116
- smalltalk.send(smalltalk.send(self['@currentScope'], "_methodScope", []), "_addNonLocalReturn_", [self['@currentScope']]);
1117
- }
1118
- smalltalk.send(self, "_visitReturnNode_", [aNode], smalltalk.NodeVisitor);
1119
- return self;
1120
- }
1198
+ fn: function (aNode){
1199
+ var self=this;
1200
+ return smalltalk.withContext(function($ctx1) {
1201
+ _st(aNode)._scope_(self["@currentScope"]);
1202
+ $1=_st(self["@currentScope"])._isMethodScope();
1203
+ if(smalltalk.assert($1)){
1204
+ _st(self["@currentScope"])._localReturn_(true);
1205
+ } else {
1206
+ _st(_st(self["@currentScope"])._methodScope())._addNonLocalReturn_(self["@currentScope"]);
1207
+ };
1208
+ smalltalk.NodeVisitor.fn.prototype._visitReturnNode_.apply(_st(self), [aNode]);
1209
+ return self}, function($ctx1) {$ctx1.fill(self,"visitReturnNode:",{aNode:aNode}, smalltalk.SemanticAnalyzer)})}
1121
1210
  }),
1122
1211
  smalltalk.SemanticAnalyzer);
1123
1212
 
@@ -1125,29 +1214,33 @@ smalltalk.addMethod(
1125
1214
  "_visitSendNode_",
1126
1215
  smalltalk.method({
1127
1216
  selector: "visitSendNode:",
1128
- fn: function (aNode) {
1129
- var self = this;
1130
- var $1, $2, $3;
1131
- $1 = smalltalk.send(smalltalk.send(smalltalk.send(aNode, "_receiver", []), "_value", []), "__eq", ["super"]);
1132
- if (smalltalk.assert($1)) {
1133
- smalltalk.send(aNode, "_superSend_", [true]);
1134
- smalltalk.send(smalltalk.send(aNode, "_receiver", []), "_value_", ["self"]);
1135
- } else {
1136
- $2 = smalltalk.send(smalltalk.send(smalltalk.IRSendInliner || IRSendInliner, "_inlinedSelectors", []), "_includes_", [smalltalk.send(aNode, "_selector", [])]);
1137
- if (smalltalk.assert($2)) {
1138
- smalltalk.send(aNode, "_shouldBeInlined_", [true]);
1139
- $3 = smalltalk.send(smalltalk.send(aNode, "_receiver", []), "_isValueNode", []);
1140
- if (!smalltalk.assert($3)) {
1141
- smalltalk.send(smalltalk.send(aNode, "_receiver", []), "_shouldBeAliased_", [true]);
1142
- }
1143
- }
1144
- }
1145
- smalltalk.send(smalltalk.send(self, "_messageSends", []), "_at_ifAbsentPut_", [smalltalk.send(aNode, "_selector", []), function () {return smalltalk.send(smalltalk.Set || Set, "_new", []);}]);
1146
- smalltalk.send(smalltalk.send(smalltalk.send(self, "_messageSends", []), "_at_", [smalltalk.send(aNode, "_selector", [])]), "_add_", [aNode]);
1147
- smalltalk.send(aNode, "_index_", [smalltalk.send(smalltalk.send(smalltalk.send(self, "_messageSends", []), "_at_", [smalltalk.send(aNode, "_selector", [])]), "_size", [])]);
1148
- smalltalk.send(self, "_visitSendNode_", [aNode], smalltalk.NodeVisitor);
1149
- return self;
1150
- }
1217
+ fn: function (aNode){
1218
+ var self=this;
1219
+ return smalltalk.withContext(function($ctx1) {
1220
+ $1=_st(_st(_st(aNode)._receiver())._value()).__eq("super");
1221
+ $2=(function(){
1222
+ return smalltalk.withContext(function($ctx2) {
1223
+ _st(_st(aNode)._receiver())._value_("self");
1224
+ _st(_st(self)._superSends())._at_ifAbsentPut_(_st(aNode)._selector(),(function(){
1225
+ return smalltalk.withContext(function($ctx3) {
1226
+ }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
1227
+ return _st(_st(_st(self)._superSends())._at_(_st(aNode)._selector()))._add_(aNode);
1228
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
1229
+ $3=(function(){
1230
+ return smalltalk.withContext(function($ctx2) {
1231
+ if(smalltalk.assert($4)){
1232
+ _st(aNode)._shouldBeInlined_(true);
1233
+ return _st(_st(aNode)._receiver())._shouldBeAliased_(true);
1234
+ };
1235
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
1236
+ _st($1)._ifTrue_ifFalse_($2,$3);
1237
+ _st(_st(self)._messageSends())._at_ifAbsentPut_(_st(aNode)._selector(),(function(){
1238
+ return smalltalk.withContext(function($ctx2) {
1239
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
1240
+ _st(_st(_st(self)._messageSends())._at_(_st(aNode)._selector()))._add_(aNode);
1241
+ _st(aNode)._index_(_st(_st(_st(self)._messageSends())._at_(_st(aNode)._selector()))._size());
1242
+ smalltalk.NodeVisitor.fn.prototype._visitSendNode_.apply(_st(self), [aNode]);
1243
+ return self}, function($ctx1) {$ctx1.fill(self,"visitSendNode:",{aNode:aNode}, smalltalk.SemanticAnalyzer)})}
1151
1244
  }),
1152
1245
  smalltalk.SemanticAnalyzer);
1153
1246
 
@@ -1155,12 +1248,14 @@ smalltalk.addMethod(
1155
1248
  "_visitSequenceNode_",
1156
1249
  smalltalk.method({
1157
1250
  selector: "visitSequenceNode:",
1158
- fn: function (aNode) {
1159
- var self = this;
1160
- smalltalk.send(smalltalk.send(aNode, "_temps", []), "_do_", [function (each) {smalltalk.send(self, "_validateVariableScope_", [each]);return smalltalk.send(self['@currentScope'], "_addTemp_", [each]);}]);
1161
- smalltalk.send(self, "_visitSequenceNode_", [aNode], smalltalk.NodeVisitor);
1162
- return self;
1163
- }
1251
+ fn: function (aNode){
1252
+ var self=this;
1253
+ return smalltalk.withContext(function($ctx1) {
1254
+ return smalltalk.withContext(function($ctx2) {
1255
+ return _st(self["@currentScope"])._addTemp_(each);
1256
+ }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
1257
+ smalltalk.NodeVisitor.fn.prototype._visitSequenceNode_.apply(_st(self), [aNode]);
1258
+ return self}, function($ctx1) {$ctx1.fill(self,"visitSequenceNode:",{aNode:aNode}, smalltalk.SemanticAnalyzer)})}
1164
1259
  }),
1165
1260
  smalltalk.SemanticAnalyzer);
1166
1261
 
@@ -1168,22 +1263,22 @@ smalltalk.addMethod(
1168
1263
  "_visitVariableNode_",
1169
1264
  smalltalk.method({
1170
1265
  selector: "visitVariableNode:",
1171
- fn: function (aNode) {
1172
- var self = this;
1173
- var $2, $3, $4, $1;
1174
- $2 = smalltalk.send(self['@currentScope'], "_lookupVariable_", [aNode]);
1175
- if (($receiver = $2) == nil || $receiver == undefined) {
1176
- smalltalk.send(self, "_errorUnknownVariable_", [aNode]);
1177
- $3 = smalltalk.send(smalltalk.UnknownVar || UnknownVar, "_new", []);
1178
- smalltalk.send($3, "_name_", [smalltalk.send(aNode, "_value", [])]);
1179
- $4 = smalltalk.send($3, "_yourself", []);
1180
- $1 = $4;
1181
- } else {
1182
- $1 = $2;
1183
- }
1184
- smalltalk.send(aNode, "_binding_", [$1]);
1185
- return self;
1186
- }
1266
+ fn: function (aNode){
1267
+ var self=this;
1268
+ return smalltalk.withContext(function($ctx1) {
1269
+ $1=aNode;
1270
+ $3=_st(self["@currentScope"])._lookupVariable_(aNode);
1271
+ if(($receiver = $3) == nil || $receiver == undefined){
1272
+ _st(self)._errorUnknownVariable_(aNode);
1273
+ $4=_st((smalltalk.UnknownVar || UnknownVar))._new();
1274
+ _st($4)._name_(_st(aNode)._value());
1275
+ $5=_st($4)._yourself();
1276
+ $2=$5;
1277
+ } else {
1278
+ $2=$3;
1279
+ };
1280
+ _st($1)._binding_($2);
1281
+ return self}, function($ctx1) {$ctx1.fill(self,"visitVariableNode:",{aNode:aNode}, smalltalk.SemanticAnalyzer)})}
1187
1282
  }),
1188
1283
  smalltalk.SemanticAnalyzer);
1189
1284
 
@@ -1192,15 +1287,15 @@ smalltalk.addMethod(
1192
1287
  "_on_",
1193
1288
  smalltalk.method({
1194
1289
  selector: "on:",
1195
- fn: function (aClass) {
1196
- var self = this;
1197
- var $2, $3, $1;
1198
- $2 = smalltalk.send(self, "_new", []);
1199
- smalltalk.send($2, "_theClass_", [aClass]);
1200
- $3 = smalltalk.send($2, "_yourself", []);
1201
- $1 = $3;
1202
- return $1;
1203
- }
1290
+ fn: function (aClass){
1291
+ var self=this;
1292
+ return smalltalk.withContext(function($ctx1) {
1293
+ $2=_st(self)._new();
1294
+ _st($2)._theClass_(aClass);
1295
+ $3=_st($2)._yourself();
1296
+ $1=$3;
1297
+ return $1;
1298
+ }, function($ctx1) {$ctx1.fill(self,"on:",{aClass:aClass}, smalltalk.SemanticAnalyzer.klass)})}
1204
1299
  }),
1205
1300
  smalltalk.SemanticAnalyzer.klass);
1206
1301