resin 0.2.2 → 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (117) hide show
  1. data/amber/css/amber-normalize.css +73 -73
  2. data/amber/css/amber-normalize.less +1 -1
  3. data/amber/css/amber.css +106 -106
  4. data/amber/css/helios.css +242 -0
  5. data/amber/images/hsplitter.png +0 -0
  6. data/amber/images/vsplitter.png +0 -0
  7. data/amber/js/Benchfib.deploy.js +116 -38
  8. data/amber/js/Benchfib.js +120 -42
  9. data/amber/js/Canvas.deploy.js +674 -403
  10. data/amber/js/Canvas.js +682 -411
  11. data/amber/js/Compiler-AST.deploy.js +1150 -0
  12. data/amber/js/Compiler-AST.js +1591 -0
  13. data/amber/js/Compiler-Core.deploy.js +1562 -0
  14. data/amber/js/Compiler-Core.js +1972 -0
  15. data/amber/js/Compiler-Exceptions.deploy.js +114 -0
  16. data/amber/js/Compiler-Exceptions.js +161 -0
  17. data/amber/js/Compiler-IR.deploy.js +2326 -0
  18. data/amber/js/Compiler-IR.js +3146 -0
  19. data/amber/js/Compiler-Inlining.deploy.js +1147 -0
  20. data/amber/js/Compiler-Inlining.js +1514 -0
  21. data/amber/js/Compiler-Semantic.deploy.js +1207 -0
  22. data/amber/js/Compiler-Semantic.js +1628 -0
  23. data/amber/js/Compiler-Tests.deploy.js +646 -60
  24. data/amber/js/Compiler-Tests.js +843 -82
  25. data/amber/js/Compiler.deploy.js +1097 -159
  26. data/amber/js/Compiler.js +1414 -161
  27. data/amber/js/Examples.deploy.js +31 -15
  28. data/amber/js/Examples.js +33 -17
  29. data/amber/js/Helios-Announcements.deploy.js +127 -0
  30. data/amber/js/Helios-Announcements.js +157 -0
  31. data/amber/js/Helios-Browser.deploy.js +1473 -0
  32. data/amber/js/Helios-Browser.js +1953 -0
  33. data/amber/js/Helios-Commands.deploy.js +403 -0
  34. data/amber/js/Helios-Commands.js +563 -0
  35. data/amber/js/Helios-Core.deploy.js +1070 -0
  36. data/amber/js/Helios-Core.js +1445 -0
  37. data/amber/js/Helios-Environments.deploy.js +132 -0
  38. data/amber/js/Helios-Environments.js +179 -0
  39. data/amber/js/Helios-Inspector.deploy.js +855 -0
  40. data/amber/js/Helios-Inspector.js +1155 -0
  41. data/amber/js/Helios-KeyBindings.deploy.js +753 -0
  42. data/amber/js/Helios-KeyBindings.js +1023 -0
  43. data/amber/js/Helios-Layout.deploy.js +383 -0
  44. data/amber/js/Helios-Layout.js +523 -0
  45. data/amber/js/Helios-Workspace.deploy.js +799 -0
  46. data/amber/js/Helios-Workspace.js +1074 -0
  47. data/amber/js/IDE.deploy.js +2541 -1490
  48. data/amber/js/IDE.js +2721 -1660
  49. data/amber/js/Importer-Exporter.deploy.js +671 -0
  50. data/amber/js/Importer-Exporter.js +816 -0
  51. data/amber/js/Kernel-Announcements.deploy.js +137 -20
  52. data/amber/js/Kernel-Announcements.js +176 -22
  53. data/amber/js/Kernel-Classes.deploy.js +555 -168
  54. data/amber/js/Kernel-Classes.js +662 -205
  55. data/amber/js/Kernel-Collections.deploy.js +1403 -618
  56. data/amber/js/Kernel-Collections.js +1545 -690
  57. data/amber/js/Kernel-Exceptions.deploy.js +109 -45
  58. data/amber/js/Kernel-Exceptions.js +123 -49
  59. data/amber/js/Kernel-Methods.deploy.js +196 -81
  60. data/amber/js/Kernel-Methods.js +214 -89
  61. data/amber/js/Kernel-Objects.deploy.js +1542 -1117
  62. data/amber/js/Kernel-Objects.js +1593 -1148
  63. data/amber/js/Kernel-Tests.deploy.js +1725 -772
  64. data/amber/js/Kernel-Tests.js +2301 -1123
  65. data/amber/js/Kernel-Transcript.deploy.js +23 -25
  66. data/amber/js/Kernel-Transcript.js +24 -26
  67. data/amber/js/SUnit.deploy.js +204 -131
  68. data/amber/js/SUnit.js +222 -139
  69. data/amber/js/Spaces.deploy.js +240 -0
  70. data/amber/js/Spaces.js +326 -0
  71. data/amber/js/amber.js +26 -7
  72. data/amber/js/boot.js +65 -47
  73. data/amber/js/init.js +1 -1
  74. data/amber/js/lib/CodeMirror/amber.css +21 -21
  75. data/amber/js/lib/CodeMirror/codemirror.css +119 -13
  76. data/amber/js/lib/CodeMirror/codemirror.js +2219 -1220
  77. data/amber/js/lib/CodeMirror/smalltalk.js +134 -129
  78. data/amber/js/lib/bootstrap/css/bootstrap.css +5837 -0
  79. data/amber/js/lib/bootstrap/css/bootstrap.min.css +841 -0
  80. data/amber/js/lib/bootstrap/img/glyphicons-halflings-white.png +0 -0
  81. data/amber/js/lib/bootstrap/img/glyphicons-halflings.png +0 -0
  82. data/amber/js/lib/bootstrap/js/bootstrap.js +2038 -0
  83. data/amber/js/lib/bootstrap/js/bootstrap.min.js +7 -0
  84. data/amber/js/lib/jQuery/jquery-1.8.2.min.js +2 -0
  85. data/amber/js/lib/jQuery/jquery-ui-1.8.24.custom.min.js +125 -0
  86. data/amber/st/Compiler-AST.st +505 -0
  87. data/amber/st/Compiler-Core.st +835 -0
  88. data/amber/st/Compiler-Exceptions.st +87 -0
  89. data/amber/st/Compiler-IR.st +1097 -0
  90. data/amber/st/Compiler-Inlining.st +650 -0
  91. data/amber/st/Compiler-Semantic.st +558 -0
  92. data/amber/st/Compiler-Tests.st +285 -381
  93. data/amber/st/Compiler.st +725 -2
  94. data/amber/st/Helios-Announcements.st +104 -0
  95. data/amber/st/Helios-Browser.st +708 -0
  96. data/amber/st/Helios-Commands.st +223 -0
  97. data/amber/st/Helios-Core.st +532 -0
  98. data/amber/st/Helios-Environments.st +98 -0
  99. data/amber/st/Helios-Inspector.st +367 -0
  100. data/amber/st/Helios-KeyBindings.st +337 -0
  101. data/amber/st/Helios-Layout.st +199 -0
  102. data/amber/st/Helios-Workspace.st +367 -0
  103. data/amber/st/IDE.st +75 -53
  104. data/amber/st/Importer-Exporter.st +386 -0
  105. data/amber/st/Kernel-Announcements.st +92 -0
  106. data/amber/st/Kernel-Classes.st +137 -15
  107. data/amber/st/Kernel-Collections.st +137 -47
  108. data/amber/st/Kernel-Exceptions.st +14 -0
  109. data/amber/st/Kernel-Methods.st +9 -1
  110. data/amber/st/Kernel-Objects.st +29 -5
  111. data/amber/st/Kernel-Tests.st +545 -199
  112. data/amber/st/SUnit.st +10 -0
  113. data/amber/st/Spaces.st +142 -0
  114. data/lib/resin/app.rb +1 -1
  115. metadata +86 -31
  116. data/amber/js/lib/jQuery/jquery-1.4.4.min.js +0 -167
  117. data/amber/js/lib/jQuery/jquery-1.6.4.min.js +0 -4
@@ -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
+