AmberRack 0.1.0

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