resin 0.2.2 → 0.2.3

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 (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
@@ -4,7 +4,7 @@ smalltalk.addMethod(
4
4
  "_nextChunk",
5
5
  smalltalk.method({
6
6
  selector: "nextChunk",
7
- fn: function (){
7
+ fn: function () {
8
8
  var self=this;
9
9
  var $early={};
10
10
  try{var char_=nil;
@@ -22,7 +22,7 @@ smalltalk.addMethod(
22
22
  "_stream_",
23
23
  smalltalk.method({
24
24
  selector: "stream:",
25
- fn: function (aStream){
25
+ fn: function (aStream) {
26
26
  var self=this;
27
27
  (self['@stream']=aStream);
28
28
  return self;}
@@ -34,7 +34,7 @@ smalltalk.addMethod(
34
34
  "_on_",
35
35
  smalltalk.method({
36
36
  selector: "on:",
37
- fn: function (aStream){
37
+ fn: function (aStream) {
38
38
  var self=this;
39
39
  return smalltalk.send(smalltalk.send(self, "_new", []), "_stream_", [aStream]);
40
40
  return self;}
@@ -42,14 +42,25 @@ return self;}
42
42
  smalltalk.ChunkParser.klass);
43
43
 
44
44
 
45
- smalltalk.addClass('Compiler', smalltalk.Object, ['currentClass', 'source', 'unknownVariables'], 'Compiler');
45
+ smalltalk.addClass('Compiler', smalltalk.Object, ['currentClass', 'source', 'unknownVariables', 'codeGeneratorClass'], 'Compiler');
46
46
  smalltalk.addMethod(
47
47
  "_codeGeneratorClass",
48
48
  smalltalk.method({
49
49
  selector: "codeGeneratorClass",
50
- fn: function (){
50
+ fn: function () {
51
+ var self=this;
52
+ return (($receiver = self['@codeGeneratorClass']) == nil || $receiver == undefined) ? (function(){return (smalltalk.FunCodeGenerator || FunCodeGenerator);})() : $receiver;
53
+ return self;}
54
+ }),
55
+ smalltalk.Compiler);
56
+
57
+ smalltalk.addMethod(
58
+ "_codeGeneratorClass_",
59
+ smalltalk.method({
60
+ selector: "codeGeneratorClass:",
61
+ fn: function (aClass) {
51
62
  var self=this;
52
- return (smalltalk.FunCodeGenerator || FunCodeGenerator);
63
+ (self['@codeGeneratorClass']=aClass);
53
64
  return self;}
54
65
  }),
55
66
  smalltalk.Compiler);
@@ -58,7 +69,7 @@ smalltalk.addMethod(
58
69
  "_compile_",
59
70
  smalltalk.method({
60
71
  selector: "compile:",
61
- fn: function (aString){
72
+ fn: function (aString) {
62
73
  var self=this;
63
74
  return smalltalk.send(self, "_compileNode_", [smalltalk.send(self, "_parse_", [aString])]);
64
75
  return self;}
@@ -69,7 +80,7 @@ smalltalk.addMethod(
69
80
  "_compile_forClass_",
70
81
  smalltalk.method({
71
82
  selector: "compile:forClass:",
72
- fn: function (aString, aClass){
83
+ fn: function (aString, aClass) {
73
84
  var self=this;
74
85
  smalltalk.send(self, "_currentClass_", [aClass]);
75
86
  smalltalk.send(self, "_source_", [aString]);
@@ -82,7 +93,7 @@ smalltalk.addMethod(
82
93
  "_compileExpression_",
83
94
  smalltalk.method({
84
95
  selector: "compileExpression:",
85
- fn: function (aString){
96
+ fn: function (aString) {
86
97
  var self=this;
87
98
  smalltalk.send(self, "_currentClass_", [(smalltalk.DoIt || DoIt)]);
88
99
  smalltalk.send(self, "_source_", [smalltalk.send(smalltalk.send("doIt ^[", "__comma", [aString]), "__comma", ["] value"])]);
@@ -95,7 +106,7 @@ smalltalk.addMethod(
95
106
  "_compileNode_",
96
107
  smalltalk.method({
97
108
  selector: "compileNode:",
98
- fn: function (aNode){
109
+ fn: function (aNode) {
99
110
  var self=this;
100
111
  var generator=nil;
101
112
  var result=nil;
@@ -112,7 +123,7 @@ smalltalk.addMethod(
112
123
  "_currentClass",
113
124
  smalltalk.method({
114
125
  selector: "currentClass",
115
- fn: function (){
126
+ fn: function () {
116
127
  var self=this;
117
128
  return self['@currentClass'];
118
129
  return self;}
@@ -123,7 +134,7 @@ smalltalk.addMethod(
123
134
  "_currentClass_",
124
135
  smalltalk.method({
125
136
  selector: "currentClass:",
126
- fn: function (aClass){
137
+ fn: function (aClass) {
127
138
  var self=this;
128
139
  (self['@currentClass']=aClass);
129
140
  return self;}
@@ -134,7 +145,7 @@ smalltalk.addMethod(
134
145
  "_eval_",
135
146
  smalltalk.method({
136
147
  selector: "eval:",
137
- fn: function (aString){
148
+ fn: function (aString) {
138
149
  var self=this;
139
150
  return eval(aString);
140
151
  return self;}
@@ -145,7 +156,7 @@ smalltalk.addMethod(
145
156
  "_evaluateExpression_",
146
157
  smalltalk.method({
147
158
  selector: "evaluateExpression:",
148
- fn: function (aString){
159
+ fn: function (aString) {
149
160
  var self=this;
150
161
  var result=nil;
151
162
  smalltalk.send((smalltalk.DoIt || DoIt), "_addCompiledMethod_", [smalltalk.send(self, "_eval_", [smalltalk.send(self, "_compileExpression_", [aString])])]);
@@ -160,7 +171,7 @@ smalltalk.addMethod(
160
171
  "_install_forClass_category_",
161
172
  smalltalk.method({
162
173
  selector: "install:forClass:category:",
163
- fn: function (aString, aBehavior, anotherString){
174
+ fn: function (aString, aBehavior, anotherString) {
164
175
  var self=this;
165
176
  var compiled=nil;
166
177
  (compiled=smalltalk.send(self, "_eval_", [smalltalk.send(self, "_compile_forClass_", [aString, aBehavior])]));
@@ -175,7 +186,7 @@ smalltalk.addMethod(
175
186
  "_parse_",
176
187
  smalltalk.method({
177
188
  selector: "parse:",
178
- fn: function (aString){
189
+ fn: function (aString) {
179
190
  var self=this;
180
191
  return smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk), "_current", []), "_parse_", [aString]);
181
192
  return self;}
@@ -186,7 +197,7 @@ smalltalk.addMethod(
186
197
  "_parseExpression_",
187
198
  smalltalk.method({
188
199
  selector: "parseExpression:",
189
- fn: function (aString){
200
+ fn: function (aString) {
190
201
  var self=this;
191
202
  return smalltalk.send(self, "_parse_", [smalltalk.send(smalltalk.send("doIt ^[", "__comma", [aString]), "__comma", ["] value"])]);
192
203
  return self;}
@@ -197,7 +208,7 @@ smalltalk.addMethod(
197
208
  "_recompile_",
198
209
  smalltalk.method({
199
210
  selector: "recompile:",
200
- fn: function (aClass){
211
+ fn: function (aClass) {
201
212
  var self=this;
202
213
  smalltalk.send(smalltalk.send(aClass, "_methodDictionary", []), "_do_", [(function(each){return smalltalk.send(self, "_install_forClass_category_", [smalltalk.send(each, "_source", []), aClass, smalltalk.send(each, "_category", [])]);})]);
203
214
  smalltalk.send(self, "_setupClass_", [aClass]);
@@ -210,7 +221,7 @@ smalltalk.addMethod(
210
221
  "_recompileAll",
211
222
  smalltalk.method({
212
223
  selector: "recompileAll",
213
- fn: function (){
224
+ fn: function () {
214
225
  var self=this;
215
226
  smalltalk.send(smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk), "_current", []), "_classes", []), "_do_", [(function(each){(function($rec){smalltalk.send($rec, "_show_", [each]);return smalltalk.send($rec, "_cr", []);})((smalltalk.Transcript || Transcript));return smalltalk.send((function(){return smalltalk.send(self, "_recompile_", [each]);}), "_valueWithTimeout_", [(100)]);})]);
216
227
  return self;}
@@ -221,7 +232,7 @@ smalltalk.addMethod(
221
232
  "_setupClass_",
222
233
  smalltalk.method({
223
234
  selector: "setupClass:",
224
- fn: function (aClass){
235
+ fn: function (aClass) {
225
236
  var self=this;
226
237
  smalltalk.init(aClass);
227
238
  return self;}
@@ -232,7 +243,7 @@ smalltalk.addMethod(
232
243
  "_source",
233
244
  smalltalk.method({
234
245
  selector: "source",
235
- fn: function (){
246
+ fn: function () {
236
247
  var self=this;
237
248
  return (($receiver = self['@source']) == nil || $receiver == undefined) ? (function(){return "";})() : $receiver;
238
249
  return self;}
@@ -243,7 +254,7 @@ smalltalk.addMethod(
243
254
  "_source_",
244
255
  smalltalk.method({
245
256
  selector: "source:",
246
- fn: function (aString){
257
+ fn: function (aString) {
247
258
  var self=this;
248
259
  (self['@source']=aString);
249
260
  return self;}
@@ -254,7 +265,7 @@ smalltalk.addMethod(
254
265
  "_unknownVariables",
255
266
  smalltalk.method({
256
267
  selector: "unknownVariables",
257
- fn: function (){
268
+ fn: function () {
258
269
  var self=this;
259
270
  return self['@unknownVariables'];
260
271
  return self;}
@@ -265,7 +276,7 @@ smalltalk.addMethod(
265
276
  "_unknownVariables_",
266
277
  smalltalk.method({
267
278
  selector: "unknownVariables:",
268
- fn: function (aCollection){
279
+ fn: function (aCollection) {
269
280
  var self=this;
270
281
  (self['@unknownVariables']=aCollection);
271
282
  return self;}
@@ -277,7 +288,7 @@ smalltalk.addMethod(
277
288
  "_recompile_",
278
289
  smalltalk.method({
279
290
  selector: "recompile:",
280
- fn: function (aClass){
291
+ fn: function (aClass) {
281
292
  var self=this;
282
293
  smalltalk.send(smalltalk.send(self, "_new", []), "_recompile_", [aClass]);
283
294
  return self;}
@@ -288,7 +299,7 @@ smalltalk.addMethod(
288
299
  "_recompileAll",
289
300
  smalltalk.method({
290
301
  selector: "recompileAll",
291
- fn: function (){
302
+ fn: function () {
292
303
  var self=this;
293
304
  smalltalk.send(smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk), "_current", []), "_classes", []), "_do_", [(function(each){return smalltalk.send(self, "_recompile_", [each]);})]);
294
305
  return self;}
@@ -304,7 +315,7 @@ smalltalk.addMethod(
304
315
  "_classNameFor_",
305
316
  smalltalk.method({
306
317
  selector: "classNameFor:",
307
- fn: function (aClass){
318
+ fn: function (aClass) {
308
319
  var self=this;
309
320
  return ((($receiver = smalltalk.send(aClass, "_isMetaclass", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(smalltalk.send(smalltalk.send(aClass, "_instanceClass", []), "_name", []), "__comma", [".klass"]);})() : (function(){return ((($receiver = smalltalk.send(aClass, "_isNil", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return "nil";})() : (function(){return smalltalk.send(aClass, "_name", []);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return "nil";}), (function(){return smalltalk.send(aClass, "_name", []);})]));})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(smalltalk.send(smalltalk.send(aClass, "_instanceClass", []), "_name", []), "__comma", [".klass"]);}), (function(){return ((($receiver = smalltalk.send(aClass, "_isNil", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return "nil";})() : (function(){return smalltalk.send(aClass, "_name", []);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return "nil";}), (function(){return smalltalk.send(aClass, "_name", []);})]));})]));
310
321
  return self;}
@@ -315,7 +326,7 @@ smalltalk.addMethod(
315
326
  "_exportAll",
316
327
  smalltalk.method({
317
328
  selector: "exportAll",
318
- fn: function (){
329
+ fn: function () {
319
330
  var self=this;
320
331
  return smalltalk.send((smalltalk.String || String), "_streamContents_", [(function(stream){return smalltalk.send(smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk), "_current", []), "_packages", []), "_do_", [(function(pkg){return smalltalk.send(stream, "_nextPutAll_", [smalltalk.send(self, "_exportPackage_", [smalltalk.send(pkg, "_name", [])])]);})]);})]);
321
332
  return self;}
@@ -326,7 +337,7 @@ smalltalk.addMethod(
326
337
  "_exportClass_",
327
338
  smalltalk.method({
328
339
  selector: "exportClass:",
329
- fn: function (aClass){
340
+ fn: function (aClass) {
330
341
  var self=this;
331
342
  return smalltalk.send((smalltalk.String || String), "_streamContents_", [(function(stream){smalltalk.send(self, "_exportDefinitionOf_on_", [aClass, stream]);smalltalk.send(self, "_exportMethodsOf_on_", [aClass, stream]);smalltalk.send(self, "_exportMetaDefinitionOf_on_", [aClass, stream]);return smalltalk.send(self, "_exportMethodsOf_on_", [smalltalk.send(aClass, "_class", []), stream]);})]);
332
343
  return self;}
@@ -337,7 +348,7 @@ smalltalk.addMethod(
337
348
  "_exportDefinitionOf_on_",
338
349
  smalltalk.method({
339
350
  selector: "exportDefinitionOf:on:",
340
- fn: function (aClass, aStream){
351
+ fn: function (aClass, aStream) {
341
352
  var self=this;
342
353
  (function($rec){smalltalk.send($rec, "_nextPutAll_", ["smalltalk.addClass("]);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send("'", "__comma", [smalltalk.send(self, "_classNameFor_", [aClass])]), "__comma", ["', "])]);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send("smalltalk.", "__comma", [smalltalk.send(self, "_classNameFor_", [smalltalk.send(aClass, "_superclass", [])])])]);return smalltalk.send($rec, "_nextPutAll_", [", ["]);})(aStream);
343
354
  smalltalk.send(smalltalk.send(aClass, "_instanceVariableNames", []), "_do_separatedBy_", [(function(each){return smalltalk.send(aStream, "_nextPutAll_", [smalltalk.send(smalltalk.send("'", "__comma", [each]), "__comma", ["'"])]);}), (function(){return smalltalk.send(aStream, "_nextPutAll_", [", "]);})]);
@@ -352,7 +363,7 @@ smalltalk.addMethod(
352
363
  "_exportMetaDefinitionOf_on_",
353
364
  smalltalk.method({
354
365
  selector: "exportMetaDefinitionOf:on:",
355
- fn: function (aClass, aStream){
366
+ fn: function (aClass, aStream) {
356
367
  var self=this;
357
368
  ((($receiver = smalltalk.send(smalltalk.send(smalltalk.send(aClass, "_class", []), "_instanceVariableNames", []), "_isEmpty", [])).klass === smalltalk.Boolean) ? (! $receiver ? (function(){(function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send("smalltalk.", "__comma", [smalltalk.send(self, "_classNameFor_", [smalltalk.send(aClass, "_class", [])])])]);return smalltalk.send($rec, "_nextPutAll_", [".iVarNames = ["]);})(aStream);smalltalk.send(smalltalk.send(smalltalk.send(aClass, "_class", []), "_instanceVariableNames", []), "_do_separatedBy_", [(function(each){return smalltalk.send(aStream, "_nextPutAll_", [smalltalk.send(smalltalk.send("'", "__comma", [each]), "__comma", ["'"])]);}), (function(){return smalltalk.send(aStream, "_nextPutAll_", [","]);})]);return smalltalk.send(aStream, "_nextPutAll_", [smalltalk.send("];", "__comma", [smalltalk.send((smalltalk.String || String), "_lf", [])])]);})() : nil) : smalltalk.send($receiver, "_ifFalse_", [(function(){(function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send("smalltalk.", "__comma", [smalltalk.send(self, "_classNameFor_", [smalltalk.send(aClass, "_class", [])])])]);return smalltalk.send($rec, "_nextPutAll_", [".iVarNames = ["]);})(aStream);smalltalk.send(smalltalk.send(smalltalk.send(aClass, "_class", []), "_instanceVariableNames", []), "_do_separatedBy_", [(function(each){return smalltalk.send(aStream, "_nextPutAll_", [smalltalk.send(smalltalk.send("'", "__comma", [each]), "__comma", ["'"])]);}), (function(){return smalltalk.send(aStream, "_nextPutAll_", [","]);})]);return smalltalk.send(aStream, "_nextPutAll_", [smalltalk.send("];", "__comma", [smalltalk.send((smalltalk.String || String), "_lf", [])])]);})]));
358
369
  return self;}
@@ -363,7 +374,7 @@ smalltalk.addMethod(
363
374
  "_exportMethod_of_on_",
364
375
  smalltalk.method({
365
376
  selector: "exportMethod:of:on:",
366
- fn: function (aMethod, aClass, aStream){
377
+ fn: function (aMethod, aClass, aStream) {
367
378
  var self=this;
368
379
  (function($rec){smalltalk.send($rec, "_nextPutAll_", ["smalltalk.addMethod("]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(aMethod, "_selector", []), "_asSelector", []), "_asJavascript", []), "__comma", [","])]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", ["smalltalk.method({"]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send("selector: ", "__comma", [smalltalk.send(smalltalk.send(aMethod, "_selector", []), "_asJavascript", [])]), "__comma", [","])]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send("category: '", "__comma", [smalltalk.send(aMethod, "_category", [])]), "__comma", ["',"])]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send("fn: ", "__comma", [smalltalk.send(smalltalk.send(aMethod, "_fn", []), "_compiledSource", [])]), "__comma", [","])]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send("args: ", "__comma", [smalltalk.send(smalltalk.send(aMethod, "_arguments", []), "_asJavascript", [])]), "__comma", [","])]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send("source: ", "__comma", [smalltalk.send(smalltalk.send(aMethod, "_source", []), "_asJavascript", [])]), "__comma", [","])]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send("messageSends: ", "__comma", [smalltalk.send(smalltalk.send(aMethod, "_messageSends", []), "_asJavascript", [])]), "__comma", [","])]);smalltalk.send($rec, "_lf", []);return smalltalk.send($rec, "_nextPutAll_", [smalltalk.send("referencedClasses: ", "__comma", [smalltalk.send(smalltalk.send(aMethod, "_referencedClasses", []), "_asJavascript", [])])]);})(aStream);
369
380
  (function($rec){smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", ["}),"]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send("smalltalk.", "__comma", [smalltalk.send(self, "_classNameFor_", [aClass])])]);smalltalk.send($rec, "_nextPutAll_", [");"]);smalltalk.send($rec, "_lf", []);return smalltalk.send($rec, "_lf", []);})(aStream);
@@ -375,7 +386,7 @@ smalltalk.addMethod(
375
386
  "_exportMethodsOf_on_",
376
387
  smalltalk.method({
377
388
  selector: "exportMethodsOf:on:",
378
- fn: function (aClass, aStream){
389
+ fn: function (aClass, aStream) {
379
390
  var self=this;
380
391
  smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(aClass, "_methodDictionary", []), "_values", []), "_sorted_", [(function(a, b){return ((($receiver = smalltalk.send(a, "_selector", [])).klass === smalltalk.Number) ? $receiver <=smalltalk.send(b, "_selector", []) : smalltalk.send($receiver, "__lt_eq", [smalltalk.send(b, "_selector", [])]));})]), "_do_", [(function(each){return ((($receiver = smalltalk.send(smalltalk.send(each, "_category", []), "_match_", ["^\x5c*"])).klass === smalltalk.Boolean) ? (! $receiver ? (function(){return smalltalk.send(self, "_exportMethod_of_on_", [each, aClass, aStream]);})() : nil) : smalltalk.send($receiver, "_ifFalse_", [(function(){return smalltalk.send(self, "_exportMethod_of_on_", [each, aClass, aStream]);})]));})]);
381
392
  smalltalk.send(aStream, "_lf", []);
@@ -387,7 +398,7 @@ smalltalk.addMethod(
387
398
  "_exportPackage_",
388
399
  smalltalk.method({
389
400
  selector: "exportPackage:",
390
- fn: function (packageName){
401
+ fn: function (packageName) {
391
402
  var self=this;
392
403
  var package=nil;
393
404
  return smalltalk.send((smalltalk.String || String), "_streamContents_", [(function(stream){(package=smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk), "_current", []), "_packageAt_", [packageName]));smalltalk.send(self, "_exportPackageDefinitionOf_on_", [package, stream]);smalltalk.send(smalltalk.send(smalltalk.send(package, "_sortedClasses", []), "_asSet", []), "_do_", [(function(each){return smalltalk.send(stream, "_nextPutAll_", [smalltalk.send(self, "_exportClass_", [each])]);})]);return smalltalk.send(self, "_exportPackageExtensionsOf_on_", [package, stream]);})]);
@@ -399,7 +410,7 @@ smalltalk.addMethod(
399
410
  "_exportPackageDefinitionOf_on_",
400
411
  smalltalk.method({
401
412
  selector: "exportPackageDefinitionOf:on:",
402
- fn: function (package, aStream){
413
+ fn: function (package, aStream) {
403
414
  var self=this;
404
415
  (function($rec){smalltalk.send($rec, "_nextPutAll_", ["smalltalk.addPackage("]);return smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("'", "__comma", [smalltalk.send(package, "_name", [])]), "__comma", ["', "]), "__comma", [smalltalk.send(package, "_propertiesAsJSON", [])]), "__comma", [");"])]);})(aStream);
405
416
  smalltalk.send(aStream, "_lf", []);
@@ -411,7 +422,7 @@ smalltalk.addMethod(
411
422
  "_exportPackageExtensionsOf_on_",
412
423
  smalltalk.method({
413
424
  selector: "exportPackageExtensionsOf:on:",
414
- fn: function (package, aStream){
425
+ fn: function (package, aStream) {
415
426
  var self=this;
416
427
  var name=nil;
417
428
  (name=smalltalk.send(package, "_name", []));
@@ -427,7 +438,7 @@ smalltalk.addMethod(
427
438
  "_chunkEscape_",
428
439
  smalltalk.method({
429
440
  selector: "chunkEscape:",
430
- fn: function (aString){
441
+ fn: function (aString) {
431
442
  var self=this;
432
443
  return smalltalk.send(smalltalk.send(aString, "_replace_with_", ["!", "!!"]), "_trimBoth", []);
433
444
  return self;}
@@ -438,7 +449,7 @@ smalltalk.addMethod(
438
449
  "_classNameFor_",
439
450
  smalltalk.method({
440
451
  selector: "classNameFor:",
441
- fn: function (aClass){
452
+ fn: function (aClass) {
442
453
  var self=this;
443
454
  return ((($receiver = smalltalk.send(aClass, "_isMetaclass", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(smalltalk.send(smalltalk.send(aClass, "_instanceClass", []), "_name", []), "__comma", [" class"]);})() : (function(){return ((($receiver = smalltalk.send(aClass, "_isNil", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return "nil";})() : (function(){return smalltalk.send(aClass, "_name", []);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return "nil";}), (function(){return smalltalk.send(aClass, "_name", []);})]));})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(smalltalk.send(smalltalk.send(aClass, "_instanceClass", []), "_name", []), "__comma", [" class"]);}), (function(){return ((($receiver = smalltalk.send(aClass, "_isNil", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return "nil";})() : (function(){return smalltalk.send(aClass, "_name", []);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return "nil";}), (function(){return smalltalk.send(aClass, "_name", []);})]));})]));
444
455
  return self;}
@@ -449,7 +460,7 @@ smalltalk.addMethod(
449
460
  "_exportDefinitionOf_on_",
450
461
  smalltalk.method({
451
462
  selector: "exportDefinitionOf:on:",
452
- fn: function (aClass, aStream){
463
+ fn: function (aClass, aStream) {
453
464
  var self=this;
454
465
  (function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(self, "_classNameFor_", [smalltalk.send(aClass, "_superclass", [])])]);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(" subclass: #", "__comma", [smalltalk.send(self, "_classNameFor_", [aClass])])]);smalltalk.send($rec, "_lf", []);return smalltalk.send($rec, "_nextPutAll_", ["\x09instanceVariableNames: '"]);})(aStream);
455
466
  smalltalk.send(smalltalk.send(aClass, "_instanceVariableNames", []), "_do_separatedBy_", [(function(each){return smalltalk.send(aStream, "_nextPutAll_", [each]);}), (function(){return smalltalk.send(aStream, "_nextPutAll_", [" "]);})]);
@@ -464,7 +475,7 @@ smalltalk.addMethod(
464
475
  "_exportMetaDefinitionOf_on_",
465
476
  smalltalk.method({
466
477
  selector: "exportMetaDefinitionOf:on:",
467
- fn: function (aClass, aStream){
478
+ fn: function (aClass, aStream) {
468
479
  var self=this;
469
480
  ((($receiver = smalltalk.send(smalltalk.send(smalltalk.send(aClass, "_class", []), "_instanceVariableNames", []), "_isEmpty", [])).klass === smalltalk.Boolean) ? (! $receiver ? (function(){(function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(self, "_classNameFor_", [smalltalk.send(aClass, "_class", [])])]);return smalltalk.send($rec, "_nextPutAll_", [" instanceVariableNames: '"]);})(aStream);smalltalk.send(smalltalk.send(smalltalk.send(aClass, "_class", []), "_instanceVariableNames", []), "_do_separatedBy_", [(function(each){return smalltalk.send(aStream, "_nextPutAll_", [each]);}), (function(){return smalltalk.send(aStream, "_nextPutAll_", [" "]);})]);return (function($rec){smalltalk.send($rec, "_nextPutAll_", ["'!"]);smalltalk.send($rec, "_lf", []);return smalltalk.send($rec, "_lf", []);})(aStream);})() : nil) : smalltalk.send($receiver, "_ifFalse_", [(function(){(function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(self, "_classNameFor_", [smalltalk.send(aClass, "_class", [])])]);return smalltalk.send($rec, "_nextPutAll_", [" instanceVariableNames: '"]);})(aStream);smalltalk.send(smalltalk.send(smalltalk.send(aClass, "_class", []), "_instanceVariableNames", []), "_do_separatedBy_", [(function(each){return smalltalk.send(aStream, "_nextPutAll_", [each]);}), (function(){return smalltalk.send(aStream, "_nextPutAll_", [" "]);})]);return (function($rec){smalltalk.send($rec, "_nextPutAll_", ["'!"]);smalltalk.send($rec, "_lf", []);return smalltalk.send($rec, "_lf", []);})(aStream);})]));
470
481
  return self;}
@@ -475,7 +486,7 @@ smalltalk.addMethod(
475
486
  "_exportMethod_of_on_",
476
487
  smalltalk.method({
477
488
  selector: "exportMethod:of:on:",
478
- fn: function (aMethod, aClass, aStream){
489
+ fn: function (aMethod, aClass, aStream) {
479
490
  var self=this;
480
491
  (function($rec){smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(self, "_chunkEscape_", [smalltalk.send(aMethod, "_source", [])])]);smalltalk.send($rec, "_lf", []);return smalltalk.send($rec, "_nextPutAll_", ["!"]);})(aStream);
481
492
  return self;}
@@ -486,7 +497,7 @@ smalltalk.addMethod(
486
497
  "_exportMethods_category_of_on_",
487
498
  smalltalk.method({
488
499
  selector: "exportMethods:category:of:on:",
489
- fn: function (methods, category, aClass, aStream){
500
+ fn: function (methods, category, aClass, aStream) {
490
501
  var self=this;
491
502
  (function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send("!", "__comma", [smalltalk.send(self, "_classNameFor_", [aClass])])]);return smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(" methodsFor: '", "__comma", [category]), "__comma", ["'!"])]);})(aStream);
492
503
  smalltalk.send(smalltalk.send(methods, "_sorted_", [(function(a, b){return ((($receiver = smalltalk.send(a, "_selector", [])).klass === smalltalk.Number) ? $receiver <=smalltalk.send(b, "_selector", []) : smalltalk.send($receiver, "__lt_eq", [smalltalk.send(b, "_selector", [])]));})]), "_do_", [(function(each){return smalltalk.send(self, "_exportMethod_of_on_", [each, aClass, aStream]);})]);
@@ -499,7 +510,7 @@ smalltalk.addMethod(
499
510
  "_exportMethodsOf_on_",
500
511
  smalltalk.method({
501
512
  selector: "exportMethodsOf:on:",
502
- fn: function (aClass, aStream){
513
+ fn: function (aClass, aStream) {
503
514
  var self=this;
504
515
  var map=nil;
505
516
  (map=smalltalk.send((smalltalk.Dictionary || Dictionary), "_new", []));
@@ -514,7 +525,7 @@ smalltalk.addMethod(
514
525
  "_exportPackageDefinitionOf_on_",
515
526
  smalltalk.method({
516
527
  selector: "exportPackageDefinitionOf:on:",
517
- fn: function (package, aStream){
528
+ fn: function (package, aStream) {
518
529
  var self=this;
519
530
  (function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("Smalltalk current createPackage: '", "__comma", [smalltalk.send(package, "_name", [])]), "__comma", ["' properties: "]), "__comma", [smalltalk.send(smalltalk.send(package, "_properties", []), "_storeString", [])]), "__comma", ["!"])]);return smalltalk.send($rec, "_lf", []);})(aStream);
520
531
  return self;}
@@ -525,7 +536,7 @@ smalltalk.addMethod(
525
536
  "_exportPackageExtensionsOf_on_",
526
537
  smalltalk.method({
527
538
  selector: "exportPackageExtensionsOf:on:",
528
- fn: function (package, aStream){
539
+ fn: function (package, aStream) {
529
540
  var self=this;
530
541
  var name=nil;
531
542
  var map=nil;
@@ -543,7 +554,7 @@ smalltalk.addMethod(
543
554
  "_exportDefinitionOf_on_",
544
555
  smalltalk.method({
545
556
  selector: "exportDefinitionOf:on:",
546
- fn: function (aClass, aStream){
557
+ fn: function (aClass, aStream) {
547
558
  var self=this;
548
559
  (function($rec){smalltalk.send($rec, "_nextPutAll_", ["smalltalk.addClass("]);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send("'", "__comma", [smalltalk.send(self, "_classNameFor_", [aClass])]), "__comma", ["', "])]);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send("smalltalk.", "__comma", [smalltalk.send(self, "_classNameFor_", [smalltalk.send(aClass, "_superclass", [])])])]);return smalltalk.send($rec, "_nextPutAll_", [", ["]);})(aStream);
549
560
  smalltalk.send(smalltalk.send(aClass, "_instanceVariableNames", []), "_do_separatedBy_", [(function(each){return smalltalk.send(aStream, "_nextPutAll_", [smalltalk.send(smalltalk.send("'", "__comma", [each]), "__comma", ["'"])]);}), (function(){return smalltalk.send(aStream, "_nextPutAll_", [", "]);})]);
@@ -557,7 +568,7 @@ smalltalk.addMethod(
557
568
  "_exportMethod_of_on_",
558
569
  smalltalk.method({
559
570
  selector: "exportMethod:of:on:",
560
- fn: function (aMethod, aClass, aStream){
571
+ fn: function (aMethod, aClass, aStream) {
561
572
  var self=this;
562
573
  (function($rec){smalltalk.send($rec, "_nextPutAll_", ["smalltalk.addMethod("]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(aMethod, "_selector", []), "_asSelector", []), "_asJavascript", []), "__comma", [","])]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", ["smalltalk.method({"]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send("selector: ", "__comma", [smalltalk.send(smalltalk.send(aMethod, "_selector", []), "_asJavascript", [])]), "__comma", [","])]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send("fn: ", "__comma", [smalltalk.send(smalltalk.send(aMethod, "_fn", []), "_compiledSource", [])])]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", ["}),"]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send("smalltalk.", "__comma", [smalltalk.send(self, "_classNameFor_", [aClass])])]);smalltalk.send($rec, "_nextPutAll_", [");"]);smalltalk.send($rec, "_lf", []);return smalltalk.send($rec, "_lf", []);})(aStream);
563
574
  return self;}
@@ -571,7 +582,7 @@ smalltalk.addMethod(
571
582
  "_import_",
572
583
  smalltalk.method({
573
584
  selector: "import:",
574
- fn: function (aStream){
585
+ fn: function (aStream) {
575
586
  var self=this;
576
587
  var chunk=nil;
577
588
  var result=nil;
@@ -591,7 +602,7 @@ smalltalk.addMethod(
591
602
  "_accept_",
592
603
  smalltalk.method({
593
604
  selector: "accept:",
594
- fn: function (aVisitor){
605
+ fn: function (aVisitor) {
595
606
  var self=this;
596
607
  smalltalk.send(aVisitor, "_visitNode_", [self]);
597
608
  return self;}
@@ -602,7 +613,7 @@ smalltalk.addMethod(
602
613
  "_addNode_",
603
614
  smalltalk.method({
604
615
  selector: "addNode:",
605
- fn: function (aNode){
616
+ fn: function (aNode) {
606
617
  var self=this;
607
618
  smalltalk.send(smalltalk.send(self, "_nodes", []), "_add_", [aNode]);
608
619
  return self;}
@@ -613,7 +624,7 @@ smalltalk.addMethod(
613
624
  "_isBlockNode",
614
625
  smalltalk.method({
615
626
  selector: "isBlockNode",
616
- fn: function (){
627
+ fn: function () {
617
628
  var self=this;
618
629
  return false;
619
630
  return self;}
@@ -624,7 +635,7 @@ smalltalk.addMethod(
624
635
  "_isBlockSequenceNode",
625
636
  smalltalk.method({
626
637
  selector: "isBlockSequenceNode",
627
- fn: function (){
638
+ fn: function () {
628
639
  var self=this;
629
640
  return false;
630
641
  return self;}
@@ -635,7 +646,7 @@ smalltalk.addMethod(
635
646
  "_isValueNode",
636
647
  smalltalk.method({
637
648
  selector: "isValueNode",
638
- fn: function (){
649
+ fn: function () {
639
650
  var self=this;
640
651
  return false;
641
652
  return self;}
@@ -646,7 +657,7 @@ smalltalk.addMethod(
646
657
  "_nodes",
647
658
  smalltalk.method({
648
659
  selector: "nodes",
649
- fn: function (){
660
+ fn: function () {
650
661
  var self=this;
651
662
  return (($receiver = self['@nodes']) == nil || $receiver == undefined) ? (function(){return (self['@nodes']=smalltalk.send((smalltalk.Array || Array), "_new", []));})() : $receiver;
652
663
  return self;}
@@ -657,7 +668,7 @@ smalltalk.addMethod(
657
668
  "_nodes_",
658
669
  smalltalk.method({
659
670
  selector: "nodes:",
660
- fn: function (aCollection){
671
+ fn: function (aCollection) {
661
672
  var self=this;
662
673
  (self['@nodes']=aCollection);
663
674
  return self;}
@@ -671,7 +682,7 @@ smalltalk.addMethod(
671
682
  "_accept_",
672
683
  smalltalk.method({
673
684
  selector: "accept:",
674
- fn: function (aVisitor){
685
+ fn: function (aVisitor) {
675
686
  var self=this;
676
687
  smalltalk.send(aVisitor, "_visitAssignmentNode_", [self]);
677
688
  return self;}
@@ -682,7 +693,7 @@ smalltalk.addMethod(
682
693
  "_left",
683
694
  smalltalk.method({
684
695
  selector: "left",
685
- fn: function (){
696
+ fn: function () {
686
697
  var self=this;
687
698
  return self['@left'];
688
699
  return self;}
@@ -693,7 +704,7 @@ smalltalk.addMethod(
693
704
  "_left_",
694
705
  smalltalk.method({
695
706
  selector: "left:",
696
- fn: function (aNode){
707
+ fn: function (aNode) {
697
708
  var self=this;
698
709
  (self['@left']=aNode);
699
710
  smalltalk.send(self['@left'], "_assigned_", [true]);
@@ -705,7 +716,7 @@ smalltalk.addMethod(
705
716
  "_right",
706
717
  smalltalk.method({
707
718
  selector: "right",
708
- fn: function (){
719
+ fn: function () {
709
720
  var self=this;
710
721
  return self['@right'];
711
722
  return self;}
@@ -716,7 +727,7 @@ smalltalk.addMethod(
716
727
  "_right_",
717
728
  smalltalk.method({
718
729
  selector: "right:",
719
- fn: function (aNode){
730
+ fn: function (aNode) {
720
731
  var self=this;
721
732
  (self['@right']=aNode);
722
733
  return self;}
@@ -730,7 +741,7 @@ smalltalk.addMethod(
730
741
  "_accept_",
731
742
  smalltalk.method({
732
743
  selector: "accept:",
733
- fn: function (aVisitor){
744
+ fn: function (aVisitor) {
734
745
  var self=this;
735
746
  smalltalk.send(aVisitor, "_visitBlockNode_", [self]);
736
747
  return self;}
@@ -741,7 +752,7 @@ smalltalk.addMethod(
741
752
  "_inlined",
742
753
  smalltalk.method({
743
754
  selector: "inlined",
744
- fn: function (){
755
+ fn: function () {
745
756
  var self=this;
746
757
  return (($receiver = self['@inlined']) == nil || $receiver == undefined) ? (function(){return false;})() : $receiver;
747
758
  return self;}
@@ -752,7 +763,7 @@ smalltalk.addMethod(
752
763
  "_inlined_",
753
764
  smalltalk.method({
754
765
  selector: "inlined:",
755
- fn: function (aBoolean){
766
+ fn: function (aBoolean) {
756
767
  var self=this;
757
768
  (self['@inlined']=aBoolean);
758
769
  return self;}
@@ -763,7 +774,7 @@ smalltalk.addMethod(
763
774
  "_isBlockNode",
764
775
  smalltalk.method({
765
776
  selector: "isBlockNode",
766
- fn: function (){
777
+ fn: function () {
767
778
  var self=this;
768
779
  return true;
769
780
  return self;}
@@ -774,7 +785,7 @@ smalltalk.addMethod(
774
785
  "_parameters",
775
786
  smalltalk.method({
776
787
  selector: "parameters",
777
- fn: function (){
788
+ fn: function () {
778
789
  var self=this;
779
790
  return (($receiver = self['@parameters']) == nil || $receiver == undefined) ? (function(){return (self['@parameters']=smalltalk.send((smalltalk.Array || Array), "_new", []));})() : $receiver;
780
791
  return self;}
@@ -785,7 +796,7 @@ smalltalk.addMethod(
785
796
  "_parameters_",
786
797
  smalltalk.method({
787
798
  selector: "parameters:",
788
- fn: function (aCollection){
799
+ fn: function (aCollection) {
789
800
  var self=this;
790
801
  (self['@parameters']=aCollection);
791
802
  return self;}
@@ -799,7 +810,7 @@ smalltalk.addMethod(
799
810
  "_accept_",
800
811
  smalltalk.method({
801
812
  selector: "accept:",
802
- fn: function (aVisitor){
813
+ fn: function (aVisitor) {
803
814
  var self=this;
804
815
  smalltalk.send(aVisitor, "_visitCascadeNode_", [self]);
805
816
  return self;}
@@ -810,7 +821,7 @@ smalltalk.addMethod(
810
821
  "_receiver",
811
822
  smalltalk.method({
812
823
  selector: "receiver",
813
- fn: function (){
824
+ fn: function () {
814
825
  var self=this;
815
826
  return self['@receiver'];
816
827
  return self;}
@@ -821,7 +832,7 @@ smalltalk.addMethod(
821
832
  "_receiver_",
822
833
  smalltalk.method({
823
834
  selector: "receiver:",
824
- fn: function (aNode){
835
+ fn: function (aNode) {
825
836
  var self=this;
826
837
  (self['@receiver']=aNode);
827
838
  return self;}
@@ -835,7 +846,7 @@ smalltalk.addMethod(
835
846
  "_accept_",
836
847
  smalltalk.method({
837
848
  selector: "accept:",
838
- fn: function (aVisitor){
849
+ fn: function (aVisitor) {
839
850
  var self=this;
840
851
  smalltalk.send(aVisitor, "_visitDynamicArrayNode_", [self]);
841
852
  return self;}
@@ -849,7 +860,7 @@ smalltalk.addMethod(
849
860
  "_accept_",
850
861
  smalltalk.method({
851
862
  selector: "accept:",
852
- fn: function (aVisitor){
863
+ fn: function (aVisitor) {
853
864
  var self=this;
854
865
  smalltalk.send(aVisitor, "_visitDynamicDictionaryNode_", [self]);
855
866
  return self;}
@@ -863,7 +874,7 @@ smalltalk.addMethod(
863
874
  "_accept_",
864
875
  smalltalk.method({
865
876
  selector: "accept:",
866
- fn: function (aVisitor){
877
+ fn: function (aVisitor) {
867
878
  var self=this;
868
879
  smalltalk.send(aVisitor, "_visitJSStatementNode_", [self]);
869
880
  return self;}
@@ -874,7 +885,7 @@ smalltalk.addMethod(
874
885
  "_source",
875
886
  smalltalk.method({
876
887
  selector: "source",
877
- fn: function (){
888
+ fn: function () {
878
889
  var self=this;
879
890
  return (($receiver = self['@source']) == nil || $receiver == undefined) ? (function(){return "";})() : $receiver;
880
891
  return self;}
@@ -885,7 +896,7 @@ smalltalk.addMethod(
885
896
  "_source_",
886
897
  smalltalk.method({
887
898
  selector: "source:",
888
- fn: function (aString){
899
+ fn: function (aString) {
889
900
  var self=this;
890
901
  (self['@source']=aString);
891
902
  return self;}
@@ -899,7 +910,7 @@ smalltalk.addMethod(
899
910
  "_accept_",
900
911
  smalltalk.method({
901
912
  selector: "accept:",
902
- fn: function (aVisitor){
913
+ fn: function (aVisitor) {
903
914
  var self=this;
904
915
  smalltalk.send(aVisitor, "_visitMethodNode_", [self]);
905
916
  return self;}
@@ -910,7 +921,7 @@ smalltalk.addMethod(
910
921
  "_arguments",
911
922
  smalltalk.method({
912
923
  selector: "arguments",
913
- fn: function (){
924
+ fn: function () {
914
925
  var self=this;
915
926
  return (($receiver = self['@arguments']) == nil || $receiver == undefined) ? (function(){return [];})() : $receiver;
916
927
  return self;}
@@ -921,7 +932,7 @@ smalltalk.addMethod(
921
932
  "_arguments_",
922
933
  smalltalk.method({
923
934
  selector: "arguments:",
924
- fn: function (aCollection){
935
+ fn: function (aCollection) {
925
936
  var self=this;
926
937
  (self['@arguments']=aCollection);
927
938
  return self;}
@@ -932,7 +943,7 @@ smalltalk.addMethod(
932
943
  "_selector",
933
944
  smalltalk.method({
934
945
  selector: "selector",
935
- fn: function (){
946
+ fn: function () {
936
947
  var self=this;
937
948
  return self['@selector'];
938
949
  return self;}
@@ -943,7 +954,7 @@ smalltalk.addMethod(
943
954
  "_selector_",
944
955
  smalltalk.method({
945
956
  selector: "selector:",
946
- fn: function (aString){
957
+ fn: function (aString) {
947
958
  var self=this;
948
959
  (self['@selector']=aString);
949
960
  return self;}
@@ -954,7 +965,7 @@ smalltalk.addMethod(
954
965
  "_source",
955
966
  smalltalk.method({
956
967
  selector: "source",
957
- fn: function (){
968
+ fn: function () {
958
969
  var self=this;
959
970
  return self['@source'];
960
971
  return self;}
@@ -965,7 +976,7 @@ smalltalk.addMethod(
965
976
  "_source_",
966
977
  smalltalk.method({
967
978
  selector: "source:",
968
- fn: function (aString){
979
+ fn: function (aString) {
969
980
  var self=this;
970
981
  (self['@source']=aString);
971
982
  return self;}
@@ -979,7 +990,7 @@ smalltalk.addMethod(
979
990
  "_accept_",
980
991
  smalltalk.method({
981
992
  selector: "accept:",
982
- fn: function (aVisitor){
993
+ fn: function (aVisitor) {
983
994
  var self=this;
984
995
  smalltalk.send(aVisitor, "_visitReturnNode_", [self]);
985
996
  return self;}
@@ -993,7 +1004,7 @@ smalltalk.addMethod(
993
1004
  "_accept_",
994
1005
  smalltalk.method({
995
1006
  selector: "accept:",
996
- fn: function (aVisitor){
1007
+ fn: function (aVisitor) {
997
1008
  var self=this;
998
1009
  smalltalk.send(aVisitor, "_visitSendNode_", [self]);
999
1010
  return self;}
@@ -1004,7 +1015,7 @@ smalltalk.addMethod(
1004
1015
  "_arguments",
1005
1016
  smalltalk.method({
1006
1017
  selector: "arguments",
1007
- fn: function (){
1018
+ fn: function () {
1008
1019
  var self=this;
1009
1020
  return (($receiver = self['@arguments']) == nil || $receiver == undefined) ? (function(){return (self['@arguments']=[]);})() : $receiver;
1010
1021
  return self;}
@@ -1015,7 +1026,7 @@ smalltalk.addMethod(
1015
1026
  "_arguments_",
1016
1027
  smalltalk.method({
1017
1028
  selector: "arguments:",
1018
- fn: function (aCollection){
1029
+ fn: function (aCollection) {
1019
1030
  var self=this;
1020
1031
  (self['@arguments']=aCollection);
1021
1032
  return self;}
@@ -1026,7 +1037,7 @@ smalltalk.addMethod(
1026
1037
  "_cascadeNodeWithMessages_",
1027
1038
  smalltalk.method({
1028
1039
  selector: "cascadeNodeWithMessages:",
1029
- fn: function (aCollection){
1040
+ fn: function (aCollection) {
1030
1041
  var self=this;
1031
1042
  var first=nil;
1032
1043
  (first=(function($rec){smalltalk.send($rec, "_selector_", [smalltalk.send(self, "_selector", [])]);smalltalk.send($rec, "_arguments_", [smalltalk.send(self, "_arguments", [])]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.SendNode || SendNode), "_new", [])));
@@ -1039,7 +1050,7 @@ smalltalk.addMethod(
1039
1050
  "_receiver",
1040
1051
  smalltalk.method({
1041
1052
  selector: "receiver",
1042
- fn: function (){
1053
+ fn: function () {
1043
1054
  var self=this;
1044
1055
  return self['@receiver'];
1045
1056
  return self;}
@@ -1050,7 +1061,7 @@ smalltalk.addMethod(
1050
1061
  "_receiver_",
1051
1062
  smalltalk.method({
1052
1063
  selector: "receiver:",
1053
- fn: function (aNode){
1064
+ fn: function (aNode) {
1054
1065
  var self=this;
1055
1066
  (self['@receiver']=aNode);
1056
1067
  return self;}
@@ -1061,7 +1072,7 @@ smalltalk.addMethod(
1061
1072
  "_selector",
1062
1073
  smalltalk.method({
1063
1074
  selector: "selector",
1064
- fn: function (){
1075
+ fn: function () {
1065
1076
  var self=this;
1066
1077
  return self['@selector'];
1067
1078
  return self;}
@@ -1072,7 +1083,7 @@ smalltalk.addMethod(
1072
1083
  "_selector_",
1073
1084
  smalltalk.method({
1074
1085
  selector: "selector:",
1075
- fn: function (aString){
1086
+ fn: function (aString) {
1076
1087
  var self=this;
1077
1088
  (self['@selector']=aString);
1078
1089
  return self;}
@@ -1083,7 +1094,7 @@ smalltalk.addMethod(
1083
1094
  "_valueForReceiver_",
1084
1095
  smalltalk.method({
1085
1096
  selector: "valueForReceiver:",
1086
- fn: function (anObject){
1097
+ fn: function (anObject) {
1087
1098
  var self=this;
1088
1099
  return (function($rec){smalltalk.send($rec, "_receiver_", [(($receiver = smalltalk.send(self, "_receiver", [])) == nil || $receiver == undefined) ? (function(){return anObject;})() : (function(){return smalltalk.send(smalltalk.send(self, "_receiver", []), "_valueForReceiver_", [anObject]);})()]);smalltalk.send($rec, "_selector_", [smalltalk.send(self, "_selector", [])]);smalltalk.send($rec, "_arguments_", [smalltalk.send(self, "_arguments", [])]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.SendNode || SendNode), "_new", []));
1089
1100
  return self;}
@@ -1097,7 +1108,7 @@ smalltalk.addMethod(
1097
1108
  "_accept_",
1098
1109
  smalltalk.method({
1099
1110
  selector: "accept:",
1100
- fn: function (aVisitor){
1111
+ fn: function (aVisitor) {
1101
1112
  var self=this;
1102
1113
  smalltalk.send(aVisitor, "_visitSequenceNode_", [self]);
1103
1114
  return self;}
@@ -1108,7 +1119,7 @@ smalltalk.addMethod(
1108
1119
  "_asBlockSequenceNode",
1109
1120
  smalltalk.method({
1110
1121
  selector: "asBlockSequenceNode",
1111
- fn: function (){
1122
+ fn: function () {
1112
1123
  var self=this;
1113
1124
  return (function($rec){smalltalk.send($rec, "_nodes_", [smalltalk.send(self, "_nodes", [])]);smalltalk.send($rec, "_temps_", [smalltalk.send(self, "_temps", [])]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.BlockSequenceNode || BlockSequenceNode), "_new", []));
1114
1125
  return self;}
@@ -1119,7 +1130,7 @@ smalltalk.addMethod(
1119
1130
  "_temps",
1120
1131
  smalltalk.method({
1121
1132
  selector: "temps",
1122
- fn: function (){
1133
+ fn: function () {
1123
1134
  var self=this;
1124
1135
  return (($receiver = self['@temps']) == nil || $receiver == undefined) ? (function(){return [];})() : $receiver;
1125
1136
  return self;}
@@ -1130,7 +1141,7 @@ smalltalk.addMethod(
1130
1141
  "_temps_",
1131
1142
  smalltalk.method({
1132
1143
  selector: "temps:",
1133
- fn: function (aCollection){
1144
+ fn: function (aCollection) {
1134
1145
  var self=this;
1135
1146
  (self['@temps']=aCollection);
1136
1147
  return self;}
@@ -1144,7 +1155,7 @@ smalltalk.addMethod(
1144
1155
  "_accept_",
1145
1156
  smalltalk.method({
1146
1157
  selector: "accept:",
1147
- fn: function (aVisitor){
1158
+ fn: function (aVisitor) {
1148
1159
  var self=this;
1149
1160
  smalltalk.send(aVisitor, "_visitBlockSequenceNode_", [self]);
1150
1161
  return self;}
@@ -1155,7 +1166,7 @@ smalltalk.addMethod(
1155
1166
  "_isBlockSequenceNode",
1156
1167
  smalltalk.method({
1157
1168
  selector: "isBlockSequenceNode",
1158
- fn: function (){
1169
+ fn: function () {
1159
1170
  var self=this;
1160
1171
  return true;
1161
1172
  return self;}
@@ -1169,7 +1180,7 @@ smalltalk.addMethod(
1169
1180
  "_accept_",
1170
1181
  smalltalk.method({
1171
1182
  selector: "accept:",
1172
- fn: function (aVisitor){
1183
+ fn: function (aVisitor) {
1173
1184
  var self=this;
1174
1185
  smalltalk.send(aVisitor, "_visitValueNode_", [self]);
1175
1186
  return self;}
@@ -1180,7 +1191,7 @@ smalltalk.addMethod(
1180
1191
  "_isValueNode",
1181
1192
  smalltalk.method({
1182
1193
  selector: "isValueNode",
1183
- fn: function (){
1194
+ fn: function () {
1184
1195
  var self=this;
1185
1196
  return true;
1186
1197
  return self;}
@@ -1191,7 +1202,7 @@ smalltalk.addMethod(
1191
1202
  "_value",
1192
1203
  smalltalk.method({
1193
1204
  selector: "value",
1194
- fn: function (){
1205
+ fn: function () {
1195
1206
  var self=this;
1196
1207
  return self['@value'];
1197
1208
  return self;}
@@ -1202,7 +1213,7 @@ smalltalk.addMethod(
1202
1213
  "_value_",
1203
1214
  smalltalk.method({
1204
1215
  selector: "value:",
1205
- fn: function (anObject){
1216
+ fn: function (anObject) {
1206
1217
  var self=this;
1207
1218
  (self['@value']=anObject);
1208
1219
  return self;}
@@ -1216,7 +1227,7 @@ smalltalk.addMethod(
1216
1227
  "_accept_",
1217
1228
  smalltalk.method({
1218
1229
  selector: "accept:",
1219
- fn: function (aVisitor){
1230
+ fn: function (aVisitor) {
1220
1231
  var self=this;
1221
1232
  smalltalk.send(aVisitor, "_visitVariableNode_", [self]);
1222
1233
  return self;}
@@ -1227,7 +1238,7 @@ smalltalk.addMethod(
1227
1238
  "_assigned",
1228
1239
  smalltalk.method({
1229
1240
  selector: "assigned",
1230
- fn: function (){
1241
+ fn: function () {
1231
1242
  var self=this;
1232
1243
  return (($receiver = self['@assigned']) == nil || $receiver == undefined) ? (function(){return false;})() : $receiver;
1233
1244
  return self;}
@@ -1238,7 +1249,7 @@ smalltalk.addMethod(
1238
1249
  "_assigned_",
1239
1250
  smalltalk.method({
1240
1251
  selector: "assigned:",
1241
- fn: function (aBoolean){
1252
+ fn: function (aBoolean) {
1242
1253
  var self=this;
1243
1254
  (self['@assigned']=aBoolean);
1244
1255
  return self;}
@@ -1252,7 +1263,7 @@ smalltalk.addMethod(
1252
1263
  "_accept_",
1253
1264
  smalltalk.method({
1254
1265
  selector: "accept:",
1255
- fn: function (aVisitor){
1266
+ fn: function (aVisitor) {
1256
1267
  var self=this;
1257
1268
  smalltalk.send(aVisitor, "_visitClassReferenceNode_", [self]);
1258
1269
  return self;}
@@ -1261,12 +1272,48 @@ smalltalk.ClassReferenceNode);
1261
1272
 
1262
1273
 
1263
1274
 
1275
+ smalltalk.addClass('VerbatimNode', smalltalk.Node, ['value'], 'Compiler');
1276
+ smalltalk.addMethod(
1277
+ "_accept_",
1278
+ smalltalk.method({
1279
+ selector: "accept:",
1280
+ fn: function (aVisitor) {
1281
+ var self=this;
1282
+ smalltalk.send(aVisitor, "_visitVerbatimNode_", [self]);
1283
+ return self;}
1284
+ }),
1285
+ smalltalk.VerbatimNode);
1286
+
1287
+ smalltalk.addMethod(
1288
+ "_value",
1289
+ smalltalk.method({
1290
+ selector: "value",
1291
+ fn: function () {
1292
+ var self=this;
1293
+ return self['@value'];
1294
+ return self;}
1295
+ }),
1296
+ smalltalk.VerbatimNode);
1297
+
1298
+ smalltalk.addMethod(
1299
+ "_value_",
1300
+ smalltalk.method({
1301
+ selector: "value:",
1302
+ fn: function (anObject) {
1303
+ var self=this;
1304
+ (self['@value']=anObject);
1305
+ return self;}
1306
+ }),
1307
+ smalltalk.VerbatimNode);
1308
+
1309
+
1310
+
1264
1311
  smalltalk.addClass('NodeVisitor', smalltalk.Object, [], 'Compiler');
1265
1312
  smalltalk.addMethod(
1266
1313
  "_visit_",
1267
1314
  smalltalk.method({
1268
1315
  selector: "visit:",
1269
- fn: function (aNode){
1316
+ fn: function (aNode) {
1270
1317
  var self=this;
1271
1318
  smalltalk.send(aNode, "_accept_", [self]);
1272
1319
  return self;}
@@ -1277,7 +1324,7 @@ smalltalk.addMethod(
1277
1324
  "_visitAssignmentNode_",
1278
1325
  smalltalk.method({
1279
1326
  selector: "visitAssignmentNode:",
1280
- fn: function (aNode){
1327
+ fn: function (aNode) {
1281
1328
  var self=this;
1282
1329
  smalltalk.send(self, "_visitNode_", [aNode]);
1283
1330
  return self;}
@@ -1288,7 +1335,7 @@ smalltalk.addMethod(
1288
1335
  "_visitBlockNode_",
1289
1336
  smalltalk.method({
1290
1337
  selector: "visitBlockNode:",
1291
- fn: function (aNode){
1338
+ fn: function (aNode) {
1292
1339
  var self=this;
1293
1340
  smalltalk.send(self, "_visitNode_", [aNode]);
1294
1341
  return self;}
@@ -1299,7 +1346,7 @@ smalltalk.addMethod(
1299
1346
  "_visitBlockSequenceNode_",
1300
1347
  smalltalk.method({
1301
1348
  selector: "visitBlockSequenceNode:",
1302
- fn: function (aNode){
1349
+ fn: function (aNode) {
1303
1350
  var self=this;
1304
1351
  smalltalk.send(self, "_visitNode_", [aNode]);
1305
1352
  return self;}
@@ -1310,7 +1357,7 @@ smalltalk.addMethod(
1310
1357
  "_visitCascadeNode_",
1311
1358
  smalltalk.method({
1312
1359
  selector: "visitCascadeNode:",
1313
- fn: function (aNode){
1360
+ fn: function (aNode) {
1314
1361
  var self=this;
1315
1362
  smalltalk.send(self, "_visitNode_", [aNode]);
1316
1363
  return self;}
@@ -1321,7 +1368,7 @@ smalltalk.addMethod(
1321
1368
  "_visitClassReferenceNode_",
1322
1369
  smalltalk.method({
1323
1370
  selector: "visitClassReferenceNode:",
1324
- fn: function (aNode){
1371
+ fn: function (aNode) {
1325
1372
  var self=this;
1326
1373
  smalltalk.send(self, "_visitNode_", [aNode]);
1327
1374
  return self;}
@@ -1332,7 +1379,7 @@ smalltalk.addMethod(
1332
1379
  "_visitDynamicArrayNode_",
1333
1380
  smalltalk.method({
1334
1381
  selector: "visitDynamicArrayNode:",
1335
- fn: function (aNode){
1382
+ fn: function (aNode) {
1336
1383
  var self=this;
1337
1384
  smalltalk.send(self, "_visitNode_", [aNode]);
1338
1385
  return self;}
@@ -1343,7 +1390,7 @@ smalltalk.addMethod(
1343
1390
  "_visitDynamicDictionaryNode_",
1344
1391
  smalltalk.method({
1345
1392
  selector: "visitDynamicDictionaryNode:",
1346
- fn: function (aNode){
1393
+ fn: function (aNode) {
1347
1394
  var self=this;
1348
1395
  smalltalk.send(self, "_visitNode_", [aNode]);
1349
1396
  return self;}
@@ -1354,7 +1401,7 @@ smalltalk.addMethod(
1354
1401
  "_visitJSStatementNode_",
1355
1402
  smalltalk.method({
1356
1403
  selector: "visitJSStatementNode:",
1357
- fn: function (aNode){
1404
+ fn: function (aNode) {
1358
1405
  var self=this;
1359
1406
  smalltalk.send(self, "_visitNode_", [aNode]);
1360
1407
  return self;}
@@ -1365,7 +1412,7 @@ smalltalk.addMethod(
1365
1412
  "_visitMethodNode_",
1366
1413
  smalltalk.method({
1367
1414
  selector: "visitMethodNode:",
1368
- fn: function (aNode){
1415
+ fn: function (aNode) {
1369
1416
  var self=this;
1370
1417
  smalltalk.send(self, "_visitNode_", [aNode]);
1371
1418
  return self;}
@@ -1376,7 +1423,7 @@ smalltalk.addMethod(
1376
1423
  "_visitNode_",
1377
1424
  smalltalk.method({
1378
1425
  selector: "visitNode:",
1379
- fn: function (aNode){
1426
+ fn: function (aNode) {
1380
1427
  var self=this;
1381
1428
 
1382
1429
  return self;}
@@ -1387,7 +1434,7 @@ smalltalk.addMethod(
1387
1434
  "_visitReturnNode_",
1388
1435
  smalltalk.method({
1389
1436
  selector: "visitReturnNode:",
1390
- fn: function (aNode){
1437
+ fn: function (aNode) {
1391
1438
  var self=this;
1392
1439
  smalltalk.send(self, "_visitNode_", [aNode]);
1393
1440
  return self;}
@@ -1398,7 +1445,7 @@ smalltalk.addMethod(
1398
1445
  "_visitSendNode_",
1399
1446
  smalltalk.method({
1400
1447
  selector: "visitSendNode:",
1401
- fn: function (aNode){
1448
+ fn: function (aNode) {
1402
1449
  var self=this;
1403
1450
  smalltalk.send(self, "_visitNode_", [aNode]);
1404
1451
  return self;}
@@ -1409,7 +1456,7 @@ smalltalk.addMethod(
1409
1456
  "_visitSequenceNode_",
1410
1457
  smalltalk.method({
1411
1458
  selector: "visitSequenceNode:",
1412
- fn: function (aNode){
1459
+ fn: function (aNode) {
1413
1460
  var self=this;
1414
1461
  smalltalk.send(self, "_visitNode_", [aNode]);
1415
1462
  return self;}
@@ -1420,7 +1467,7 @@ smalltalk.addMethod(
1420
1467
  "_visitValueNode_",
1421
1468
  smalltalk.method({
1422
1469
  selector: "visitValueNode:",
1423
- fn: function (aNode){
1470
+ fn: function (aNode) {
1424
1471
  var self=this;
1425
1472
  smalltalk.send(self, "_visitNode_", [aNode]);
1426
1473
  return self;}
@@ -1431,7 +1478,18 @@ smalltalk.addMethod(
1431
1478
  "_visitVariableNode_",
1432
1479
  smalltalk.method({
1433
1480
  selector: "visitVariableNode:",
1434
- fn: function (aNode){
1481
+ fn: function (aNode) {
1482
+ var self=this;
1483
+ smalltalk.send(self, "_visitNode_", [aNode]);
1484
+ return self;}
1485
+ }),
1486
+ smalltalk.NodeVisitor);
1487
+
1488
+ smalltalk.addMethod(
1489
+ "_visitVerbatimNode_",
1490
+ smalltalk.method({
1491
+ selector: "visitVerbatimNode:",
1492
+ fn: function (aNode) {
1435
1493
  var self=this;
1436
1494
  smalltalk.send(self, "_visitNode_", [aNode]);
1437
1495
  return self;}
@@ -1445,7 +1503,7 @@ smalltalk.addMethod(
1445
1503
  "_classNameFor_",
1446
1504
  smalltalk.method({
1447
1505
  selector: "classNameFor:",
1448
- fn: function (aClass){
1506
+ fn: function (aClass) {
1449
1507
  var self=this;
1450
1508
  return ((($receiver = smalltalk.send(aClass, "_isMetaclass", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(smalltalk.send(smalltalk.send(aClass, "_instanceClass", []), "_name", []), "__comma", [".klass"]);})() : (function(){return ((($receiver = smalltalk.send(aClass, "_isNil", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return "nil";})() : (function(){return smalltalk.send(aClass, "_name", []);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return "nil";}), (function(){return smalltalk.send(aClass, "_name", []);})]));})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(smalltalk.send(smalltalk.send(aClass, "_instanceClass", []), "_name", []), "__comma", [".klass"]);}), (function(){return ((($receiver = smalltalk.send(aClass, "_isNil", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return "nil";})() : (function(){return smalltalk.send(aClass, "_name", []);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return "nil";}), (function(){return smalltalk.send(aClass, "_name", []);})]));})]));
1451
1509
  return self;}
@@ -1456,7 +1514,7 @@ smalltalk.addMethod(
1456
1514
  "_compileNode_",
1457
1515
  smalltalk.method({
1458
1516
  selector: "compileNode:",
1459
- fn: function (aNode){
1517
+ fn: function (aNode) {
1460
1518
  var self=this;
1461
1519
  smalltalk.send(self, "_subclassResponsibility", []);
1462
1520
  return self;}
@@ -1467,7 +1525,7 @@ smalltalk.addMethod(
1467
1525
  "_currentClass",
1468
1526
  smalltalk.method({
1469
1527
  selector: "currentClass",
1470
- fn: function (){
1528
+ fn: function () {
1471
1529
  var self=this;
1472
1530
  return self['@currentClass'];
1473
1531
  return self;}
@@ -1478,7 +1536,7 @@ smalltalk.addMethod(
1478
1536
  "_currentClass_",
1479
1537
  smalltalk.method({
1480
1538
  selector: "currentClass:",
1481
- fn: function (aClass){
1539
+ fn: function (aClass) {
1482
1540
  var self=this;
1483
1541
  (self['@currentClass']=aClass);
1484
1542
  return self;}
@@ -1489,7 +1547,7 @@ smalltalk.addMethod(
1489
1547
  "_pseudoVariables",
1490
1548
  smalltalk.method({
1491
1549
  selector: "pseudoVariables",
1492
- fn: function (){
1550
+ fn: function () {
1493
1551
  var self=this;
1494
1552
  return ["self", "super", "true", "false", "nil", "thisContext"];
1495
1553
  return self;}
@@ -1500,7 +1558,7 @@ smalltalk.addMethod(
1500
1558
  "_safeVariableNameFor_",
1501
1559
  smalltalk.method({
1502
1560
  selector: "safeVariableNameFor:",
1503
- fn: function (aString){
1561
+ fn: function (aString) {
1504
1562
  var self=this;
1505
1563
  return ((($receiver = smalltalk.send(smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk), "_current", []), "_reservedWords", []), "_includes_", [aString])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(aString, "__comma", ["_"]);})() : (function(){return aString;})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(aString, "__comma", ["_"]);}), (function(){return aString;})]));
1506
1564
  return self;}
@@ -1511,7 +1569,7 @@ smalltalk.addMethod(
1511
1569
  "_source",
1512
1570
  smalltalk.method({
1513
1571
  selector: "source",
1514
- fn: function (){
1572
+ fn: function () {
1515
1573
  var self=this;
1516
1574
  return (($receiver = self['@source']) == nil || $receiver == undefined) ? (function(){return "";})() : $receiver;
1517
1575
  return self;}
@@ -1522,7 +1580,7 @@ smalltalk.addMethod(
1522
1580
  "_source_",
1523
1581
  smalltalk.method({
1524
1582
  selector: "source:",
1525
- fn: function (aString){
1583
+ fn: function (aString) {
1526
1584
  var self=this;
1527
1585
  (self['@source']=aString);
1528
1586
  return self;}
@@ -1536,7 +1594,7 @@ smalltalk.addMethod(
1536
1594
  "_argVariables",
1537
1595
  smalltalk.method({
1538
1596
  selector: "argVariables",
1539
- fn: function (){
1597
+ fn: function () {
1540
1598
  var self=this;
1541
1599
  return smalltalk.send(self['@argVariables'], "_copy", []);
1542
1600
  return self;}
@@ -1547,7 +1605,7 @@ smalltalk.addMethod(
1547
1605
  "_checkClass_for_",
1548
1606
  smalltalk.method({
1549
1607
  selector: "checkClass:for:",
1550
- fn: function (aClassName, receiver){
1608
+ fn: function (aClassName, receiver) {
1551
1609
  var self=this;
1552
1610
  smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("((($receiver = ", "__comma", [receiver]), "__comma", [").klass === smalltalk."]), "__comma", [aClassName]), "__comma", [") ? "])]);
1553
1611
  return self;}
@@ -1558,7 +1616,7 @@ smalltalk.addMethod(
1558
1616
  "_compileNode_",
1559
1617
  smalltalk.method({
1560
1618
  selector: "compileNode:",
1561
- fn: function (aNode){
1619
+ fn: function (aNode) {
1562
1620
  var self=this;
1563
1621
  (self['@stream']=smalltalk.send("", "_writeStream", []));
1564
1622
  smalltalk.send(self, "_visit_", [aNode]);
@@ -1571,7 +1629,7 @@ smalltalk.addMethod(
1571
1629
  "_initialize",
1572
1630
  smalltalk.method({
1573
1631
  selector: "initialize",
1574
- fn: function (){
1632
+ fn: function () {
1575
1633
  var self=this;
1576
1634
  smalltalk.send(self, "_initialize", [], smalltalk.FunCodeGenerator.superclass || nil);
1577
1635
  (self['@stream']=smalltalk.send("", "_writeStream", []));
@@ -1588,7 +1646,7 @@ smalltalk.addMethod(
1588
1646
  "_inline_receiver_argumentNodes_",
1589
1647
  smalltalk.method({
1590
1648
  selector: "inline:receiver:argumentNodes:",
1591
- fn: function (aSelector, receiver, aCollection){
1649
+ fn: function (aSelector, receiver, aCollection) {
1592
1650
  var self=this;
1593
1651
  var inlined=nil;
1594
1652
  (inlined=false);
@@ -1613,7 +1671,7 @@ smalltalk.addMethod(
1613
1671
  "_inlineLiteral_receiverNode_argumentNodes_",
1614
1672
  smalltalk.method({
1615
1673
  selector: "inlineLiteral:receiverNode:argumentNodes:",
1616
- fn: function (aSelector, anObject, aCollection){
1674
+ fn: function (aSelector, anObject, aCollection) {
1617
1675
  var self=this;
1618
1676
  var inlined=nil;
1619
1677
  (inlined=false);
@@ -1642,7 +1700,7 @@ smalltalk.addMethod(
1642
1700
  "_isNode_ofClass_",
1643
1701
  smalltalk.method({
1644
1702
  selector: "isNode:ofClass:",
1645
- fn: function (aNode, aClass){
1703
+ fn: function (aNode, aClass) {
1646
1704
  var self=this;
1647
1705
  return smalltalk.send(smalltalk.send(aNode, "_isValueNode", []), "_and_", [(function(){return smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(aNode, "_value", []), "_class", []), "__eq", [aClass]), "_or_", [(function(){return smalltalk.send(smalltalk.send(smalltalk.send(aNode, "_value", []), "__eq", ["self"]), "_and_", [(function(){return smalltalk.send(smalltalk.send(self, "_currentClass", []), "__eq", [aClass]);})]);})]);})]);
1648
1706
  return self;}
@@ -1653,7 +1711,7 @@ smalltalk.addMethod(
1653
1711
  "_knownVariables",
1654
1712
  smalltalk.method({
1655
1713
  selector: "knownVariables",
1656
- fn: function (){
1714
+ fn: function () {
1657
1715
  var self=this;
1658
1716
  return (function($rec){smalltalk.send($rec, "_addAll_", [smalltalk.send(self, "_tempVariables", [])]);smalltalk.send($rec, "_addAll_", [smalltalk.send(self, "_argVariables", [])]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send(self, "_pseudoVariables", []));
1659
1717
  return self;}
@@ -1664,7 +1722,7 @@ smalltalk.addMethod(
1664
1722
  "_performOptimizations",
1665
1723
  smalltalk.method({
1666
1724
  selector: "performOptimizations",
1667
- fn: function (){
1725
+ fn: function () {
1668
1726
  var self=this;
1669
1727
  return smalltalk.send(smalltalk.send(self, "_class", []), "_performOptimizations", []);
1670
1728
  return self;}
@@ -1675,7 +1733,7 @@ smalltalk.addMethod(
1675
1733
  "_send_to_arguments_superSend_",
1676
1734
  smalltalk.method({
1677
1735
  selector: "send:to:arguments:superSend:",
1678
- fn: function (aSelector, aReceiver, aCollection, aBoolean){
1736
+ fn: function (aSelector, aReceiver, aCollection, aBoolean) {
1679
1737
  var self=this;
1680
1738
  return smalltalk.send((smalltalk.String || String), "_streamContents_", [(function(str){var tmp=nil;
1681
1739
  (tmp=self['@stream']);smalltalk.send(str, "_nextPutAll_", ["smalltalk.send("]);smalltalk.send(str, "_nextPutAll_", [aReceiver]);smalltalk.send(str, "_nextPutAll_", [smalltalk.send(smalltalk.send(", \x22", "__comma", [smalltalk.send(aSelector, "_asSelector", [])]), "__comma", ["\x22, ["])]);(self['@stream']=str);smalltalk.send(aCollection, "_do_separatedBy_", [(function(each){return smalltalk.send(self, "_visit_", [each]);}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [", "]);})]);(self['@stream']=tmp);smalltalk.send(str, "_nextPutAll_", ["]"]);((($receiver = aBoolean).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(str, "_nextPutAll_", [smalltalk.send(smalltalk.send(", smalltalk.", "__comma", [smalltalk.send(self, "_classNameFor_", [smalltalk.send(self, "_currentClass", [])])]), "__comma", [".superclass || nil"])]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return smalltalk.send(str, "_nextPutAll_", [smalltalk.send(smalltalk.send(", smalltalk.", "__comma", [smalltalk.send(self, "_classNameFor_", [smalltalk.send(self, "_currentClass", [])])]), "__comma", [".superclass || nil"])]);})]));return smalltalk.send(str, "_nextPutAll_", [")"]);})]);
@@ -1687,7 +1745,7 @@ smalltalk.addMethod(
1687
1745
  "_tempVariables",
1688
1746
  smalltalk.method({
1689
1747
  selector: "tempVariables",
1690
- fn: function (){
1748
+ fn: function () {
1691
1749
  var self=this;
1692
1750
  return smalltalk.send(self['@tempVariables'], "_copy", []);
1693
1751
  return self;}
@@ -1698,7 +1756,7 @@ smalltalk.addMethod(
1698
1756
  "_unknownVariables",
1699
1757
  smalltalk.method({
1700
1758
  selector: "unknownVariables",
1701
- fn: function (){
1759
+ fn: function () {
1702
1760
  var self=this;
1703
1761
  return smalltalk.send(self['@unknownVariables'], "_copy", []);
1704
1762
  return self;}
@@ -1709,7 +1767,7 @@ smalltalk.addMethod(
1709
1767
  "_visit_",
1710
1768
  smalltalk.method({
1711
1769
  selector: "visit:",
1712
- fn: function (aNode){
1770
+ fn: function (aNode) {
1713
1771
  var self=this;
1714
1772
  smalltalk.send(aNode, "_accept_", [self]);
1715
1773
  return self;}
@@ -1720,7 +1778,7 @@ smalltalk.addMethod(
1720
1778
  "_visitAssignmentNode_",
1721
1779
  smalltalk.method({
1722
1780
  selector: "visitAssignmentNode:",
1723
- fn: function (aNode){
1781
+ fn: function (aNode) {
1724
1782
  var self=this;
1725
1783
  smalltalk.send(self['@stream'], "_nextPutAll_", ["("]);
1726
1784
  smalltalk.send(self, "_visit_", [smalltalk.send(aNode, "_left", [])]);
@@ -1735,7 +1793,7 @@ smalltalk.addMethod(
1735
1793
  "_visitBlockNode_",
1736
1794
  smalltalk.method({
1737
1795
  selector: "visitBlockNode:",
1738
- fn: function (aNode){
1796
+ fn: function (aNode) {
1739
1797
  var self=this;
1740
1798
  smalltalk.send(self['@stream'], "_nextPutAll_", ["(function("]);
1741
1799
  smalltalk.send(smalltalk.send(aNode, "_parameters", []), "_do_separatedBy_", [(function(each){smalltalk.send(self['@tempVariables'], "_add_", [each]);return smalltalk.send(self['@stream'], "_nextPutAll_", [each]);}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [", "]);})]);
@@ -1750,7 +1808,7 @@ smalltalk.addMethod(
1750
1808
  "_visitBlockSequenceNode_",
1751
1809
  smalltalk.method({
1752
1810
  selector: "visitBlockSequenceNode:",
1753
- fn: function (aNode){
1811
+ fn: function (aNode) {
1754
1812
  var self=this;
1755
1813
  var index=nil;
1756
1814
  (self['@nestedBlocks']=((($receiver = self['@nestedBlocks']).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)])));
@@ -1766,7 +1824,7 @@ smalltalk.addMethod(
1766
1824
  "_visitCascadeNode_",
1767
1825
  smalltalk.method({
1768
1826
  selector: "visitCascadeNode:",
1769
- fn: function (aNode){
1827
+ fn: function (aNode) {
1770
1828
  var self=this;
1771
1829
  var index=nil;
1772
1830
  (index=(0));
@@ -1784,7 +1842,7 @@ smalltalk.addMethod(
1784
1842
  "_visitClassReferenceNode_",
1785
1843
  smalltalk.method({
1786
1844
  selector: "visitClassReferenceNode:",
1787
- fn: function (aNode){
1845
+ fn: function (aNode) {
1788
1846
  var self=this;
1789
1847
  ((($receiver = smalltalk.send(self['@referencedClasses'], "_includes_", [smalltalk.send(aNode, "_value", [])])).klass === smalltalk.Boolean) ? (! $receiver ? (function(){return smalltalk.send(self['@referencedClasses'], "_add_", [smalltalk.send(aNode, "_value", [])]);})() : nil) : smalltalk.send($receiver, "_ifFalse_", [(function(){return smalltalk.send(self['@referencedClasses'], "_add_", [smalltalk.send(aNode, "_value", [])]);})]));
1790
1848
  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", [")"])]);
@@ -1796,7 +1854,7 @@ smalltalk.addMethod(
1796
1854
  "_visitDynamicArrayNode_",
1797
1855
  smalltalk.method({
1798
1856
  selector: "visitDynamicArrayNode:",
1799
- fn: function (aNode){
1857
+ fn: function (aNode) {
1800
1858
  var self=this;
1801
1859
  smalltalk.send(self['@stream'], "_nextPutAll_", ["["]);
1802
1860
  smalltalk.send(smalltalk.send(aNode, "_nodes", []), "_do_separatedBy_", [(function(each){return smalltalk.send(self, "_visit_", [each]);}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [","]);})]);
@@ -1809,7 +1867,7 @@ smalltalk.addMethod(
1809
1867
  "_visitDynamicDictionaryNode_",
1810
1868
  smalltalk.method({
1811
1869
  selector: "visitDynamicDictionaryNode:",
1812
- fn: function (aNode){
1870
+ fn: function (aNode) {
1813
1871
  var self=this;
1814
1872
  smalltalk.send(self['@stream'], "_nextPutAll_", ["smalltalk.HashedCollection._fromPairs_(["]);
1815
1873
  smalltalk.send(smalltalk.send(aNode, "_nodes", []), "_do_separatedBy_", [(function(each){return smalltalk.send(self, "_visit_", [each]);}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [","]);})]);
@@ -1822,7 +1880,7 @@ smalltalk.addMethod(
1822
1880
  "_visitFailure_",
1823
1881
  smalltalk.method({
1824
1882
  selector: "visitFailure:",
1825
- fn: function (aFailure){
1883
+ fn: function (aFailure) {
1826
1884
  var self=this;
1827
1885
  smalltalk.send(self, "_error_", [smalltalk.send(aFailure, "_asString", [])]);
1828
1886
  return self;}
@@ -1833,7 +1891,7 @@ smalltalk.addMethod(
1833
1891
  "_visitJSStatementNode_",
1834
1892
  smalltalk.method({
1835
1893
  selector: "visitJSStatementNode:",
1836
- fn: function (aNode){
1894
+ fn: function (aNode) {
1837
1895
  var self=this;
1838
1896
  smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(aNode, "_source", [])]);
1839
1897
  return self;}
@@ -1844,7 +1902,7 @@ smalltalk.addMethod(
1844
1902
  "_visitMethodNode_",
1845
1903
  smalltalk.method({
1846
1904
  selector: "visitMethodNode:",
1847
- fn: function (aNode){
1905
+ fn: function (aNode) {
1848
1906
  var self=this;
1849
1907
  var str=nil;
1850
1908
  var currentSelector=nil;
@@ -1882,7 +1940,7 @@ smalltalk.addMethod(
1882
1940
  "_visitReturnNode_",
1883
1941
  smalltalk.method({
1884
1942
  selector: "visitReturnNode:",
1885
- fn: function (aNode){
1943
+ fn: function (aNode) {
1886
1944
  var self=this;
1887
1945
  ((($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);})]));
1888
1946
  ((($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 "]);})]));
@@ -1896,7 +1954,7 @@ smalltalk.addMethod(
1896
1954
  "_visitSendNode_",
1897
1955
  smalltalk.method({
1898
1956
  selector: "visitSendNode:",
1899
- fn: function (aNode){
1957
+ fn: function (aNode) {
1900
1958
  var self=this;
1901
1959
  var str=nil;
1902
1960
  var receiver=nil;
@@ -1918,7 +1976,7 @@ smalltalk.addMethod(
1918
1976
  "_visitSequenceNode_",
1919
1977
  smalltalk.method({
1920
1978
  selector: "visitSequenceNode:",
1921
- fn: function (aNode){
1979
+ fn: function (aNode) {
1922
1980
  var self=this;
1923
1981
  smalltalk.send(smalltalk.send(aNode, "_temps", []), "_do_", [(function(each){var temp=nil;
1924
1982
  (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']);})]);
@@ -1931,7 +1989,7 @@ smalltalk.addMethod(
1931
1989
  "_visitValueNode_",
1932
1990
  smalltalk.method({
1933
1991
  selector: "visitValueNode:",
1934
- fn: function (aNode){
1992
+ fn: function (aNode) {
1935
1993
  var self=this;
1936
1994
  smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(aNode, "_value", []), "_asJavascript", [])]);
1937
1995
  return self;}
@@ -1942,7 +2000,7 @@ smalltalk.addMethod(
1942
2000
  "_visitVariableNode_",
1943
2001
  smalltalk.method({
1944
2002
  selector: "visitVariableNode:",
1945
- fn: function (aNode){
2003
+ fn: function (aNode) {
1946
2004
  var self=this;
1947
2005
  var varName=nil;
1948
2006
  ((($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]);})]));})]));})]));
@@ -1956,7 +2014,7 @@ smalltalk.addMethod(
1956
2014
  "_performOptimizations",
1957
2015
  smalltalk.method({
1958
2016
  selector: "performOptimizations",
1959
- fn: function (){
2017
+ fn: function () {
1960
2018
  var self=this;
1961
2019
  return (($receiver = self['@performOptimizations']) == nil || $receiver == undefined) ? (function(){return true;})() : $receiver;
1962
2020
  return self;}
@@ -1967,7 +2025,7 @@ smalltalk.addMethod(
1967
2025
  "_performOptimizations_",
1968
2026
  smalltalk.method({
1969
2027
  selector: "performOptimizations:",
1970
- fn: function (aBoolean){
2028
+ fn: function (aBoolean) {
1971
2029
  var self=this;
1972
2030
  (self['@performOptimizations']=aBoolean);
1973
2031
  return self;}
@@ -1975,3 +2033,883 @@ return self;}
1975
2033
  smalltalk.FunCodeGenerator.klass);
1976
2034
 
1977
2035
 
2036
+ smalltalk.addClass('ImpCodeGenerator', smalltalk.AbstractCodeGenerator, ['stream', 'nestedBlocks', 'earlyReturn', 'currentSelector', 'unknownVariables', 'tempVariables', 'messageSends', 'referencedClasses', 'classReferenced', 'argVariables', 'mutables', 'target', 'lazyVars', 'realVarNames'], 'Compiler');
2037
+ smalltalk.addMethod(
2038
+ "_aboutToModifyState",
2039
+ smalltalk.method({
2040
+ selector: "aboutToModifyState",
2041
+ fn: function (){
2042
+ var self=this;
2043
+ var list=nil;
2044
+ var old=nil;
2045
+ (list=self['@mutables']);
2046
+ (self['@mutables']=smalltalk.send((smalltalk.Set || Set), "_new", []));
2047
+ (old=smalltalk.send(self, "_switchTarget_", [nil]));
2048
+ smalltalk.send(list, "_do_", [(function(each){var value=nil;
2049
+ smalltalk.send(self, "_switchTarget_", [each]);return smalltalk.send(self, "_realAssign_", [smalltalk.send(self['@lazyVars'], "_at_", [each])]);})]);
2050
+ smalltalk.send(self, "_switchTarget_", [old]);
2051
+ return self;}
2052
+ }),
2053
+ smalltalk.ImpCodeGenerator);
2054
+
2055
+ smalltalk.addMethod(
2056
+ "_argVariables",
2057
+ smalltalk.method({
2058
+ selector: "argVariables",
2059
+ fn: function () {
2060
+ var self=this;
2061
+ return smalltalk.send(self['@argVariables'], "_copy", []);
2062
+ return self;}
2063
+ }),
2064
+ smalltalk.ImpCodeGenerator);
2065
+
2066
+ smalltalk.addMethod(
2067
+ "_assert_",
2068
+ smalltalk.method({
2069
+ selector: "assert:",
2070
+ fn: function (aBoolean) {
2071
+ var self=this;
2072
+ ((($receiver = aBoolean).klass === smalltalk.Boolean) ? (! $receiver ? (function(){return smalltalk.send(self, "_error_", ["assertion failed"]);})() : nil) : smalltalk.send($receiver, "_ifFalse_", [(function(){return smalltalk.send(self, "_error_", ["assertion failed"]);})]));
2073
+ return self;}
2074
+ }),
2075
+ smalltalk.ImpCodeGenerator);
2076
+
2077
+ smalltalk.addMethod(
2078
+ "_checkClass_for_",
2079
+ smalltalk.method({
2080
+ selector: "checkClass:for:",
2081
+ fn: function (aClassName, receiver) {
2082
+ var self=this;
2083
+ smalltalk.send(self, "_prvCheckClass_for_", [aClassName, receiver]);
2084
+ smalltalk.send(self['@stream'], "_nextPutAll_", ["{"]);
2085
+ return self;}
2086
+ }),
2087
+ smalltalk.ImpCodeGenerator);
2088
+
2089
+ smalltalk.addMethod(
2090
+ "_checkClass_for_includeIf_",
2091
+ smalltalk.method({
2092
+ selector: "checkClass:for:includeIf:",
2093
+ fn: function (aClassName, receiver, aBoolean){
2094
+ var self=this;
2095
+ smalltalk.send(self, "_prvCheckClass_for_", [aClassName, receiver]);
2096
+ smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(((($receiver = aBoolean).klass === smalltalk.Boolean) ? ($receiver ? (function(){return "if((";})() : (function(){return "if(!(";})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return "if((";}), (function(){return "if(!(";})])), "__comma", [smalltalk.send(self, "_useValueNamed_", [receiver])]), "__comma", [")) {"])]);
2097
+ return self;}
2098
+ }),
2099
+ smalltalk.ImpCodeGenerator);
2100
+
2101
+ smalltalk.addMethod(
2102
+ "_compileNode_",
2103
+ smalltalk.method({
2104
+ selector: "compileNode:",
2105
+ fn: function (aNode) {
2106
+ var self=this;
2107
+ (self['@stream']=smalltalk.send("", "_writeStream", []));
2108
+ smalltalk.send(self, "_visit_", [aNode]);
2109
+ return smalltalk.send(self['@stream'], "_contents", []);
2110
+ return self;}
2111
+ }),
2112
+ smalltalk.ImpCodeGenerator);
2113
+
2114
+ smalltalk.addMethod(
2115
+ "_ifValueWanted_",
2116
+ smalltalk.method({
2117
+ selector: "ifValueWanted:",
2118
+ fn: function (aBlock){
2119
+ var self=this;
2120
+ smalltalk.send(self['@target'], "_ifNotNil_", [aBlock]);
2121
+ return self;}
2122
+ }),
2123
+ smalltalk.ImpCodeGenerator);
2124
+
2125
+ smalltalk.addMethod(
2126
+ "_initialize",
2127
+ smalltalk.method({
2128
+ selector: "initialize",
2129
+ fn: function (){
2130
+ var self=this;
2131
+ smalltalk.send(self, "_initialize", [], smalltalk.ImpCodeGenerator.superclass || nil);
2132
+ (self['@stream']=smalltalk.send("", "_writeStream", []));
2133
+ (self['@unknownVariables']=[]);
2134
+ (self['@tempVariables']=[]);
2135
+ (self['@argVariables']=[]);
2136
+ (self['@messageSends']=[]);
2137
+ (self['@classReferenced']=[]);
2138
+ (self['@mutables']=smalltalk.send((smalltalk.Set || Set), "_new", []));
2139
+ (self['@realVarNames']=smalltalk.send((smalltalk.Set || Set), "_new", []));
2140
+ (self['@lazyVars']=smalltalk.send((smalltalk.HashedCollection || HashedCollection), "_new", []));
2141
+ (self['@target']=nil);
2142
+ return self;}
2143
+ }),
2144
+ smalltalk.ImpCodeGenerator);
2145
+
2146
+ smalltalk.addMethod(
2147
+ "_inline_receiver_argumentNodes_",
2148
+ smalltalk.method({
2149
+ selector: "inline:receiver:argumentNodes:",
2150
+ fn: function (aSelector, receiver, aCollection){
2151
+ var self=this;
2152
+ var $early={};
2153
+ try{((($receiver = smalltalk.send(aSelector, "__eq", ["ifFalse:"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(smalltalk.send(aCollection, "_first", []), "_isBlockNode", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_checkClass_for_includeIf_", ["Boolean", receiver, false]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_visit_", [smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_nodes", []), "_first", [])]);})]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_nilIfValueWanted", []);})]);return (function(){throw $early=[true]})();})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_checkClass_for_includeIf_", ["Boolean", receiver, false]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_visit_", [smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_nodes", []), "_first", [])]);})]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_nilIfValueWanted", []);})]);return (function(){throw $early=[true]})();})]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return ((($receiver = smalltalk.send(smalltalk.send(aCollection, "_first", []), "_isBlockNode", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_checkClass_for_includeIf_", ["Boolean", receiver, false]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_visit_", [smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_nodes", []), "_first", [])]);})]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_nilIfValueWanted", []);})]);return (function(){throw $early=[true]})();})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_checkClass_for_includeIf_", ["Boolean", receiver, false]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_visit_", [smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_nodes", []), "_first", [])]);})]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_nilIfValueWanted", []);})]);return (function(){throw $early=[true]})();})]));})]));
2154
+ ((($receiver = smalltalk.send(aSelector, "__eq", ["ifTrue:"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(smalltalk.send(aCollection, "_first", []), "_isBlockNode", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_checkClass_for_includeIf_", ["Boolean", receiver, true]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_visit_", [smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_nodes", []), "_first", [])]);})]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_nilIfValueWanted", []);})]);return (function(){throw $early=[true]})();})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_checkClass_for_includeIf_", ["Boolean", receiver, true]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_visit_", [smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_nodes", []), "_first", [])]);})]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_nilIfValueWanted", []);})]);return (function(){throw $early=[true]})();})]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return ((($receiver = smalltalk.send(smalltalk.send(aCollection, "_first", []), "_isBlockNode", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_checkClass_for_includeIf_", ["Boolean", receiver, true]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_visit_", [smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_nodes", []), "_first", [])]);})]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_nilIfValueWanted", []);})]);return (function(){throw $early=[true]})();})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_checkClass_for_includeIf_", ["Boolean", receiver, true]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_visit_", [smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_nodes", []), "_first", [])]);})]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_nilIfValueWanted", []);})]);return (function(){throw $early=[true]})();})]));})]));
2155
+ ((($receiver = smalltalk.send(aSelector, "__eq", ["ifTrue:ifFalse:"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_isBlockNode", []), "_and_", [(function(){return smalltalk.send(smalltalk.send(aCollection, "_second", []), "_isBlockNode", []);})])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_checkClass_for_includeIf_", ["Boolean", receiver, true]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_visit_", [smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_nodes", []), "_first", [])]);})]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_visit_", [smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_second", []), "_nodes", []), "_first", [])]);})]);return (function(){throw $early=[true]})();})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_checkClass_for_includeIf_", ["Boolean", receiver, true]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_visit_", [smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_nodes", []), "_first", [])]);})]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_visit_", [smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_second", []), "_nodes", []), "_first", [])]);})]);return (function(){throw $early=[true]})();})]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return ((($receiver = smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_isBlockNode", []), "_and_", [(function(){return smalltalk.send(smalltalk.send(aCollection, "_second", []), "_isBlockNode", []);})])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_checkClass_for_includeIf_", ["Boolean", receiver, true]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_visit_", [smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_nodes", []), "_first", [])]);})]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_visit_", [smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_second", []), "_nodes", []), "_first", [])]);})]);return (function(){throw $early=[true]})();})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_checkClass_for_includeIf_", ["Boolean", receiver, true]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_visit_", [smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_nodes", []), "_first", [])]);})]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_visit_", [smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_second", []), "_nodes", []), "_first", [])]);})]);return (function(){throw $early=[true]})();})]));})]));
2156
+ ((($receiver = smalltalk.send(aSelector, "__eq", ["ifFalse:ifTrue:"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_isBlockNode", []), "_and_", [(function(){return smalltalk.send(smalltalk.send(aCollection, "_second", []), "_isBlockNode", []);})])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_checkClass_for_includeIf_", ["Boolean", receiver, false]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_visit_", [smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_nodes", []), "_first", [])]);})]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_visit_", [smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_second", []), "_nodes", []), "_first", [])]);})]);return (function(){throw $early=[true]})();})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_checkClass_for_includeIf_", ["Boolean", receiver, false]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_visit_", [smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_nodes", []), "_first", [])]);})]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_visit_", [smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_second", []), "_nodes", []), "_first", [])]);})]);return (function(){throw $early=[true]})();})]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return ((($receiver = smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_isBlockNode", []), "_and_", [(function(){return smalltalk.send(smalltalk.send(aCollection, "_second", []), "_isBlockNode", []);})])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_checkClass_for_includeIf_", ["Boolean", receiver, false]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_visit_", [smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_nodes", []), "_first", [])]);})]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_visit_", [smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_second", []), "_nodes", []), "_first", [])]);})]);return (function(){throw $early=[true]})();})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_checkClass_for_includeIf_", ["Boolean", receiver, false]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_visit_", [smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_nodes", []), "_first", [])]);})]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_visit_", [smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_second", []), "_nodes", []), "_first", [])]);})]);return (function(){throw $early=[true]})();})]));})]));
2157
+ ((($receiver = smalltalk.send(aSelector, "__eq", ["<"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){var operand=nil;
2158
+ (operand=smalltalk.send(self, "_isolatedUse_", [smalltalk.send(aCollection, "_first", [])]));smalltalk.send(self, "_checkClass_for_", ["Number", receiver]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_lazyAssignExpression_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("(", "__comma", [smalltalk.send(self, "_useValueNamed_", [receiver])]), "__comma", ["<"]), "__comma", [operand]), "__comma", [")"])]);})]);return (function(){throw $early=[[smalltalk.send(smalltalk.send((smalltalk.VerbatimNode || VerbatimNode), "_new", []), "_value_", [operand])]]})();})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){var operand=nil;
2159
+ (operand=smalltalk.send(self, "_isolatedUse_", [smalltalk.send(aCollection, "_first", [])]));smalltalk.send(self, "_checkClass_for_", ["Number", receiver]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_lazyAssignExpression_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("(", "__comma", [smalltalk.send(self, "_useValueNamed_", [receiver])]), "__comma", ["<"]), "__comma", [operand]), "__comma", [")"])]);})]);return (function(){throw $early=[[smalltalk.send(smalltalk.send((smalltalk.VerbatimNode || VerbatimNode), "_new", []), "_value_", [operand])]]})();})]));
2160
+ ((($receiver = smalltalk.send(aSelector, "__eq", ["<="])).klass === smalltalk.Boolean) ? ($receiver ? (function(){var operand=nil;
2161
+ (operand=smalltalk.send(self, "_isolatedUse_", [smalltalk.send(aCollection, "_first", [])]));smalltalk.send(self, "_checkClass_for_", ["Number", receiver]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_lazyAssignExpression_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("(", "__comma", [smalltalk.send(self, "_useValueNamed_", [receiver])]), "__comma", ["<="]), "__comma", [operand]), "__comma", [")"])]);})]);return (function(){throw $early=[[smalltalk.send(smalltalk.send((smalltalk.VerbatimNode || VerbatimNode), "_new", []), "_value_", [operand])]]})();})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){var operand=nil;
2162
+ (operand=smalltalk.send(self, "_isolatedUse_", [smalltalk.send(aCollection, "_first", [])]));smalltalk.send(self, "_checkClass_for_", ["Number", receiver]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_lazyAssignExpression_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("(", "__comma", [smalltalk.send(self, "_useValueNamed_", [receiver])]), "__comma", ["<="]), "__comma", [operand]), "__comma", [")"])]);})]);return (function(){throw $early=[[smalltalk.send(smalltalk.send((smalltalk.VerbatimNode || VerbatimNode), "_new", []), "_value_", [operand])]]})();})]));
2163
+ ((($receiver = smalltalk.send(aSelector, "__eq", [">"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){var operand=nil;
2164
+ (operand=smalltalk.send(self, "_isolatedUse_", [smalltalk.send(aCollection, "_first", [])]));smalltalk.send(self, "_checkClass_for_", ["Number", receiver]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_lazyAssignExpression_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("(", "__comma", [smalltalk.send(self, "_useValueNamed_", [receiver])]), "__comma", [">"]), "__comma", [operand]), "__comma", [")"])]);})]);return (function(){throw $early=[[smalltalk.send(smalltalk.send((smalltalk.VerbatimNode || VerbatimNode), "_new", []), "_value_", [operand])]]})();})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){var operand=nil;
2165
+ (operand=smalltalk.send(self, "_isolatedUse_", [smalltalk.send(aCollection, "_first", [])]));smalltalk.send(self, "_checkClass_for_", ["Number", receiver]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_lazyAssignExpression_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("(", "__comma", [smalltalk.send(self, "_useValueNamed_", [receiver])]), "__comma", [">"]), "__comma", [operand]), "__comma", [")"])]);})]);return (function(){throw $early=[[smalltalk.send(smalltalk.send((smalltalk.VerbatimNode || VerbatimNode), "_new", []), "_value_", [operand])]]})();})]));
2166
+ ((($receiver = smalltalk.send(aSelector, "__eq", [">="])).klass === smalltalk.Boolean) ? ($receiver ? (function(){var operand=nil;
2167
+ (operand=smalltalk.send(self, "_isolatedUse_", [smalltalk.send(aCollection, "_first", [])]));smalltalk.send(self, "_checkClass_for_", ["Number", receiver]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_lazyAssignExpression_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("(", "__comma", [smalltalk.send(self, "_useValueNamed_", [receiver])]), "__comma", [">="]), "__comma", [operand]), "__comma", [")"])]);})]);return (function(){throw $early=[[smalltalk.send(smalltalk.send((smalltalk.VerbatimNode || VerbatimNode), "_new", []), "_value_", [operand])]]})();})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){var operand=nil;
2168
+ (operand=smalltalk.send(self, "_isolatedUse_", [smalltalk.send(aCollection, "_first", [])]));smalltalk.send(self, "_checkClass_for_", ["Number", receiver]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_lazyAssignExpression_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("(", "__comma", [smalltalk.send(self, "_useValueNamed_", [receiver])]), "__comma", [">="]), "__comma", [operand]), "__comma", [")"])]);})]);return (function(){throw $early=[[smalltalk.send(smalltalk.send((smalltalk.VerbatimNode || VerbatimNode), "_new", []), "_value_", [operand])]]})();})]));
2169
+ ((($receiver = smalltalk.send(aSelector, "__eq", ["+"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){var operand=nil;
2170
+ (operand=smalltalk.send(self, "_isolatedUse_", [smalltalk.send(aCollection, "_first", [])]));smalltalk.send(self, "_checkClass_for_", ["Number", receiver]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_lazyAssignExpression_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("(", "__comma", [smalltalk.send(self, "_useValueNamed_", [receiver])]), "__comma", ["+"]), "__comma", [operand]), "__comma", [")"])]);})]);return (function(){throw $early=[[smalltalk.send(smalltalk.send((smalltalk.VerbatimNode || VerbatimNode), "_new", []), "_value_", [operand])]]})();})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){var operand=nil;
2171
+ (operand=smalltalk.send(self, "_isolatedUse_", [smalltalk.send(aCollection, "_first", [])]));smalltalk.send(self, "_checkClass_for_", ["Number", receiver]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_lazyAssignExpression_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("(", "__comma", [smalltalk.send(self, "_useValueNamed_", [receiver])]), "__comma", ["+"]), "__comma", [operand]), "__comma", [")"])]);})]);return (function(){throw $early=[[smalltalk.send(smalltalk.send((smalltalk.VerbatimNode || VerbatimNode), "_new", []), "_value_", [operand])]]})();})]));
2172
+ ((($receiver = smalltalk.send(aSelector, "__eq", ["-"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){var operand=nil;
2173
+ (operand=smalltalk.send(self, "_isolatedUse_", [smalltalk.send(aCollection, "_first", [])]));smalltalk.send(self, "_checkClass_for_", ["Number", receiver]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_lazyAssignExpression_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("(", "__comma", [smalltalk.send(self, "_useValueNamed_", [receiver])]), "__comma", ["-"]), "__comma", [operand]), "__comma", [")"])]);})]);return (function(){throw $early=[[smalltalk.send(smalltalk.send((smalltalk.VerbatimNode || VerbatimNode), "_new", []), "_value_", [operand])]]})();})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){var operand=nil;
2174
+ (operand=smalltalk.send(self, "_isolatedUse_", [smalltalk.send(aCollection, "_first", [])]));smalltalk.send(self, "_checkClass_for_", ["Number", receiver]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_lazyAssignExpression_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("(", "__comma", [smalltalk.send(self, "_useValueNamed_", [receiver])]), "__comma", ["-"]), "__comma", [operand]), "__comma", [")"])]);})]);return (function(){throw $early=[[smalltalk.send(smalltalk.send((smalltalk.VerbatimNode || VerbatimNode), "_new", []), "_value_", [operand])]]})();})]));
2175
+ ((($receiver = smalltalk.send(aSelector, "__eq", ["*"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){var operand=nil;
2176
+ (operand=smalltalk.send(self, "_isolatedUse_", [smalltalk.send(aCollection, "_first", [])]));smalltalk.send(self, "_checkClass_for_", ["Number", receiver]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_lazyAssignExpression_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("(", "__comma", [smalltalk.send(self, "_useValueNamed_", [receiver])]), "__comma", ["*"]), "__comma", [operand]), "__comma", [")"])]);})]);return (function(){throw $early=[[smalltalk.send(smalltalk.send((smalltalk.VerbatimNode || VerbatimNode), "_new", []), "_value_", [operand])]]})();})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){var operand=nil;
2177
+ (operand=smalltalk.send(self, "_isolatedUse_", [smalltalk.send(aCollection, "_first", [])]));smalltalk.send(self, "_checkClass_for_", ["Number", receiver]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_lazyAssignExpression_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("(", "__comma", [smalltalk.send(self, "_useValueNamed_", [receiver])]), "__comma", ["*"]), "__comma", [operand]), "__comma", [")"])]);})]);return (function(){throw $early=[[smalltalk.send(smalltalk.send((smalltalk.VerbatimNode || VerbatimNode), "_new", []), "_value_", [operand])]]})();})]));
2178
+ ((($receiver = smalltalk.send(aSelector, "__eq", ["/"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){var operand=nil;
2179
+ (operand=smalltalk.send(self, "_isolatedUse_", [smalltalk.send(aCollection, "_first", [])]));smalltalk.send(self, "_checkClass_for_", ["Number", receiver]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_lazyAssignExpression_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("(", "__comma", [smalltalk.send(self, "_useValueNamed_", [receiver])]), "__comma", ["/"]), "__comma", [operand]), "__comma", [")"])]);})]);return (function(){throw $early=[[smalltalk.send(smalltalk.send((smalltalk.VerbatimNode || VerbatimNode), "_new", []), "_value_", [operand])]]})();})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){var operand=nil;
2180
+ (operand=smalltalk.send(self, "_isolatedUse_", [smalltalk.send(aCollection, "_first", [])]));smalltalk.send(self, "_checkClass_for_", ["Number", receiver]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_lazyAssignExpression_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("(", "__comma", [smalltalk.send(self, "_useValueNamed_", [receiver])]), "__comma", ["/"]), "__comma", [operand]), "__comma", [")"])]);})]);return (function(){throw $early=[[smalltalk.send(smalltalk.send((smalltalk.VerbatimNode || VerbatimNode), "_new", []), "_value_", [operand])]]})();})]));
2181
+ return nil;
2182
+ return self;
2183
+ } catch(e) {if(e===$early)return e[0]; throw e}}
2184
+ }),
2185
+ smalltalk.ImpCodeGenerator);
2186
+
2187
+ smalltalk.addMethod(
2188
+ "_inlineLiteral_receiverNode_argumentNodes_",
2189
+ smalltalk.method({
2190
+ selector: "inlineLiteral:receiverNode:argumentNodes:",
2191
+ fn: function (aSelector, anObject, aCollection){
2192
+ var self=this;
2193
+ var inlined=nil;
2194
+ (inlined=false);
2195
+ ((($receiver = smalltalk.send(aSelector, "__eq", ["whileTrue:"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(smalltalk.send(anObject, "_isBlockNode", []), "_and_", [(function(){return smalltalk.send(smalltalk.send(aCollection, "_first", []), "_isBlockNode", []);})])).klass === smalltalk.Boolean) ? ($receiver ? (function(){var old=nil;
2196
+ smalltalk.send(self, "_prvWhileConditionStatement_pre_condition_post_", ["for(;;){", "if (!(", anObject, ")) {"]);smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send("break}", "__comma", [smalltalk.send(self, "_mylf", [])])]);smalltalk.send(self, "_prvPutAndClose_", [(function(){return smalltalk.send(self, "_visit_targetBeing_", [smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_nodes", []), "_first", []), nil]);})]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){var old=nil;
2197
+ smalltalk.send(self, "_prvWhileConditionStatement_pre_condition_post_", ["for(;;){", "if (!(", anObject, ")) {"]);smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send("break}", "__comma", [smalltalk.send(self, "_mylf", [])])]);smalltalk.send(self, "_prvPutAndClose_", [(function(){return smalltalk.send(self, "_visit_targetBeing_", [smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_nodes", []), "_first", []), nil]);})]);return (inlined=true);})]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return ((($receiver = smalltalk.send(smalltalk.send(anObject, "_isBlockNode", []), "_and_", [(function(){return smalltalk.send(smalltalk.send(aCollection, "_first", []), "_isBlockNode", []);})])).klass === smalltalk.Boolean) ? ($receiver ? (function(){var old=nil;
2198
+ smalltalk.send(self, "_prvWhileConditionStatement_pre_condition_post_", ["for(;;){", "if (!(", anObject, ")) {"]);smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send("break}", "__comma", [smalltalk.send(self, "_mylf", [])])]);smalltalk.send(self, "_prvPutAndClose_", [(function(){return smalltalk.send(self, "_visit_targetBeing_", [smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_nodes", []), "_first", []), nil]);})]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){var old=nil;
2199
+ smalltalk.send(self, "_prvWhileConditionStatement_pre_condition_post_", ["for(;;){", "if (!(", anObject, ")) {"]);smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send("break}", "__comma", [smalltalk.send(self, "_mylf", [])])]);smalltalk.send(self, "_prvPutAndClose_", [(function(){return smalltalk.send(self, "_visit_targetBeing_", [smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_nodes", []), "_first", []), nil]);})]);return (inlined=true);})]));})]));
2200
+ ((($receiver = smalltalk.send(aSelector, "__eq", ["whileFalse:"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(smalltalk.send(anObject, "_isBlockNode", []), "_and_", [(function(){return smalltalk.send(smalltalk.send(aCollection, "_first", []), "_isBlockNode", []);})])).klass === smalltalk.Boolean) ? ($receiver ? (function(){var old=nil;
2201
+ smalltalk.send(self, "_prvWhileConditionStatement_pre_condition_post_", ["for(;;){", "if ((", anObject, ")) {"]);smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send("break}", "__comma", [smalltalk.send(self, "_mylf", [])])]);smalltalk.send(self, "_prvPutAndClose_", [(function(){return smalltalk.send(self, "_visit_targetBeing_", [smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_nodes", []), "_first", []), nil]);})]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){var old=nil;
2202
+ smalltalk.send(self, "_prvWhileConditionStatement_pre_condition_post_", ["for(;;){", "if ((", anObject, ")) {"]);smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send("break}", "__comma", [smalltalk.send(self, "_mylf", [])])]);smalltalk.send(self, "_prvPutAndClose_", [(function(){return smalltalk.send(self, "_visit_targetBeing_", [smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_nodes", []), "_first", []), nil]);})]);return (inlined=true);})]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return ((($receiver = smalltalk.send(smalltalk.send(anObject, "_isBlockNode", []), "_and_", [(function(){return smalltalk.send(smalltalk.send(aCollection, "_first", []), "_isBlockNode", []);})])).klass === smalltalk.Boolean) ? ($receiver ? (function(){var old=nil;
2203
+ smalltalk.send(self, "_prvWhileConditionStatement_pre_condition_post_", ["for(;;){", "if ((", anObject, ")) {"]);smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send("break}", "__comma", [smalltalk.send(self, "_mylf", [])])]);smalltalk.send(self, "_prvPutAndClose_", [(function(){return smalltalk.send(self, "_visit_targetBeing_", [smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_nodes", []), "_first", []), nil]);})]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){var old=nil;
2204
+ smalltalk.send(self, "_prvWhileConditionStatement_pre_condition_post_", ["for(;;){", "if ((", anObject, ")) {"]);smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send("break}", "__comma", [smalltalk.send(self, "_mylf", [])])]);smalltalk.send(self, "_prvPutAndClose_", [(function(){return smalltalk.send(self, "_visit_targetBeing_", [smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_nodes", []), "_first", []), nil]);})]);return (inlined=true);})]));})]));
2205
+ ((($receiver = smalltalk.send(aSelector, "__eq", ["whileTrue"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(anObject, "_isBlockNode", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_prvWhileConditionStatement_pre_condition_post_", ["do{", "}while((", anObject, smalltalk.send("));", "__comma", [smalltalk.send(self, "_mylf", [])])]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_prvWhileConditionStatement_pre_condition_post_", ["do{", "}while((", anObject, smalltalk.send("));", "__comma", [smalltalk.send(self, "_mylf", [])])]);return (inlined=true);})]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return ((($receiver = smalltalk.send(anObject, "_isBlockNode", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_prvWhileConditionStatement_pre_condition_post_", ["do{", "}while((", anObject, smalltalk.send("));", "__comma", [smalltalk.send(self, "_mylf", [])])]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_prvWhileConditionStatement_pre_condition_post_", ["do{", "}while((", anObject, smalltalk.send("));", "__comma", [smalltalk.send(self, "_mylf", [])])]);return (inlined=true);})]));})]));
2206
+ ((($receiver = smalltalk.send(aSelector, "__eq", ["whileFalse"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(anObject, "_isBlockNode", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_prvWhileConditionStatement_pre_condition_post_", ["do{", "}while(!(", anObject, smalltalk.send("));", "__comma", [smalltalk.send(self, "_mylf", [])])]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_prvWhileConditionStatement_pre_condition_post_", ["do{", "}while(!(", anObject, smalltalk.send("));", "__comma", [smalltalk.send(self, "_mylf", [])])]);return (inlined=true);})]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return ((($receiver = smalltalk.send(anObject, "_isBlockNode", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self, "_prvWhileConditionStatement_pre_condition_post_", ["do{", "}while(!(", anObject, smalltalk.send("));", "__comma", [smalltalk.send(self, "_mylf", [])])]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self, "_prvWhileConditionStatement_pre_condition_post_", ["do{", "}while(!(", anObject, smalltalk.send("));", "__comma", [smalltalk.send(self, "_mylf", [])])]);return (inlined=true);})]));})]));
2207
+ ((($receiver = smalltalk.send(["+", "-", "*", "/", "<", "<=", ">=", ">"], "_includes_", [aSelector])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(self, "_prvInlineNumberOperator_on_and_", [aSelector, anObject, smalltalk.send(aCollection, "_first", [])])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return (inlined=true);})]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return ((($receiver = smalltalk.send(self, "_prvInlineNumberOperator_on_and_", [aSelector, anObject, smalltalk.send(aCollection, "_first", [])])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return (inlined=true);})]));})]));
2208
+ ((($receiver = smalltalk.send(aSelector, "__eq", ["ifNil:"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(smalltalk.send(aCollection, "_first", []), "_isBlockNode", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){var rcv=nil;
2209
+ smalltalk.send(self, "_aboutToModifyState", []);(rcv=smalltalk.send(self, "_isolatedUse_", [anObject]));((($receiver = smalltalk.send(rcv, "__eq", ["super"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (rcv="self");})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return (rcv="self");})]));smalltalk.send(self, "_makeTargetRealVariable", []);smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("if((", "__comma", [rcv]), "__comma", [") === nil || ("]), "__comma", [rcv]), "__comma", [") == null) {"])]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_visit_", [smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_nodes", []), "_first", [])]);})]);smalltalk.send(self, "_prvPutAndClose_", [(function(){return smalltalk.send(self, "_lazyAssignValue_", [rcv]);})]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){var rcv=nil;
2210
+ smalltalk.send(self, "_aboutToModifyState", []);(rcv=smalltalk.send(self, "_isolatedUse_", [anObject]));((($receiver = smalltalk.send(rcv, "__eq", ["super"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (rcv="self");})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return (rcv="self");})]));smalltalk.send(self, "_makeTargetRealVariable", []);smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("if((", "__comma", [rcv]), "__comma", [") === nil || ("]), "__comma", [rcv]), "__comma", [") == null) {"])]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_visit_", [smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_nodes", []), "_first", [])]);})]);smalltalk.send(self, "_prvPutAndClose_", [(function(){return smalltalk.send(self, "_lazyAssignValue_", [rcv]);})]);return (inlined=true);})]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return ((($receiver = smalltalk.send(smalltalk.send(aCollection, "_first", []), "_isBlockNode", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){var rcv=nil;
2211
+ smalltalk.send(self, "_aboutToModifyState", []);(rcv=smalltalk.send(self, "_isolatedUse_", [anObject]));((($receiver = smalltalk.send(rcv, "__eq", ["super"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (rcv="self");})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return (rcv="self");})]));smalltalk.send(self, "_makeTargetRealVariable", []);smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("if((", "__comma", [rcv]), "__comma", [") === nil || ("]), "__comma", [rcv]), "__comma", [") == null) {"])]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_visit_", [smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_nodes", []), "_first", [])]);})]);smalltalk.send(self, "_prvPutAndClose_", [(function(){return smalltalk.send(self, "_lazyAssignValue_", [rcv]);})]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){var rcv=nil;
2212
+ smalltalk.send(self, "_aboutToModifyState", []);(rcv=smalltalk.send(self, "_isolatedUse_", [anObject]));((($receiver = smalltalk.send(rcv, "__eq", ["super"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (rcv="self");})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return (rcv="self");})]));smalltalk.send(self, "_makeTargetRealVariable", []);smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("if((", "__comma", [rcv]), "__comma", [") === nil || ("]), "__comma", [rcv]), "__comma", [") == null) {"])]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_visit_", [smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_nodes", []), "_first", [])]);})]);smalltalk.send(self, "_prvPutAndClose_", [(function(){return smalltalk.send(self, "_lazyAssignValue_", [rcv]);})]);return (inlined=true);})]));})]));
2213
+ ((($receiver = smalltalk.send(aSelector, "__eq", ["ifNotNil:"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(smalltalk.send(aCollection, "_first", []), "_isBlockNode", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){var rcv=nil;
2214
+ smalltalk.send(self, "_aboutToModifyState", []);(rcv=smalltalk.send(self, "_isolatedUse_", [anObject]));((($receiver = smalltalk.send(rcv, "__eq", ["super"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (rcv="self");})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return (rcv="self");})]));smalltalk.send(self, "_makeTargetRealVariable", []);smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("if((", "__comma", [rcv]), "__comma", [") !== nil && ("]), "__comma", [rcv]), "__comma", [") != null) {"])]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_visit_", [smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_nodes", []), "_first", [])]);})]);smalltalk.send(self, "_prvPutAndClose_", [(function(){return smalltalk.send(self, "_lazyAssignValue_", [rcv]);})]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){var rcv=nil;
2215
+ smalltalk.send(self, "_aboutToModifyState", []);(rcv=smalltalk.send(self, "_isolatedUse_", [anObject]));((($receiver = smalltalk.send(rcv, "__eq", ["super"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (rcv="self");})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return (rcv="self");})]));smalltalk.send(self, "_makeTargetRealVariable", []);smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("if((", "__comma", [rcv]), "__comma", [") !== nil && ("]), "__comma", [rcv]), "__comma", [") != null) {"])]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_visit_", [smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_nodes", []), "_first", [])]);})]);smalltalk.send(self, "_prvPutAndClose_", [(function(){return smalltalk.send(self, "_lazyAssignValue_", [rcv]);})]);return (inlined=true);})]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return ((($receiver = smalltalk.send(smalltalk.send(aCollection, "_first", []), "_isBlockNode", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){var rcv=nil;
2216
+ smalltalk.send(self, "_aboutToModifyState", []);(rcv=smalltalk.send(self, "_isolatedUse_", [anObject]));((($receiver = smalltalk.send(rcv, "__eq", ["super"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (rcv="self");})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return (rcv="self");})]));smalltalk.send(self, "_makeTargetRealVariable", []);smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("if((", "__comma", [rcv]), "__comma", [") !== nil && ("]), "__comma", [rcv]), "__comma", [") != null) {"])]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_visit_", [smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_nodes", []), "_first", [])]);})]);smalltalk.send(self, "_prvPutAndClose_", [(function(){return smalltalk.send(self, "_lazyAssignValue_", [rcv]);})]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){var rcv=nil;
2217
+ smalltalk.send(self, "_aboutToModifyState", []);(rcv=smalltalk.send(self, "_isolatedUse_", [anObject]));((($receiver = smalltalk.send(rcv, "__eq", ["super"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (rcv="self");})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return (rcv="self");})]));smalltalk.send(self, "_makeTargetRealVariable", []);smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("if((", "__comma", [rcv]), "__comma", [") !== nil && ("]), "__comma", [rcv]), "__comma", [") != null) {"])]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_visit_", [smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_nodes", []), "_first", [])]);})]);smalltalk.send(self, "_prvPutAndClose_", [(function(){return smalltalk.send(self, "_lazyAssignValue_", [rcv]);})]);return (inlined=true);})]));})]));
2218
+ ((($receiver = smalltalk.send(aSelector, "__eq", ["ifNil:ifNotNil:"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_isBlockNode", []), "_and_", [(function(){return smalltalk.send(smalltalk.send(aCollection, "_second", []), "_isBlockNode", []);})])).klass === smalltalk.Boolean) ? ($receiver ? (function(){var rcv=nil;
2219
+ smalltalk.send(self, "_aboutToModifyState", []);(rcv=smalltalk.send(self, "_isolatedUse_", [anObject]));((($receiver = smalltalk.send(rcv, "__eq", ["super"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (rcv="self");})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return (rcv="self");})]));smalltalk.send(self, "_makeTargetRealVariable", []);smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("if((", "__comma", [rcv]), "__comma", [") === nil || ("]), "__comma", [rcv]), "__comma", [") == null) {"])]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_visit_", [smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_nodes", []), "_first", [])]);})]);smalltalk.send(self, "_prvPutAndClose_", [(function(){return smalltalk.send(self, "_visit_", [smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_second", []), "_nodes", []), "_first", [])]);})]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){var rcv=nil;
2220
+ smalltalk.send(self, "_aboutToModifyState", []);(rcv=smalltalk.send(self, "_isolatedUse_", [anObject]));((($receiver = smalltalk.send(rcv, "__eq", ["super"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (rcv="self");})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return (rcv="self");})]));smalltalk.send(self, "_makeTargetRealVariable", []);smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("if((", "__comma", [rcv]), "__comma", [") === nil || ("]), "__comma", [rcv]), "__comma", [") == null) {"])]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_visit_", [smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_nodes", []), "_first", [])]);})]);smalltalk.send(self, "_prvPutAndClose_", [(function(){return smalltalk.send(self, "_visit_", [smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_second", []), "_nodes", []), "_first", [])]);})]);return (inlined=true);})]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return ((($receiver = smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_isBlockNode", []), "_and_", [(function(){return smalltalk.send(smalltalk.send(aCollection, "_second", []), "_isBlockNode", []);})])).klass === smalltalk.Boolean) ? ($receiver ? (function(){var rcv=nil;
2221
+ smalltalk.send(self, "_aboutToModifyState", []);(rcv=smalltalk.send(self, "_isolatedUse_", [anObject]));((($receiver = smalltalk.send(rcv, "__eq", ["super"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (rcv="self");})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return (rcv="self");})]));smalltalk.send(self, "_makeTargetRealVariable", []);smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("if((", "__comma", [rcv]), "__comma", [") === nil || ("]), "__comma", [rcv]), "__comma", [") == null) {"])]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_visit_", [smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_nodes", []), "_first", [])]);})]);smalltalk.send(self, "_prvPutAndClose_", [(function(){return smalltalk.send(self, "_visit_", [smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_second", []), "_nodes", []), "_first", [])]);})]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){var rcv=nil;
2222
+ smalltalk.send(self, "_aboutToModifyState", []);(rcv=smalltalk.send(self, "_isolatedUse_", [anObject]));((($receiver = smalltalk.send(rcv, "__eq", ["super"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (rcv="self");})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return (rcv="self");})]));smalltalk.send(self, "_makeTargetRealVariable", []);smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("if((", "__comma", [rcv]), "__comma", [") === nil || ("]), "__comma", [rcv]), "__comma", [") == null) {"])]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_visit_", [smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_nodes", []), "_first", [])]);})]);smalltalk.send(self, "_prvPutAndClose_", [(function(){return smalltalk.send(self, "_visit_", [smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_second", []), "_nodes", []), "_first", [])]);})]);return (inlined=true);})]));})]));
2223
+ ((($receiver = smalltalk.send(aSelector, "__eq", ["ifNotNil:ifNil:"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_isBlockNode", []), "_and_", [(function(){return smalltalk.send(smalltalk.send(aCollection, "_second", []), "_isBlockNode", []);})])).klass === smalltalk.Boolean) ? ($receiver ? (function(){var rcv=nil;
2224
+ smalltalk.send(self, "_aboutToModifyState", []);(rcv=smalltalk.send(self, "_isolatedUse_", [anObject]));((($receiver = smalltalk.send(rcv, "__eq", ["super"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (rcv="self");})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return (rcv="self");})]));smalltalk.send(self, "_makeTargetRealVariable", []);smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("if((", "__comma", [rcv]), "__comma", [") !== nil && ("]), "__comma", [rcv]), "__comma", [") != null) {"])]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_visit_", [smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_nodes", []), "_first", [])]);})]);smalltalk.send(self, "_prvPutAndClose_", [(function(){return smalltalk.send(self, "_visit_", [smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_second", []), "_nodes", []), "_first", [])]);})]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){var rcv=nil;
2225
+ smalltalk.send(self, "_aboutToModifyState", []);(rcv=smalltalk.send(self, "_isolatedUse_", [anObject]));((($receiver = smalltalk.send(rcv, "__eq", ["super"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (rcv="self");})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return (rcv="self");})]));smalltalk.send(self, "_makeTargetRealVariable", []);smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("if((", "__comma", [rcv]), "__comma", [") !== nil && ("]), "__comma", [rcv]), "__comma", [") != null) {"])]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_visit_", [smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_nodes", []), "_first", [])]);})]);smalltalk.send(self, "_prvPutAndClose_", [(function(){return smalltalk.send(self, "_visit_", [smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_second", []), "_nodes", []), "_first", [])]);})]);return (inlined=true);})]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return ((($receiver = smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_isBlockNode", []), "_and_", [(function(){return smalltalk.send(smalltalk.send(aCollection, "_second", []), "_isBlockNode", []);})])).klass === smalltalk.Boolean) ? ($receiver ? (function(){var rcv=nil;
2226
+ smalltalk.send(self, "_aboutToModifyState", []);(rcv=smalltalk.send(self, "_isolatedUse_", [anObject]));((($receiver = smalltalk.send(rcv, "__eq", ["super"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (rcv="self");})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return (rcv="self");})]));smalltalk.send(self, "_makeTargetRealVariable", []);smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("if((", "__comma", [rcv]), "__comma", [") !== nil && ("]), "__comma", [rcv]), "__comma", [") != null) {"])]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_visit_", [smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_nodes", []), "_first", [])]);})]);smalltalk.send(self, "_prvPutAndClose_", [(function(){return smalltalk.send(self, "_visit_", [smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_second", []), "_nodes", []), "_first", [])]);})]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){var rcv=nil;
2227
+ smalltalk.send(self, "_aboutToModifyState", []);(rcv=smalltalk.send(self, "_isolatedUse_", [anObject]));((($receiver = smalltalk.send(rcv, "__eq", ["super"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (rcv="self");})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return (rcv="self");})]));smalltalk.send(self, "_makeTargetRealVariable", []);smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("if((", "__comma", [rcv]), "__comma", [") !== nil && ("]), "__comma", [rcv]), "__comma", [") != null) {"])]);smalltalk.send(self, "_prvPutAndElse_", [(function(){return smalltalk.send(self, "_visit_", [smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_first", []), "_nodes", []), "_first", [])]);})]);smalltalk.send(self, "_prvPutAndClose_", [(function(){return smalltalk.send(self, "_visit_", [smalltalk.send(smalltalk.send(smalltalk.send(aCollection, "_second", []), "_nodes", []), "_first", [])]);})]);return (inlined=true);})]));})]));
2228
+ ((($receiver = smalltalk.send(aSelector, "__eq", ["isNil"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){var rcv=nil;
2229
+ (rcv=smalltalk.send(self, "_isolatedUse_", [anObject]));((($receiver = smalltalk.send(rcv, "__eq", ["super"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (rcv="self");})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return (rcv="self");})]));smalltalk.send(self, "_lazyAssignValue_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("((", "__comma", [rcv]), "__comma", [") === nil || ("]), "__comma", [rcv]), "__comma", [") == null)"])]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){var rcv=nil;
2230
+ (rcv=smalltalk.send(self, "_isolatedUse_", [anObject]));((($receiver = smalltalk.send(rcv, "__eq", ["super"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (rcv="self");})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return (rcv="self");})]));smalltalk.send(self, "_lazyAssignValue_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("((", "__comma", [rcv]), "__comma", [") === nil || ("]), "__comma", [rcv]), "__comma", [") == null)"])]);return (inlined=true);})]));
2231
+ ((($receiver = smalltalk.send(aSelector, "__eq", ["notNil"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){var rcv=nil;
2232
+ (rcv=smalltalk.send(self, "_isolatedUse_", [anObject]));((($receiver = smalltalk.send(rcv, "__eq", ["super"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (rcv="self");})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return (rcv="self");})]));smalltalk.send(self, "_lazyAssignValue_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("((", "__comma", [rcv]), "__comma", [") !== nil && ("]), "__comma", [rcv]), "__comma", [") != null)"])]);return (inlined=true);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){var rcv=nil;
2233
+ (rcv=smalltalk.send(self, "_isolatedUse_", [anObject]));((($receiver = smalltalk.send(rcv, "__eq", ["super"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (rcv="self");})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return (rcv="self");})]));smalltalk.send(self, "_lazyAssignValue_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("((", "__comma", [rcv]), "__comma", [") !== nil && ("]), "__comma", [rcv]), "__comma", [") != null)"])]);return (inlined=true);})]));
2234
+ return inlined;
2235
+ return self;}
2236
+ }),
2237
+ smalltalk.ImpCodeGenerator);
2238
+
2239
+ smalltalk.addMethod(
2240
+ "_isNode_ofClass_",
2241
+ smalltalk.method({
2242
+ selector: "isNode:ofClass:",
2243
+ fn: function (aNode, aClass) {
2244
+ var self=this;
2245
+ return smalltalk.send(smalltalk.send(aNode, "_isValueNode", []), "_and_", [(function(){return smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(aNode, "_value", []), "_class", []), "__eq", [aClass]), "_or_", [(function(){return smalltalk.send(smalltalk.send(smalltalk.send(aNode, "_value", []), "__eq", ["self"]), "_and_", [(function(){return smalltalk.send(smalltalk.send(self, "_currentClass", []), "__eq", [aClass]);})]);})]);})]);
2246
+ return self;}
2247
+ }),
2248
+ smalltalk.ImpCodeGenerator);
2249
+
2250
+ smalltalk.addMethod(
2251
+ "_isolated_",
2252
+ smalltalk.method({
2253
+ selector: "isolated:",
2254
+ fn: function (node){
2255
+ var self=this;
2256
+ return smalltalk.send(self, "_visit_targetBeing_", [node, smalltalk.send(self, "_nextLazyvarName", [])]);
2257
+ return self;}
2258
+ }),
2259
+ smalltalk.ImpCodeGenerator);
2260
+
2261
+ smalltalk.addMethod(
2262
+ "_isolatedUse_",
2263
+ smalltalk.method({
2264
+ selector: "isolatedUse:",
2265
+ fn: function (node){
2266
+ var self=this;
2267
+ var old=nil;
2268
+ (old=smalltalk.send(self, "_switchTarget_", [smalltalk.send(self, "_nextLazyvarName", [])]));
2269
+ smalltalk.send(self, "_visit_", [node]);
2270
+ return smalltalk.send(self, "_useValueNamed_", [smalltalk.send(self, "_switchTarget_", [old])]);
2271
+ return self;}
2272
+ }),
2273
+ smalltalk.ImpCodeGenerator);
2274
+
2275
+ smalltalk.addMethod(
2276
+ "_knownVariables",
2277
+ smalltalk.method({
2278
+ selector: "knownVariables",
2279
+ fn: function () {
2280
+ var self=this;
2281
+ return (function($rec){smalltalk.send($rec, "_addAll_", [smalltalk.send(self, "_tempVariables", [])]);smalltalk.send($rec, "_addAll_", [smalltalk.send(self, "_argVariables", [])]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send(self, "_pseudoVariables", []));
2282
+ return self;}
2283
+ }),
2284
+ smalltalk.ImpCodeGenerator);
2285
+
2286
+ smalltalk.addMethod(
2287
+ "_lazyAssign_dependsOnState_",
2288
+ smalltalk.method({
2289
+ selector: "lazyAssign:dependsOnState:",
2290
+ fn: function (aString, aBoolean){
2291
+ var self=this;
2292
+ ((($receiver = smalltalk.send(self['@lazyVars'], "_includesKey_", [self['@target']])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self['@lazyVars'], "_at_put_", [self['@target'], aString]);return ((($receiver = aBoolean).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@mutables'], "_add_", [self['@target']]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return smalltalk.send(self['@mutables'], "_add_", [self['@target']]);})]));})() : (function(){return smalltalk.send(self, "_realAssign_", [aString]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){smalltalk.send(self['@lazyVars'], "_at_put_", [self['@target'], aString]);return ((($receiver = aBoolean).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@mutables'], "_add_", [self['@target']]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return smalltalk.send(self['@mutables'], "_add_", [self['@target']]);})]));}), (function(){return smalltalk.send(self, "_realAssign_", [aString]);})]));
2293
+ return self;}
2294
+ }),
2295
+ smalltalk.ImpCodeGenerator);
2296
+
2297
+ smalltalk.addMethod(
2298
+ "_lazyAssignExpression_",
2299
+ smalltalk.method({
2300
+ selector: "lazyAssignExpression:",
2301
+ fn: function (aString){
2302
+ var self=this;
2303
+ smalltalk.send(self, "_lazyAssign_dependsOnState_", [aString, true]);
2304
+ return self;}
2305
+ }),
2306
+ smalltalk.ImpCodeGenerator);
2307
+
2308
+ smalltalk.addMethod(
2309
+ "_lazyAssignValue_",
2310
+ smalltalk.method({
2311
+ selector: "lazyAssignValue:",
2312
+ fn: function (aString){
2313
+ var self=this;
2314
+ smalltalk.send(self, "_lazyAssign_dependsOnState_", [aString, false]);
2315
+ return self;}
2316
+ }),
2317
+ smalltalk.ImpCodeGenerator);
2318
+
2319
+ smalltalk.addMethod(
2320
+ "_makeTargetRealVariable",
2321
+ smalltalk.method({
2322
+ selector: "makeTargetRealVariable",
2323
+ fn: function (){
2324
+ var self=this;
2325
+ ((($receiver = smalltalk.send(self['@lazyVars'], "_includesKey_", [self['@target']])).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self['@lazyVars'], "_removeKey_", [self['@target']]);smalltalk.send(self['@lazyVars'], "_at_put_", [smalltalk.send("assigned ", "__comma", [self['@target']]), nil]);return smalltalk.send(self['@realVarNames'], "_add_", [self['@target']]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self['@lazyVars'], "_removeKey_", [self['@target']]);smalltalk.send(self['@lazyVars'], "_at_put_", [smalltalk.send("assigned ", "__comma", [self['@target']]), nil]);return smalltalk.send(self['@realVarNames'], "_add_", [self['@target']]);})]));
2326
+ return self;}
2327
+ }),
2328
+ smalltalk.ImpCodeGenerator);
2329
+
2330
+ smalltalk.addMethod(
2331
+ "_mylf",
2332
+ smalltalk.method({
2333
+ selector: "mylf",
2334
+ fn: function () {
2335
+ var self=this;
2336
+ return smalltalk.send(smalltalk.send((smalltalk.String || String), "_lf", []), "__comma", [smalltalk.send(smalltalk.send((smalltalk.Array || Array), "_new_", [((($receiver = self['@nestedBlocks']).klass === smalltalk.Number) ? $receiver +(2) : smalltalk.send($receiver, "__plus", [(2)]))]), "_join_", [smalltalk.send((smalltalk.String || String), "_tab", [])])]);
2337
+ return self;}
2338
+ }),
2339
+ smalltalk.ImpCodeGenerator);
2340
+
2341
+ smalltalk.addMethod(
2342
+ "_nextLazyvarName",
2343
+ smalltalk.method({
2344
+ selector: "nextLazyvarName",
2345
+ fn: function (){
2346
+ var self=this;
2347
+ var name=nil;
2348
+ (name=smalltalk.send("$", "__comma", [smalltalk.send(smalltalk.send(self['@lazyVars'], "_size", []), "_asString", [])]));
2349
+ smalltalk.send(self['@lazyVars'], "_at_put_", [name, name]);
2350
+ return name;
2351
+ return self;}
2352
+ }),
2353
+ smalltalk.ImpCodeGenerator);
2354
+
2355
+ smalltalk.addMethod(
2356
+ "_nilIfValueWanted",
2357
+ smalltalk.method({
2358
+ selector: "nilIfValueWanted",
2359
+ fn: function (){
2360
+ var self=this;
2361
+ (($receiver = self['@target']) != nil && $receiver != undefined) ? (function(){return smalltalk.send(self, "_lazyAssignValue_", ["nil"]);})() : nil;
2362
+ return self;}
2363
+ }),
2364
+ smalltalk.ImpCodeGenerator);
2365
+
2366
+ smalltalk.addMethod(
2367
+ "_performOptimizations",
2368
+ smalltalk.method({
2369
+ selector: "performOptimizations",
2370
+ fn: function () {
2371
+ var self=this;
2372
+ return smalltalk.send(smalltalk.send(self, "_class", []), "_performOptimizations", []);
2373
+ return self;}
2374
+ }),
2375
+ smalltalk.ImpCodeGenerator);
2376
+
2377
+ smalltalk.addMethod(
2378
+ "_prvCheckClass_for_",
2379
+ smalltalk.method({
2380
+ selector: "prvCheckClass:for:",
2381
+ fn: function (aClassName, receiver){
2382
+ var self=this;
2383
+ smalltalk.send(self, "_makeTargetRealVariable", []);
2384
+ smalltalk.send(self, "_aboutToModifyState", []);
2385
+ smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("if((", "__comma", [smalltalk.send(self, "_useValueNamed_", [receiver])]), "__comma", [").klass === smalltalk."]), "__comma", [aClassName]), "__comma", [") "])]);
2386
+ return self;}
2387
+ }),
2388
+ smalltalk.ImpCodeGenerator);
2389
+
2390
+ smalltalk.addMethod(
2391
+ "_prvInlineNumberOperator_on_and_",
2392
+ smalltalk.method({
2393
+ selector: "prvInlineNumberOperator:on:and:",
2394
+ fn: function (aSelector, receiverNode, operandNode){
2395
+ var self=this;
2396
+ var $early={};
2397
+ try{((($receiver = smalltalk.send(aSelector, "__eq", [aSelector])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(self, "_isNode_ofClass_", [receiverNode, (smalltalk.Number || Number)])).klass === smalltalk.Boolean) ? ($receiver ? (function(){var rcv=nil;
2398
+ var operand=nil;
2399
+ (rcv=smalltalk.send(self, "_isolated_", [receiverNode]));(operand=smalltalk.send(self, "_isolated_", [operandNode]));smalltalk.send(self, "_lazyAssignValue_", [smalltalk.send(smalltalk.send(smalltalk.send(self, "_useValueNamed_", [rcv]), "__comma", [aSelector]), "__comma", [smalltalk.send(self, "_useValueNamed_", [operand])])]);return (function(){throw $early=[true]})();})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){var rcv=nil;
2400
+ var operand=nil;
2401
+ (rcv=smalltalk.send(self, "_isolated_", [receiverNode]));(operand=smalltalk.send(self, "_isolated_", [operandNode]));smalltalk.send(self, "_lazyAssignValue_", [smalltalk.send(smalltalk.send(smalltalk.send(self, "_useValueNamed_", [rcv]), "__comma", [aSelector]), "__comma", [smalltalk.send(self, "_useValueNamed_", [operand])])]);return (function(){throw $early=[true]})();})]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return ((($receiver = smalltalk.send(self, "_isNode_ofClass_", [receiverNode, (smalltalk.Number || Number)])).klass === smalltalk.Boolean) ? ($receiver ? (function(){var rcv=nil;
2402
+ var operand=nil;
2403
+ (rcv=smalltalk.send(self, "_isolated_", [receiverNode]));(operand=smalltalk.send(self, "_isolated_", [operandNode]));smalltalk.send(self, "_lazyAssignValue_", [smalltalk.send(smalltalk.send(smalltalk.send(self, "_useValueNamed_", [rcv]), "__comma", [aSelector]), "__comma", [smalltalk.send(self, "_useValueNamed_", [operand])])]);return (function(){throw $early=[true]})();})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){var rcv=nil;
2404
+ var operand=nil;
2405
+ (rcv=smalltalk.send(self, "_isolated_", [receiverNode]));(operand=smalltalk.send(self, "_isolated_", [operandNode]));smalltalk.send(self, "_lazyAssignValue_", [smalltalk.send(smalltalk.send(smalltalk.send(self, "_useValueNamed_", [rcv]), "__comma", [aSelector]), "__comma", [smalltalk.send(self, "_useValueNamed_", [operand])])]);return (function(){throw $early=[true]})();})]));})]));
2406
+ return false;
2407
+ return self;
2408
+ } catch(e) {if(e===$early)return e[0]; throw e}}
2409
+ }),
2410
+ smalltalk.ImpCodeGenerator);
2411
+
2412
+ smalltalk.addMethod(
2413
+ "_prvPutAndClose_",
2414
+ smalltalk.method({
2415
+ selector: "prvPutAndClose:",
2416
+ fn: function (aBlock) {
2417
+ var self=this;
2418
+ smalltalk.send(aBlock, "_value", []);
2419
+ smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send("}", "__comma", [smalltalk.send(self, "_mylf", [])])]);
2420
+ return self;}
2421
+ }),
2422
+ smalltalk.ImpCodeGenerator);
2423
+
2424
+ smalltalk.addMethod(
2425
+ "_prvPutAndElse_",
2426
+ smalltalk.method({
2427
+ selector: "prvPutAndElse:",
2428
+ fn: function (aBlock) {
2429
+ var self=this;
2430
+ smalltalk.send(aBlock, "_value", []);
2431
+ smalltalk.send(self['@stream'], "_nextPutAll_", ["} else {"]);
2432
+ return self;}
2433
+ }),
2434
+ smalltalk.ImpCodeGenerator);
2435
+
2436
+ smalltalk.addMethod(
2437
+ "_prvWhileConditionStatement_pre_condition_post_",
2438
+ smalltalk.method({
2439
+ selector: "prvWhileConditionStatement:pre:condition:post:",
2440
+ fn: function (stmtString, preString, anObject, postString){
2441
+ var self=this;
2442
+ var x=nil;
2443
+ smalltalk.send(self['@stream'], "_nextPutAll_", [stmtString]);
2444
+ (x=smalltalk.send(self, "_isolatedUse_", [smalltalk.send(smalltalk.send(anObject, "_nodes", []), "_first", [])]));
2445
+ smalltalk.send(x, "_ifEmpty_", [(function(){return (x="\x22should not reach - receiver includes ^\x22");})]);
2446
+ smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(preString, "__comma", [x]), "__comma", [postString])]);
2447
+ smalltalk.send(self, "_nilIfValueWanted", []);
2448
+ return self;}
2449
+ }),
2450
+ smalltalk.ImpCodeGenerator);
2451
+
2452
+ smalltalk.addMethod(
2453
+ "_putTemps_",
2454
+ smalltalk.method({
2455
+ selector: "putTemps:",
2456
+ fn: function (temps) {
2457
+ var self=this;
2458
+ smalltalk.send(temps, "_ifNotEmpty_", [(function(){smalltalk.send(self['@stream'], "_nextPutAll_", ["var "]);smalltalk.send(temps, "_do_separatedBy_", [(function(each){var temp=nil;
2459
+ (temp=smalltalk.send(self, "_safeVariableNameFor_", [each]));smalltalk.send(self['@tempVariables'], "_add_", [temp]);return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(temp, "__comma", ["=nil"])]);}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [","]);})]);return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(";", "__comma", [smalltalk.send(self, "_mylf", [])])]);})]);
2460
+ return self;}
2461
+ }),
2462
+ smalltalk.ImpCodeGenerator);
2463
+
2464
+ smalltalk.addMethod(
2465
+ "_realAssign_",
2466
+ smalltalk.method({
2467
+ selector: "realAssign:",
2468
+ fn: function (aString){
2469
+ var self=this;
2470
+ var closer=nil;
2471
+ smalltalk.send(aString, "_ifNotEmpty_", [(function(){smalltalk.send(self, "_aboutToModifyState", []);(closer="");smalltalk.send(self, "_ifValueWanted_", [(function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [((($receiver = smalltalk.send(self['@target'], "__eq", ["^"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return "return ";})() : (function(){return ((($receiver = smalltalk.send(self['@target'], "__eq", ["!"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){(closer="]");return "throw $early=[";})() : (function(){return smalltalk.send(self['@target'], "__comma", ["="]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){(closer="]");return "throw $early=[";}), (function(){return smalltalk.send(self['@target'], "__comma", ["="]);})]));})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return "return ";}), (function(){return ((($receiver = smalltalk.send(self['@target'], "__eq", ["!"])).klass === smalltalk.Boolean) ? ($receiver ? (function(){(closer="]");return "throw $early=[";})() : (function(){return smalltalk.send(self['@target'], "__comma", ["="]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){(closer="]");return "throw $early=[";}), (function(){return smalltalk.send(self['@target'], "__comma", ["="]);})]));})]))]);})]);smalltalk.send(self, "_makeTargetRealVariable", []);return smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.send(aString, "__comma", [closer]), "__comma", [";"]), "__comma", [smalltalk.send(self, "_mylf", [])])]);})]);
2472
+ return self;}
2473
+ }),
2474
+ smalltalk.ImpCodeGenerator);
2475
+
2476
+ smalltalk.addMethod(
2477
+ "_send_to_arguments_superSend_",
2478
+ smalltalk.method({
2479
+ selector: "send:to:arguments:superSend:",
2480
+ fn: function (aSelector, aReceiver, aCollection, aBoolean){
2481
+ var self=this;
2482
+ var args=nil;
2483
+ (args=smalltalk.send(self, "_isolated_", [(function($rec){smalltalk.send($rec, "_nodes_", [aCollection]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.DynamicArrayNode || DynamicArrayNode), "_new", []))]));
2484
+ smalltalk.send(self, "_lazyAssignExpression_", [smalltalk.send((smalltalk.String || String), "_streamContents_", [(function(str){smalltalk.send(str, "_nextPutAll_", ["smalltalk.send("]);smalltalk.send(str, "_nextPutAll_", [smalltalk.send(self, "_useValueNamed_", [aReceiver])]);smalltalk.send(str, "_nextPutAll_", [smalltalk.send(smalltalk.send(", \x22", "__comma", [smalltalk.send(aSelector, "_asSelector", [])]), "__comma", ["\x22, "])]);smalltalk.send(str, "_nextPutAll_", [smalltalk.send(self, "_useValueNamed_", [args])]);((($receiver = aBoolean).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(str, "_nextPutAll_", [smalltalk.send(", smalltalk.", "__comma", [smalltalk.send(self, "_classNameFor_", [smalltalk.send(smalltalk.send(self, "_currentClass", []), "_superclass", [])])])]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return smalltalk.send(str, "_nextPutAll_", [smalltalk.send(", smalltalk.", "__comma", [smalltalk.send(self, "_classNameFor_", [smalltalk.send(smalltalk.send(self, "_currentClass", []), "_superclass", [])])])]);})]));return smalltalk.send(str, "_nextPutAll_", [")"]);})])]);
2485
+ return self;}
2486
+ }),
2487
+ smalltalk.ImpCodeGenerator);
2488
+
2489
+ smalltalk.addMethod(
2490
+ "_sequenceOfNodes_temps_",
2491
+ smalltalk.method({
2492
+ selector: "sequenceOfNodes:temps:",
2493
+ fn: function (nodes, temps){
2494
+ var self=this;
2495
+ ((($receiver = smalltalk.send(nodes, "_isEmpty", [])).klass === smalltalk.Boolean) ? (! $receiver ? (function(){var old=nil;
2496
+ var index=nil;
2497
+ smalltalk.send(self, "_putTemps_", [temps]);(old=smalltalk.send(self, "_switchTarget_", [nil]));(index=(0));return smalltalk.send(nodes, "_do_", [(function(each){(index=((($receiver = index).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)])));((($receiver = smalltalk.send(index, "__eq", [smalltalk.send(nodes, "_size", [])])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self, "_switchTarget_", [old]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return smalltalk.send(self, "_switchTarget_", [old]);})]));return smalltalk.send(self, "_visit_", [each]);})]);})() : (function(){return smalltalk.send(self, "_nilIfValueWanted", []);})()) : smalltalk.send($receiver, "_ifFalse_ifTrue_", [(function(){var old=nil;
2498
+ var index=nil;
2499
+ smalltalk.send(self, "_putTemps_", [temps]);(old=smalltalk.send(self, "_switchTarget_", [nil]));(index=(0));return smalltalk.send(nodes, "_do_", [(function(each){(index=((($receiver = index).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)])));((($receiver = smalltalk.send(index, "__eq", [smalltalk.send(nodes, "_size", [])])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self, "_switchTarget_", [old]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return smalltalk.send(self, "_switchTarget_", [old]);})]));return smalltalk.send(self, "_visit_", [each]);})]);}), (function(){return smalltalk.send(self, "_nilIfValueWanted", []);})]));
2500
+ return self;}
2501
+ }),
2502
+ smalltalk.ImpCodeGenerator);
2503
+
2504
+ smalltalk.addMethod(
2505
+ "_switchTarget_",
2506
+ smalltalk.method({
2507
+ selector: "switchTarget:",
2508
+ fn: function (aString){
2509
+ var self=this;
2510
+ var old=nil;
2511
+ (old=self['@target']);
2512
+ (self['@target']=aString);
2513
+ return old;
2514
+ return self;}
2515
+ }),
2516
+ smalltalk.ImpCodeGenerator);
2517
+
2518
+ smalltalk.addMethod(
2519
+ "_tempVariables",
2520
+ smalltalk.method({
2521
+ selector: "tempVariables",
2522
+ fn: function () {
2523
+ var self=this;
2524
+ return smalltalk.send(self['@tempVariables'], "_copy", []);
2525
+ return self;}
2526
+ }),
2527
+ smalltalk.ImpCodeGenerator);
2528
+
2529
+ smalltalk.addMethod(
2530
+ "_unknownVariables",
2531
+ smalltalk.method({
2532
+ selector: "unknownVariables",
2533
+ fn: function () {
2534
+ var self=this;
2535
+ return smalltalk.send(self['@unknownVariables'], "_copy", []);
2536
+ return self;}
2537
+ }),
2538
+ smalltalk.ImpCodeGenerator);
2539
+
2540
+ smalltalk.addMethod(
2541
+ "_useValueNamed_",
2542
+ smalltalk.method({
2543
+ selector: "useValueNamed:",
2544
+ fn: function (key){
2545
+ var self=this;
2546
+ var $early={};
2547
+ try{var val=nil;
2548
+ ((($receiver = smalltalk.send(self['@realVarNames'], "_includes_", [key])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (function(){throw $early=[key]})();})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return (function(){throw $early=[key]})();})]));
2549
+ smalltalk.send(self['@mutables'], "_remove_", [key]);
2550
+ return smalltalk.send(self['@lazyVars'], "_at_", [key]);
2551
+ return self;
2552
+ } catch(e) {if(e===$early)return e[0]; throw e}}
2553
+ }),
2554
+ smalltalk.ImpCodeGenerator);
2555
+
2556
+ smalltalk.addMethod(
2557
+ "_visit_",
2558
+ smalltalk.method({
2559
+ selector: "visit:",
2560
+ fn: function (aNode) {
2561
+ var self=this;
2562
+ smalltalk.send(aNode, "_accept_", [self]);
2563
+ return self;}
2564
+ }),
2565
+ smalltalk.ImpCodeGenerator);
2566
+
2567
+ smalltalk.addMethod(
2568
+ "_visit_targetBeing_",
2569
+ smalltalk.method({
2570
+ selector: "visit:targetBeing:",
2571
+ fn: function (aNode, aString){
2572
+ var self=this;
2573
+ var old=nil;
2574
+ (old=smalltalk.send(self, "_switchTarget_", [aString]));
2575
+ smalltalk.send(self, "_visit_", [aNode]);
2576
+ return smalltalk.send(self, "_switchTarget_", [old]);
2577
+ return self;}
2578
+ }),
2579
+ smalltalk.ImpCodeGenerator);
2580
+
2581
+ smalltalk.addMethod(
2582
+ "_visitAssignmentNode_",
2583
+ smalltalk.method({
2584
+ selector: "visitAssignmentNode:",
2585
+ fn: function (aNode){
2586
+ var self=this;
2587
+ var olds=nil;
2588
+ var oldt=nil;
2589
+ (olds=self['@stream']);
2590
+ (self['@stream']=smalltalk.send("", "_writeStream", []));
2591
+ (oldt=smalltalk.send(self, "_switchTarget_", [smalltalk.send(self, "_nextLazyvarName", [])]));
2592
+ smalltalk.send(self, "_visit_", [smalltalk.send(aNode, "_left", [])]);
2593
+ smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(self['@lazyVars'], "_at_", [self['@target']]), "_~_eq", [self['@target']])]);
2594
+ smalltalk.send(self, "_switchTarget_", [smalltalk.send(self, "_useValueNamed_", [smalltalk.send(self, "_switchTarget_", [nil])])]);
2595
+ smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(self['@lazyVars'], "_includesKey_", [self['@target']]), "_not", [])]);
2596
+ (self['@stream']=olds);
2597
+ smalltalk.send(self, "_visit_", [smalltalk.send(aNode, "_right", [])]);
2598
+ (olds=smalltalk.send(self, "_switchTarget_", [oldt]));
2599
+ smalltalk.send(self, "_ifValueWanted_", [(function(){return smalltalk.send(self, "_lazyAssignExpression_", [olds]);})]);
2600
+ return self;}
2601
+ }),
2602
+ smalltalk.ImpCodeGenerator);
2603
+
2604
+ smalltalk.addMethod(
2605
+ "_visitBlockNode_",
2606
+ smalltalk.method({
2607
+ selector: "visitBlockNode:",
2608
+ fn: function (aNode){
2609
+ var self=this;
2610
+ var oldt=nil;
2611
+ var olds=nil;
2612
+ var oldm=nil;
2613
+ smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(smalltalk.send(aNode, "_nodes", []), "_size", []), "__eq", [(1)])]);
2614
+ (oldt=smalltalk.send(self, "_switchTarget_", ["^"]));
2615
+ (olds=self['@stream']);
2616
+ (self['@stream']=smalltalk.send("", "_writeStream", []));
2617
+ smalltalk.send(self['@stream'], "_nextPutAll_", ["(function("]);
2618
+ smalltalk.send(smalltalk.send(aNode, "_parameters", []), "_do_separatedBy_", [(function(each){smalltalk.send(self['@tempVariables'], "_add_", [each]);return smalltalk.send(self['@stream'], "_nextPutAll_", [each]);}), (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", [", "]);})]);
2619
+ smalltalk.send(self['@stream'], "_nextPutAll_", ["){"]);
2620
+ (self['@nestedBlocks']=((($receiver = self['@nestedBlocks']).klass === smalltalk.Number) ? $receiver +(1) : smalltalk.send($receiver, "__plus", [(1)])));
2621
+ (oldm=self['@mutables']);
2622
+ (self['@mutables']=smalltalk.send((smalltalk.Set || Set), "_new", []));
2623
+ smalltalk.send(self, "_visit_", [smalltalk.send(smalltalk.send(aNode, "_nodes", []), "_first", [])]);
2624
+ smalltalk.send(self, "_assert_", [smalltalk.send(self['@mutables'], "_isEmpty", [])]);
2625
+ (self['@mutables']=oldm);
2626
+ (self['@nestedBlocks']=((($receiver = self['@nestedBlocks']).klass === smalltalk.Number) ? $receiver -(1) : smalltalk.send($receiver, "__minus", [(1)])));
2627
+ smalltalk.send(self['@stream'], "_nextPutAll_", ["})"]);
2628
+ smalltalk.send(self, "_switchTarget_", [oldt]);
2629
+ (oldt=smalltalk.send(self['@stream'], "_contents", []));
2630
+ (self['@stream']=olds);
2631
+ smalltalk.send(self, "_lazyAssignExpression_", [oldt]);
2632
+ return self;}
2633
+ }),
2634
+ smalltalk.ImpCodeGenerator);
2635
+
2636
+ smalltalk.addMethod(
2637
+ "_visitBlockSequenceNode_",
2638
+ smalltalk.method({
2639
+ selector: "visitBlockSequenceNode:",
2640
+ fn: function (aNode) {
2641
+ var self=this;
2642
+ smalltalk.send(self, "_sequenceOfNodes_temps_", [smalltalk.send(aNode, "_nodes", []), smalltalk.send(aNode, "_temps", [])]);
2643
+ return self;}
2644
+ }),
2645
+ smalltalk.ImpCodeGenerator);
2646
+
2647
+ smalltalk.addMethod(
2648
+ "_visitCascadeNode_",
2649
+ smalltalk.method({
2650
+ selector: "visitCascadeNode:",
2651
+ fn: function (aNode){
2652
+ var self=this;
2653
+ var rcv=nil;
2654
+ (rcv=smalltalk.send(self, "_isolated_", [smalltalk.send(aNode, "_receiver", [])]));
2655
+ smalltalk.send(self, "_aboutToModifyState", []);
2656
+ (rcv=smalltalk.send(self, "_useValueNamed_", [rcv]));
2657
+ smalltalk.send(smalltalk.send(aNode, "_nodes", []), "_do_", [(function(each){return smalltalk.send(each, "_receiver_", [smalltalk.send(smalltalk.send((smalltalk.VerbatimNode || VerbatimNode), "_new", []), "_value_", [rcv])]);})]);
2658
+ smalltalk.send(self, "_sequenceOfNodes_temps_", [smalltalk.send(aNode, "_nodes", []), []]);
2659
+ return self;}
2660
+ }),
2661
+ smalltalk.ImpCodeGenerator);
2662
+
2663
+ smalltalk.addMethod(
2664
+ "_visitClassReferenceNode_",
2665
+ smalltalk.method({
2666
+ selector: "visitClassReferenceNode:",
2667
+ fn: function (aNode){
2668
+ var self=this;
2669
+ ((($receiver = smalltalk.send(self['@referencedClasses'], "_includes_", [smalltalk.send(aNode, "_value", [])])).klass === smalltalk.Boolean) ? (! $receiver ? (function(){return smalltalk.send(self['@referencedClasses'], "_add_", [smalltalk.send(aNode, "_value", [])]);})() : nil) : smalltalk.send($receiver, "_ifFalse_", [(function(){return smalltalk.send(self['@referencedClasses'], "_add_", [smalltalk.send(aNode, "_value", [])]);})]));
2670
+ smalltalk.send(self, "_lazyAssignExpression_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send("(smalltalk.", "__comma", [smalltalk.send(aNode, "_value", [])]), "__comma", [" || "]), "__comma", [smalltalk.send(aNode, "_value", [])]), "__comma", [")"])]);
2671
+ return self;}
2672
+ }),
2673
+ smalltalk.ImpCodeGenerator);
2674
+
2675
+ smalltalk.addMethod(
2676
+ "_visitDynamicArrayNode_",
2677
+ smalltalk.method({
2678
+ selector: "visitDynamicArrayNode:",
2679
+ fn: function (aNode){
2680
+ var self=this;
2681
+ var args=nil;
2682
+ (args=smalltalk.send(smalltalk.send(aNode, "_nodes", []), "_collect_", [(function(node){return smalltalk.send(self, "_isolated_", [node]);})]));
2683
+ smalltalk.send(self, "_lazyAssignValue_", [smalltalk.send((smalltalk.String || String), "_streamContents_", [(function(str){smalltalk.send(str, "_nextPutAll_", ["["]);smalltalk.send(args, "_do_separatedBy_", [(function(each){return smalltalk.send(str, "_nextPutAll_", [smalltalk.send(self, "_useValueNamed_", [each])]);}), (function(){return smalltalk.send(str, "_nextPutAll_", [", "]);})]);return smalltalk.send(str, "_nextPutAll_", ["]"]);})])]);
2684
+ return self;}
2685
+ }),
2686
+ smalltalk.ImpCodeGenerator);
2687
+
2688
+ smalltalk.addMethod(
2689
+ "_visitDynamicDictionaryNode_",
2690
+ smalltalk.method({
2691
+ selector: "visitDynamicDictionaryNode:",
2692
+ fn: function (aNode){
2693
+ var self=this;
2694
+ var elements=nil;
2695
+ (elements=smalltalk.send(self, "_isolated_", [(function($rec){smalltalk.send($rec, "_nodes_", [smalltalk.send(aNode, "_nodes", [])]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.DynamicArrayNode || DynamicArrayNode), "_new", []))]));
2696
+ smalltalk.send(self, "_lazyAssignValue_", [smalltalk.send(smalltalk.send("smalltalk.HashedCollection._fromPairs_(", "__comma", [smalltalk.send(self, "_useValueNamed_", [elements])]), "__comma", [")"])]);
2697
+ return self;}
2698
+ }),
2699
+ smalltalk.ImpCodeGenerator);
2700
+
2701
+ smalltalk.addMethod(
2702
+ "_visitFailure_",
2703
+ smalltalk.method({
2704
+ selector: "visitFailure:",
2705
+ fn: function (aFailure) {
2706
+ var self=this;
2707
+ smalltalk.send(self, "_error_", [smalltalk.send(aFailure, "_asString", [])]);
2708
+ return self;}
2709
+ }),
2710
+ smalltalk.ImpCodeGenerator);
2711
+
2712
+ smalltalk.addMethod(
2713
+ "_visitJSStatementNode_",
2714
+ smalltalk.method({
2715
+ selector: "visitJSStatementNode:",
2716
+ fn: function (aNode){
2717
+ var self=this;
2718
+ smalltalk.send(self, "_aboutToModifyState", []);
2719
+ smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.send(";", "__comma", [smalltalk.send(smalltalk.send(aNode, "_source", []), "_replace_with_", [">>", ">"])]), "__comma", [";"]), "__comma", [smalltalk.send(self, "_mylf", [])])]);
2720
+ return self;}
2721
+ }),
2722
+ smalltalk.ImpCodeGenerator);
2723
+
2724
+ smalltalk.addMethod(
2725
+ "_visitMethodNode_",
2726
+ smalltalk.method({
2727
+ selector: "visitMethodNode:",
2728
+ fn: function (aNode){
2729
+ var self=this;
2730
+ var str=nil;
2731
+ var currentSelector=nil;
2732
+ (self['@currentSelector']=smalltalk.send(smalltalk.send(aNode, "_selector", []), "_asSelector", []));
2733
+ (self['@nestedBlocks']=(0));
2734
+ (self['@earlyReturn']=false);
2735
+ (self['@messageSends']=[]);
2736
+ (self['@referencedClasses']=[]);
2737
+ (self['@unknownVariables']=[]);
2738
+ (self['@tempVariables']=[]);
2739
+ (self['@argVariables']=[]);
2740
+ (self['@lazyVars']=smalltalk.send((smalltalk.HashedCollection || HashedCollection), "_new", []));
2741
+ (self['@mutables']=smalltalk.send((smalltalk.Set || Set), "_new", []));
2742
+ (self['@realVarNames']=smalltalk.send((smalltalk.Set || Set), "_new", []));
2743
+ (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']);
2744
+ (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']);
2745
+ smalltalk.send(self['@stream'], "_nextPutAll_", ["fn: function("]);
2746
+ 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_", [", "]);})]);
2747
+ smalltalk.send(self['@stream'], "_nextPutAll_", [smalltalk.send("){var self=this;", "__comma", [smalltalk.send(self, "_mylf", [])])]);
2748
+ (str=self['@stream']);
2749
+ (self['@stream']=smalltalk.send("", "_writeStream", []));
2750
+ smalltalk.send(self, "_switchTarget_", [nil]);
2751
+ smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(smalltalk.send(aNode, "_nodes", []), "_size", []), "__eq", [(1)])]);
2752
+ smalltalk.send(self, "_visit_", [smalltalk.send(smalltalk.send(aNode, "_nodes", []), "_first", [])]);
2753
+ smalltalk.send(self['@realVarNames'], "_ifNotEmpty_", [(function(){return smalltalk.send(str, "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.send("var ", "__comma", [smalltalk.send(smalltalk.send(self['@realVarNames'], "_asArray", []), "_join_", [","])]), "__comma", [";"]), "__comma", [smalltalk.send(self, "_mylf", [])])]);})]);
2754
+ ((($receiver = self['@earlyReturn']).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(str, "_nextPutAll_", [smalltalk.send("var $early={}; try{", "__comma", [smalltalk.send(self, "_mylf", [])])]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return smalltalk.send(str, "_nextPutAll_", [smalltalk.send("var $early={}; try{", "__comma", [smalltalk.send(self, "_mylf", [])])]);})]));
2755
+ smalltalk.send(str, "_nextPutAll_", [smalltalk.send(self['@stream'], "_contents", [])]);
2756
+ (self['@stream']=str);
2757
+ ((($receiver = smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(aNode, "_nodes", []), "_first", []), "_nodes", []), "_notEmpty", []), "_and_", [(function(){var checker=nil;
2758
+ (checker=smalltalk.send((smalltalk.ReturnNodeChecker || ReturnNodeChecker), "_new", []));smalltalk.send(checker, "_visit_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(aNode, "_nodes", []), "_first", []), "_nodes", []), "_last", [])]);return smalltalk.send(checker, "_wasReturnNode", []);})])).klass === smalltalk.Boolean) ? (! $receiver ? (function(){smalltalk.send(self, "_switchTarget_", ["^"]);smalltalk.send(self, "_lazyAssignValue_", ["self"]);return smalltalk.send(self, "_switchTarget_", [nil]);})() : nil) : smalltalk.send($receiver, "_ifFalse_", [(function(){smalltalk.send(self, "_switchTarget_", ["^"]);smalltalk.send(self, "_lazyAssignValue_", ["self"]);return smalltalk.send(self, "_switchTarget_", [nil]);})]));
2759
+ ((($receiver = self['@earlyReturn']).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_nextPutAll_", ["} catch(e) {if(e===$early) return e[0]; throw e}"]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return smalltalk.send(self['@stream'], "_nextPutAll_", ["} catch(e) {if(e===$early) return e[0]; throw e}"]);})]));
2760
+ smalltalk.send(self['@stream'], "_nextPutAll_", ["}"]);
2761
+ (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']);
2762
+ 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_", [","]);})]);
2763
+ smalltalk.send(self['@stream'], "_nextPutAll_", ["]"]);
2764
+ smalltalk.send(self['@stream'], "_nextPutAll_", ["})"]);
2765
+ smalltalk.send(self, "_assert_", [smalltalk.send(self['@mutables'], "_isEmpty", [])]);
2766
+ return self;}
2767
+ }),
2768
+ smalltalk.ImpCodeGenerator);
2769
+
2770
+ smalltalk.addMethod(
2771
+ "_visitReturnNode_",
2772
+ smalltalk.method({
2773
+ selector: "visitReturnNode:",
2774
+ fn: function (aNode){
2775
+ var self=this;
2776
+ smalltalk.send(self, "_assert_", [smalltalk.send(smalltalk.send(smalltalk.send(aNode, "_nodes", []), "_size", []), "__eq", [(1)])]);
2777
+ ((($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);})]));
2778
+ smalltalk.send(self, "_visit_targetBeing_", [smalltalk.send(smalltalk.send(aNode, "_nodes", []), "_first", []), ((($receiver = ((($receiver = self['@nestedBlocks']).klass === smalltalk.Number) ? $receiver >(0) : smalltalk.send($receiver, "__gt", [(0)]))).klass === smalltalk.Boolean) ? ($receiver ? (function(){return "!";})() : (function(){return "^";})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return "!";}), (function(){return "^";})]))]);
2779
+ smalltalk.send(self, "_lazyAssignValue_", [""]);
2780
+ return self;}
2781
+ }),
2782
+ smalltalk.ImpCodeGenerator);
2783
+
2784
+ smalltalk.addMethod(
2785
+ "_visitSendNode_",
2786
+ smalltalk.method({
2787
+ selector: "visitSendNode:",
2788
+ fn: function (aNode){
2789
+ var self=this;
2790
+ var $early={};
2791
+ try{var receiver=nil;
2792
+ var superSend=nil;
2793
+ var rcv=nil;
2794
+ ((($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", [])]);})]));
2795
+ ((($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 (function(){throw $early=[self]})();})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return (function(){throw $early=[self]})();})]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(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 (function(){throw $early=[self]})();})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return (function(){throw $early=[self]})();})]));})]));
2796
+ (rcv=smalltalk.send(self, "_isolated_", [smalltalk.send(aNode, "_receiver", [])]));
2797
+ (superSend=smalltalk.send(smalltalk.send(self['@lazyVars'], "_at_ifAbsent_", [rcv, (function(){return nil;})]), "__eq", ["super"]));
2798
+ ((($receiver = superSend).klass === smalltalk.Boolean) ? ($receiver ? (function(){smalltalk.send(self['@mutables'], "_remove_", [rcv]);return smalltalk.send(self['@lazyVars'], "_at_put_", [rcv, "self"]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){smalltalk.send(self['@mutables'], "_remove_", [rcv]);return smalltalk.send(self['@lazyVars'], "_at_put_", [rcv, "self"]);})]));
2799
+ ((($receiver = smalltalk.send(self, "_performOptimizations", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){var inline=nil;
2800
+ (inline=smalltalk.send(self, "_inline_receiver_argumentNodes_", [smalltalk.send(aNode, "_selector", []), rcv, smalltalk.send(aNode, "_arguments", [])]));return (($receiver = inline) != nil && $receiver != undefined) ? (function(){var args=nil;
2801
+ (args=((($receiver = smalltalk.send(inline, "__eq", [true])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(aNode, "_arguments", []);})() : (function(){return inline;})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(aNode, "_arguments", []);}), (function(){return inline;})])));smalltalk.send(self, "_prvPutAndClose_", [(function(){return smalltalk.send(self, "_send_to_arguments_superSend_", [smalltalk.send(aNode, "_selector", []), rcv, args, superSend]);})]);return (function(){throw $early=[self]})();})() : nil;})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){var inline=nil;
2802
+ (inline=smalltalk.send(self, "_inline_receiver_argumentNodes_", [smalltalk.send(aNode, "_selector", []), rcv, smalltalk.send(aNode, "_arguments", [])]));return (($receiver = inline) != nil && $receiver != undefined) ? (function(){var args=nil;
2803
+ (args=((($receiver = smalltalk.send(inline, "__eq", [true])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(aNode, "_arguments", []);})() : (function(){return inline;})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(aNode, "_arguments", []);}), (function(){return inline;})])));smalltalk.send(self, "_prvPutAndClose_", [(function(){return smalltalk.send(self, "_send_to_arguments_superSend_", [smalltalk.send(aNode, "_selector", []), rcv, args, superSend]);})]);return (function(){throw $early=[self]})();})() : nil;})]));
2804
+ smalltalk.send(self, "_send_to_arguments_superSend_", [smalltalk.send(aNode, "_selector", []), rcv, smalltalk.send(aNode, "_arguments", []), superSend]);
2805
+ return self;
2806
+ } catch(e) {if(e===$early)return e[0]; throw e}}
2807
+ }),
2808
+ smalltalk.ImpCodeGenerator);
2809
+
2810
+ smalltalk.addMethod(
2811
+ "_visitSequenceNode_",
2812
+ smalltalk.method({
2813
+ selector: "visitSequenceNode:",
2814
+ fn: function (aNode) {
2815
+ var self=this;
2816
+ ((($receiver = smalltalk.send(smalltalk.send(aNode, "_nodes", []), "_isEmpty", [])).klass === smalltalk.Boolean) ? (! $receiver ? (function(){return smalltalk.send(self, "_sequenceOfNodes_temps_", [smalltalk.send(aNode, "_nodes", []), smalltalk.send(aNode, "_temps", [])]);})() : nil) : smalltalk.send($receiver, "_ifFalse_", [(function(){return smalltalk.send(self, "_sequenceOfNodes_temps_", [smalltalk.send(aNode, "_nodes", []), smalltalk.send(aNode, "_temps", [])]);})]));
2817
+ return self;}
2818
+ }),
2819
+ smalltalk.ImpCodeGenerator);
2820
+
2821
+ smalltalk.addMethod(
2822
+ "_visitValueNode_",
2823
+ smalltalk.method({
2824
+ selector: "visitValueNode:",
2825
+ fn: function (aNode){
2826
+ var self=this;
2827
+ smalltalk.send(self, "_lazyAssignValue_", [smalltalk.send(smalltalk.send(aNode, "_value", []), "_asJavascript", [])]);
2828
+ return self;}
2829
+ }),
2830
+ smalltalk.ImpCodeGenerator);
2831
+
2832
+ smalltalk.addMethod(
2833
+ "_visitVariableNode_",
2834
+ smalltalk.method({
2835
+ selector: "visitVariableNode:",
2836
+ fn: function (aNode){
2837
+ var self=this;
2838
+ var varName=nil;
2839
+ ((($receiver = smalltalk.send(smalltalk.send(smalltalk.send(self, "_currentClass", []), "_allInstanceVariableNames", []), "_includes_", [smalltalk.send(aNode, "_value", [])])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self, "_lazyAssignExpression_", [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, "_lazyAssignExpression_", [varName]);})() : (function(){return smalltalk.send(self, "_lazyAssignExpression_", [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, "_lazyAssignExpression_", [varName]);}), (function(){return smalltalk.send(self, "_lazyAssignExpression_", [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, "_lazyAssignExpression_", ["(smalltalk.getThisContext())"]);})() : (function(){return ((($receiver = smalltalk.send(smalltalk.send(self, "_pseudoVariables", []), "_includes_", [varName])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self, "_lazyAssignValue_", [varName]);})() : (function(){return smalltalk.send(self, "_lazyAssignExpression_", [varName]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self, "_lazyAssignValue_", [varName]);}), (function(){return smalltalk.send(self, "_lazyAssignExpression_", [varName]);})]));})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self, "_lazyAssignExpression_", ["(smalltalk.getThisContext())"]);}), (function(){return ((($receiver = smalltalk.send(smalltalk.send(self, "_pseudoVariables", []), "_includes_", [varName])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self, "_lazyAssignValue_", [varName]);})() : (function(){return smalltalk.send(self, "_lazyAssignExpression_", [varName]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self, "_lazyAssignValue_", [varName]);}), (function(){return smalltalk.send(self, "_lazyAssignExpression_", [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, "_lazyAssignExpression_", [varName]);})() : (function(){return smalltalk.send(self, "_lazyAssignExpression_", [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, "_lazyAssignExpression_", [varName]);}), (function(){return smalltalk.send(self, "_lazyAssignExpression_", [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, "_lazyAssignExpression_", ["(smalltalk.getThisContext())"]);})() : (function(){return ((($receiver = smalltalk.send(smalltalk.send(self, "_pseudoVariables", []), "_includes_", [varName])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self, "_lazyAssignValue_", [varName]);})() : (function(){return smalltalk.send(self, "_lazyAssignExpression_", [varName]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self, "_lazyAssignValue_", [varName]);}), (function(){return smalltalk.send(self, "_lazyAssignExpression_", [varName]);})]));})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self, "_lazyAssignExpression_", ["(smalltalk.getThisContext())"]);}), (function(){return ((($receiver = smalltalk.send(smalltalk.send(self, "_pseudoVariables", []), "_includes_", [varName])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self, "_lazyAssignValue_", [varName]);})() : (function(){return smalltalk.send(self, "_lazyAssignExpression_", [varName]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self, "_lazyAssignValue_", [varName]);}), (function(){return smalltalk.send(self, "_lazyAssignExpression_", [varName]);})]));})]));})]));})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self, "_lazyAssignExpression_", [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, "_lazyAssignExpression_", [varName]);})() : (function(){return smalltalk.send(self, "_lazyAssignExpression_", [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, "_lazyAssignExpression_", [varName]);}), (function(){return smalltalk.send(self, "_lazyAssignExpression_", [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, "_lazyAssignExpression_", ["(smalltalk.getThisContext())"]);})() : (function(){return ((($receiver = smalltalk.send(smalltalk.send(self, "_pseudoVariables", []), "_includes_", [varName])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self, "_lazyAssignValue_", [varName]);})() : (function(){return smalltalk.send(self, "_lazyAssignExpression_", [varName]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self, "_lazyAssignValue_", [varName]);}), (function(){return smalltalk.send(self, "_lazyAssignExpression_", [varName]);})]));})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self, "_lazyAssignExpression_", ["(smalltalk.getThisContext())"]);}), (function(){return ((($receiver = smalltalk.send(smalltalk.send(self, "_pseudoVariables", []), "_includes_", [varName])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self, "_lazyAssignValue_", [varName]);})() : (function(){return smalltalk.send(self, "_lazyAssignExpression_", [varName]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self, "_lazyAssignValue_", [varName]);}), (function(){return smalltalk.send(self, "_lazyAssignExpression_", [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, "_lazyAssignExpression_", [varName]);})() : (function(){return smalltalk.send(self, "_lazyAssignExpression_", [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, "_lazyAssignExpression_", [varName]);}), (function(){return smalltalk.send(self, "_lazyAssignExpression_", [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, "_lazyAssignExpression_", ["(smalltalk.getThisContext())"]);})() : (function(){return ((($receiver = smalltalk.send(smalltalk.send(self, "_pseudoVariables", []), "_includes_", [varName])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self, "_lazyAssignValue_", [varName]);})() : (function(){return smalltalk.send(self, "_lazyAssignExpression_", [varName]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self, "_lazyAssignValue_", [varName]);}), (function(){return smalltalk.send(self, "_lazyAssignExpression_", [varName]);})]));})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self, "_lazyAssignExpression_", ["(smalltalk.getThisContext())"]);}), (function(){return ((($receiver = smalltalk.send(smalltalk.send(self, "_pseudoVariables", []), "_includes_", [varName])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self, "_lazyAssignValue_", [varName]);})() : (function(){return smalltalk.send(self, "_lazyAssignExpression_", [varName]);})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self, "_lazyAssignValue_", [varName]);}), (function(){return smalltalk.send(self, "_lazyAssignExpression_", [varName]);})]));})]));})]));})]));
2840
+ return self;}
2841
+ }),
2842
+ smalltalk.ImpCodeGenerator);
2843
+
2844
+ smalltalk.addMethod(
2845
+ "_visitVerbatimNode_",
2846
+ smalltalk.method({
2847
+ selector: "visitVerbatimNode:",
2848
+ fn: function (aNode){
2849
+ var self=this;
2850
+ smalltalk.send(self, "_lazyAssignValue_", [smalltalk.send(aNode, "_value", [])]);
2851
+ return self;}
2852
+ }),
2853
+ smalltalk.ImpCodeGenerator);
2854
+
2855
+
2856
+ smalltalk.ImpCodeGenerator.klass.iVarNames = ['performOptimizations'];
2857
+ smalltalk.addMethod(
2858
+ "_performOptimizations",
2859
+ smalltalk.method({
2860
+ selector: "performOptimizations",
2861
+ fn: function () {
2862
+ var self=this;
2863
+ return (($receiver = self['@performOptimizations']) == nil || $receiver == undefined) ? (function(){return true;})() : $receiver;
2864
+ return self;}
2865
+ }),
2866
+ smalltalk.ImpCodeGenerator.klass);
2867
+
2868
+ smalltalk.addMethod(
2869
+ "_performOptimizations_",
2870
+ smalltalk.method({
2871
+ selector: "performOptimizations:",
2872
+ fn: function (aBoolean) {
2873
+ var self=this;
2874
+ (self['@performOptimizations']=aBoolean);
2875
+ return self;}
2876
+ }),
2877
+ smalltalk.ImpCodeGenerator.klass);
2878
+
2879
+
2880
+ smalltalk.addClass('ReturnNodeChecker', smalltalk.NodeVisitor, ['wasReturnNode'], 'Compiler');
2881
+ smalltalk.addMethod(
2882
+ "_initialize",
2883
+ smalltalk.method({
2884
+ selector: "initialize",
2885
+ fn: function () {
2886
+ var self=this;
2887
+ (self['@wasReturnNode']=false);
2888
+ return self;}
2889
+ }),
2890
+ smalltalk.ReturnNodeChecker);
2891
+
2892
+ smalltalk.addMethod(
2893
+ "_visitReturnNode_",
2894
+ smalltalk.method({
2895
+ selector: "visitReturnNode:",
2896
+ fn: function (aNode) {
2897
+ var self=this;
2898
+ (self['@wasReturnNode']=true);
2899
+ return self;}
2900
+ }),
2901
+ smalltalk.ReturnNodeChecker);
2902
+
2903
+ smalltalk.addMethod(
2904
+ "_wasReturnNode",
2905
+ smalltalk.method({
2906
+ selector: "wasReturnNode",
2907
+ fn: function () {
2908
+ var self=this;
2909
+ return self['@wasReturnNode'];
2910
+ return self;}
2911
+ }),
2912
+ smalltalk.ReturnNodeChecker);
2913
+
2914
+
2915
+