resin 0.2.2 → 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (117) hide show
  1. data/amber/css/amber-normalize.css +73 -73
  2. data/amber/css/amber-normalize.less +1 -1
  3. data/amber/css/amber.css +106 -106
  4. data/amber/css/helios.css +242 -0
  5. data/amber/images/hsplitter.png +0 -0
  6. data/amber/images/vsplitter.png +0 -0
  7. data/amber/js/Benchfib.deploy.js +116 -38
  8. data/amber/js/Benchfib.js +120 -42
  9. data/amber/js/Canvas.deploy.js +674 -403
  10. data/amber/js/Canvas.js +682 -411
  11. data/amber/js/Compiler-AST.deploy.js +1150 -0
  12. data/amber/js/Compiler-AST.js +1591 -0
  13. data/amber/js/Compiler-Core.deploy.js +1562 -0
  14. data/amber/js/Compiler-Core.js +1972 -0
  15. data/amber/js/Compiler-Exceptions.deploy.js +114 -0
  16. data/amber/js/Compiler-Exceptions.js +161 -0
  17. data/amber/js/Compiler-IR.deploy.js +2326 -0
  18. data/amber/js/Compiler-IR.js +3146 -0
  19. data/amber/js/Compiler-Inlining.deploy.js +1147 -0
  20. data/amber/js/Compiler-Inlining.js +1514 -0
  21. data/amber/js/Compiler-Semantic.deploy.js +1207 -0
  22. data/amber/js/Compiler-Semantic.js +1628 -0
  23. data/amber/js/Compiler-Tests.deploy.js +646 -60
  24. data/amber/js/Compiler-Tests.js +843 -82
  25. data/amber/js/Compiler.deploy.js +1097 -159
  26. data/amber/js/Compiler.js +1414 -161
  27. data/amber/js/Examples.deploy.js +31 -15
  28. data/amber/js/Examples.js +33 -17
  29. data/amber/js/Helios-Announcements.deploy.js +127 -0
  30. data/amber/js/Helios-Announcements.js +157 -0
  31. data/amber/js/Helios-Browser.deploy.js +1473 -0
  32. data/amber/js/Helios-Browser.js +1953 -0
  33. data/amber/js/Helios-Commands.deploy.js +403 -0
  34. data/amber/js/Helios-Commands.js +563 -0
  35. data/amber/js/Helios-Core.deploy.js +1070 -0
  36. data/amber/js/Helios-Core.js +1445 -0
  37. data/amber/js/Helios-Environments.deploy.js +132 -0
  38. data/amber/js/Helios-Environments.js +179 -0
  39. data/amber/js/Helios-Inspector.deploy.js +855 -0
  40. data/amber/js/Helios-Inspector.js +1155 -0
  41. data/amber/js/Helios-KeyBindings.deploy.js +753 -0
  42. data/amber/js/Helios-KeyBindings.js +1023 -0
  43. data/amber/js/Helios-Layout.deploy.js +383 -0
  44. data/amber/js/Helios-Layout.js +523 -0
  45. data/amber/js/Helios-Workspace.deploy.js +799 -0
  46. data/amber/js/Helios-Workspace.js +1074 -0
  47. data/amber/js/IDE.deploy.js +2541 -1490
  48. data/amber/js/IDE.js +2721 -1660
  49. data/amber/js/Importer-Exporter.deploy.js +671 -0
  50. data/amber/js/Importer-Exporter.js +816 -0
  51. data/amber/js/Kernel-Announcements.deploy.js +137 -20
  52. data/amber/js/Kernel-Announcements.js +176 -22
  53. data/amber/js/Kernel-Classes.deploy.js +555 -168
  54. data/amber/js/Kernel-Classes.js +662 -205
  55. data/amber/js/Kernel-Collections.deploy.js +1403 -618
  56. data/amber/js/Kernel-Collections.js +1545 -690
  57. data/amber/js/Kernel-Exceptions.deploy.js +109 -45
  58. data/amber/js/Kernel-Exceptions.js +123 -49
  59. data/amber/js/Kernel-Methods.deploy.js +196 -81
  60. data/amber/js/Kernel-Methods.js +214 -89
  61. data/amber/js/Kernel-Objects.deploy.js +1542 -1117
  62. data/amber/js/Kernel-Objects.js +1593 -1148
  63. data/amber/js/Kernel-Tests.deploy.js +1725 -772
  64. data/amber/js/Kernel-Tests.js +2301 -1123
  65. data/amber/js/Kernel-Transcript.deploy.js +23 -25
  66. data/amber/js/Kernel-Transcript.js +24 -26
  67. data/amber/js/SUnit.deploy.js +204 -131
  68. data/amber/js/SUnit.js +222 -139
  69. data/amber/js/Spaces.deploy.js +240 -0
  70. data/amber/js/Spaces.js +326 -0
  71. data/amber/js/amber.js +26 -7
  72. data/amber/js/boot.js +65 -47
  73. data/amber/js/init.js +1 -1
  74. data/amber/js/lib/CodeMirror/amber.css +21 -21
  75. data/amber/js/lib/CodeMirror/codemirror.css +119 -13
  76. data/amber/js/lib/CodeMirror/codemirror.js +2219 -1220
  77. data/amber/js/lib/CodeMirror/smalltalk.js +134 -129
  78. data/amber/js/lib/bootstrap/css/bootstrap.css +5837 -0
  79. data/amber/js/lib/bootstrap/css/bootstrap.min.css +841 -0
  80. data/amber/js/lib/bootstrap/img/glyphicons-halflings-white.png +0 -0
  81. data/amber/js/lib/bootstrap/img/glyphicons-halflings.png +0 -0
  82. data/amber/js/lib/bootstrap/js/bootstrap.js +2038 -0
  83. data/amber/js/lib/bootstrap/js/bootstrap.min.js +7 -0
  84. data/amber/js/lib/jQuery/jquery-1.8.2.min.js +2 -0
  85. data/amber/js/lib/jQuery/jquery-ui-1.8.24.custom.min.js +125 -0
  86. data/amber/st/Compiler-AST.st +505 -0
  87. data/amber/st/Compiler-Core.st +835 -0
  88. data/amber/st/Compiler-Exceptions.st +87 -0
  89. data/amber/st/Compiler-IR.st +1097 -0
  90. data/amber/st/Compiler-Inlining.st +650 -0
  91. data/amber/st/Compiler-Semantic.st +558 -0
  92. data/amber/st/Compiler-Tests.st +285 -381
  93. data/amber/st/Compiler.st +725 -2
  94. data/amber/st/Helios-Announcements.st +104 -0
  95. data/amber/st/Helios-Browser.st +708 -0
  96. data/amber/st/Helios-Commands.st +223 -0
  97. data/amber/st/Helios-Core.st +532 -0
  98. data/amber/st/Helios-Environments.st +98 -0
  99. data/amber/st/Helios-Inspector.st +367 -0
  100. data/amber/st/Helios-KeyBindings.st +337 -0
  101. data/amber/st/Helios-Layout.st +199 -0
  102. data/amber/st/Helios-Workspace.st +367 -0
  103. data/amber/st/IDE.st +75 -53
  104. data/amber/st/Importer-Exporter.st +386 -0
  105. data/amber/st/Kernel-Announcements.st +92 -0
  106. data/amber/st/Kernel-Classes.st +137 -15
  107. data/amber/st/Kernel-Collections.st +137 -47
  108. data/amber/st/Kernel-Exceptions.st +14 -0
  109. data/amber/st/Kernel-Methods.st +9 -1
  110. data/amber/st/Kernel-Objects.st +29 -5
  111. data/amber/st/Kernel-Tests.st +545 -199
  112. data/amber/st/SUnit.st +10 -0
  113. data/amber/st/Spaces.st +142 -0
  114. data/lib/resin/app.rb +1 -1
  115. metadata +86 -31
  116. data/amber/js/lib/jQuery/jquery-1.4.4.min.js +0 -167
  117. data/amber/js/lib/jQuery/jquery-1.6.4.min.js +0 -4
@@ -0,0 +1,1562 @@
1
+ smalltalk.addPackage('Compiler-Core', {});
2
+ smalltalk.addClass('Compiler', smalltalk.Object, ['currentClass', 'source', 'unknownVariables', 'codeGeneratorClass'], 'Compiler-Core');
3
+ smalltalk.addMethod(
4
+ "_codeGeneratorClass",
5
+ smalltalk.method({
6
+ selector: "codeGeneratorClass",
7
+ fn: function (){
8
+ var self=this;
9
+ var $1;
10
+ if(($receiver = self["@codeGeneratorClass"]) == nil || $receiver == undefined){
11
+ $1=(smalltalk.InliningCodeGenerator || InliningCodeGenerator);
12
+ } else {
13
+ $1=self["@codeGeneratorClass"];
14
+ };
15
+ return $1;
16
+ }
17
+ }),
18
+ smalltalk.Compiler);
19
+
20
+ smalltalk.addMethod(
21
+ "_codeGeneratorClass_",
22
+ smalltalk.method({
23
+ selector: "codeGeneratorClass:",
24
+ fn: function (aClass){
25
+ var self=this;
26
+ self["@codeGeneratorClass"]=aClass;
27
+ return self}
28
+ }),
29
+ smalltalk.Compiler);
30
+
31
+ smalltalk.addMethod(
32
+ "_compile_",
33
+ smalltalk.method({
34
+ selector: "compile:",
35
+ fn: function (aString){
36
+ var self=this;
37
+ var $1;
38
+ $1=smalltalk.send(self,"_compileNode_",[smalltalk.send(self,"_parse_",[aString])]);
39
+ return $1;
40
+ }
41
+ }),
42
+ smalltalk.Compiler);
43
+
44
+ smalltalk.addMethod(
45
+ "_compile_forClass_",
46
+ smalltalk.method({
47
+ selector: "compile:forClass:",
48
+ fn: function (aString,aClass){
49
+ var self=this;
50
+ var $1;
51
+ smalltalk.send(self,"_currentClass_",[aClass]);
52
+ smalltalk.send(self,"_source_",[aString]);
53
+ $1=smalltalk.send(self,"_compile_",[aString]);
54
+ return $1;
55
+ }
56
+ }),
57
+ smalltalk.Compiler);
58
+
59
+ smalltalk.addMethod(
60
+ "_compileExpression_",
61
+ smalltalk.method({
62
+ selector: "compileExpression:",
63
+ fn: function (aString){
64
+ var self=this;
65
+ var $1;
66
+ smalltalk.send(self,"_currentClass_",[(smalltalk.DoIt || DoIt)]);
67
+ smalltalk.send(self,"_source_",[smalltalk.send(smalltalk.send("doIt ^[","__comma",[aString]),"__comma",["] value"])]);
68
+ $1=smalltalk.send(self,"_compileNode_",[smalltalk.send(self,"_parse_",[smalltalk.send(self,"_source",[])])]);
69
+ return $1;
70
+ }
71
+ }),
72
+ smalltalk.Compiler);
73
+
74
+ smalltalk.addMethod(
75
+ "_compileNode_",
76
+ smalltalk.method({
77
+ selector: "compileNode:",
78
+ fn: function (aNode){
79
+ var self=this;
80
+ var $1;
81
+ var generator;
82
+ var result;
83
+ generator=smalltalk.send(smalltalk.send(self,"_codeGeneratorClass",[]),"_new",[]);
84
+ smalltalk.send(generator,"_source_",[smalltalk.send(self,"_source",[])]);
85
+ $1=smalltalk.send(generator,"_currentClass_",[smalltalk.send(self,"_currentClass",[])]);
86
+ result=smalltalk.send(generator,"_compileNode_",[aNode]);
87
+ smalltalk.send(self,"_unknownVariables_",[[]]);
88
+ return result;
89
+ }
90
+ }),
91
+ smalltalk.Compiler);
92
+
93
+ smalltalk.addMethod(
94
+ "_currentClass",
95
+ smalltalk.method({
96
+ selector: "currentClass",
97
+ fn: function (){
98
+ var self=this;
99
+ return self["@currentClass"];
100
+ }
101
+ }),
102
+ smalltalk.Compiler);
103
+
104
+ smalltalk.addMethod(
105
+ "_currentClass_",
106
+ smalltalk.method({
107
+ selector: "currentClass:",
108
+ fn: function (aClass){
109
+ var self=this;
110
+ self["@currentClass"]=aClass;
111
+ return self}
112
+ }),
113
+ smalltalk.Compiler);
114
+
115
+ smalltalk.addMethod(
116
+ "_eval_",
117
+ smalltalk.method({
118
+ selector: "eval:",
119
+ fn: function (aString){
120
+ var self=this;
121
+ return eval(aString);
122
+ ;
123
+ return self}
124
+ }),
125
+ smalltalk.Compiler);
126
+
127
+ smalltalk.addMethod(
128
+ "_evaluateExpression_",
129
+ smalltalk.method({
130
+ selector: "evaluateExpression:",
131
+ fn: function (aString){
132
+ var self=this;
133
+ var result;
134
+ smalltalk.send((smalltalk.DoIt || DoIt),"_addCompiledMethod_",[smalltalk.send(self,"_eval_",[smalltalk.send(self,"_compileExpression_",[aString])])]);
135
+ result=smalltalk.send(smalltalk.send((smalltalk.DoIt || DoIt),"_new",[]),"_doIt",[]);
136
+ smalltalk.send((smalltalk.DoIt || DoIt),"_removeCompiledMethod_",[smalltalk.send(smalltalk.send((smalltalk.DoIt || DoIt),"_methodDictionary",[]),"_at_",["doIt"])]);
137
+ return result;
138
+ }
139
+ }),
140
+ smalltalk.Compiler);
141
+
142
+ smalltalk.addMethod(
143
+ "_install_forClass_category_",
144
+ smalltalk.method({
145
+ selector: "install:forClass:category:",
146
+ fn: function (aString,aBehavior,anotherString){
147
+ var self=this;
148
+ var compiled;
149
+ compiled=smalltalk.send(self,"_eval_",[smalltalk.send(self,"_compile_forClass_",[aString,aBehavior])]);
150
+ smalltalk.send(compiled,"_category_",[anotherString]);
151
+ smalltalk.send(aBehavior,"_addCompiledMethod_",[compiled]);
152
+ smalltalk.send(self,"_setupClass_",[aBehavior]);
153
+ return compiled;
154
+ }
155
+ }),
156
+ smalltalk.Compiler);
157
+
158
+ smalltalk.addMethod(
159
+ "_parse_",
160
+ smalltalk.method({
161
+ selector: "parse:",
162
+ fn: function (aString){
163
+ var self=this;
164
+ var $1;
165
+ $1=smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk),"_current",[]),"_parse_",[aString]);
166
+ return $1;
167
+ }
168
+ }),
169
+ smalltalk.Compiler);
170
+
171
+ smalltalk.addMethod(
172
+ "_parseExpression_",
173
+ smalltalk.method({
174
+ selector: "parseExpression:",
175
+ fn: function (aString){
176
+ var self=this;
177
+ var $1;
178
+ $1=smalltalk.send(self,"_parse_",[smalltalk.send(smalltalk.send("doIt ^[","__comma",[aString]),"__comma",["] value"])]);
179
+ return $1;
180
+ }
181
+ }),
182
+ smalltalk.Compiler);
183
+
184
+ smalltalk.addMethod(
185
+ "_recompile_",
186
+ smalltalk.method({
187
+ selector: "recompile:",
188
+ fn: function (aClass){
189
+ var self=this;
190
+ var $1;
191
+ smalltalk.send(smalltalk.send(aClass,"_methodDictionary",[]),"_do_",[(function(each){
192
+ smalltalk.send(console,"_log_",[smalltalk.send(smalltalk.send(smalltalk.send(aClass,"_name",[]),"__comma",[" >> "]),"__comma",[smalltalk.send(each,"_selector",[])])]);
193
+ return smalltalk.send(self,"_install_forClass_category_",[smalltalk.send(each,"_source",[]),aClass,smalltalk.send(each,"_category",[])]);
194
+ })]);
195
+ smalltalk.send(self,"_setupClass_",[aClass]);
196
+ $1=smalltalk.send(aClass,"_isMetaclass",[]);
197
+ if(! smalltalk.assert($1)){
198
+ smalltalk.send(self,"_recompile_",[smalltalk.send(aClass,"_class",[])]);
199
+ };
200
+ return self}
201
+ }),
202
+ smalltalk.Compiler);
203
+
204
+ smalltalk.addMethod(
205
+ "_recompileAll",
206
+ smalltalk.method({
207
+ selector: "recompileAll",
208
+ fn: function (){
209
+ var self=this;
210
+ var $1;
211
+ smalltalk.send(smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk),"_current",[]),"_classes",[]),"_do_",[(function(each){
212
+ smalltalk.send((smalltalk.Transcript || Transcript),"_show_",[each]);
213
+ $1=smalltalk.send((smalltalk.Transcript || Transcript),"_cr",[]);
214
+ $1;
215
+ return smalltalk.send((function(){
216
+ return smalltalk.send(self,"_recompile_",[each]);
217
+ }),"_valueWithTimeout_",[(100)]);
218
+ })]);
219
+ return self}
220
+ }),
221
+ smalltalk.Compiler);
222
+
223
+ smalltalk.addMethod(
224
+ "_setupClass_",
225
+ smalltalk.method({
226
+ selector: "setupClass:",
227
+ fn: function (aClass){
228
+ var self=this;
229
+ smalltalk.init(aClass);
230
+ ;
231
+ return self}
232
+ }),
233
+ smalltalk.Compiler);
234
+
235
+ smalltalk.addMethod(
236
+ "_source",
237
+ smalltalk.method({
238
+ selector: "source",
239
+ fn: function (){
240
+ var self=this;
241
+ var $1;
242
+ if(($receiver = self["@source"]) == nil || $receiver == undefined){
243
+ $1="";
244
+ } else {
245
+ $1=self["@source"];
246
+ };
247
+ return $1;
248
+ }
249
+ }),
250
+ smalltalk.Compiler);
251
+
252
+ smalltalk.addMethod(
253
+ "_source_",
254
+ smalltalk.method({
255
+ selector: "source:",
256
+ fn: function (aString){
257
+ var self=this;
258
+ self["@source"]=aString;
259
+ return self}
260
+ }),
261
+ smalltalk.Compiler);
262
+
263
+ smalltalk.addMethod(
264
+ "_unknownVariables",
265
+ smalltalk.method({
266
+ selector: "unknownVariables",
267
+ fn: function (){
268
+ var self=this;
269
+ return self["@unknownVariables"];
270
+ }
271
+ }),
272
+ smalltalk.Compiler);
273
+
274
+ smalltalk.addMethod(
275
+ "_unknownVariables_",
276
+ smalltalk.method({
277
+ selector: "unknownVariables:",
278
+ fn: function (aCollection){
279
+ var self=this;
280
+ self["@unknownVariables"]=aCollection;
281
+ return self}
282
+ }),
283
+ smalltalk.Compiler);
284
+
285
+
286
+ smalltalk.addMethod(
287
+ "_recompile_",
288
+ smalltalk.method({
289
+ selector: "recompile:",
290
+ fn: function (aClass){
291
+ var self=this;
292
+ smalltalk.send(smalltalk.send(self,"_new",[]),"_recompile_",[aClass]);
293
+ return self}
294
+ }),
295
+ smalltalk.Compiler.klass);
296
+
297
+ smalltalk.addMethod(
298
+ "_recompileAll",
299
+ smalltalk.method({
300
+ selector: "recompileAll",
301
+ fn: function (){
302
+ var self=this;
303
+ smalltalk.send(smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk),"_current",[]),"_classes",[]),"_do_",[(function(each){
304
+ return smalltalk.send(self,"_recompile_",[each]);
305
+ })]);
306
+ return self}
307
+ }),
308
+ smalltalk.Compiler.klass);
309
+
310
+
311
+ smalltalk.addClass('DoIt', smalltalk.Object, [], 'Compiler-Core');
312
+
313
+
314
+ smalltalk.addClass('NodeVisitor', smalltalk.Object, [], 'Compiler-Core');
315
+ smalltalk.addMethod(
316
+ "_visit_",
317
+ smalltalk.method({
318
+ selector: "visit:",
319
+ fn: function (aNode){
320
+ var self=this;
321
+ var $1;
322
+ $1=smalltalk.send(aNode,"_accept_",[self]);
323
+ return $1;
324
+ }
325
+ }),
326
+ smalltalk.NodeVisitor);
327
+
328
+ smalltalk.addMethod(
329
+ "_visitAll_",
330
+ smalltalk.method({
331
+ selector: "visitAll:",
332
+ fn: function (aCollection){
333
+ var self=this;
334
+ var $1;
335
+ $1=smalltalk.send(aCollection,"_do_",[(function(each){
336
+ return smalltalk.send(self,"_visit_",[each]);
337
+ })]);
338
+ return $1;
339
+ }
340
+ }),
341
+ smalltalk.NodeVisitor);
342
+
343
+ smalltalk.addMethod(
344
+ "_visitAssignmentNode_",
345
+ smalltalk.method({
346
+ selector: "visitAssignmentNode:",
347
+ fn: function (aNode){
348
+ var self=this;
349
+ var $1;
350
+ $1=smalltalk.send(self,"_visitNode_",[aNode]);
351
+ return $1;
352
+ }
353
+ }),
354
+ smalltalk.NodeVisitor);
355
+
356
+ smalltalk.addMethod(
357
+ "_visitBlockNode_",
358
+ smalltalk.method({
359
+ selector: "visitBlockNode:",
360
+ fn: function (aNode){
361
+ var self=this;
362
+ var $1;
363
+ $1=smalltalk.send(self,"_visitNode_",[aNode]);
364
+ return $1;
365
+ }
366
+ }),
367
+ smalltalk.NodeVisitor);
368
+
369
+ smalltalk.addMethod(
370
+ "_visitBlockSequenceNode_",
371
+ smalltalk.method({
372
+ selector: "visitBlockSequenceNode:",
373
+ fn: function (aNode){
374
+ var self=this;
375
+ var $1;
376
+ $1=smalltalk.send(self,"_visitSequenceNode_",[aNode]);
377
+ return $1;
378
+ }
379
+ }),
380
+ smalltalk.NodeVisitor);
381
+
382
+ smalltalk.addMethod(
383
+ "_visitCascadeNode_",
384
+ smalltalk.method({
385
+ selector: "visitCascadeNode:",
386
+ fn: function (aNode){
387
+ var self=this;
388
+ var $1;
389
+ $1=smalltalk.send(self,"_visitNode_",[aNode]);
390
+ return $1;
391
+ }
392
+ }),
393
+ smalltalk.NodeVisitor);
394
+
395
+ smalltalk.addMethod(
396
+ "_visitClassReferenceNode_",
397
+ smalltalk.method({
398
+ selector: "visitClassReferenceNode:",
399
+ fn: function (aNode){
400
+ var self=this;
401
+ var $1;
402
+ $1=smalltalk.send(self,"_visitVariableNode_",[aNode]);
403
+ return $1;
404
+ }
405
+ }),
406
+ smalltalk.NodeVisitor);
407
+
408
+ smalltalk.addMethod(
409
+ "_visitDynamicArrayNode_",
410
+ smalltalk.method({
411
+ selector: "visitDynamicArrayNode:",
412
+ fn: function (aNode){
413
+ var self=this;
414
+ var $1;
415
+ $1=smalltalk.send(self,"_visitNode_",[aNode]);
416
+ return $1;
417
+ }
418
+ }),
419
+ smalltalk.NodeVisitor);
420
+
421
+ smalltalk.addMethod(
422
+ "_visitDynamicDictionaryNode_",
423
+ smalltalk.method({
424
+ selector: "visitDynamicDictionaryNode:",
425
+ fn: function (aNode){
426
+ var self=this;
427
+ var $1;
428
+ $1=smalltalk.send(self,"_visitNode_",[aNode]);
429
+ return $1;
430
+ }
431
+ }),
432
+ smalltalk.NodeVisitor);
433
+
434
+ smalltalk.addMethod(
435
+ "_visitJSStatementNode_",
436
+ smalltalk.method({
437
+ selector: "visitJSStatementNode:",
438
+ fn: function (aNode){
439
+ var self=this;
440
+ var $1;
441
+ $1=smalltalk.send(self,"_visitNode_",[aNode]);
442
+ return $1;
443
+ }
444
+ }),
445
+ smalltalk.NodeVisitor);
446
+
447
+ smalltalk.addMethod(
448
+ "_visitMethodNode_",
449
+ smalltalk.method({
450
+ selector: "visitMethodNode:",
451
+ fn: function (aNode){
452
+ var self=this;
453
+ var $1;
454
+ $1=smalltalk.send(self,"_visitNode_",[aNode]);
455
+ return $1;
456
+ }
457
+ }),
458
+ smalltalk.NodeVisitor);
459
+
460
+ smalltalk.addMethod(
461
+ "_visitNode_",
462
+ smalltalk.method({
463
+ selector: "visitNode:",
464
+ fn: function (aNode){
465
+ var self=this;
466
+ var $1;
467
+ $1=smalltalk.send(self,"_visitAll_",[smalltalk.send(aNode,"_nodes",[])]);
468
+ return $1;
469
+ }
470
+ }),
471
+ smalltalk.NodeVisitor);
472
+
473
+ smalltalk.addMethod(
474
+ "_visitReturnNode_",
475
+ smalltalk.method({
476
+ selector: "visitReturnNode:",
477
+ fn: function (aNode){
478
+ var self=this;
479
+ var $1;
480
+ $1=smalltalk.send(self,"_visitNode_",[aNode]);
481
+ return $1;
482
+ }
483
+ }),
484
+ smalltalk.NodeVisitor);
485
+
486
+ smalltalk.addMethod(
487
+ "_visitSendNode_",
488
+ smalltalk.method({
489
+ selector: "visitSendNode:",
490
+ fn: function (aNode){
491
+ var self=this;
492
+ var $1;
493
+ $1=smalltalk.send(self,"_visitNode_",[aNode]);
494
+ return $1;
495
+ }
496
+ }),
497
+ smalltalk.NodeVisitor);
498
+
499
+ smalltalk.addMethod(
500
+ "_visitSequenceNode_",
501
+ smalltalk.method({
502
+ selector: "visitSequenceNode:",
503
+ fn: function (aNode){
504
+ var self=this;
505
+ var $1;
506
+ $1=smalltalk.send(self,"_visitNode_",[aNode]);
507
+ return $1;
508
+ }
509
+ }),
510
+ smalltalk.NodeVisitor);
511
+
512
+ smalltalk.addMethod(
513
+ "_visitValueNode_",
514
+ smalltalk.method({
515
+ selector: "visitValueNode:",
516
+ fn: function (aNode){
517
+ var self=this;
518
+ var $1;
519
+ $1=smalltalk.send(self,"_visitNode_",[aNode]);
520
+ return $1;
521
+ }
522
+ }),
523
+ smalltalk.NodeVisitor);
524
+
525
+ smalltalk.addMethod(
526
+ "_visitVariableNode_",
527
+ smalltalk.method({
528
+ selector: "visitVariableNode:",
529
+ fn: function (aNode){
530
+ var self=this;
531
+ var $1;
532
+ $1=smalltalk.send(self,"_visitNode_",[aNode]);
533
+ return $1;
534
+ }
535
+ }),
536
+ smalltalk.NodeVisitor);
537
+
538
+
539
+
540
+ smalltalk.addClass('AbstractCodeGenerator', smalltalk.NodeVisitor, ['currentClass', 'source'], 'Compiler-Core');
541
+ smalltalk.addMethod(
542
+ "_classNameFor_",
543
+ smalltalk.method({
544
+ selector: "classNameFor:",
545
+ fn: function (aClass){
546
+ var self=this;
547
+ var $2,$3,$1;
548
+ $2=smalltalk.send(aClass,"_isMetaclass",[]);
549
+ if(smalltalk.assert($2)){
550
+ $1=smalltalk.send(smalltalk.send(smalltalk.send(aClass,"_instanceClass",[]),"_name",[]),"__comma",[".klass"]);
551
+ } else {
552
+ $3=smalltalk.send(aClass,"_isNil",[]);
553
+ if(smalltalk.assert($3)){
554
+ $1="nil";
555
+ } else {
556
+ $1=smalltalk.send(aClass,"_name",[]);
557
+ };
558
+ };
559
+ return $1;
560
+ }
561
+ }),
562
+ smalltalk.AbstractCodeGenerator);
563
+
564
+ smalltalk.addMethod(
565
+ "_compileNode_",
566
+ smalltalk.method({
567
+ selector: "compileNode:",
568
+ fn: function (aNode){
569
+ var self=this;
570
+ smalltalk.send(self,"_subclassResponsibility",[]);
571
+ return self}
572
+ }),
573
+ smalltalk.AbstractCodeGenerator);
574
+
575
+ smalltalk.addMethod(
576
+ "_currentClass",
577
+ smalltalk.method({
578
+ selector: "currentClass",
579
+ fn: function (){
580
+ var self=this;
581
+ return self["@currentClass"];
582
+ }
583
+ }),
584
+ smalltalk.AbstractCodeGenerator);
585
+
586
+ smalltalk.addMethod(
587
+ "_currentClass_",
588
+ smalltalk.method({
589
+ selector: "currentClass:",
590
+ fn: function (aClass){
591
+ var self=this;
592
+ self["@currentClass"]=aClass;
593
+ return self}
594
+ }),
595
+ smalltalk.AbstractCodeGenerator);
596
+
597
+ smalltalk.addMethod(
598
+ "_pseudoVariables",
599
+ smalltalk.method({
600
+ selector: "pseudoVariables",
601
+ fn: function (){
602
+ var self=this;
603
+ return ["self", "super", "true", "false", "nil", "thisContext"];
604
+ }
605
+ }),
606
+ smalltalk.AbstractCodeGenerator);
607
+
608
+ smalltalk.addMethod(
609
+ "_safeVariableNameFor_",
610
+ smalltalk.method({
611
+ selector: "safeVariableNameFor:",
612
+ fn: function (aString){
613
+ var self=this;
614
+ var $2,$1;
615
+ $2=smalltalk.send(smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk),"_current",[]),"_reservedWords",[]),"_includes_",[aString]);
616
+ if(smalltalk.assert($2)){
617
+ $1=smalltalk.send(aString,"__comma",["_"]);
618
+ } else {
619
+ $1=aString;
620
+ };
621
+ return $1;
622
+ }
623
+ }),
624
+ smalltalk.AbstractCodeGenerator);
625
+
626
+ smalltalk.addMethod(
627
+ "_source",
628
+ smalltalk.method({
629
+ selector: "source",
630
+ fn: function (){
631
+ var self=this;
632
+ var $1;
633
+ if(($receiver = self["@source"]) == nil || $receiver == undefined){
634
+ $1="";
635
+ } else {
636
+ $1=self["@source"];
637
+ };
638
+ return $1;
639
+ }
640
+ }),
641
+ smalltalk.AbstractCodeGenerator);
642
+
643
+ smalltalk.addMethod(
644
+ "_source_",
645
+ smalltalk.method({
646
+ selector: "source:",
647
+ fn: function (aString){
648
+ var self=this;
649
+ self["@source"]=aString;
650
+ return self}
651
+ }),
652
+ smalltalk.AbstractCodeGenerator);
653
+
654
+
655
+
656
+ smalltalk.addClass('CodeGenerator', smalltalk.AbstractCodeGenerator, [], 'Compiler-Core');
657
+ smalltalk.addMethod(
658
+ "_compileNode_",
659
+ smalltalk.method({
660
+ selector: "compileNode:",
661
+ fn: function (aNode){
662
+ var self=this;
663
+ var $2,$3,$1;
664
+ var ir;
665
+ var stream;
666
+ smalltalk.send(smalltalk.send(self,"_semanticAnalyzer",[]),"_visit_",[aNode]);
667
+ ir=smalltalk.send(smalltalk.send(self,"_translator",[]),"_visit_",[aNode]);
668
+ $2=smalltalk.send(self,"_irTranslator",[]);
669
+ smalltalk.send($2,"_visit_",[ir]);
670
+ $3=smalltalk.send($2,"_contents",[]);
671
+ $1=$3;
672
+ return $1;
673
+ }
674
+ }),
675
+ smalltalk.CodeGenerator);
676
+
677
+ smalltalk.addMethod(
678
+ "_irTranslator",
679
+ smalltalk.method({
680
+ selector: "irTranslator",
681
+ fn: function (){
682
+ var self=this;
683
+ var $1;
684
+ $1=smalltalk.send((smalltalk.IRJSTranslator || IRJSTranslator),"_new",[]);
685
+ return $1;
686
+ }
687
+ }),
688
+ smalltalk.CodeGenerator);
689
+
690
+ smalltalk.addMethod(
691
+ "_semanticAnalyzer",
692
+ smalltalk.method({
693
+ selector: "semanticAnalyzer",
694
+ fn: function (){
695
+ var self=this;
696
+ var $1;
697
+ $1=smalltalk.send((smalltalk.SemanticAnalyzer || SemanticAnalyzer),"_on_",[smalltalk.send(self,"_currentClass",[])]);
698
+ return $1;
699
+ }
700
+ }),
701
+ smalltalk.CodeGenerator);
702
+
703
+ smalltalk.addMethod(
704
+ "_translator",
705
+ smalltalk.method({
706
+ selector: "translator",
707
+ fn: function (){
708
+ var self=this;
709
+ var $2,$3,$1;
710
+ $2=smalltalk.send((smalltalk.IRASTTranslator || IRASTTranslator),"_new",[]);
711
+ smalltalk.send($2,"_source_",[smalltalk.send(self,"_source",[])]);
712
+ smalltalk.send($2,"_theClass_",[smalltalk.send(self,"_currentClass",[])]);
713
+ $3=smalltalk.send($2,"_yourself",[]);
714
+ $1=$3;
715
+ return $1;
716
+ }
717
+ }),
718
+ smalltalk.CodeGenerator);
719
+
720
+
721
+
722
+ smalltalk.addClass('FunCodeGenerator', smalltalk.AbstractCodeGenerator, ['stream', 'nestedBlocks', 'earlyReturn', 'currentSelector', 'unknownVariables', 'tempVariables', 'messageSends', 'referencedClasses', 'classReferenced', 'argVariables'], 'Compiler-Core');
723
+ smalltalk.addMethod(
724
+ "_argVariables",
725
+ smalltalk.method({
726
+ selector: "argVariables",
727
+ fn: function (){
728
+ var self=this;
729
+ var $1;
730
+ $1=smalltalk.send(self["@argVariables"],"_copy",[]);
731
+ return $1;
732
+ }
733
+ }),
734
+ smalltalk.FunCodeGenerator);
735
+
736
+ smalltalk.addMethod(
737
+ "_checkClass_for_",
738
+ smalltalk.method({
739
+ selector: "checkClass:for:",
740
+ fn: function (aClassName,receiver){
741
+ var self=this;
742
+ smalltalk.send(self["@stream"],"_nextPutAll_",[smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("((($receiver = ","__comma",[receiver]),"__comma",[").klass === smalltalk."]),"__comma",[aClassName]),"__comma",[") ? "])]);
743
+ return self}
744
+ }),
745
+ smalltalk.FunCodeGenerator);
746
+
747
+ smalltalk.addMethod(
748
+ "_compileNode_",
749
+ smalltalk.method({
750
+ selector: "compileNode:",
751
+ fn: function (aNode){
752
+ var self=this;
753
+ var $1;
754
+ self["@stream"]=smalltalk.send("","_writeStream",[]);
755
+ smalltalk.send(self,"_visit_",[aNode]);
756
+ $1=smalltalk.send(self["@stream"],"_contents",[]);
757
+ return $1;
758
+ }
759
+ }),
760
+ smalltalk.FunCodeGenerator);
761
+
762
+ smalltalk.addMethod(
763
+ "_initialize",
764
+ smalltalk.method({
765
+ selector: "initialize",
766
+ fn: function (){
767
+ var self=this;
768
+ smalltalk.send(self,"_initialize",[],smalltalk.AbstractCodeGenerator);
769
+ self["@stream"]=smalltalk.send("","_writeStream",[]);
770
+ self["@unknownVariables"]=[];
771
+ self["@tempVariables"]=[];
772
+ self["@argVariables"]=[];
773
+ self["@messageSends"]=[];
774
+ self["@classReferenced"]=[];
775
+ return self}
776
+ }),
777
+ smalltalk.FunCodeGenerator);
778
+
779
+ smalltalk.addMethod(
780
+ "_inline_receiver_argumentNodes_",
781
+ smalltalk.method({
782
+ selector: "inline:receiver:argumentNodes:",
783
+ fn: function (aSelector,receiver,aCollection){
784
+ var self=this;
785
+ var $1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16;
786
+ var inlined;
787
+ inlined=false;
788
+ $1=smalltalk.send(aSelector,"__eq",["ifFalse:"]);
789
+ if(smalltalk.assert($1)){
790
+ $2=smalltalk.send(smalltalk.send(aCollection,"_first",[]),"_isBlockNode",[]);
791
+ if(smalltalk.assert($2)){
792
+ smalltalk.send(self,"_checkClass_for_",["Boolean",receiver]);
793
+ smalltalk.send(self["@stream"],"_nextPutAll_",["(! $receiver ? "]);
794
+ smalltalk.send(self,"_visit_",[smalltalk.send(aCollection,"_first",[])]);
795
+ smalltalk.send(self["@stream"],"_nextPutAll_",["() : nil)"]);
796
+ inlined=true;
797
+ inlined;
798
+ };
799
+ };
800
+ $3=smalltalk.send(aSelector,"__eq",["ifTrue:"]);
801
+ if(smalltalk.assert($3)){
802
+ $4=smalltalk.send(smalltalk.send(aCollection,"_first",[]),"_isBlockNode",[]);
803
+ if(smalltalk.assert($4)){
804
+ smalltalk.send(self,"_checkClass_for_",["Boolean",receiver]);
805
+ smalltalk.send(self["@stream"],"_nextPutAll_",["($receiver ? "]);
806
+ smalltalk.send(self,"_visit_",[smalltalk.send(aCollection,"_first",[])]);
807
+ smalltalk.send(self["@stream"],"_nextPutAll_",["() : nil)"]);
808
+ inlined=true;
809
+ inlined;
810
+ };
811
+ };
812
+ $5=smalltalk.send(aSelector,"__eq",["ifTrue:ifFalse:"]);
813
+ if(smalltalk.assert($5)){
814
+ $6=smalltalk.send(smalltalk.send(smalltalk.send(aCollection,"_first",[]),"_isBlockNode",[]),"_and_",[(function(){
815
+ return smalltalk.send(smalltalk.send(aCollection,"_second",[]),"_isBlockNode",[]);
816
+ })]);
817
+ if(smalltalk.assert($6)){
818
+ smalltalk.send(self,"_checkClass_for_",["Boolean",receiver]);
819
+ smalltalk.send(self["@stream"],"_nextPutAll_",["($receiver ? "]);
820
+ smalltalk.send(self,"_visit_",[smalltalk.send(aCollection,"_first",[])]);
821
+ smalltalk.send(self["@stream"],"_nextPutAll_",["() : "]);
822
+ smalltalk.send(self,"_visit_",[smalltalk.send(aCollection,"_second",[])]);
823
+ smalltalk.send(self["@stream"],"_nextPutAll_",["())"]);
824
+ inlined=true;
825
+ inlined;
826
+ };
827
+ };
828
+ $7=smalltalk.send(aSelector,"__eq",["ifFalse:ifTrue:"]);
829
+ if(smalltalk.assert($7)){
830
+ $8=smalltalk.send(smalltalk.send(smalltalk.send(aCollection,"_first",[]),"_isBlockNode",[]),"_and_",[(function(){
831
+ return smalltalk.send(smalltalk.send(aCollection,"_second",[]),"_isBlockNode",[]);
832
+ })]);
833
+ if(smalltalk.assert($8)){
834
+ smalltalk.send(self,"_checkClass_for_",["Boolean",receiver]);
835
+ smalltalk.send(self["@stream"],"_nextPutAll_",["(! $receiver ? "]);
836
+ smalltalk.send(self,"_visit_",[smalltalk.send(aCollection,"_first",[])]);
837
+ smalltalk.send(self["@stream"],"_nextPutAll_",["() : "]);
838
+ smalltalk.send(self,"_visit_",[smalltalk.send(aCollection,"_second",[])]);
839
+ smalltalk.send(self["@stream"],"_nextPutAll_",["())"]);
840
+ inlined=true;
841
+ inlined;
842
+ };
843
+ };
844
+ $9=smalltalk.send(aSelector,"__eq",["<"]);
845
+ if(smalltalk.assert($9)){
846
+ smalltalk.send(self,"_checkClass_for_",["Number",receiver]);
847
+ smalltalk.send(self["@stream"],"_nextPutAll_",["$receiver <"]);
848
+ smalltalk.send(self,"_visit_",[smalltalk.send(aCollection,"_first",[])]);
849
+ inlined=true;
850
+ inlined;
851
+ };
852
+ $10=smalltalk.send(aSelector,"__eq",["<="]);
853
+ if(smalltalk.assert($10)){
854
+ smalltalk.send(self,"_checkClass_for_",["Number",receiver]);
855
+ smalltalk.send(self["@stream"],"_nextPutAll_",["$receiver <="]);
856
+ smalltalk.send(self,"_visit_",[smalltalk.send(aCollection,"_first",[])]);
857
+ inlined=true;
858
+ inlined;
859
+ };
860
+ $11=smalltalk.send(aSelector,"__eq",[">"]);
861
+ if(smalltalk.assert($11)){
862
+ smalltalk.send(self,"_checkClass_for_",["Number",receiver]);
863
+ smalltalk.send(self["@stream"],"_nextPutAll_",["$receiver >"]);
864
+ smalltalk.send(self,"_visit_",[smalltalk.send(aCollection,"_first",[])]);
865
+ inlined=true;
866
+ inlined;
867
+ };
868
+ $12=smalltalk.send(aSelector,"__eq",[">="]);
869
+ if(smalltalk.assert($12)){
870
+ smalltalk.send(self,"_checkClass_for_",["Number",receiver]);
871
+ smalltalk.send(self["@stream"],"_nextPutAll_",["$receiver >="]);
872
+ smalltalk.send(self,"_visit_",[smalltalk.send(aCollection,"_first",[])]);
873
+ inlined=true;
874
+ inlined;
875
+ };
876
+ $13=smalltalk.send(aSelector,"__eq",["+"]);
877
+ if(smalltalk.assert($13)){
878
+ smalltalk.send(self,"_checkClass_for_",["Number",receiver]);
879
+ smalltalk.send(self["@stream"],"_nextPutAll_",["$receiver +"]);
880
+ smalltalk.send(self,"_visit_",[smalltalk.send(aCollection,"_first",[])]);
881
+ inlined=true;
882
+ inlined;
883
+ };
884
+ $14=smalltalk.send(aSelector,"__eq",["-"]);
885
+ if(smalltalk.assert($14)){
886
+ smalltalk.send(self,"_checkClass_for_",["Number",receiver]);
887
+ smalltalk.send(self["@stream"],"_nextPutAll_",["$receiver -"]);
888
+ smalltalk.send(self,"_visit_",[smalltalk.send(aCollection,"_first",[])]);
889
+ inlined=true;
890
+ inlined;
891
+ };
892
+ $15=smalltalk.send(aSelector,"__eq",["*"]);
893
+ if(smalltalk.assert($15)){
894
+ smalltalk.send(self,"_checkClass_for_",["Number",receiver]);
895
+ smalltalk.send(self["@stream"],"_nextPutAll_",["$receiver *"]);
896
+ smalltalk.send(self,"_visit_",[smalltalk.send(aCollection,"_first",[])]);
897
+ inlined=true;
898
+ inlined;
899
+ };
900
+ $16=smalltalk.send(aSelector,"__eq",["/"]);
901
+ if(smalltalk.assert($16)){
902
+ smalltalk.send(self,"_checkClass_for_",["Number",receiver]);
903
+ smalltalk.send(self["@stream"],"_nextPutAll_",["$receiver /"]);
904
+ smalltalk.send(self,"_visit_",[smalltalk.send(aCollection,"_first",[])]);
905
+ inlined=true;
906
+ inlined;
907
+ };
908
+ return inlined;
909
+ }
910
+ }),
911
+ smalltalk.FunCodeGenerator);
912
+
913
+ smalltalk.addMethod(
914
+ "_inlineLiteral_receiverNode_argumentNodes_",
915
+ smalltalk.method({
916
+ selector: "inlineLiteral:receiverNode:argumentNodes:",
917
+ fn: function (aSelector,anObject,aCollection){
918
+ var self=this;
919
+ var $1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32;
920
+ var inlined;
921
+ inlined=false;
922
+ $1=smalltalk.send(aSelector,"__eq",["whileTrue:"]);
923
+ if(smalltalk.assert($1)){
924
+ $2=smalltalk.send(smalltalk.send(anObject,"_isBlockNode",[]),"_and_",[(function(){
925
+ return smalltalk.send(smalltalk.send(aCollection,"_first",[]),"_isBlockNode",[]);
926
+ })]);
927
+ if(smalltalk.assert($2)){
928
+ smalltalk.send(self["@stream"],"_nextPutAll_",["(function(){while("]);
929
+ smalltalk.send(self,"_visit_",[anObject]);
930
+ smalltalk.send(self["@stream"],"_nextPutAll_",["()) {"]);
931
+ smalltalk.send(self,"_visit_",[smalltalk.send(aCollection,"_first",[])]);
932
+ smalltalk.send(self["@stream"],"_nextPutAll_",["()}})()"]);
933
+ inlined=true;
934
+ inlined;
935
+ };
936
+ };
937
+ $3=smalltalk.send(aSelector,"__eq",["whileFalse:"]);
938
+ if(smalltalk.assert($3)){
939
+ $4=smalltalk.send(smalltalk.send(anObject,"_isBlockNode",[]),"_and_",[(function(){
940
+ return smalltalk.send(smalltalk.send(aCollection,"_first",[]),"_isBlockNode",[]);
941
+ })]);
942
+ if(smalltalk.assert($4)){
943
+ smalltalk.send(self["@stream"],"_nextPutAll_",["(function(){while(!"]);
944
+ smalltalk.send(self,"_visit_",[anObject]);
945
+ smalltalk.send(self["@stream"],"_nextPutAll_",["()) {"]);
946
+ smalltalk.send(self,"_visit_",[smalltalk.send(aCollection,"_first",[])]);
947
+ smalltalk.send(self["@stream"],"_nextPutAll_",["()}})()"]);
948
+ inlined=true;
949
+ inlined;
950
+ };
951
+ };
952
+ $5=smalltalk.send(aSelector,"__eq",["whileTrue"]);
953
+ if(smalltalk.assert($5)){
954
+ $6=smalltalk.send(anObject,"_isBlockNode",[]);
955
+ if(smalltalk.assert($6)){
956
+ smalltalk.send(self["@stream"],"_nextPutAll_",["(function(){while("]);
957
+ smalltalk.send(self,"_visit_",[anObject]);
958
+ smalltalk.send(self["@stream"],"_nextPutAll_",["()) {}})()"]);
959
+ inlined=true;
960
+ inlined;
961
+ };
962
+ };
963
+ $7=smalltalk.send(aSelector,"__eq",["whileFalse"]);
964
+ if(smalltalk.assert($7)){
965
+ $8=smalltalk.send(anObject,"_isBlockNode",[]);
966
+ if(smalltalk.assert($8)){
967
+ smalltalk.send(self["@stream"],"_nextPutAll_",["(function(){while(!"]);
968
+ smalltalk.send(self,"_visit_",[anObject]);
969
+ smalltalk.send(self["@stream"],"_nextPutAll_",["()) {}})()"]);
970
+ inlined=true;
971
+ inlined;
972
+ };
973
+ };
974
+ $9=smalltalk.send(aSelector,"__eq",["+"]);
975
+ if(smalltalk.assert($9)){
976
+ $10=smalltalk.send(self,"_isNode_ofClass_",[anObject,(smalltalk.Number || Number)]);
977
+ if(smalltalk.assert($10)){
978
+ smalltalk.send(self,"_visit_",[anObject]);
979
+ smalltalk.send(self["@stream"],"_nextPutAll_",[" + "]);
980
+ smalltalk.send(self,"_visit_",[smalltalk.send(aCollection,"_first",[])]);
981
+ inlined=true;
982
+ inlined;
983
+ };
984
+ };
985
+ $11=smalltalk.send(aSelector,"__eq",["-"]);
986
+ if(smalltalk.assert($11)){
987
+ $12=smalltalk.send(self,"_isNode_ofClass_",[anObject,(smalltalk.Number || Number)]);
988
+ if(smalltalk.assert($12)){
989
+ smalltalk.send(self,"_visit_",[anObject]);
990
+ smalltalk.send(self["@stream"],"_nextPutAll_",[" - "]);
991
+ smalltalk.send(self,"_visit_",[smalltalk.send(aCollection,"_first",[])]);
992
+ inlined=true;
993
+ inlined;
994
+ };
995
+ };
996
+ $13=smalltalk.send(aSelector,"__eq",["*"]);
997
+ if(smalltalk.assert($13)){
998
+ $14=smalltalk.send(self,"_isNode_ofClass_",[anObject,(smalltalk.Number || Number)]);
999
+ if(smalltalk.assert($14)){
1000
+ smalltalk.send(self,"_visit_",[anObject]);
1001
+ smalltalk.send(self["@stream"],"_nextPutAll_",[" * "]);
1002
+ smalltalk.send(self,"_visit_",[smalltalk.send(aCollection,"_first",[])]);
1003
+ inlined=true;
1004
+ inlined;
1005
+ };
1006
+ };
1007
+ $15=smalltalk.send(aSelector,"__eq",["/"]);
1008
+ if(smalltalk.assert($15)){
1009
+ $16=smalltalk.send(self,"_isNode_ofClass_",[anObject,(smalltalk.Number || Number)]);
1010
+ if(smalltalk.assert($16)){
1011
+ smalltalk.send(self,"_visit_",[anObject]);
1012
+ smalltalk.send(self["@stream"],"_nextPutAll_",[" / "]);
1013
+ smalltalk.send(self,"_visit_",[smalltalk.send(aCollection,"_first",[])]);
1014
+ inlined=true;
1015
+ inlined;
1016
+ };
1017
+ };
1018
+ $17=smalltalk.send(aSelector,"__eq",["<"]);
1019
+ if(smalltalk.assert($17)){
1020
+ $18=smalltalk.send(self,"_isNode_ofClass_",[anObject,(smalltalk.Number || Number)]);
1021
+ if(smalltalk.assert($18)){
1022
+ smalltalk.send(self,"_visit_",[anObject]);
1023
+ smalltalk.send(self["@stream"],"_nextPutAll_",[" < "]);
1024
+ smalltalk.send(self,"_visit_",[smalltalk.send(aCollection,"_first",[])]);
1025
+ inlined=true;
1026
+ inlined;
1027
+ };
1028
+ };
1029
+ $19=smalltalk.send(aSelector,"__eq",["<="]);
1030
+ if(smalltalk.assert($19)){
1031
+ $20=smalltalk.send(self,"_isNode_ofClass_",[anObject,(smalltalk.Number || Number)]);
1032
+ if(smalltalk.assert($20)){
1033
+ smalltalk.send(self,"_visit_",[anObject]);
1034
+ smalltalk.send(self["@stream"],"_nextPutAll_",[" <= "]);
1035
+ smalltalk.send(self,"_visit_",[smalltalk.send(aCollection,"_first",[])]);
1036
+ inlined=true;
1037
+ inlined;
1038
+ };
1039
+ };
1040
+ $21=smalltalk.send(aSelector,"__eq",[">"]);
1041
+ if(smalltalk.assert($21)){
1042
+ $22=smalltalk.send(self,"_isNode_ofClass_",[anObject,(smalltalk.Number || Number)]);
1043
+ if(smalltalk.assert($22)){
1044
+ smalltalk.send(self,"_visit_",[anObject]);
1045
+ smalltalk.send(self["@stream"],"_nextPutAll_",[" > "]);
1046
+ smalltalk.send(self,"_visit_",[smalltalk.send(aCollection,"_first",[])]);
1047
+ inlined=true;
1048
+ inlined;
1049
+ };
1050
+ };
1051
+ $23=smalltalk.send(aSelector,"__eq",[">="]);
1052
+ if(smalltalk.assert($23)){
1053
+ $24=smalltalk.send(self,"_isNode_ofClass_",[anObject,(smalltalk.Number || Number)]);
1054
+ if(smalltalk.assert($24)){
1055
+ smalltalk.send(self,"_visit_",[anObject]);
1056
+ smalltalk.send(self["@stream"],"_nextPutAll_",[" >= "]);
1057
+ smalltalk.send(self,"_visit_",[smalltalk.send(aCollection,"_first",[])]);
1058
+ inlined=true;
1059
+ inlined;
1060
+ };
1061
+ };
1062
+ $25=smalltalk.send(aSelector,"__eq",["ifNil:"]);
1063
+ if(smalltalk.assert($25)){
1064
+ $26=smalltalk.send(smalltalk.send(aCollection,"_first",[]),"_isBlockNode",[]);
1065
+ if(smalltalk.assert($26)){
1066
+ smalltalk.send(self["@stream"],"_nextPutAll_",["(($receiver = "]);
1067
+ smalltalk.send(self,"_visit_",[anObject]);
1068
+ smalltalk.send(self["@stream"],"_nextPutAll_",[") == nil || $receiver == undefined) ? "]);
1069
+ smalltalk.send(self,"_visit_",[smalltalk.send(aCollection,"_first",[])]);
1070
+ smalltalk.send(self["@stream"],"_nextPutAll_",["() : $receiver"]);
1071
+ inlined=true;
1072
+ inlined;
1073
+ };
1074
+ };
1075
+ $27=smalltalk.send(aSelector,"__eq",["ifNotNil:"]);
1076
+ if(smalltalk.assert($27)){
1077
+ $28=smalltalk.send(smalltalk.send(aCollection,"_first",[]),"_isBlockNode",[]);
1078
+ if(smalltalk.assert($28)){
1079
+ smalltalk.send(self["@stream"],"_nextPutAll_",["(($receiver = "]);
1080
+ smalltalk.send(self,"_visit_",[anObject]);
1081
+ smalltalk.send(self["@stream"],"_nextPutAll_",[") != nil && $receiver != undefined) ? "]);
1082
+ smalltalk.send(self,"_visit_",[smalltalk.send(aCollection,"_first",[])]);
1083
+ smalltalk.send(self["@stream"],"_nextPutAll_",["() : nil"]);
1084
+ inlined=true;
1085
+ inlined;
1086
+ };
1087
+ };
1088
+ $29=smalltalk.send(aSelector,"__eq",["ifNil:ifNotNil:"]);
1089
+ if(smalltalk.assert($29)){
1090
+ $30=smalltalk.send(smalltalk.send(smalltalk.send(aCollection,"_first",[]),"_isBlockNode",[]),"_and_",[(function(){
1091
+ return smalltalk.send(smalltalk.send(aCollection,"_second",[]),"_isBlockNode",[]);
1092
+ })]);
1093
+ if(smalltalk.assert($30)){
1094
+ smalltalk.send(self["@stream"],"_nextPutAll_",["(($receiver = "]);
1095
+ smalltalk.send(self,"_visit_",[anObject]);
1096
+ smalltalk.send(self["@stream"],"_nextPutAll_",[") == nil || $receiver == undefined) ? "]);
1097
+ smalltalk.send(self,"_visit_",[smalltalk.send(aCollection,"_first",[])]);
1098
+ smalltalk.send(self["@stream"],"_nextPutAll_",["() : "]);
1099
+ smalltalk.send(self,"_visit_",[smalltalk.send(aCollection,"_second",[])]);
1100
+ smalltalk.send(self["@stream"],"_nextPutAll_",["()"]);
1101
+ inlined=true;
1102
+ inlined;
1103
+ };
1104
+ };
1105
+ $31=smalltalk.send(aSelector,"__eq",["ifNotNil:ifNil:"]);
1106
+ if(smalltalk.assert($31)){
1107
+ $32=smalltalk.send(smalltalk.send(smalltalk.send(aCollection,"_first",[]),"_isBlockNode",[]),"_and_",[(function(){
1108
+ return smalltalk.send(smalltalk.send(aCollection,"_second",[]),"_isBlockNode",[]);
1109
+ })]);
1110
+ if(smalltalk.assert($32)){
1111
+ smalltalk.send(self["@stream"],"_nextPutAll_",["(($receiver = "]);
1112
+ smalltalk.send(self,"_visit_",[anObject]);
1113
+ smalltalk.send(self["@stream"],"_nextPutAll_",[") == nil || $receiver == undefined) ? "]);
1114
+ smalltalk.send(self,"_visit_",[smalltalk.send(aCollection,"_second",[])]);
1115
+ smalltalk.send(self["@stream"],"_nextPutAll_",["() : "]);
1116
+ smalltalk.send(self,"_visit_",[smalltalk.send(aCollection,"_first",[])]);
1117
+ smalltalk.send(self["@stream"],"_nextPutAll_",["()"]);
1118
+ inlined=true;
1119
+ inlined;
1120
+ };
1121
+ };
1122
+ return inlined;
1123
+ }
1124
+ }),
1125
+ smalltalk.FunCodeGenerator);
1126
+
1127
+ smalltalk.addMethod(
1128
+ "_isNode_ofClass_",
1129
+ smalltalk.method({
1130
+ selector: "isNode:ofClass:",
1131
+ fn: function (aNode,aClass){
1132
+ var self=this;
1133
+ var $1;
1134
+ $1=smalltalk.send(smalltalk.send(aNode,"_isValueNode",[]),"_and_",[(function(){
1135
+ return smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(aNode,"_value",[]),"_class",[]),"__eq",[aClass]),"_or_",[(function(){
1136
+ return smalltalk.send(smalltalk.send(smalltalk.send(aNode,"_value",[]),"__eq",["self"]),"_and_",[(function(){
1137
+ return smalltalk.send(smalltalk.send(self,"_currentClass",[]),"__eq",[aClass]);
1138
+ })]);
1139
+ })]);
1140
+ })]);
1141
+ return $1;
1142
+ }
1143
+ }),
1144
+ smalltalk.FunCodeGenerator);
1145
+
1146
+ smalltalk.addMethod(
1147
+ "_knownVariables",
1148
+ smalltalk.method({
1149
+ selector: "knownVariables",
1150
+ fn: function (){
1151
+ var self=this;
1152
+ var $2,$3,$1;
1153
+ $2=smalltalk.send(self,"_pseudoVariables",[]);
1154
+ smalltalk.send($2,"_addAll_",[smalltalk.send(self,"_tempVariables",[])]);
1155
+ smalltalk.send($2,"_addAll_",[smalltalk.send(self,"_argVariables",[])]);
1156
+ $3=smalltalk.send($2,"_yourself",[]);
1157
+ $1=$3;
1158
+ return $1;
1159
+ }
1160
+ }),
1161
+ smalltalk.FunCodeGenerator);
1162
+
1163
+ smalltalk.addMethod(
1164
+ "_performOptimizations",
1165
+ smalltalk.method({
1166
+ selector: "performOptimizations",
1167
+ fn: function (){
1168
+ var self=this;
1169
+ var $1;
1170
+ $1=smalltalk.send(smalltalk.send(self,"_class",[]),"_performOptimizations",[]);
1171
+ return $1;
1172
+ }
1173
+ }),
1174
+ smalltalk.FunCodeGenerator);
1175
+
1176
+ smalltalk.addMethod(
1177
+ "_send_to_arguments_superSend_",
1178
+ smalltalk.method({
1179
+ selector: "send:to:arguments:superSend:",
1180
+ fn: function (aSelector,aReceiver,aCollection,aBoolean){
1181
+ var self=this;
1182
+ var $1;
1183
+ $1=smalltalk.send((smalltalk.String || String),"_streamContents_",[(function(str){
1184
+ var tmp;
1185
+ tmp=self["@stream"];
1186
+ tmp;
1187
+ smalltalk.send(str,"_nextPutAll_",["smalltalk.send("]);
1188
+ smalltalk.send(str,"_nextPutAll_",[aReceiver]);
1189
+ smalltalk.send(str,"_nextPutAll_",[smalltalk.send(smalltalk.send(", \x22","__comma",[smalltalk.send(aSelector,"_asSelector",[])]),"__comma",["\x22, ["])]);
1190
+ self["@stream"]=str;
1191
+ self["@stream"];
1192
+ smalltalk.send(aCollection,"_do_separatedBy_",[(function(each){
1193
+ return smalltalk.send(self,"_visit_",[each]);
1194
+ }),(function(){
1195
+ return smalltalk.send(self["@stream"],"_nextPutAll_",[", "]);
1196
+ })]);
1197
+ self["@stream"]=tmp;
1198
+ self["@stream"];
1199
+ smalltalk.send(str,"_nextPutAll_",["]"]);
1200
+ if(smalltalk.assert(aBoolean)){
1201
+ smalltalk.send(str,"_nextPutAll_",[smalltalk.send(smalltalk.send(", smalltalk.","__comma",[smalltalk.send(self,"_classNameFor_",[smalltalk.send(self,"_currentClass",[])])]),"__comma",[".superclass || nil"])]);
1202
+ };
1203
+ return smalltalk.send(str,"_nextPutAll_",[")"]);
1204
+ })]);
1205
+ return $1;
1206
+ }
1207
+ }),
1208
+ smalltalk.FunCodeGenerator);
1209
+
1210
+ smalltalk.addMethod(
1211
+ "_tempVariables",
1212
+ smalltalk.method({
1213
+ selector: "tempVariables",
1214
+ fn: function (){
1215
+ var self=this;
1216
+ var $1;
1217
+ $1=smalltalk.send(self["@tempVariables"],"_copy",[]);
1218
+ return $1;
1219
+ }
1220
+ }),
1221
+ smalltalk.FunCodeGenerator);
1222
+
1223
+ smalltalk.addMethod(
1224
+ "_unknownVariables",
1225
+ smalltalk.method({
1226
+ selector: "unknownVariables",
1227
+ fn: function (){
1228
+ var self=this;
1229
+ var $1;
1230
+ $1=smalltalk.send(self["@unknownVariables"],"_copy",[]);
1231
+ return $1;
1232
+ }
1233
+ }),
1234
+ smalltalk.FunCodeGenerator);
1235
+
1236
+ smalltalk.addMethod(
1237
+ "_visit_",
1238
+ smalltalk.method({
1239
+ selector: "visit:",
1240
+ fn: function (aNode){
1241
+ var self=this;
1242
+ smalltalk.send(aNode,"_accept_",[self]);
1243
+ return self}
1244
+ }),
1245
+ smalltalk.FunCodeGenerator);
1246
+
1247
+ smalltalk.addMethod(
1248
+ "_visitAssignmentNode_",
1249
+ smalltalk.method({
1250
+ selector: "visitAssignmentNode:",
1251
+ fn: function (aNode){
1252
+ var self=this;
1253
+ smalltalk.send(self["@stream"],"_nextPutAll_",["("]);
1254
+ smalltalk.send(self,"_visit_",[smalltalk.send(aNode,"_left",[])]);
1255
+ smalltalk.send(self["@stream"],"_nextPutAll_",["="]);
1256
+ smalltalk.send(self,"_visit_",[smalltalk.send(aNode,"_right",[])]);
1257
+ smalltalk.send(self["@stream"],"_nextPutAll_",[")"]);
1258
+ return self}
1259
+ }),
1260
+ smalltalk.FunCodeGenerator);
1261
+
1262
+ smalltalk.addMethod(
1263
+ "_visitBlockNode_",
1264
+ smalltalk.method({
1265
+ selector: "visitBlockNode:",
1266
+ fn: function (aNode){
1267
+ var self=this;
1268
+ smalltalk.send(self["@stream"],"_nextPutAll_",["(function("]);
1269
+ smalltalk.send(smalltalk.send(aNode,"_parameters",[]),"_do_separatedBy_",[(function(each){
1270
+ smalltalk.send(self["@tempVariables"],"_add_",[each]);
1271
+ return smalltalk.send(self["@stream"],"_nextPutAll_",[each]);
1272
+ }),(function(){
1273
+ return smalltalk.send(self["@stream"],"_nextPutAll_",[", "]);
1274
+ })]);
1275
+ smalltalk.send(self["@stream"],"_nextPutAll_",["){"]);
1276
+ smalltalk.send(smalltalk.send(aNode,"_nodes",[]),"_do_",[(function(each){
1277
+ return smalltalk.send(self,"_visit_",[each]);
1278
+ })]);
1279
+ smalltalk.send(self["@stream"],"_nextPutAll_",["})"]);
1280
+ return self}
1281
+ }),
1282
+ smalltalk.FunCodeGenerator);
1283
+
1284
+ smalltalk.addMethod(
1285
+ "_visitBlockSequenceNode_",
1286
+ smalltalk.method({
1287
+ selector: "visitBlockSequenceNode:",
1288
+ fn: function (aNode){
1289
+ var self=this;
1290
+ var $1,$2,$3;
1291
+ var index;
1292
+ self["@nestedBlocks"]=smalltalk.send(self["@nestedBlocks"],"__plus",[(1)]);
1293
+ $1=smalltalk.send(smalltalk.send(aNode,"_nodes",[]),"_isEmpty",[]);
1294
+ if(smalltalk.assert($1)){
1295
+ smalltalk.send(self["@stream"],"_nextPutAll_",["return nil;"]);
1296
+ } else {
1297
+ smalltalk.send(smalltalk.send(aNode,"_temps",[]),"_do_",[(function(each){
1298
+ var temp;
1299
+ temp=smalltalk.send(self,"_safeVariableNameFor_",[each]);
1300
+ temp;
1301
+ smalltalk.send(self["@tempVariables"],"_add_",[temp]);
1302
+ smalltalk.send(self["@stream"],"_nextPutAll_",[smalltalk.send(smalltalk.send("var ","__comma",[temp]),"__comma",["=nil;"])]);
1303
+ $2=smalltalk.send(self["@stream"],"_lf",[]);
1304
+ return $2;
1305
+ })]);
1306
+ index=(0);
1307
+ index;
1308
+ smalltalk.send(smalltalk.send(aNode,"_nodes",[]),"_do_",[(function(each){
1309
+ index=smalltalk.send(index,"__plus",[(1)]);
1310
+ index;
1311
+ $3=smalltalk.send(index,"__eq",[smalltalk.send(smalltalk.send(aNode,"_nodes",[]),"_size",[])]);
1312
+ if(smalltalk.assert($3)){
1313
+ smalltalk.send(self["@stream"],"_nextPutAll_",["return "]);
1314
+ };
1315
+ smalltalk.send(self,"_visit_",[each]);
1316
+ return smalltalk.send(self["@stream"],"_nextPutAll_",[";"]);
1317
+ })]);
1318
+ };
1319
+ self["@nestedBlocks"]=smalltalk.send(self["@nestedBlocks"],"__minus",[(1)]);
1320
+ return self}
1321
+ }),
1322
+ smalltalk.FunCodeGenerator);
1323
+
1324
+ smalltalk.addMethod(
1325
+ "_visitCascadeNode_",
1326
+ smalltalk.method({
1327
+ selector: "visitCascadeNode:",
1328
+ fn: function (aNode){
1329
+ var self=this;
1330
+ var $1,$2;
1331
+ var index;
1332
+ index=(0);
1333
+ $1=smalltalk.send(self["@tempVariables"],"_includes_",["$rec"]);
1334
+ if(! smalltalk.assert($1)){
1335
+ smalltalk.send(self["@tempVariables"],"_add_",["$rec"]);
1336
+ };
1337
+ smalltalk.send(self["@stream"],"_nextPutAll_",["(function($rec){"]);
1338
+ smalltalk.send(smalltalk.send(aNode,"_nodes",[]),"_do_",[(function(each){
1339
+ index=smalltalk.send(index,"__plus",[(1)]);
1340
+ index;
1341
+ $2=smalltalk.send(index,"__eq",[smalltalk.send(smalltalk.send(aNode,"_nodes",[]),"_size",[])]);
1342
+ if(smalltalk.assert($2)){
1343
+ smalltalk.send(self["@stream"],"_nextPutAll_",["return "]);
1344
+ };
1345
+ smalltalk.send(each,"_receiver_",[smalltalk.send(smalltalk.send((smalltalk.VariableNode || VariableNode),"_new",[]),"_value_",["$rec"])]);
1346
+ smalltalk.send(self,"_visit_",[each]);
1347
+ return smalltalk.send(self["@stream"],"_nextPutAll_",[";"]);
1348
+ })]);
1349
+ smalltalk.send(self["@stream"],"_nextPutAll_",["})("]);
1350
+ smalltalk.send(self,"_visit_",[smalltalk.send(aNode,"_receiver",[])]);
1351
+ smalltalk.send(self["@stream"],"_nextPutAll_",[")"]);
1352
+ return self}
1353
+ }),
1354
+ smalltalk.FunCodeGenerator);
1355
+
1356
+ smalltalk.addMethod(
1357
+ "_visitClassReferenceNode_",
1358
+ smalltalk.method({
1359
+ selector: "visitClassReferenceNode:",
1360
+ fn: function (aNode){
1361
+ var self=this;
1362
+ var $1;
1363
+ $1=smalltalk.send(self["@referencedClasses"],"_includes_",[smalltalk.send(aNode,"_value",[])]);
1364
+ if(! smalltalk.assert($1)){
1365
+ smalltalk.send(self["@referencedClasses"],"_add_",[smalltalk.send(aNode,"_value",[])]);
1366
+ };
1367
+ smalltalk.send(self["@stream"],"_nextPutAll_",[smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("(smalltalk.","__comma",[smalltalk.send(aNode,"_value",[])]),"__comma",[" || "]),"__comma",[smalltalk.send(aNode,"_value",[])]),"__comma",[")"])]);
1368
+ return self}
1369
+ }),
1370
+ smalltalk.FunCodeGenerator);
1371
+
1372
+ smalltalk.addMethod(
1373
+ "_visitDynamicArrayNode_",
1374
+ smalltalk.method({
1375
+ selector: "visitDynamicArrayNode:",
1376
+ fn: function (aNode){
1377
+ var self=this;
1378
+ smalltalk.send(self["@stream"],"_nextPutAll_",["["]);
1379
+ smalltalk.send(smalltalk.send(aNode,"_nodes",[]),"_do_separatedBy_",[(function(each){
1380
+ return smalltalk.send(self,"_visit_",[each]);
1381
+ }),(function(){
1382
+ return smalltalk.send(self["@stream"],"_nextPutAll_",[","]);
1383
+ })]);
1384
+ smalltalk.send(self["@stream"],"_nextPutAll_",["]"]);
1385
+ return self}
1386
+ }),
1387
+ smalltalk.FunCodeGenerator);
1388
+
1389
+ smalltalk.addMethod(
1390
+ "_visitDynamicDictionaryNode_",
1391
+ smalltalk.method({
1392
+ selector: "visitDynamicDictionaryNode:",
1393
+ fn: function (aNode){
1394
+ var self=this;
1395
+ smalltalk.send(self["@stream"],"_nextPutAll_",["smalltalk.HashedCollection._fromPairs_(["]);
1396
+ smalltalk.send(smalltalk.send(aNode,"_nodes",[]),"_do_separatedBy_",[(function(each){
1397
+ return smalltalk.send(self,"_visit_",[each]);
1398
+ }),(function(){
1399
+ return smalltalk.send(self["@stream"],"_nextPutAll_",[","]);
1400
+ })]);
1401
+ smalltalk.send(self["@stream"],"_nextPutAll_",["])"]);
1402
+ return self}
1403
+ }),
1404
+ smalltalk.FunCodeGenerator);
1405
+
1406
+ smalltalk.addMethod(
1407
+ "_visitFailure_",
1408
+ smalltalk.method({
1409
+ selector: "visitFailure:",
1410
+ fn: function (aFailure){
1411
+ var self=this;
1412
+ smalltalk.send(self,"_error_",[smalltalk.send(aFailure,"_asString",[])]);
1413
+ return self}
1414
+ }),
1415
+ smalltalk.FunCodeGenerator);
1416
+
1417
+ smalltalk.addMethod(
1418
+ "_visitJSStatementNode_",
1419
+ smalltalk.method({
1420
+ selector: "visitJSStatementNode:",
1421
+ fn: function (aNode){
1422
+ var self=this;
1423
+ smalltalk.send(self["@stream"],"_nextPutAll_",[smalltalk.send(aNode,"_source",[])]);
1424
+ return self}
1425
+ }),
1426
+ smalltalk.FunCodeGenerator);
1427
+
1428
+ smalltalk.addMethod(
1429
+ "_visitMethodNode_",
1430
+ smalltalk.method({
1431
+ selector: "visitMethodNode:",
1432
+ fn: function (aNode) {
1433
+ var self=this;
1434
+ var str=nil;
1435
+ var currentSelector=nil;
1436
+ (self['@currentSelector']=smalltalk.send(smalltalk.send(aNode, "_selector", []), "_asSelector", []));
1437
+ (self['@nestedBlocks']=(0));
1438
+ (self['@earlyReturn']=false);
1439
+ (self['@messageSends']=[]);
1440
+ (self['@referencedClasses']=[]);
1441
+ (self['@unknownVariables']=[]);
1442
+ (self['@tempVariables']=[]);
1443
+ (self['@argVariables']=[]);
1444
+ (function($rec){smalltalk.send($rec, "_nextPutAll_", ["smalltalk.method({"]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send("selector: \x22", "__comma", [smalltalk.send(aNode, "_selector", [])]), "__comma", ["\x22,"])]);return smalltalk.send($rec, "_lf", []);})(self['@stream']);
1445
+ (function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send("source: ", "__comma", [smalltalk.send(smalltalk.send(self, "_source", []), "_asJavascript", [])]), "__comma", [","])]);return smalltalk.send($rec, "_lf", []);})(self['@stream']);
1446
+ smalltalk.send(self['@stream'], "_nextPutAll_", ["fn: function("]);
1447
+ smalltalk.send(smalltalk.send(aNode, "_arguments", []), "_do_separatedBy_", [(function(each){smalltalk.send(self['@argVariables'], "_add_", [each]);return smalltalk.send(self['@stream'], "_nextPutAll_", [each]);}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [", "]);})]);
1448
+ (function($rec){smalltalk.send($rec, "_nextPutAll_", ["){"]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", ["var self=this;"]);return smalltalk.send($rec, "_lf", []);})(self['@stream']);
1449
+ (str=self['@stream']);
1450
+ (self['@stream']=smalltalk.send("", "_writeStream", []));
1451
+ smalltalk.send(smalltalk.send(aNode, "_nodes", []), "_do_", [(function(each){return smalltalk.send(self, "_visit_", [each]);})]);
1452
+ ((($receiver = self['@earlyReturn']).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (function($rec){smalltalk.send($rec, "_nextPutAll_", ["var $early={};"]);smalltalk.send($rec, "_lf", []);return smalltalk.send($rec, "_nextPutAll_", ["try{"]);})(str);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return (function($rec){smalltalk.send($rec, "_nextPutAll_", ["var $early={};"]);smalltalk.send($rec, "_lf", []);return smalltalk.send($rec, "_nextPutAll_", ["try{"]);})(str);})]));
1453
+ smalltalk.send(str, "_nextPutAll_", [smalltalk.send(self['@stream'], "_contents", [])]);
1454
+ (self['@stream']=str);
1455
+ (function($rec){smalltalk.send($rec, "_lf", []);return smalltalk.send($rec, "_nextPutAll_", ["return self;"]);})(self['@stream']);
1456
+ ((($receiver = self['@earlyReturn']).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (function($rec){smalltalk.send($rec, "_lf", []);return smalltalk.send($rec, "_nextPutAll_", ["} catch(e) {if(e===$early)return e[0]; throw e}"]);})(self['@stream']);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return (function($rec){smalltalk.send($rec, "_lf", []);return smalltalk.send($rec, "_nextPutAll_", ["} catch(e) {if(e===$early)return e[0]; throw e}"]);})(self['@stream']);})]));
1457
+ smalltalk.send(self['@stream'], "_nextPutAll_", ["}"]);
1458
+ (function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(",", "__comma", [smalltalk.send((smalltalk.String || String), "_lf", [])]), "__comma", ["messageSends: "])]);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(self['@messageSends'], "_asJavascript", []), "__comma", [","])]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send("args: ", "__comma", [smalltalk.send(self['@argVariables'], "_asJavascript", [])]), "__comma", [","])]);smalltalk.send($rec, "_lf", []);return smalltalk.send($rec, "_nextPutAll_", ["referencedClasses: ["]);})(self['@stream']);
1459
+ smalltalk.send(self['@referencedClasses'], "_do_separatedBy_", [(function(each){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(each, "_printString", [])]);}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [","]);})]);
1460
+ smalltalk.send(self['@stream'], "_nextPutAll_", ["]"]);
1461
+ smalltalk.send(self['@stream'], "_nextPutAll_", ["})"]);
1462
+ return self;}
1463
+ }),
1464
+ smalltalk.FunCodeGenerator);
1465
+
1466
+ smalltalk.addMethod(
1467
+ "_visitReturnNode_",
1468
+ smalltalk.method({
1469
+ selector: "visitReturnNode:",
1470
+ fn: function (aNode) {
1471
+ var self=this;
1472
+ ((($receiver = ((($receiver = self['@nestedBlocks']).klass === smalltalk.Number) ? $receiver >(0) : smalltalk.send($receiver, "__gt", [(0)]))).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (self['@earlyReturn']=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return (self['@earlyReturn']=true);})]));
1473
+ ((($receiver = ((($receiver = self['@nestedBlocks']).klass === smalltalk.Number) ? $receiver >(0) : smalltalk.send($receiver, "__gt", [(0)]))).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", ["(function(){throw $early=["]);})() : (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", ["return "]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self['@stream'], "_nextPutAll_", ["(function(){throw $early=["]);}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", ["return "]);})]));
1474
+ smalltalk.send(smalltalk.send(aNode, "_nodes", []), "_do_", [(function(each){return smalltalk.send(self, "_visit_", [each]);})]);
1475
+ ((($receiver = ((($receiver = self['@nestedBlocks']).klass === smalltalk.Number) ? $receiver >(0) : smalltalk.send($receiver, "__gt", [(0)]))).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", ["]})()"]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return smalltalk.send(self['@stream'], "_nextPutAll_", ["]})()"]);})]));
1476
+ return self;}
1477
+ }),
1478
+ smalltalk.FunCodeGenerator);
1479
+
1480
+ smalltalk.addMethod(
1481
+ "_visitSendNode_",
1482
+ smalltalk.method({
1483
+ selector: "visitSendNode:",
1484
+ fn: function (aNode) {
1485
+ var self=this;
1486
+ var str=nil;
1487
+ var receiver=nil;
1488
+ var superSend=nil;
1489
+ var inlined=nil;
1490
+ (str=self['@stream']);
1491
+ ((($receiver = smalltalk.send(self['@messageSends'], "_includes_", [smalltalk.send(aNode, "_selector", [])])).klass === smalltalk.Boolean) ? (! $receiver ? (function(){return smalltalk.send(self['@messageSends'], "_add_", [smalltalk.send(aNode, "_selector", [])]);})() : nil) : smalltalk.send($receiver, "_ifFalse_", [(function(){return smalltalk.send(self['@messageSends'], "_add_", [smalltalk.send(aNode, "_selector", [])]);})]));
1492
+ (self['@stream']=smalltalk.send("", "_writeStream", []));
1493
+ smalltalk.send(self, "_visit_", [smalltalk.send(aNode, "_receiver", [])]);
1494
+ (superSend=smalltalk.send(smalltalk.send(self['@stream'], "_contents", []), "__eq", ["super"]));
1495
+ (receiver=((($receiver = superSend).klass === smalltalk.Boolean) ? ($receiver ? (function(){return "self";})() : (function(){return smalltalk.send(self['@stream'], "_contents", []);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return "self";}), (function(){return smalltalk.send(self['@stream'], "_contents", []);})])));
1496
+ (self['@stream']=str);
1497
+ ((($receiver = smalltalk.send(self, "_performOptimizations", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(self, "_inlineLiteral_receiverNode_argumentNodes_", [smalltalk.send(aNode, "_selector", []), smalltalk.send(aNode, "_receiver", []), smalltalk.send(aNode, "_arguments", [])])).klass === smalltalk.Boolean) ? (! $receiver ? (function(){return ((($receiver = smalltalk.send(self, "_inline_receiver_argumentNodes_", [smalltalk.send(aNode, "_selector", []), receiver, smalltalk.send(aNode, "_arguments", [])])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(" : ", "__comma", [smalltalk.send(self, "_send_to_arguments_superSend_", [smalltalk.send(aNode, "_selector", []), "$receiver", smalltalk.send(aNode, "_arguments", []), superSend])]), "__comma", [")"])]);})() : (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(self, "_send_to_arguments_superSend_", [smalltalk.send(aNode, "_selector", []), receiver, smalltalk.send(aNode, "_arguments", []), superSend])]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(" : ", "__comma", [smalltalk.send(self, "_send_to_arguments_superSend_", [smalltalk.send(aNode, "_selector", []), "$receiver", smalltalk.send(aNode, "_arguments", []), superSend])]), "__comma", [")"])]);}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(self, "_send_to_arguments_superSend_", [smalltalk.send(aNode, "_selector", []), receiver, smalltalk.send(aNode, "_arguments", []), superSend])]);})]));})() : nil) : smalltalk.send($receiver, "_ifFalse_", [(function(){return ((($receiver = smalltalk.send(self, "_inline_receiver_argumentNodes_", [smalltalk.send(aNode, "_selector", []), receiver, smalltalk.send(aNode, "_arguments", [])])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(" : ", "__comma", [smalltalk.send(self, "_send_to_arguments_superSend_", [smalltalk.send(aNode, "_selector", []), "$receiver", smalltalk.send(aNode, "_arguments", []), superSend])]), "__comma", [")"])]);})() : (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(self, "_send_to_arguments_superSend_", [smalltalk.send(aNode, "_selector", []), receiver, smalltalk.send(aNode, "_arguments", []), superSend])]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(" : ", "__comma", [smalltalk.send(self, "_send_to_arguments_superSend_", [smalltalk.send(aNode, "_selector", []), "$receiver", smalltalk.send(aNode, "_arguments", []), superSend])]), "__comma", [")"])]);}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(self, "_send_to_arguments_superSend_", [smalltalk.send(aNode, "_selector", []), receiver, smalltalk.send(aNode, "_arguments", []), superSend])]);})]));})]));})() : (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(self, "_send_to_arguments_superSend_", [smalltalk.send(aNode, "_selector", []), receiver, smalltalk.send(aNode, "_arguments", []), superSend])]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return ((($receiver = smalltalk.send(self, "_inlineLiteral_receiverNode_argumentNodes_", [smalltalk.send(aNode, "_selector", []), smalltalk.send(aNode, "_receiver", []), smalltalk.send(aNode, "_arguments", [])])).klass === smalltalk.Boolean) ? (! $receiver ? (function(){return ((($receiver = smalltalk.send(self, "_inline_receiver_argumentNodes_", [smalltalk.send(aNode, "_selector", []), receiver, smalltalk.send(aNode, "_arguments", [])])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(" : ", "__comma", [smalltalk.send(self, "_send_to_arguments_superSend_", [smalltalk.send(aNode, "_selector", []), "$receiver", smalltalk.send(aNode, "_arguments", []), superSend])]), "__comma", [")"])]);})() : (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(self, "_send_to_arguments_superSend_", [smalltalk.send(aNode, "_selector", []), receiver, smalltalk.send(aNode, "_arguments", []), superSend])]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(" : ", "__comma", [smalltalk.send(self, "_send_to_arguments_superSend_", [smalltalk.send(aNode, "_selector", []), "$receiver", smalltalk.send(aNode, "_arguments", []), superSend])]), "__comma", [")"])]);}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(self, "_send_to_arguments_superSend_", [smalltalk.send(aNode, "_selector", []), receiver, smalltalk.send(aNode, "_arguments", []), superSend])]);})]));})() : nil) : smalltalk.send($receiver, "_ifFalse_", [(function(){return ((($receiver = smalltalk.send(self, "_inline_receiver_argumentNodes_", [smalltalk.send(aNode, "_selector", []), receiver, smalltalk.send(aNode, "_arguments", [])])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(" : ", "__comma", [smalltalk.send(self, "_send_to_arguments_superSend_", [smalltalk.send(aNode, "_selector", []), "$receiver", smalltalk.send(aNode, "_arguments", []), superSend])]), "__comma", [")"])]);})() : (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(self, "_send_to_arguments_superSend_", [smalltalk.send(aNode, "_selector", []), receiver, smalltalk.send(aNode, "_arguments", []), superSend])]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(" : ", "__comma", [smalltalk.send(self, "_send_to_arguments_superSend_", [smalltalk.send(aNode, "_selector", []), "$receiver", smalltalk.send(aNode, "_arguments", []), superSend])]), "__comma", [")"])]);}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(self, "_send_to_arguments_superSend_", [smalltalk.send(aNode, "_selector", []), receiver, smalltalk.send(aNode, "_arguments", []), superSend])]);})]));})]));}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(self, "_send_to_arguments_superSend_", [smalltalk.send(aNode, "_selector", []), receiver, smalltalk.send(aNode, "_arguments", []), superSend])]);})]));
1498
+ return self;}
1499
+ }),
1500
+ smalltalk.FunCodeGenerator);
1501
+
1502
+ smalltalk.addMethod(
1503
+ "_visitSequenceNode_",
1504
+ smalltalk.method({
1505
+ selector: "visitSequenceNode:",
1506
+ fn: function (aNode) {
1507
+ var self=this;
1508
+ smalltalk.send(smalltalk.send(aNode, "_temps", []), "_do_", [(function(each){var temp=nil;
1509
+ (temp=smalltalk.send(self, "_safeVariableNameFor_", [each]));smalltalk.send(self['@tempVariables'], "_add_", [temp]);return (function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send("var ", "__comma", [temp]), "__comma", ["=nil;"])]);return smalltalk.send($rec, "_lf", []);})(self['@stream']);})]);
1510
+ smalltalk.send(smalltalk.send(aNode, "_nodes", []), "_do_separatedBy_", [(function(each){smalltalk.send(self, "_visit_", [each]);return smalltalk.send(self['@stream'], "_nextPutAll_", [";"]);}), (function(){return smalltalk.send(self['@stream'], "_lf", []);})]);
1511
+ return self;}
1512
+ }),
1513
+ smalltalk.FunCodeGenerator);
1514
+
1515
+ smalltalk.addMethod(
1516
+ "_visitValueNode_",
1517
+ smalltalk.method({
1518
+ selector: "visitValueNode:",
1519
+ fn: function (aNode) {
1520
+ var self=this;
1521
+ smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(aNode, "_value", []), "_asJavascript", [])]);
1522
+ return self;}
1523
+ }),
1524
+ smalltalk.FunCodeGenerator);
1525
+
1526
+ smalltalk.addMethod(
1527
+ "_visitVariableNode_",
1528
+ smalltalk.method({
1529
+ selector: "visitVariableNode:",
1530
+ fn: function (aNode) {
1531
+ var self=this;
1532
+ var varName=nil;
1533
+ ((($receiver = smalltalk.send(smalltalk.send(smalltalk.send(self, "_currentClass", []), "_allInstanceVariableNames", []), "_includes_", [smalltalk.send(aNode, "_value", [])])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send("self['@", "__comma", [smalltalk.send(aNode, "_value", [])]), "__comma", ["']"])]);})() : (function(){(varName=smalltalk.send(self, "_safeVariableNameFor_", [smalltalk.send(aNode, "_value", [])]));return ((($receiver = smalltalk.send(smalltalk.send(self, "_knownVariables", []), "_includes_", [varName])).klass === smalltalk.Boolean) ? (! $receiver ? (function(){smalltalk.send(self['@unknownVariables'], "_add_", [smalltalk.send(aNode, "_value", [])]);return ((($receiver = smalltalk.send(aNode, "_assigned", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [varName]);})() : (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("(typeof ", "__comma", [varName]), "__comma", [" == 'undefined' ? nil : "]), "__comma", [varName]), "__comma", [")"])]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [varName]);}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("(typeof ", "__comma", [varName]), "__comma", [" == 'undefined' ? nil : "]), "__comma", [varName]), "__comma", [")"])]);})]));})() : (function(){return ((($receiver = smalltalk.send(smalltalk.send(aNode, "_value", []), "__eq", ["thisContext"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", ["(smalltalk.getThisContext())"]);})() : (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [varName]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self['@stream'], "_nextPutAll_", ["(smalltalk.getThisContext())"]);}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [varName]);})]));})()) : smalltalk.send($receiver, "_ifFalse_ifTrue_", [(function(){smalltalk.send(self['@unknownVariables'], "_add_", [smalltalk.send(aNode, "_value", [])]);return ((($receiver = smalltalk.send(aNode, "_assigned", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [varName]);})() : (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("(typeof ", "__comma", [varName]), "__comma", [" == 'undefined' ? nil : "]), "__comma", [varName]), "__comma", [")"])]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [varName]);}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("(typeof ", "__comma", [varName]), "__comma", [" == 'undefined' ? nil : "]), "__comma", [varName]), "__comma", [")"])]);})]));}), (function(){return ((($receiver = smalltalk.send(smalltalk.send(aNode, "_value", []), "__eq", ["thisContext"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", ["(smalltalk.getThisContext())"]);})() : (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [varName]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self['@stream'], "_nextPutAll_", ["(smalltalk.getThisContext())"]);}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [varName]);})]));})]));})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send("self['@", "__comma", [smalltalk.send(aNode, "_value", [])]), "__comma", ["']"])]);}), (function(){(varName=smalltalk.send(self, "_safeVariableNameFor_", [smalltalk.send(aNode, "_value", [])]));return ((($receiver = smalltalk.send(smalltalk.send(self, "_knownVariables", []), "_includes_", [varName])).klass === smalltalk.Boolean) ? (! $receiver ? (function(){smalltalk.send(self['@unknownVariables'], "_add_", [smalltalk.send(aNode, "_value", [])]);return ((($receiver = smalltalk.send(aNode, "_assigned", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [varName]);})() : (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("(typeof ", "__comma", [varName]), "__comma", [" == 'undefined' ? nil : "]), "__comma", [varName]), "__comma", [")"])]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [varName]);}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("(typeof ", "__comma", [varName]), "__comma", [" == 'undefined' ? nil : "]), "__comma", [varName]), "__comma", [")"])]);})]));})() : (function(){return ((($receiver = smalltalk.send(smalltalk.send(aNode, "_value", []), "__eq", ["thisContext"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", ["(smalltalk.getThisContext())"]);})() : (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [varName]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self['@stream'], "_nextPutAll_", ["(smalltalk.getThisContext())"]);}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [varName]);})]));})()) : smalltalk.send($receiver, "_ifFalse_ifTrue_", [(function(){smalltalk.send(self['@unknownVariables'], "_add_", [smalltalk.send(aNode, "_value", [])]);return ((($receiver = smalltalk.send(aNode, "_assigned", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [varName]);})() : (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("(typeof ", "__comma", [varName]), "__comma", [" == 'undefined' ? nil : "]), "__comma", [varName]), "__comma", [")"])]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [varName]);}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("(typeof ", "__comma", [varName]), "__comma", [" == 'undefined' ? nil : "]), "__comma", [varName]), "__comma", [")"])]);})]));}), (function(){return ((($receiver = smalltalk.send(smalltalk.send(aNode, "_value", []), "__eq", ["thisContext"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", ["(smalltalk.getThisContext())"]);})() : (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [varName]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self['@stream'], "_nextPutAll_", ["(smalltalk.getThisContext())"]);}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [varName]);})]));})]));})]));
1534
+ return self;}
1535
+ }),
1536
+ smalltalk.FunCodeGenerator);
1537
+
1538
+
1539
+ smalltalk.FunCodeGenerator.klass.iVarNames = ['performOptimizations'];
1540
+ smalltalk.addMethod(
1541
+ "_performOptimizations",
1542
+ smalltalk.method({
1543
+ selector: "performOptimizations",
1544
+ fn: function () {
1545
+ var self=this;
1546
+ return (($receiver = self['@performOptimizations']) == nil || $receiver == undefined) ? (function(){return true;})() : $receiver;
1547
+ return self;}
1548
+ }),
1549
+ smalltalk.FunCodeGenerator.klass);
1550
+
1551
+ smalltalk.addMethod(
1552
+ "_performOptimizations_",
1553
+ smalltalk.method({
1554
+ selector: "performOptimizations:",
1555
+ fn: function (aBoolean) {
1556
+ var self=this;
1557
+ (self['@performOptimizations']=aBoolean);
1558
+ return self;}
1559
+ }),
1560
+ smalltalk.FunCodeGenerator.klass);
1561
+
1562
+