resin 0.3.1 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. data/amber/bin/amberc +10 -350
  2. data/amber/js/Benchfib.deploy.js +80 -89
  3. data/amber/js/Benchfib.js +80 -89
  4. data/amber/js/Canvas.deploy.js +558 -545
  5. data/amber/js/Canvas.js +563 -545
  6. data/amber/js/Compiler-AST.deploy.js +431 -243
  7. data/amber/js/Compiler-AST.js +487 -244
  8. data/amber/js/Compiler-Core.deploy.js +201 -1045
  9. data/amber/js/Compiler-Core.js +208 -1207
  10. data/amber/js/Compiler-Exceptions.deploy.js +37 -18
  11. data/amber/js/Compiler-Exceptions.js +42 -18
  12. data/amber/js/Compiler-IR.deploy.js +1071 -774
  13. data/amber/js/Compiler-IR.js +1194 -848
  14. data/amber/js/Compiler-Inlining.deploy.js +395 -373
  15. data/amber/js/Compiler-Inlining.js +395 -373
  16. data/amber/js/Compiler-Interpreter.deploy.js +1202 -0
  17. data/amber/js/Compiler-Interpreter.js +1631 -0
  18. data/amber/js/Compiler-Semantic.deploy.js +695 -600
  19. data/amber/js/Compiler-Semantic.js +721 -611
  20. data/amber/js/Compiler-Tests.deploy.js +699 -376
  21. data/amber/js/Compiler-Tests.js +834 -381
  22. data/amber/js/Compiler.deploy.js +8563 -1805
  23. data/amber/js/Compiler.js +11476 -2633
  24. data/amber/js/Examples.deploy.js +29 -29
  25. data/amber/js/Examples.js +29 -29
  26. data/amber/js/IDE.deploy.js +3292 -2649
  27. data/amber/js/IDE.js +3318 -2710
  28. data/amber/js/Importer-Exporter.deploy.js +393 -349
  29. data/amber/js/Importer-Exporter.js +398 -354
  30. data/amber/js/Kernel-Announcements.deploy.js +53 -44
  31. data/amber/js/Kernel-Announcements.js +55 -44
  32. data/amber/js/Kernel-Classes.deploy.js +566 -368
  33. data/amber/js/Kernel-Classes.js +660 -402
  34. data/amber/js/Kernel-Collections.deploy.js +1149 -1098
  35. data/amber/js/Kernel-Collections.js +1183 -1116
  36. data/amber/js/Kernel-Exceptions.deploy.js +173 -75
  37. data/amber/js/Kernel-Exceptions.js +215 -77
  38. data/amber/js/Kernel-Methods.deploy.js +530 -313
  39. data/amber/js/Kernel-Methods.js +632 -338
  40. data/amber/js/Kernel-Objects.deploy.js +1734 -1577
  41. data/amber/js/Kernel-Objects.js +1867 -1654
  42. data/amber/js/Kernel-Tests.deploy.js +1416 -973
  43. data/amber/js/Kernel-Tests.js +1495 -981
  44. data/amber/js/Kernel-Transcript.deploy.js +23 -24
  45. data/amber/js/Kernel-Transcript.js +25 -26
  46. data/amber/js/SUnit-Tests.deploy.js +402 -0
  47. data/amber/js/SUnit-Tests.js +518 -0
  48. data/amber/js/SUnit.deploy.js +535 -237
  49. data/amber/js/SUnit.js +634 -246
  50. data/amber/js/amber.js +90 -53
  51. data/amber/js/boot.js +441 -255
  52. data/amber/js/init.js +1 -3
  53. data/amber/js/lib/CodeMirror/codemirror.css +3 -0
  54. data/amber/js/lib/CodeMirror/codemirror.js +104 -55
  55. data/amber/js/lib/peg-0.7.0.min.js +9 -0
  56. data/amber/js/parser.js +1504 -802
  57. data/amber/js/parser.pegjs +170 -165
  58. data/amber/st/Canvas.st +6 -0
  59. data/amber/st/Compiler-AST.st +54 -3
  60. data/amber/st/Compiler-Core.st +6 -551
  61. data/amber/st/Compiler-Exceptions.st +4 -0
  62. data/amber/st/Compiler-IR.st +205 -87
  63. data/amber/st/Compiler-Interpreter.st +597 -0
  64. data/amber/st/Compiler-Semantic.st +46 -21
  65. data/amber/st/Compiler-Tests.st +254 -7
  66. data/amber/st/Compiler.st +3172 -1541
  67. data/amber/st/IDE.st +57 -93
  68. data/amber/st/Importer-Exporter.st +4 -7
  69. data/amber/st/Kernel-Announcements.st +8 -0
  70. data/amber/st/Kernel-Classes.st +149 -40
  71. data/amber/st/Kernel-Collections.st +43 -32
  72. data/amber/st/Kernel-Exceptions.st +70 -1
  73. data/amber/st/Kernel-Methods.st +165 -27
  74. data/amber/st/Kernel-Objects.st +215 -140
  75. data/amber/st/Kernel-Tests.st +195 -10
  76. data/amber/st/Kernel-Transcript.st +1 -3
  77. data/amber/st/SUnit-Tests.st +186 -0
  78. data/amber/st/SUnit.st +186 -14
  79. data/bin/resin +6 -0
  80. data/lib/resin/cli.rb +19 -0
  81. metadata +41 -25
  82. data/amber/js/lib/peg-0.6.2.min.js +0 -2
  83. data/bin/resin-compile +0 -6
  84. data/bin/runresin +0 -12
@@ -6,10 +6,10 @@ smalltalk.method({
6
6
  selector: "accept:",
7
7
  fn: function (aVisitor){
8
8
  var self=this;
9
- var $1;
10
- $1=smalltalk.send(aVisitor,"_visitIRInlinedAssignment_",[self]);
9
+ return smalltalk.withContext(function($ctx1) {
10
+ $1=_st(aVisitor)._visitIRInlinedAssignment_(self);
11
11
  return $1;
12
- }
12
+ }, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRInlinedAssignment)})}
13
13
  }),
14
14
  smalltalk.IRInlinedAssignment);
15
15
 
@@ -19,8 +19,8 @@ smalltalk.method({
19
19
  selector: "isInlined",
20
20
  fn: function (){
21
21
  var self=this;
22
- return true;
23
- }
22
+ return smalltalk.withContext(function($ctx1) {
23
+ }, function($ctx1) {$ctx1.fill(self,"isInlined",{}, smalltalk.IRInlinedAssignment)})}
24
24
  }),
25
25
  smalltalk.IRInlinedAssignment);
26
26
 
@@ -33,8 +33,8 @@ smalltalk.method({
33
33
  selector: "accept:",
34
34
  fn: function (aVisitor){
35
35
  var self=this;
36
- smalltalk.send(aVisitor,"_visitIRInlinedClosure_",[self]);
37
- return self}
36
+ return smalltalk.withContext(function($ctx1) {
37
+ return self}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRInlinedClosure)})}
38
38
  }),
39
39
  smalltalk.IRInlinedClosure);
40
40
 
@@ -44,8 +44,8 @@ smalltalk.method({
44
44
  selector: "isInlined",
45
45
  fn: function (){
46
46
  var self=this;
47
- return true;
48
- }
47
+ return smalltalk.withContext(function($ctx1) {
48
+ }, function($ctx1) {$ctx1.fill(self,"isInlined",{}, smalltalk.IRInlinedClosure)})}
49
49
  }),
50
50
  smalltalk.IRInlinedClosure);
51
51
 
@@ -58,10 +58,10 @@ smalltalk.method({
58
58
  selector: "accept:",
59
59
  fn: function (aVisitor){
60
60
  var self=this;
61
- var $1;
62
- $1=smalltalk.send(aVisitor,"_visitIRInlinedReturn_",[self]);
61
+ return smalltalk.withContext(function($ctx1) {
62
+ $1=_st(aVisitor)._visitIRInlinedReturn_(self);
63
63
  return $1;
64
- }
64
+ }, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRInlinedReturn)})}
65
65
  }),
66
66
  smalltalk.IRInlinedReturn);
67
67
 
@@ -71,8 +71,8 @@ smalltalk.method({
71
71
  selector: "isInlined",
72
72
  fn: function (){
73
73
  var self=this;
74
- return true;
75
- }
74
+ return smalltalk.withContext(function($ctx1) {
75
+ }, function($ctx1) {$ctx1.fill(self,"isInlined",{}, smalltalk.IRInlinedReturn)})}
76
76
  }),
77
77
  smalltalk.IRInlinedReturn);
78
78
 
@@ -85,10 +85,10 @@ smalltalk.method({
85
85
  selector: "accept:",
86
86
  fn: function (aVisitor){
87
87
  var self=this;
88
- var $1;
89
- $1=smalltalk.send(aVisitor,"_visitIRInlinedNonLocalReturn_",[self]);
88
+ return smalltalk.withContext(function($ctx1) {
89
+ $1=_st(aVisitor)._visitIRInlinedNonLocalReturn_(self);
90
90
  return $1;
91
- }
91
+ }, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRInlinedNonLocalReturn)})}
92
92
  }),
93
93
  smalltalk.IRInlinedNonLocalReturn);
94
94
 
@@ -98,8 +98,8 @@ smalltalk.method({
98
98
  selector: "isInlined",
99
99
  fn: function (){
100
100
  var self=this;
101
- return true;
102
- }
101
+ return smalltalk.withContext(function($ctx1) {
102
+ }, function($ctx1) {$ctx1.fill(self,"isInlined",{}, smalltalk.IRInlinedNonLocalReturn)})}
103
103
  }),
104
104
  smalltalk.IRInlinedNonLocalReturn);
105
105
 
@@ -112,8 +112,8 @@ smalltalk.method({
112
112
  selector: "accept:",
113
113
  fn: function (aVisitor){
114
114
  var self=this;
115
- smalltalk.send(aVisitor,"_visitInlinedSend_",[self]);
116
- return self}
115
+ return smalltalk.withContext(function($ctx1) {
116
+ return self}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRInlinedSend)})}
117
117
  }),
118
118
  smalltalk.IRInlinedSend);
119
119
 
@@ -123,8 +123,8 @@ smalltalk.method({
123
123
  selector: "isInlined",
124
124
  fn: function (){
125
125
  var self=this;
126
- return true;
127
- }
126
+ return smalltalk.withContext(function($ctx1) {
127
+ }, function($ctx1) {$ctx1.fill(self,"isInlined",{}, smalltalk.IRInlinedSend)})}
128
128
  }),
129
129
  smalltalk.IRInlinedSend);
130
130
 
@@ -137,8 +137,8 @@ smalltalk.method({
137
137
  selector: "accept:",
138
138
  fn: function (aVisitor){
139
139
  var self=this;
140
- smalltalk.send(aVisitor,"_visitIRInlinedIfFalse_",[self]);
141
- return self}
140
+ return smalltalk.withContext(function($ctx1) {
141
+ return self}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRInlinedIfFalse)})}
142
142
  }),
143
143
  smalltalk.IRInlinedIfFalse);
144
144
 
@@ -151,8 +151,8 @@ smalltalk.method({
151
151
  selector: "accept:",
152
152
  fn: function (aVisitor){
153
153
  var self=this;
154
- smalltalk.send(aVisitor,"_visitIRInlinedIfNilIfNotNil_",[self]);
155
- return self}
154
+ return smalltalk.withContext(function($ctx1) {
155
+ return self}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRInlinedIfNilIfNotNil)})}
156
156
  }),
157
157
  smalltalk.IRInlinedIfNilIfNotNil);
158
158
 
@@ -165,8 +165,8 @@ smalltalk.method({
165
165
  selector: "accept:",
166
166
  fn: function (aVisitor){
167
167
  var self=this;
168
- smalltalk.send(aVisitor,"_visitIRInlinedIfTrue_",[self]);
169
- return self}
168
+ return smalltalk.withContext(function($ctx1) {
169
+ return self}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRInlinedIfTrue)})}
170
170
  }),
171
171
  smalltalk.IRInlinedIfTrue);
172
172
 
@@ -179,8 +179,8 @@ smalltalk.method({
179
179
  selector: "accept:",
180
180
  fn: function (aVisitor){
181
181
  var self=this;
182
- smalltalk.send(aVisitor,"_visitIRInlinedIfTrueIfFalse_",[self]);
183
- return self}
182
+ return smalltalk.withContext(function($ctx1) {
183
+ return self}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRInlinedIfTrueIfFalse)})}
184
184
  }),
185
185
  smalltalk.IRInlinedIfTrueIfFalse);
186
186
 
@@ -193,8 +193,8 @@ smalltalk.method({
193
193
  selector: "accept:",
194
194
  fn: function (aVisitor){
195
195
  var self=this;
196
- smalltalk.send(aVisitor,"_visitIRInlinedSequence_",[self]);
197
- return self}
196
+ return smalltalk.withContext(function($ctx1) {
197
+ return self}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRInlinedSequence)})}
198
198
  }),
199
199
  smalltalk.IRInlinedSequence);
200
200
 
@@ -204,8 +204,8 @@ smalltalk.method({
204
204
  selector: "isInlined",
205
205
  fn: function (){
206
206
  var self=this;
207
- return true;
208
- }
207
+ return smalltalk.withContext(function($ctx1) {
208
+ }, function($ctx1) {$ctx1.fill(self,"isInlined",{}, smalltalk.IRInlinedSequence)})}
209
209
  }),
210
210
  smalltalk.IRInlinedSequence);
211
211
 
@@ -218,13 +218,13 @@ smalltalk.method({
218
218
  selector: "assignmentInliner",
219
219
  fn: function (){
220
220
  var self=this;
221
- var $2,$3,$1;
222
- $2=smalltalk.send((smalltalk.IRAssignmentInliner || IRAssignmentInliner),"_new",[]);
223
- smalltalk.send($2,"_translator_",[self]);
224
- $3=smalltalk.send($2,"_yourself",[]);
221
+ return smalltalk.withContext(function($ctx1) {
222
+ $2=_st((smalltalk.IRAssignmentInliner || IRAssignmentInliner))._new();
223
+ _st($2)._translator_(self);
224
+ $3=_st($2)._yourself();
225
225
  $1=$3;
226
226
  return $1;
227
- }
227
+ }, function($ctx1) {$ctx1.fill(self,"assignmentInliner",{}, smalltalk.IRInliner)})}
228
228
  }),
229
229
  smalltalk.IRInliner);
230
230
 
@@ -234,13 +234,13 @@ smalltalk.method({
234
234
  selector: "nonLocalReturnInliner",
235
235
  fn: function (){
236
236
  var self=this;
237
- var $2,$3,$1;
238
- $2=smalltalk.send((smalltalk.IRNonLocalReturnInliner || IRNonLocalReturnInliner),"_new",[]);
239
- smalltalk.send($2,"_translator_",[self]);
240
- $3=smalltalk.send($2,"_yourself",[]);
237
+ return smalltalk.withContext(function($ctx1) {
238
+ $2=_st((smalltalk.IRNonLocalReturnInliner || IRNonLocalReturnInliner))._new();
239
+ _st($2)._translator_(self);
240
+ $3=_st($2)._yourself();
241
241
  $1=$3;
242
242
  return $1;
243
- }
243
+ }, function($ctx1) {$ctx1.fill(self,"nonLocalReturnInliner",{}, smalltalk.IRInliner)})}
244
244
  }),
245
245
  smalltalk.IRInliner);
246
246
 
@@ -250,13 +250,13 @@ smalltalk.method({
250
250
  selector: "returnInliner",
251
251
  fn: function (){
252
252
  var self=this;
253
- var $2,$3,$1;
254
- $2=smalltalk.send((smalltalk.IRReturnInliner || IRReturnInliner),"_new",[]);
255
- smalltalk.send($2,"_translator_",[self]);
256
- $3=smalltalk.send($2,"_yourself",[]);
253
+ return smalltalk.withContext(function($ctx1) {
254
+ $2=_st((smalltalk.IRReturnInliner || IRReturnInliner))._new();
255
+ _st($2)._translator_(self);
256
+ $3=_st($2)._yourself();
257
257
  $1=$3;
258
258
  return $1;
259
- }
259
+ }, function($ctx1) {$ctx1.fill(self,"returnInliner",{}, smalltalk.IRInliner)})}
260
260
  }),
261
261
  smalltalk.IRInliner);
262
262
 
@@ -266,13 +266,13 @@ smalltalk.method({
266
266
  selector: "sendInliner",
267
267
  fn: function (){
268
268
  var self=this;
269
- var $2,$3,$1;
270
- $2=smalltalk.send((smalltalk.IRSendInliner || IRSendInliner),"_new",[]);
271
- smalltalk.send($2,"_translator_",[self]);
272
- $3=smalltalk.send($2,"_yourself",[]);
269
+ return smalltalk.withContext(function($ctx1) {
270
+ $2=_st((smalltalk.IRSendInliner || IRSendInliner))._new();
271
+ _st($2)._translator_(self);
272
+ $3=_st($2)._yourself();
273
273
  $1=$3;
274
274
  return $1;
275
- }
275
+ }, function($ctx1) {$ctx1.fill(self,"sendInliner",{}, smalltalk.IRInliner)})}
276
276
  }),
277
277
  smalltalk.IRInliner);
278
278
 
@@ -282,14 +282,14 @@ smalltalk.method({
282
282
  selector: "shouldInlineAssignment:",
283
283
  fn: function (anIRAssignment){
284
284
  var self=this;
285
- var $1;
286
- $1=smalltalk.send(smalltalk.send(smalltalk.send(anIRAssignment,"_isInlined",[]),"_not",[]),"_and_",[(function(){
287
- return smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(anIRAssignment,"_instructions",[]),"_last",[]),"_isSend",[]),"_and_",[(function(){
288
- return smalltalk.send(self,"_shouldInlineSend_",[smalltalk.send(smalltalk.send(anIRAssignment,"_instructions",[]),"_last",[])]);
289
- })]);
290
- })]);
285
+ return smalltalk.withContext(function($ctx1) {
286
+ $1=_st(_st(_st(anIRAssignment)._isInlined())._not())._and_((function(){
287
+ return smalltalk.withContext(function($ctx2) {
288
+ return smalltalk.withContext(function($ctx3) {
289
+ }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
290
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
291
291
  return $1;
292
- }
292
+ }, function($ctx1) {$ctx1.fill(self,"shouldInlineAssignment:",{anIRAssignment:anIRAssignment}, smalltalk.IRInliner)})}
293
293
  }),
294
294
  smalltalk.IRInliner);
295
295
 
@@ -299,14 +299,14 @@ smalltalk.method({
299
299
  selector: "shouldInlineReturn:",
300
300
  fn: function (anIRReturn){
301
301
  var self=this;
302
- var $1;
303
- $1=smalltalk.send(smalltalk.send(smalltalk.send(anIRReturn,"_isInlined",[]),"_not",[]),"_and_",[(function(){
304
- return smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(anIRReturn,"_instructions",[]),"_first",[]),"_isSend",[]),"_and_",[(function(){
305
- return smalltalk.send(self,"_shouldInlineSend_",[smalltalk.send(smalltalk.send(anIRReturn,"_instructions",[]),"_first",[])]);
306
- })]);
307
- })]);
302
+ return smalltalk.withContext(function($ctx1) {
303
+ $1=_st(_st(_st(anIRReturn)._isInlined())._not())._and_((function(){
304
+ return smalltalk.withContext(function($ctx2) {
305
+ return smalltalk.withContext(function($ctx3) {
306
+ }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
307
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
308
308
  return $1;
309
- }
309
+ }, function($ctx1) {$ctx1.fill(self,"shouldInlineReturn:",{anIRReturn:anIRReturn}, smalltalk.IRInliner)})}
310
310
  }),
311
311
  smalltalk.IRInliner);
312
312
 
@@ -316,12 +316,12 @@ smalltalk.method({
316
316
  selector: "shouldInlineSend:",
317
317
  fn: function (anIRSend){
318
318
  var self=this;
319
- var $1;
320
- $1=smalltalk.send(smalltalk.send(smalltalk.send(anIRSend,"_isInlined",[]),"_not",[]),"_and_",[(function(){
321
- return smalltalk.send((smalltalk.IRSendInliner || IRSendInliner),"_shouldInline_",[anIRSend]);
322
- })]);
319
+ return smalltalk.withContext(function($ctx1) {
320
+ $1=_st(_st(_st(anIRSend)._isInlined())._not())._and_((function(){
321
+ return smalltalk.withContext(function($ctx2) {
322
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
323
323
  return $1;
324
- }
324
+ }, function($ctx1) {$ctx1.fill(self,"shouldInlineSend:",{anIRSend:anIRSend}, smalltalk.IRInliner)})}
325
325
  }),
326
326
  smalltalk.IRInliner);
327
327
 
@@ -331,25 +331,26 @@ smalltalk.method({
331
331
  selector: "transformNonLocalReturn:",
332
332
  fn: function (anIRNonLocalReturn){
333
333
  var self=this;
334
- var $1,$2,$3,$4;
335
334
  var localReturn;
336
- $1=smalltalk.send(smalltalk.send(anIRNonLocalReturn,"_scope",[]),"_canInlineNonLocalReturns",[]);
335
+ return smalltalk.withContext(function($ctx1) {
336
+ $1=_st(_st(anIRNonLocalReturn)._scope())._canInlineNonLocalReturns();
337
337
  if(smalltalk.assert($1)){
338
- smalltalk.send(smalltalk.send(smalltalk.send(anIRNonLocalReturn,"_scope",[]),"_methodScope",[]),"_removeNonLocalReturn_",[smalltalk.send(anIRNonLocalReturn,"_scope",[])]);
339
- $2=smalltalk.send((smalltalk.IRReturn || IRReturn),"_new",[]);
340
- smalltalk.send($2,"_scope_",[smalltalk.send(anIRNonLocalReturn,"_scope",[])]);
341
- $3=smalltalk.send($2,"_yourself",[]);
338
+ _st(_st(_st(anIRNonLocalReturn)._scope())._methodScope())._removeNonLocalReturn_(_st(anIRNonLocalReturn)._scope());
339
+ $2=_st((smalltalk.IRReturn || IRReturn))._new();
340
+ _st($2)._scope_(_st(anIRNonLocalReturn)._scope());
341
+ $3=_st($2)._yourself();
342
342
  localReturn=$3;
343
343
  localReturn;
344
- smalltalk.send(smalltalk.send(anIRNonLocalReturn,"_instructions",[]),"_do_",[(function(each){
345
- return smalltalk.send(localReturn,"_add_",[each]);
346
- })]);
347
- smalltalk.send(anIRNonLocalReturn,"_replaceWith_",[localReturn]);
348
- return localReturn;
349
- };
350
- $4=smalltalk.send(self,"_visitIRNonLocalReturn_",[anIRNonLocalReturn],smalltalk.IRVisitor);
344
+ _st(_st(anIRNonLocalReturn)._instructions())._do_((function(each){
345
+ return smalltalk.withContext(function($ctx2) {
346
+ }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
347
+ _st(anIRNonLocalReturn)._replaceWith_(localReturn);
348
+ $4=localReturn;
351
349
  return $4;
352
- }
350
+ };
351
+ $5=smalltalk.IRVisitor.fn.prototype._visitIRNonLocalReturn_.apply(_st(self), [anIRNonLocalReturn]);
352
+ return $5;
353
+ }, function($ctx1) {$ctx1.fill(self,"transformNonLocalReturn:",{anIRNonLocalReturn:anIRNonLocalReturn,localReturn:localReturn}, smalltalk.IRInliner)})}
353
354
  }),
354
355
  smalltalk.IRInliner);
355
356
 
@@ -359,15 +360,15 @@ smalltalk.method({
359
360
  selector: "visitIRAssignment:",
360
361
  fn: function (anIRAssignment){
361
362
  var self=this;
362
- var $2,$1;
363
- $2=smalltalk.send(self,"_shouldInlineAssignment_",[anIRAssignment]);
363
+ return smalltalk.withContext(function($ctx1) {
364
+ $2=_st(self)._shouldInlineAssignment_(anIRAssignment);
364
365
  if(smalltalk.assert($2)){
365
- $1=smalltalk.send(smalltalk.send(self,"_assignmentInliner",[]),"_inlineAssignment_",[anIRAssignment]);
366
+ $1=_st(_st(self)._assignmentInliner())._inlineAssignment_(anIRAssignment);
366
367
  } else {
367
- $1=smalltalk.send(self,"_visitIRAssignment_",[anIRAssignment],smalltalk.IRVisitor);
368
+ $1=smalltalk.IRVisitor.fn.prototype._visitIRAssignment_.apply(_st(self), [anIRAssignment]);
368
369
  };
369
370
  return $1;
370
- }
371
+ }, function($ctx1) {$ctx1.fill(self,"visitIRAssignment:",{anIRAssignment:anIRAssignment}, smalltalk.IRInliner)})}
371
372
  }),
372
373
  smalltalk.IRInliner);
373
374
 
@@ -377,15 +378,15 @@ smalltalk.method({
377
378
  selector: "visitIRNonLocalReturn:",
378
379
  fn: function (anIRNonLocalReturn){
379
380
  var self=this;
380
- var $2,$1;
381
- $2=smalltalk.send(self,"_shouldInlineReturn_",[anIRNonLocalReturn]);
381
+ return smalltalk.withContext(function($ctx1) {
382
+ $2=_st(self)._shouldInlineReturn_(anIRNonLocalReturn);
382
383
  if(smalltalk.assert($2)){
383
- $1=smalltalk.send(smalltalk.send(self,"_nonLocalReturnInliner",[]),"_inlineReturn_",[anIRNonLocalReturn]);
384
+ $1=_st(_st(self)._nonLocalReturnInliner())._inlineReturn_(anIRNonLocalReturn);
384
385
  } else {
385
- $1=smalltalk.send(self,"_transformNonLocalReturn_",[anIRNonLocalReturn]);
386
+ $1=_st(self)._transformNonLocalReturn_(anIRNonLocalReturn);
386
387
  };
387
388
  return $1;
388
- }
389
+ }, function($ctx1) {$ctx1.fill(self,"visitIRNonLocalReturn:",{anIRNonLocalReturn:anIRNonLocalReturn}, smalltalk.IRInliner)})}
389
390
  }),
390
391
  smalltalk.IRInliner);
391
392
 
@@ -395,15 +396,15 @@ smalltalk.method({
395
396
  selector: "visitIRReturn:",
396
397
  fn: function (anIRReturn){
397
398
  var self=this;
398
- var $2,$1;
399
- $2=smalltalk.send(self,"_shouldInlineReturn_",[anIRReturn]);
399
+ return smalltalk.withContext(function($ctx1) {
400
+ $2=_st(self)._shouldInlineReturn_(anIRReturn);
400
401
  if(smalltalk.assert($2)){
401
- $1=smalltalk.send(smalltalk.send(self,"_returnInliner",[]),"_inlineReturn_",[anIRReturn]);
402
+ $1=_st(_st(self)._returnInliner())._inlineReturn_(anIRReturn);
402
403
  } else {
403
- $1=smalltalk.send(self,"_visitIRReturn_",[anIRReturn],smalltalk.IRVisitor);
404
+ $1=smalltalk.IRVisitor.fn.prototype._visitIRReturn_.apply(_st(self), [anIRReturn]);
404
405
  };
405
406
  return $1;
406
- }
407
+ }, function($ctx1) {$ctx1.fill(self,"visitIRReturn:",{anIRReturn:anIRReturn}, smalltalk.IRInliner)})}
407
408
  }),
408
409
  smalltalk.IRInliner);
409
410
 
@@ -413,15 +414,15 @@ smalltalk.method({
413
414
  selector: "visitIRSend:",
414
415
  fn: function (anIRSend){
415
416
  var self=this;
416
- var $2,$1;
417
- $2=smalltalk.send(self,"_shouldInlineSend_",[anIRSend]);
417
+ return smalltalk.withContext(function($ctx1) {
418
+ $2=_st(self)._shouldInlineSend_(anIRSend);
418
419
  if(smalltalk.assert($2)){
419
- $1=smalltalk.send(smalltalk.send(self,"_sendInliner",[]),"_inlineSend_",[anIRSend]);
420
+ $1=_st(_st(self)._sendInliner())._inlineSend_(anIRSend);
420
421
  } else {
421
- $1=smalltalk.send(self,"_visitIRSend_",[anIRSend],smalltalk.IRVisitor);
422
+ $1=smalltalk.IRVisitor.fn.prototype._visitIRSend_.apply(_st(self), [anIRSend]);
422
423
  };
423
424
  return $1;
424
- }
425
+ }, function($ctx1) {$ctx1.fill(self,"visitIRSend:",{anIRSend:anIRSend}, smalltalk.IRInliner)})}
425
426
  }),
426
427
  smalltalk.IRInliner);
427
428
 
@@ -434,8 +435,8 @@ smalltalk.method({
434
435
  selector: "visitIRInlinedAssignment:",
435
436
  fn: function (anIRInlinedAssignment){
436
437
  var self=this;
437
- smalltalk.send(self,"_visit_",[smalltalk.send(smalltalk.send(anIRInlinedAssignment,"_instructions",[]),"_last",[])]);
438
- return self}
438
+ return smalltalk.withContext(function($ctx1) {
439
+ return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedAssignment:",{anIRInlinedAssignment:anIRInlinedAssignment}, smalltalk.IRInliningJSTranslator)})}
439
440
  }),
440
441
  smalltalk.IRInliningJSTranslator);
441
442
 
@@ -445,10 +446,10 @@ smalltalk.method({
445
446
  selector: "visitIRInlinedClosure:",
446
447
  fn: function (anIRInlinedClosure){
447
448
  var self=this;
448
- smalltalk.send(smalltalk.send(anIRInlinedClosure,"_instructions",[]),"_do_",[(function(each){
449
- return smalltalk.send(self,"_visit_",[each]);
450
- })]);
451
- return self}
449
+ return smalltalk.withContext(function($ctx1) {
450
+ return smalltalk.withContext(function($ctx2) {
451
+ }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
452
+ return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedClosure:",{anIRInlinedClosure:anIRInlinedClosure}, smalltalk.IRInliningJSTranslator)})}
452
453
  }),
453
454
  smalltalk.IRInliningJSTranslator);
454
455
 
@@ -458,14 +459,14 @@ smalltalk.method({
458
459
  selector: "visitIRInlinedIfFalse:",
459
460
  fn: function (anIRInlinedIfFalse){
460
461
  var self=this;
461
- smalltalk.send(smalltalk.send(self,"_stream",[]),"_nextPutIf_with_",[(function(){
462
- smalltalk.send(smalltalk.send(self,"_stream",[]),"_nextPutAll_",["! smalltalk.assert("]);
463
- smalltalk.send(self,"_visit_",[smalltalk.send(smalltalk.send(anIRInlinedIfFalse,"_instructions",[]),"_first",[])]);
464
- return smalltalk.send(smalltalk.send(self,"_stream",[]),"_nextPutAll_",[")"]);
465
- }),(function(){
466
- return smalltalk.send(self,"_visit_",[smalltalk.send(smalltalk.send(anIRInlinedIfFalse,"_instructions",[]),"_last",[])]);
467
- })]);
468
- return self}
462
+ return smalltalk.withContext(function($ctx1) {
463
+ return smalltalk.withContext(function($ctx2) {
464
+ _st(self)._visit_(_st(_st(anIRInlinedIfFalse)._instructions())._first());
465
+ return _st(_st(self)._stream())._nextPutAll_(")");
466
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(function(){
467
+ return smalltalk.withContext(function($ctx2) {
468
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
469
+ return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedIfFalse:",{anIRInlinedIfFalse:anIRInlinedIfFalse}, smalltalk.IRInliningJSTranslator)})}
469
470
  }),
470
471
  smalltalk.IRInliningJSTranslator);
471
472
 
@@ -475,14 +476,14 @@ smalltalk.method({
475
476
  selector: "visitIRInlinedIfNil:",
476
477
  fn: function (anIRInlinedIfNil){
477
478
  var self=this;
478
- smalltalk.send(smalltalk.send(self,"_stream",[]),"_nextPutIf_with_",[(function(){
479
- smalltalk.send(smalltalk.send(self,"_stream",[]),"_nextPutAll_",["($receiver = "]);
480
- smalltalk.send(self,"_visit_",[smalltalk.send(smalltalk.send(anIRInlinedIfNil,"_instructions",[]),"_first",[])]);
481
- return smalltalk.send(smalltalk.send(self,"_stream",[]),"_nextPutAll_",[") == nil || $receiver == undefined"]);
482
- }),(function(){
483
- return smalltalk.send(self,"_visit_",[smalltalk.send(smalltalk.send(anIRInlinedIfNil,"_instructions",[]),"_last",[])]);
484
- })]);
485
- return self}
479
+ return smalltalk.withContext(function($ctx1) {
480
+ return smalltalk.withContext(function($ctx2) {
481
+ _st(self)._visit_(_st(_st(anIRInlinedIfNil)._instructions())._first());
482
+ return _st(_st(self)._stream())._nextPutAll_(") == nil || $receiver == undefined");
483
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(function(){
484
+ return smalltalk.withContext(function($ctx2) {
485
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
486
+ return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedIfNil:",{anIRInlinedIfNil:anIRInlinedIfNil}, smalltalk.IRInliningJSTranslator)})}
486
487
  }),
487
488
  smalltalk.IRInliningJSTranslator);
488
489
 
@@ -492,16 +493,16 @@ smalltalk.method({
492
493
  selector: "visitIRInlinedIfNilIfNotNil:",
493
494
  fn: function (anIRInlinedIfNilIfNotNil){
494
495
  var self=this;
495
- smalltalk.send(smalltalk.send(self,"_stream",[]),"_nextPutIfElse_with_with_",[(function(){
496
- smalltalk.send(smalltalk.send(self,"_stream",[]),"_nextPutAll_",["($receiver = "]);
497
- smalltalk.send(self,"_visit_",[smalltalk.send(smalltalk.send(anIRInlinedIfNilIfNotNil,"_instructions",[]),"_first",[])]);
498
- return smalltalk.send(smalltalk.send(self,"_stream",[]),"_nextPutAll_",[") == nil || $receiver == undefined"]);
499
- }),(function(){
500
- return smalltalk.send(self,"_visit_",[smalltalk.send(smalltalk.send(anIRInlinedIfNilIfNotNil,"_instructions",[]),"_second",[])]);
501
- }),(function(){
502
- return smalltalk.send(self,"_visit_",[smalltalk.send(smalltalk.send(anIRInlinedIfNilIfNotNil,"_instructions",[]),"_third",[])]);
503
- })]);
504
- return self}
496
+ return smalltalk.withContext(function($ctx1) {
497
+ return smalltalk.withContext(function($ctx2) {
498
+ _st(self)._visit_(_st(_st(anIRInlinedIfNilIfNotNil)._instructions())._first());
499
+ return _st(_st(self)._stream())._nextPutAll_(") == nil || $receiver == undefined");
500
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(function(){
501
+ return smalltalk.withContext(function($ctx2) {
502
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(function(){
503
+ return smalltalk.withContext(function($ctx2) {
504
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
505
+ return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedIfNilIfNotNil:",{anIRInlinedIfNilIfNotNil:anIRInlinedIfNilIfNotNil}, smalltalk.IRInliningJSTranslator)})}
505
506
  }),
506
507
  smalltalk.IRInliningJSTranslator);
507
508
 
@@ -511,14 +512,14 @@ smalltalk.method({
511
512
  selector: "visitIRInlinedIfTrue:",
512
513
  fn: function (anIRInlinedIfTrue){
513
514
  var self=this;
514
- smalltalk.send(smalltalk.send(self,"_stream",[]),"_nextPutIf_with_",[(function(){
515
- smalltalk.send(smalltalk.send(self,"_stream",[]),"_nextPutAll_",["smalltalk.assert("]);
516
- smalltalk.send(self,"_visit_",[smalltalk.send(smalltalk.send(anIRInlinedIfTrue,"_instructions",[]),"_first",[])]);
517
- return smalltalk.send(smalltalk.send(self,"_stream",[]),"_nextPutAll_",[")"]);
518
- }),(function(){
519
- return smalltalk.send(self,"_visit_",[smalltalk.send(smalltalk.send(anIRInlinedIfTrue,"_instructions",[]),"_last",[])]);
520
- })]);
521
- return self}
515
+ return smalltalk.withContext(function($ctx1) {
516
+ return smalltalk.withContext(function($ctx2) {
517
+ _st(self)._visit_(_st(_st(anIRInlinedIfTrue)._instructions())._first());
518
+ return _st(_st(self)._stream())._nextPutAll_(")");
519
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(function(){
520
+ return smalltalk.withContext(function($ctx2) {
521
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
522
+ return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedIfTrue:",{anIRInlinedIfTrue:anIRInlinedIfTrue}, smalltalk.IRInliningJSTranslator)})}
522
523
  }),
523
524
  smalltalk.IRInliningJSTranslator);
524
525
 
@@ -528,16 +529,16 @@ smalltalk.method({
528
529
  selector: "visitIRInlinedIfTrueIfFalse:",
529
530
  fn: function (anIRInlinedIfTrueIfFalse){
530
531
  var self=this;
531
- smalltalk.send(smalltalk.send(self,"_stream",[]),"_nextPutIfElse_with_with_",[(function(){
532
- smalltalk.send(smalltalk.send(self,"_stream",[]),"_nextPutAll_",["smalltalk.assert("]);
533
- smalltalk.send(self,"_visit_",[smalltalk.send(smalltalk.send(anIRInlinedIfTrueIfFalse,"_instructions",[]),"_first",[])]);
534
- return smalltalk.send(smalltalk.send(self,"_stream",[]),"_nextPutAll_",[")"]);
535
- }),(function(){
536
- return smalltalk.send(self,"_visit_",[smalltalk.send(smalltalk.send(anIRInlinedIfTrueIfFalse,"_instructions",[]),"_second",[])]);
537
- }),(function(){
538
- return smalltalk.send(self,"_visit_",[smalltalk.send(smalltalk.send(anIRInlinedIfTrueIfFalse,"_instructions",[]),"_third",[])]);
539
- })]);
540
- return self}
532
+ return smalltalk.withContext(function($ctx1) {
533
+ return smalltalk.withContext(function($ctx2) {
534
+ _st(self)._visit_(_st(_st(anIRInlinedIfTrueIfFalse)._instructions())._first());
535
+ return _st(_st(self)._stream())._nextPutAll_(")");
536
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(function(){
537
+ return smalltalk.withContext(function($ctx2) {
538
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),(function(){
539
+ return smalltalk.withContext(function($ctx2) {
540
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
541
+ return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedIfTrueIfFalse:",{anIRInlinedIfTrueIfFalse:anIRInlinedIfTrueIfFalse}, smalltalk.IRInliningJSTranslator)})}
541
542
  }),
542
543
  smalltalk.IRInliningJSTranslator);
543
544
 
@@ -547,12 +548,12 @@ smalltalk.method({
547
548
  selector: "visitIRInlinedNonLocalReturn:",
548
549
  fn: function (anIRInlinedReturn){
549
550
  var self=this;
550
- smalltalk.send(smalltalk.send(self,"_stream",[]),"_nextPutStatementWith_",[(function(){
551
- return smalltalk.send(self,"_visit_",[smalltalk.send(smalltalk.send(anIRInlinedReturn,"_instructions",[]),"_last",[])]);
552
- })]);
553
- smalltalk.send(smalltalk.send(self,"_stream",[]),"_nextPutNonLocalReturnWith_",[(function(){
554
- })]);
555
- return self}
551
+ return smalltalk.withContext(function($ctx1) {
552
+ return smalltalk.withContext(function($ctx2) {
553
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
554
+ _st(_st(self)._stream())._nextPutNonLocalReturnWith_((function(){
555
+ return smalltalk.withContext(function($ctx2) {
556
+ return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedNonLocalReturn:",{anIRInlinedReturn:anIRInlinedReturn}, smalltalk.IRInliningJSTranslator)})}
556
557
  }),
557
558
  smalltalk.IRInliningJSTranslator);
558
559
 
@@ -562,8 +563,8 @@ smalltalk.method({
562
563
  selector: "visitIRInlinedReturn:",
563
564
  fn: function (anIRInlinedReturn){
564
565
  var self=this;
565
- smalltalk.send(self,"_visit_",[smalltalk.send(smalltalk.send(anIRInlinedReturn,"_instructions",[]),"_last",[])]);
566
- return self}
566
+ return smalltalk.withContext(function($ctx1) {
567
+ return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedReturn:",{anIRInlinedReturn:anIRInlinedReturn}, smalltalk.IRInliningJSTranslator)})}
567
568
  }),
568
569
  smalltalk.IRInliningJSTranslator);
569
570
 
@@ -573,12 +574,12 @@ smalltalk.method({
573
574
  selector: "visitIRInlinedSequence:",
574
575
  fn: function (anIRInlinedSequence){
575
576
  var self=this;
576
- smalltalk.send(smalltalk.send(anIRInlinedSequence,"_instructions",[]),"_do_",[(function(each){
577
- return smalltalk.send(smalltalk.send(self,"_stream",[]),"_nextPutStatementWith_",[(function(){
578
- return smalltalk.send(self,"_visit_",[each]);
579
- })]);
580
- })]);
581
- return self}
577
+ return smalltalk.withContext(function($ctx1) {
578
+ return smalltalk.withContext(function($ctx2) {
579
+ return smalltalk.withContext(function($ctx3) {
580
+ }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
581
+ }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
582
+ return self}, function($ctx1) {$ctx1.fill(self,"visitIRInlinedSequence:",{anIRInlinedSequence:anIRInlinedSequence}, smalltalk.IRInliningJSTranslator)})}
582
583
  }),
583
584
  smalltalk.IRInliningJSTranslator);
584
585
 
@@ -591,10 +592,10 @@ smalltalk.method({
591
592
  selector: "ifFalse:",
592
593
  fn: function (anIRInstruction){
593
594
  var self=this;
594
- var $1;
595
- $1=smalltalk.send(self,"_inlinedSend_with_",[smalltalk.send((smalltalk.IRInlinedIfFalse || IRInlinedIfFalse),"_new",[]),anIRInstruction]);
595
+ return smalltalk.withContext(function($ctx1) {
596
+ $1=_st(self)._inlinedSend_with_(_st((smalltalk.IRInlinedIfFalse || IRInlinedIfFalse))._new(),anIRInstruction);
596
597
  return $1;
597
- }
598
+ }, function($ctx1) {$ctx1.fill(self,"ifFalse:",{anIRInstruction:anIRInstruction}, smalltalk.IRSendInliner)})}
598
599
  }),
599
600
  smalltalk.IRSendInliner);
600
601
 
@@ -604,10 +605,10 @@ smalltalk.method({
604
605
  selector: "ifFalse:ifTrue:",
605
606
  fn: function (anIRInstruction,anotherIRInstruction){
606
607
  var self=this;
607
- var $1;
608
- $1=smalltalk.send(self,"_perform_withArguments_",[smalltalk.symbolFor("ifTrue:ifFalse:"),[anotherIRInstruction,anIRInstruction]]);
608
+ return smalltalk.withContext(function($ctx1) {
609
+ $1=_st(self)._perform_withArguments_(smalltalk.symbolFor("ifTrue:ifFalse:"),[anotherIRInstruction,anIRInstruction]);
609
610
  return $1;
610
- }
611
+ }, function($ctx1) {$ctx1.fill(self,"ifFalse:ifTrue:",{anIRInstruction:anIRInstruction,anotherIRInstruction:anotherIRInstruction}, smalltalk.IRSendInliner)})}
611
612
  }),
612
613
  smalltalk.IRSendInliner);
613
614
 
@@ -617,17 +618,17 @@ smalltalk.method({
617
618
  selector: "ifNil:",
618
619
  fn: function (anIRInstruction){
619
620
  var self=this;
620
- var $2,$3,$4,$5,$1;
621
- $2=smalltalk.send((smalltalk.IRClosure || IRClosure),"_new",[]);
622
- smalltalk.send($2,"_scope_",[smalltalk.send(smalltalk.send(anIRInstruction,"_scope",[]),"_copy",[])]);
623
- $3=smalltalk.send((smalltalk.IRBlockSequence || IRBlockSequence),"_new",[]);
624
- smalltalk.send($3,"_add_",[smalltalk.send(smalltalk.send(smalltalk.send(self,"_send",[]),"_instructions",[]),"_first",[])]);
625
- $4=smalltalk.send($3,"_yourself",[]);
626
- smalltalk.send($2,"_add_",[$4]);
627
- $5=smalltalk.send($2,"_yourself",[]);
628
- $1=smalltalk.send(self,"_inlinedSend_with_with_",[smalltalk.send((smalltalk.IRInlinedIfNilIfNotNil || IRInlinedIfNilIfNotNil),"_new",[]),anIRInstruction,$5]);
621
+ return smalltalk.withContext(function($ctx1) {
622
+ $2=_st((smalltalk.IRClosure || IRClosure))._new();
623
+ _st($2)._scope_(_st(_st(anIRInstruction)._scope())._copy());
624
+ $3=_st((smalltalk.IRBlockSequence || IRBlockSequence))._new();
625
+ _st($3)._add_(_st(_st(_st(self)._send())._instructions())._first());
626
+ $4=_st($3)._yourself();
627
+ _st($2)._add_($4);
628
+ $5=_st($2)._yourself();
629
+ $1=_st(self)._inlinedSend_with_with_(_st((smalltalk.IRInlinedIfNilIfNotNil || IRInlinedIfNilIfNotNil))._new(),anIRInstruction,$5);
629
630
  return $1;
630
- }
631
+ }, function($ctx1) {$ctx1.fill(self,"ifNil:",{anIRInstruction:anIRInstruction}, smalltalk.IRSendInliner)})}
631
632
  }),
632
633
  smalltalk.IRSendInliner);
633
634
 
@@ -637,10 +638,10 @@ smalltalk.method({
637
638
  selector: "ifNil:ifNotNil:",
638
639
  fn: function (anIRInstruction,anotherIRInstruction){
639
640
  var self=this;
640
- var $1;
641
- $1=smalltalk.send(self,"_inlinedSend_with_with_",[smalltalk.send((smalltalk.IRInlinedIfNilIfNotNil || IRInlinedIfNilIfNotNil),"_new",[]),anIRInstruction,anotherIRInstruction]);
641
+ return smalltalk.withContext(function($ctx1) {
642
+ $1=_st(self)._inlinedSend_with_with_(_st((smalltalk.IRInlinedIfNilIfNotNil || IRInlinedIfNilIfNotNil))._new(),anIRInstruction,anotherIRInstruction);
642
643
  return $1;
643
- }
644
+ }, function($ctx1) {$ctx1.fill(self,"ifNil:ifNotNil:",{anIRInstruction:anIRInstruction,anotherIRInstruction:anotherIRInstruction}, smalltalk.IRSendInliner)})}
644
645
  }),
645
646
  smalltalk.IRSendInliner);
646
647
 
@@ -650,17 +651,17 @@ smalltalk.method({
650
651
  selector: "ifNotNil:",
651
652
  fn: function (anIRInstruction){
652
653
  var self=this;
653
- var $2,$3,$4,$5,$1;
654
- $2=smalltalk.send((smalltalk.IRClosure || IRClosure),"_new",[]);
655
- smalltalk.send($2,"_scope_",[smalltalk.send(smalltalk.send(anIRInstruction,"_scope",[]),"_copy",[])]);
656
- $3=smalltalk.send((smalltalk.IRBlockSequence || IRBlockSequence),"_new",[]);
657
- smalltalk.send($3,"_add_",[smalltalk.send(smalltalk.send(smalltalk.send(self,"_send",[]),"_instructions",[]),"_first",[])]);
658
- $4=smalltalk.send($3,"_yourself",[]);
659
- smalltalk.send($2,"_add_",[$4]);
660
- $5=smalltalk.send($2,"_yourself",[]);
661
- $1=smalltalk.send(self,"_inlinedSend_with_with_",[smalltalk.send((smalltalk.IRInlinedIfNilIfNotNil || IRInlinedIfNilIfNotNil),"_new",[]),$5,anIRInstruction]);
654
+ return smalltalk.withContext(function($ctx1) {
655
+ $2=_st((smalltalk.IRClosure || IRClosure))._new();
656
+ _st($2)._scope_(_st(_st(anIRInstruction)._scope())._copy());
657
+ $3=_st((smalltalk.IRBlockSequence || IRBlockSequence))._new();
658
+ _st($3)._add_(_st(_st(_st(self)._send())._instructions())._first());
659
+ $4=_st($3)._yourself();
660
+ _st($2)._add_($4);
661
+ $5=_st($2)._yourself();
662
+ $1=_st(self)._inlinedSend_with_with_(_st((smalltalk.IRInlinedIfNilIfNotNil || IRInlinedIfNilIfNotNil))._new(),$5,anIRInstruction);
662
663
  return $1;
663
- }
664
+ }, function($ctx1) {$ctx1.fill(self,"ifNotNil:",{anIRInstruction:anIRInstruction}, smalltalk.IRSendInliner)})}
664
665
  }),
665
666
  smalltalk.IRSendInliner);
666
667
 
@@ -670,10 +671,10 @@ smalltalk.method({
670
671
  selector: "ifNotNil:ifNil:",
671
672
  fn: function (anIRInstruction,anotherIRInstruction){
672
673
  var self=this;
673
- var $1;
674
- $1=smalltalk.send(self,"_inlinedSend_with_with_",[smalltalk.send((smalltalk.IRInlinedIfNilIfNotNil || IRInlinedIfNilIfNotNil),"_new",[]),anotherIRInstruction,anIRInstruction]);
674
+ return smalltalk.withContext(function($ctx1) {
675
+ $1=_st(self)._inlinedSend_with_with_(_st((smalltalk.IRInlinedIfNilIfNotNil || IRInlinedIfNilIfNotNil))._new(),anotherIRInstruction,anIRInstruction);
675
676
  return $1;
676
- }
677
+ }, function($ctx1) {$ctx1.fill(self,"ifNotNil:ifNil:",{anIRInstruction:anIRInstruction,anotherIRInstruction:anotherIRInstruction}, smalltalk.IRSendInliner)})}
677
678
  }),
678
679
  smalltalk.IRSendInliner);
679
680
 
@@ -683,10 +684,10 @@ smalltalk.method({
683
684
  selector: "ifTrue:",
684
685
  fn: function (anIRInstruction){
685
686
  var self=this;
686
- var $1;
687
- $1=smalltalk.send(self,"_inlinedSend_with_",[smalltalk.send((smalltalk.IRInlinedIfTrue || IRInlinedIfTrue),"_new",[]),anIRInstruction]);
687
+ return smalltalk.withContext(function($ctx1) {
688
+ $1=_st(self)._inlinedSend_with_(_st((smalltalk.IRInlinedIfTrue || IRInlinedIfTrue))._new(),anIRInstruction);
688
689
  return $1;
689
- }
690
+ }, function($ctx1) {$ctx1.fill(self,"ifTrue:",{anIRInstruction:anIRInstruction}, smalltalk.IRSendInliner)})}
690
691
  }),
691
692
  smalltalk.IRSendInliner);
692
693
 
@@ -696,10 +697,10 @@ smalltalk.method({
696
697
  selector: "ifTrue:ifFalse:",
697
698
  fn: function (anIRInstruction,anotherIRInstruction){
698
699
  var self=this;
699
- var $1;
700
- $1=smalltalk.send(self,"_inlinedSend_with_with_",[smalltalk.send((smalltalk.IRInlinedIfTrueIfFalse || IRInlinedIfTrueIfFalse),"_new",[]),anIRInstruction,anotherIRInstruction]);
700
+ return smalltalk.withContext(function($ctx1) {
701
+ $1=_st(self)._inlinedSend_with_with_(_st((smalltalk.IRInlinedIfTrueIfFalse || IRInlinedIfTrueIfFalse))._new(),anIRInstruction,anotherIRInstruction);
701
702
  return $1;
702
- }
703
+ }, function($ctx1) {$ctx1.fill(self,"ifTrue:ifFalse:",{anIRInstruction:anIRInstruction,anotherIRInstruction:anotherIRInstruction}, smalltalk.IRSendInliner)})}
703
704
  }),
704
705
  smalltalk.IRSendInliner);
705
706
 
@@ -709,36 +710,39 @@ smalltalk.method({
709
710
  selector: "inlineClosure:",
710
711
  fn: function (anIRClosure){
711
712
  var self=this;
712
- var $1,$2;
713
- var inlinedClosure;
714
- var sequence;
715
- var statements;
716
- inlinedClosure=smalltalk.send(self,"_inlinedClosure",[]);
717
- smalltalk.send(inlinedClosure,"_scope_",[smalltalk.send(anIRClosure,"_scope",[])]);
718
- smalltalk.send(smalltalk.send(anIRClosure,"_instructions",[]),"_do_",[(function(each){
719
- $1=smalltalk.send(each,"_isSequence",[]);
720
- if(! smalltalk.assert($1)){
721
- return smalltalk.send(inlinedClosure,"_add_",[each]);
713
+ var inlinedClosure,sequence,statements;
714
+ return smalltalk.withContext(function($ctx1) {
715
+ inlinedClosure=_st(self)._inlinedClosure();
716
+ _st(inlinedClosure)._scope_(_st(anIRClosure)._scope());
717
+ $1=_st(anIRClosure)._instructions();
718
+ $2=(function(each){
719
+ return smalltalk.withContext(function($ctx2) {
720
+ if(! smalltalk.assert($3)){
721
+ return _st(inlinedClosure)._add_(each);
722
722
  };
723
- })]);
724
- sequence=smalltalk.send(self,"_inlinedSequence",[]);
725
- smalltalk.send(inlinedClosure,"_add_",[sequence]);
726
- statements=smalltalk.send(smalltalk.send(smalltalk.send(anIRClosure,"_instructions",[]),"_last",[]),"_instructions",[]);
727
- smalltalk.send(statements,"_ifNotEmpty_",[(function(){
728
- smalltalk.send(smalltalk.send(statements,"_allButLast",[]),"_do_",[(function(each){
729
- return smalltalk.send(sequence,"_add_",[each]);
730
- })]);
731
- $2=smalltalk.send(smalltalk.send(smalltalk.send(statements,"_last",[]),"_isReturn",[]),"_and_",[(function(){
732
- return smalltalk.send(smalltalk.send(statements,"_last",[]),"_isBlockReturn",[]);
733
- })]);
734
- if(smalltalk.assert($2)){
735
- return smalltalk.send(sequence,"_add_",[smalltalk.send(smalltalk.send(smalltalk.send(statements,"_last",[]),"_instructions",[]),"_first",[])]);
723
+ }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})});
724
+ _st($1)._do_($2);
725
+ sequence=_st(self)._inlinedSequence();
726
+ _st(inlinedClosure)._add_(sequence);
727
+ statements=_st(_st(_st(anIRClosure)._instructions())._last())._instructions();
728
+ $4=statements;
729
+ $5=(function(){
730
+ return smalltalk.withContext(function($ctx2) {
731
+ return smalltalk.withContext(function($ctx3) {
732
+ }, function($ctx3) {$ctx3.fillBlock({each:each},$ctx1)})}));
733
+ $6=_st(_st(_st(statements)._last())._isReturn())._and_((function(){
734
+ return smalltalk.withContext(function($ctx3) {
735
+ }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
736
+ if(smalltalk.assert($6)){
737
+ return _st(sequence)._add_(_st(_st(_st(statements)._last())._instructions())._first());
736
738
  } else {
737
- return smalltalk.send(sequence,"_add_",[smalltalk.send(statements,"_last",[])]);
739
+ return _st(sequence)._add_(_st(statements)._last());
738
740
  };
739
- })]);
740
- return inlinedClosure;
741
- }
741
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
742
+ _st($4)._ifNotEmpty_($5);
743
+ $7=inlinedClosure;
744
+ return $7;
745
+ }, function($ctx1) {$ctx1.fill(self,"inlineClosure:",{anIRClosure:anIRClosure,inlinedClosure:inlinedClosure,sequence:sequence,statements:statements}, smalltalk.IRSendInliner)})}
742
746
  }),
743
747
  smalltalk.IRSendInliner);
744
748
 
@@ -748,11 +752,11 @@ smalltalk.method({
748
752
  selector: "inlineSend:",
749
753
  fn: function (anIRSend){
750
754
  var self=this;
751
- var $1;
752
- smalltalk.send(self,"_send_",[anIRSend]);
753
- $1=smalltalk.send(self,"_perform_withArguments_",[smalltalk.send(smalltalk.send(self,"_send",[]),"_selector",[]),smalltalk.send(smalltalk.send(smalltalk.send(self,"_send",[]),"_instructions",[]),"_allButFirst",[])]);
755
+ return smalltalk.withContext(function($ctx1) {
756
+ _st(self)._send_(anIRSend);
757
+ $1=_st(self)._perform_withArguments_(_st(_st(self)._send())._selector(),_st(_st(_st(self)._send())._instructions())._allButFirst());
754
758
  return $1;
755
- }
759
+ }, function($ctx1) {$ctx1.fill(self,"inlineSend:",{anIRSend:anIRSend}, smalltalk.IRSendInliner)})}
756
760
  }),
757
761
  smalltalk.IRSendInliner);
758
762
 
@@ -762,10 +766,10 @@ smalltalk.method({
762
766
  selector: "inlinedClosure",
763
767
  fn: function (){
764
768
  var self=this;
765
- var $1;
766
- $1=smalltalk.send((smalltalk.IRInlinedClosure || IRInlinedClosure),"_new",[]);
769
+ return smalltalk.withContext(function($ctx1) {
770
+ $1=_st((smalltalk.IRInlinedClosure || IRInlinedClosure))._new();
767
771
  return $1;
768
- }
772
+ }, function($ctx1) {$ctx1.fill(self,"inlinedClosure",{}, smalltalk.IRSendInliner)})}
769
773
  }),
770
774
  smalltalk.IRSendInliner);
771
775
 
@@ -775,22 +779,24 @@ smalltalk.method({
775
779
  selector: "inlinedSend:with:",
776
780
  fn: function (inlinedSend,anIRInstruction){
777
781
  var self=this;
778
- var $1,$2,$3;
779
782
  var inlinedClosure;
780
- $1=smalltalk.send(anIRInstruction,"_isClosure",[]);
783
+ return smalltalk.withContext(function($ctx1) {
784
+ $1=_st(anIRInstruction)._isClosure();
781
785
  if(! smalltalk.assert($1)){
782
- smalltalk.send(self,"_inliningError_",["Message argument should be a block"]);
786
+ _st(self)._inliningError_("Message argument should be a block");
783
787
  };
784
- $2=smalltalk.send(smalltalk.send(smalltalk.send(anIRInstruction,"_arguments",[]),"_size",[]),"__eq",[(0)]);
788
+ $2=_st(_st(_st(anIRInstruction)._arguments())._size()).__eq((0));
785
789
  if(! smalltalk.assert($2)){
786
- smalltalk.send(self,"_inliningError_",["Inlined block should have zero argument"]);
790
+ _st(self)._inliningError_("Inlined block should have zero argument");
787
791
  };
788
- inlinedClosure=smalltalk.send(smalltalk.send(self,"_translator",[]),"_visit_",[smalltalk.send(self,"_inlineClosure_",[anIRInstruction])]);
789
- smalltalk.send(inlinedSend,"_add_",[smalltalk.send(smalltalk.send(smalltalk.send(self,"_send",[]),"_instructions",[]),"_first",[])]);
790
- $3=smalltalk.send(inlinedSend,"_add_",[inlinedClosure]);
791
- smalltalk.send(smalltalk.send(self,"_send",[]),"_replaceWith_",[inlinedSend]);
792
- return inlinedSend;
793
- }
792
+ inlinedClosure=_st(_st(self)._translator())._visit_(_st(self)._inlineClosure_(anIRInstruction));
793
+ $3=inlinedSend;
794
+ _st($3)._add_(_st(_st(_st(self)._send())._instructions())._first());
795
+ $4=_st($3)._add_(inlinedClosure);
796
+ _st(_st(self)._send())._replaceWith_(inlinedSend);
797
+ $5=inlinedSend;
798
+ return $5;
799
+ }, function($ctx1) {$ctx1.fill(self,"inlinedSend:with:",{inlinedSend:inlinedSend,anIRInstruction:anIRInstruction,inlinedClosure:inlinedClosure}, smalltalk.IRSendInliner)})}
794
800
  }),
795
801
  smalltalk.IRSendInliner);
796
802
 
@@ -800,33 +806,34 @@ smalltalk.method({
800
806
  selector: "inlinedSend:with:with:",
801
807
  fn: function (inlinedSend,anIRInstruction,anotherIRInstruction){
802
808
  var self=this;
803
- var $1,$2,$3,$4,$5;
804
- var inlinedClosure1;
805
- var inlinedClosure2;
806
- $1=smalltalk.send(anIRInstruction,"_isClosure",[]);
809
+ var inlinedClosure1,inlinedClosure2;
810
+ return smalltalk.withContext(function($ctx1) {
811
+ $1=_st(anIRInstruction)._isClosure();
807
812
  if(! smalltalk.assert($1)){
808
- smalltalk.send(self,"_inliningError_",["Message argument should be a block"]);
813
+ _st(self)._inliningError_("Message argument should be a block");
809
814
  };
810
- $2=smalltalk.send(smalltalk.send(smalltalk.send(anIRInstruction,"_arguments",[]),"_size",[]),"__eq",[(0)]);
815
+ $2=_st(_st(_st(anIRInstruction)._arguments())._size()).__eq((0));
811
816
  if(! smalltalk.assert($2)){
812
- smalltalk.send(self,"_inliningError_",["Inlined block should have zero argument"]);
817
+ _st(self)._inliningError_("Inlined block should have zero argument");
813
818
  };
814
- $3=smalltalk.send(anotherIRInstruction,"_isClosure",[]);
819
+ $3=_st(anotherIRInstruction)._isClosure();
815
820
  if(! smalltalk.assert($3)){
816
- smalltalk.send(self,"_inliningError_",["Message argument should be a block"]);
821
+ _st(self)._inliningError_("Message argument should be a block");
817
822
  };
818
- $4=smalltalk.send(smalltalk.send(smalltalk.send(anotherIRInstruction,"_arguments",[]),"_size",[]),"__eq",[(0)]);
823
+ $4=_st(_st(_st(anotherIRInstruction)._arguments())._size()).__eq((0));
819
824
  if(! smalltalk.assert($4)){
820
- smalltalk.send(self,"_inliningError_",["Inlined block should have zero argument"]);
825
+ _st(self)._inliningError_("Inlined block should have zero argument");
821
826
  };
822
- inlinedClosure1=smalltalk.send(smalltalk.send(self,"_translator",[]),"_visit_",[smalltalk.send(self,"_inlineClosure_",[anIRInstruction])]);
823
- inlinedClosure2=smalltalk.send(smalltalk.send(self,"_translator",[]),"_visit_",[smalltalk.send(self,"_inlineClosure_",[anotherIRInstruction])]);
824
- smalltalk.send(inlinedSend,"_add_",[smalltalk.send(smalltalk.send(smalltalk.send(self,"_send",[]),"_instructions",[]),"_first",[])]);
825
- smalltalk.send(inlinedSend,"_add_",[inlinedClosure1]);
826
- $5=smalltalk.send(inlinedSend,"_add_",[inlinedClosure2]);
827
- smalltalk.send(smalltalk.send(self,"_send",[]),"_replaceWith_",[inlinedSend]);
828
- return inlinedSend;
829
- }
827
+ inlinedClosure1=_st(_st(self)._translator())._visit_(_st(self)._inlineClosure_(anIRInstruction));
828
+ inlinedClosure2=_st(_st(self)._translator())._visit_(_st(self)._inlineClosure_(anotherIRInstruction));
829
+ $5=inlinedSend;
830
+ _st($5)._add_(_st(_st(_st(self)._send())._instructions())._first());
831
+ _st($5)._add_(inlinedClosure1);
832
+ $6=_st($5)._add_(inlinedClosure2);
833
+ _st(_st(self)._send())._replaceWith_(inlinedSend);
834
+ $7=inlinedSend;
835
+ return $7;
836
+ }, function($ctx1) {$ctx1.fill(self,"inlinedSend:with:with:",{inlinedSend:inlinedSend,anIRInstruction:anIRInstruction,anotherIRInstruction:anotherIRInstruction,inlinedClosure1:inlinedClosure1,inlinedClosure2:inlinedClosure2}, smalltalk.IRSendInliner)})}
830
837
  }),
831
838
  smalltalk.IRSendInliner);
832
839
 
@@ -836,10 +843,10 @@ smalltalk.method({
836
843
  selector: "inlinedSequence",
837
844
  fn: function (){
838
845
  var self=this;
839
- var $1;
840
- $1=smalltalk.send((smalltalk.IRInlinedSequence || IRInlinedSequence),"_new",[]);
846
+ return smalltalk.withContext(function($ctx1) {
847
+ $1=_st((smalltalk.IRInlinedSequence || IRInlinedSequence))._new();
841
848
  return $1;
842
- }
849
+ }, function($ctx1) {$ctx1.fill(self,"inlinedSequence",{}, smalltalk.IRSendInliner)})}
843
850
  }),
844
851
  smalltalk.IRSendInliner);
845
852
 
@@ -849,8 +856,8 @@ smalltalk.method({
849
856
  selector: "inliningError:",
850
857
  fn: function (aString){
851
858
  var self=this;
852
- smalltalk.send((smalltalk.InliningError || InliningError),"_signal_",[aString]);
853
- return self}
859
+ return smalltalk.withContext(function($ctx1) {
860
+ return self}, function($ctx1) {$ctx1.fill(self,"inliningError:",{aString:aString}, smalltalk.IRSendInliner)})}
854
861
  }),
855
862
  smalltalk.IRSendInliner);
856
863
 
@@ -860,8 +867,10 @@ smalltalk.method({
860
867
  selector: "send",
861
868
  fn: function (){
862
869
  var self=this;
863
- return self["@send"];
864
- }
870
+ return smalltalk.withContext(function($ctx1) {
871
+ $1=self["@send"];
872
+ return $1;
873
+ }, function($ctx1) {$ctx1.fill(self,"send",{}, smalltalk.IRSendInliner)})}
865
874
  }),
866
875
  smalltalk.IRSendInliner);
867
876
 
@@ -871,8 +880,8 @@ smalltalk.method({
871
880
  selector: "send:",
872
881
  fn: function (anIRSend){
873
882
  var self=this;
874
- self["@send"]=anIRSend;
875
- return self}
883
+ return smalltalk.withContext(function($ctx1) {
884
+ return self}, function($ctx1) {$ctx1.fill(self,"send:",{anIRSend:anIRSend}, smalltalk.IRSendInliner)})}
876
885
  }),
877
886
  smalltalk.IRSendInliner);
878
887
 
@@ -882,8 +891,10 @@ smalltalk.method({
882
891
  selector: "translator",
883
892
  fn: function (){
884
893
  var self=this;
885
- return self["@translator"];
886
- }
894
+ return smalltalk.withContext(function($ctx1) {
895
+ $1=self["@translator"];
896
+ return $1;
897
+ }, function($ctx1) {$ctx1.fill(self,"translator",{}, smalltalk.IRSendInliner)})}
887
898
  }),
888
899
  smalltalk.IRSendInliner);
889
900
 
@@ -893,8 +904,8 @@ smalltalk.method({
893
904
  selector: "translator:",
894
905
  fn: function (anASTTranslator){
895
906
  var self=this;
896
- self["@translator"]=anASTTranslator;
897
- return self}
907
+ return smalltalk.withContext(function($ctx1) {
908
+ return self}, function($ctx1) {$ctx1.fill(self,"translator:",{anASTTranslator:anASTTranslator}, smalltalk.IRSendInliner)})}
898
909
  }),
899
910
  smalltalk.IRSendInliner);
900
911
 
@@ -905,8 +916,8 @@ smalltalk.method({
905
916
  selector: "inlinedSelectors",
906
917
  fn: function (){
907
918
  var self=this;
908
- return ["ifTrue:", "ifFalse:", "ifTrue:ifFalse:", "ifFalse:ifTrue:", "ifNil:", "ifNotNil:", "ifNil:ifNotNil:", "ifNotNil:ifNil"];
909
- }
919
+ return smalltalk.withContext(function($ctx1) {
920
+ }, function($ctx1) {$ctx1.fill(self,"inlinedSelectors",{}, smalltalk.IRSendInliner.klass)})}
910
921
  }),
911
922
  smalltalk.IRSendInliner.klass);
912
923
 
@@ -916,23 +927,25 @@ smalltalk.method({
916
927
  selector: "shouldInline:",
917
928
  fn: function (anIRInstruction){
918
929
  var self=this;
919
- var $1,$2;
930
+ return smalltalk.withContext(function($ctx1) {
920
931
  var $early={};
921
932
  try {
922
- $1=smalltalk.send(smalltalk.send(self,"_inlinedSelectors",[]),"_includes_",[smalltalk.send(anIRInstruction,"_selector",[])]);
933
+ $1=_st(_st(self)._inlinedSelectors())._includes_(_st(anIRInstruction)._selector());
923
934
  if(! smalltalk.assert($1)){
924
935
  return false;
925
936
  };
926
- smalltalk.send(smalltalk.send(smalltalk.send(anIRInstruction,"_instructions",[]),"_allButFirst",[]),"_do_",[(function(each){
927
- $2=smalltalk.send(each,"_isClosure",[]);
928
- if(! smalltalk.assert($2)){
937
+ $2=_st(_st(anIRInstruction)._instructions())._allButFirst();
938
+ $3=(function(each){
939
+ return smalltalk.withContext(function($ctx2) {
940
+ if(! smalltalk.assert($4)){
929
941
  throw $early=[false];
930
942
  };
931
- })]);
943
+ }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})});
944
+ _st($2)._do_($3);
932
945
  return true;
933
946
  }
934
947
  catch(e) {if(e===$early)return e[0]; throw e}
935
- }
948
+ }, function($ctx1) {$ctx1.fill(self,"shouldInline:",{anIRInstruction:anIRInstruction}, smalltalk.IRSendInliner.klass)})}
936
949
  }),
937
950
  smalltalk.IRSendInliner.klass);
938
951
 
@@ -944,8 +957,10 @@ smalltalk.method({
944
957
  selector: "assignment",
945
958
  fn: function (){
946
959
  var self=this;
947
- return self["@assignment"];
948
- }
960
+ return smalltalk.withContext(function($ctx1) {
961
+ $1=self["@assignment"];
962
+ return $1;
963
+ }, function($ctx1) {$ctx1.fill(self,"assignment",{}, smalltalk.IRAssignmentInliner)})}
949
964
  }),
950
965
  smalltalk.IRAssignmentInliner);
951
966
 
@@ -955,8 +970,8 @@ smalltalk.method({
955
970
  selector: "assignment:",
956
971
  fn: function (aNode){
957
972
  var self=this;
958
- self["@assignment"]=aNode;
959
- return self}
973
+ return smalltalk.withContext(function($ctx1) {
974
+ return self}, function($ctx1) {$ctx1.fill(self,"assignment:",{aNode:aNode}, smalltalk.IRAssignmentInliner)})}
960
975
  }),
961
976
  smalltalk.IRAssignmentInliner);
962
977
 
@@ -967,15 +982,17 @@ selector: "inlineAssignment:",
967
982
  fn: function (anIRAssignment){
968
983
  var self=this;
969
984
  var inlinedAssignment;
970
- smalltalk.send(self,"_assignment_",[anIRAssignment]);
971
- inlinedAssignment=smalltalk.send((smalltalk.IRInlinedAssignment || IRInlinedAssignment),"_new",[]);
972
- smalltalk.send(smalltalk.send(anIRAssignment,"_instructions",[]),"_do_",[(function(each){
973
- return smalltalk.send(inlinedAssignment,"_add_",[each]);
974
- })]);
975
- smalltalk.send(anIRAssignment,"_replaceWith_",[inlinedAssignment]);
976
- smalltalk.send(self,"_inlineSend_",[smalltalk.send(smalltalk.send(inlinedAssignment,"_instructions",[]),"_last",[])]);
977
- return inlinedAssignment;
978
- }
985
+ return smalltalk.withContext(function($ctx1) {
986
+ _st(self)._assignment_(anIRAssignment);
987
+ inlinedAssignment=_st((smalltalk.IRInlinedAssignment || IRInlinedAssignment))._new();
988
+ _st(_st(anIRAssignment)._instructions())._do_((function(each){
989
+ return smalltalk.withContext(function($ctx2) {
990
+ }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
991
+ _st(anIRAssignment)._replaceWith_(inlinedAssignment);
992
+ _st(self)._inlineSend_(_st(_st(inlinedAssignment)._instructions())._last());
993
+ $1=inlinedAssignment;
994
+ return $1;
995
+ }, function($ctx1) {$ctx1.fill(self,"inlineAssignment:",{anIRAssignment:anIRAssignment,inlinedAssignment:inlinedAssignment}, smalltalk.IRAssignmentInliner)})}
979
996
  }),
980
997
  smalltalk.IRAssignmentInliner);
981
998
 
@@ -985,23 +1002,25 @@ smalltalk.method({
985
1002
  selector: "inlineClosure:",
986
1003
  fn: function (anIRClosure){
987
1004
  var self=this;
988
- var $1,$2,$3;
989
- var inlinedClosure;
990
- var statements;
991
- inlinedClosure=smalltalk.send(self,"_inlineClosure_",[anIRClosure],smalltalk.IRSendInliner);
992
- statements=smalltalk.send(smalltalk.send(smalltalk.send(inlinedClosure,"_instructions",[]),"_last",[]),"_instructions",[]);
993
- smalltalk.send(statements,"_ifNotEmpty_",[(function(){
994
- $1=smalltalk.send(smalltalk.send(statements,"_last",[]),"_canBeAssigned",[]);
995
- if(smalltalk.assert($1)){
996
- $2=smalltalk.send((smalltalk.IRAssignment || IRAssignment),"_new",[]);
997
- smalltalk.send($2,"_add_",[smalltalk.send(smalltalk.send(smalltalk.send(self,"_assignment",[]),"_instructions",[]),"_first",[])]);
998
- smalltalk.send($2,"_add_",[smalltalk.send(smalltalk.send(statements,"_last",[]),"_copy",[])]);
999
- $3=smalltalk.send($2,"_yourself",[]);
1000
- return smalltalk.send(smalltalk.send(statements,"_last",[]),"_replaceWith_",[$3]);
1005
+ var inlinedClosure,statements;
1006
+ return smalltalk.withContext(function($ctx1) {
1007
+ inlinedClosure=smalltalk.IRSendInliner.fn.prototype._inlineClosure_.apply(_st(self), [anIRClosure]);
1008
+ statements=_st(_st(_st(inlinedClosure)._instructions())._last())._instructions();
1009
+ $1=statements;
1010
+ $2=(function(){
1011
+ return smalltalk.withContext(function($ctx2) {
1012
+ if(smalltalk.assert($3)){
1013
+ $4=_st((smalltalk.IRAssignment || IRAssignment))._new();
1014
+ _st($4)._add_(_st(_st(_st(self)._assignment())._instructions())._first());
1015
+ _st($4)._add_(_st(_st(statements)._last())._copy());
1016
+ $5=_st($4)._yourself();
1017
+ return _st(_st(statements)._last())._replaceWith_($5);
1001
1018
  };
1002
- })]);
1003
- return inlinedClosure;
1004
- }
1019
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
1020
+ _st($1)._ifNotEmpty_($2);
1021
+ $6=inlinedClosure;
1022
+ return $6;
1023
+ }, function($ctx1) {$ctx1.fill(self,"inlineClosure:",{anIRClosure:anIRClosure,inlinedClosure:inlinedClosure,statements:statements}, smalltalk.IRAssignmentInliner)})}
1005
1024
  }),
1006
1025
  smalltalk.IRAssignmentInliner);
1007
1026
 
@@ -1014,10 +1033,10 @@ smalltalk.method({
1014
1033
  selector: "inlineClosure:",
1015
1034
  fn: function (anIRClosure){
1016
1035
  var self=this;
1017
- var $1;
1018
- $1=smalltalk.send(self,"_inlineCLosure_",[anIRClosure],smalltalk.IRSendInliner);
1036
+ return smalltalk.withContext(function($ctx1) {
1037
+ $1=smalltalk.IRSendInliner.fn.prototype._inlineCLosure_.apply(_st(self), [anIRClosure]);
1019
1038
  return $1;
1020
- }
1039
+ }, function($ctx1) {$ctx1.fill(self,"inlineClosure:",{anIRClosure:anIRClosure}, smalltalk.IRNonLocalReturnInliner)})}
1021
1040
  }),
1022
1041
  smalltalk.IRNonLocalReturnInliner);
1023
1042
 
@@ -1027,10 +1046,10 @@ smalltalk.method({
1027
1046
  selector: "inlinedReturn",
1028
1047
  fn: function (){
1029
1048
  var self=this;
1030
- var $1;
1031
- $1=smalltalk.send((smalltalk.IRInlinedNonLocalReturn || IRInlinedNonLocalReturn),"_new",[]);
1049
+ return smalltalk.withContext(function($ctx1) {
1050
+ $1=_st((smalltalk.IRInlinedNonLocalReturn || IRInlinedNonLocalReturn))._new();
1032
1051
  return $1;
1033
- }
1052
+ }, function($ctx1) {$ctx1.fill(self,"inlinedReturn",{}, smalltalk.IRNonLocalReturnInliner)})}
1034
1053
  }),
1035
1054
  smalltalk.IRNonLocalReturnInliner);
1036
1055
 
@@ -1043,22 +1062,24 @@ smalltalk.method({
1043
1062
  selector: "inlineClosure:",
1044
1063
  fn: function (anIRClosure){
1045
1064
  var self=this;
1046
- var $1,$2,$3;
1047
- var closure;
1048
- var statements;
1049
- closure=smalltalk.send(self,"_inlineClosure_",[anIRClosure],smalltalk.IRSendInliner);
1050
- statements=smalltalk.send(smalltalk.send(smalltalk.send(closure,"_instructions",[]),"_last",[]),"_instructions",[]);
1051
- smalltalk.send(statements,"_ifNotEmpty_",[(function(){
1052
- $1=smalltalk.send(smalltalk.send(statements,"_last",[]),"_isReturn",[]);
1053
- if(! smalltalk.assert($1)){
1054
- $2=smalltalk.send((smalltalk.IRReturn || IRReturn),"_new",[]);
1055
- smalltalk.send($2,"_add_",[smalltalk.send(smalltalk.send(statements,"_last",[]),"_copy",[])]);
1056
- $3=smalltalk.send($2,"_yourself",[]);
1057
- return smalltalk.send(smalltalk.send(statements,"_last",[]),"_replaceWith_",[$3]);
1065
+ var closure,statements;
1066
+ return smalltalk.withContext(function($ctx1) {
1067
+ closure=smalltalk.IRSendInliner.fn.prototype._inlineClosure_.apply(_st(self), [anIRClosure]);
1068
+ statements=_st(_st(_st(closure)._instructions())._last())._instructions();
1069
+ $1=statements;
1070
+ $2=(function(){
1071
+ return smalltalk.withContext(function($ctx2) {
1072
+ if(! smalltalk.assert($3)){
1073
+ $4=_st((smalltalk.IRReturn || IRReturn))._new();
1074
+ _st($4)._add_(_st(_st(statements)._last())._copy());
1075
+ $5=_st($4)._yourself();
1076
+ return _st(_st(statements)._last())._replaceWith_($5);
1058
1077
  };
1059
- })]);
1060
- return closure;
1061
- }
1078
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
1079
+ _st($1)._ifNotEmpty_($2);
1080
+ $6=closure;
1081
+ return $6;
1082
+ }, function($ctx1) {$ctx1.fill(self,"inlineClosure:",{anIRClosure:anIRClosure,closure:closure,statements:statements}, smalltalk.IRReturnInliner)})}
1062
1083
  }),
1063
1084
  smalltalk.IRReturnInliner);
1064
1085
 
@@ -1069,14 +1090,16 @@ selector: "inlineReturn:",
1069
1090
  fn: function (anIRReturn){
1070
1091
  var self=this;
1071
1092
  var return_;
1072
- return_=smalltalk.send(self,"_inlinedReturn",[]);
1073
- smalltalk.send(smalltalk.send(anIRReturn,"_instructions",[]),"_do_",[(function(each){
1074
- return smalltalk.send(return_,"_add_",[each]);
1075
- })]);
1076
- smalltalk.send(anIRReturn,"_replaceWith_",[return_]);
1077
- smalltalk.send(self,"_inlineSend_",[smalltalk.send(smalltalk.send(return_,"_instructions",[]),"_last",[])]);
1078
- return return_;
1079
- }
1093
+ return smalltalk.withContext(function($ctx1) {
1094
+ return_=_st(self)._inlinedReturn();
1095
+ _st(_st(anIRReturn)._instructions())._do_((function(each){
1096
+ return smalltalk.withContext(function($ctx2) {
1097
+ }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
1098
+ _st(anIRReturn)._replaceWith_(return_);
1099
+ _st(self)._inlineSend_(_st(_st(return_)._instructions())._last());
1100
+ $1=return_;
1101
+ return $1;
1102
+ }, function($ctx1) {$ctx1.fill(self,"inlineReturn:",{anIRReturn:anIRReturn,return_:return_}, smalltalk.IRReturnInliner)})}
1080
1103
  }),
1081
1104
  smalltalk.IRReturnInliner);
1082
1105
 
@@ -1086,10 +1109,10 @@ smalltalk.method({
1086
1109
  selector: "inlinedReturn",
1087
1110
  fn: function (){
1088
1111
  var self=this;
1089
- var $1;
1090
- $1=smalltalk.send((smalltalk.IRInlinedReturn || IRInlinedReturn),"_new",[]);
1112
+ return smalltalk.withContext(function($ctx1) {
1113
+ $1=_st((smalltalk.IRInlinedReturn || IRInlinedReturn))._new();
1091
1114
  return $1;
1092
- }
1115
+ }, function($ctx1) {$ctx1.fill(self,"inlinedReturn",{}, smalltalk.IRReturnInliner)})}
1093
1116
  }),
1094
1117
  smalltalk.IRReturnInliner);
1095
1118
 
@@ -1102,18 +1125,17 @@ smalltalk.method({
1102
1125
  selector: "compileNode:",
1103
1126
  fn: function (aNode){
1104
1127
  var self=this;
1105
- var $2,$3,$1;
1106
- var ir;
1107
- var stream;
1108
- smalltalk.send(smalltalk.send(self,"_semanticAnalyzer",[]),"_visit_",[aNode]);
1109
- ir=smalltalk.send(smalltalk.send(self,"_translator",[]),"_visit_",[aNode]);
1110
- smalltalk.send(smalltalk.send(self,"_inliner",[]),"_visit_",[ir]);
1111
- $2=smalltalk.send(self,"_irTranslator",[]);
1112
- smalltalk.send($2,"_visit_",[ir]);
1113
- $3=smalltalk.send($2,"_contents",[]);
1128
+ var ir,stream;
1129
+ return smalltalk.withContext(function($ctx1) {
1130
+ _st(_st(self)._semanticAnalyzer())._visit_(aNode);
1131
+ ir=_st(_st(self)._translator())._visit_(aNode);
1132
+ _st(_st(self)._inliner())._visit_(ir);
1133
+ $2=_st(self)._irTranslator();
1134
+ _st($2)._visit_(ir);
1135
+ $3=_st($2)._contents();
1114
1136
  $1=$3;
1115
1137
  return $1;
1116
- }
1138
+ }, function($ctx1) {$ctx1.fill(self,"compileNode:",{aNode:aNode,ir:ir,stream:stream}, smalltalk.InliningCodeGenerator)})}
1117
1139
  }),
1118
1140
  smalltalk.InliningCodeGenerator);
1119
1141
 
@@ -1123,10 +1145,10 @@ smalltalk.method({
1123
1145
  selector: "inliner",
1124
1146
  fn: function (){
1125
1147
  var self=this;
1126
- var $1;
1127
- $1=smalltalk.send((smalltalk.IRInliner || IRInliner),"_new",[]);
1148
+ return smalltalk.withContext(function($ctx1) {
1149
+ $1=_st((smalltalk.IRInliner || IRInliner))._new();
1128
1150
  return $1;
1129
- }
1151
+ }, function($ctx1) {$ctx1.fill(self,"inliner",{}, smalltalk.InliningCodeGenerator)})}
1130
1152
  }),
1131
1153
  smalltalk.InliningCodeGenerator);
1132
1154
 
@@ -1136,10 +1158,10 @@ smalltalk.method({
1136
1158
  selector: "irTranslator",
1137
1159
  fn: function (){
1138
1160
  var self=this;
1139
- var $1;
1140
- $1=smalltalk.send((smalltalk.IRInliningJSTranslator || IRInliningJSTranslator),"_new",[]);
1161
+ return smalltalk.withContext(function($ctx1) {
1162
+ $1=_st((smalltalk.IRInliningJSTranslator || IRInliningJSTranslator))._new();
1141
1163
  return $1;
1142
- }
1164
+ }, function($ctx1) {$ctx1.fill(self,"irTranslator",{}, smalltalk.InliningCodeGenerator)})}
1143
1165
  }),
1144
1166
  smalltalk.InliningCodeGenerator);
1145
1167