resin 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,44 +1,184 @@
1
1
  smalltalk.addPackage('Compiler', {});
2
- smalltalk.addClass('ChunkParser', smalltalk.Object, ['stream'], 'Compiler');
2
+ smalltalk.addClass('NodeVisitor', smalltalk.Object, [], 'Compiler');
3
3
  smalltalk.addMethod(
4
- unescape('_stream_'),
4
+ unescape('_visit_'),
5
5
  smalltalk.method({
6
- selector: unescape('stream%3A'),
7
- fn: function (aStream){
6
+ selector: unescape('visit%3A'),
7
+ fn: function (aNode){
8
8
  var self=this;
9
- (self['@stream']=aStream);
9
+ smalltalk.send(aNode, "_accept_", [self]);
10
10
  return self;}
11
11
  }),
12
- smalltalk.ChunkParser);
12
+ smalltalk.NodeVisitor);
13
13
 
14
14
  smalltalk.addMethod(
15
- unescape('_nextChunk'),
15
+ unescape('_visitNode_'),
16
16
  smalltalk.method({
17
- selector: unescape('nextChunk'),
18
- fn: function (){
17
+ selector: unescape('visitNode%3A'),
18
+ fn: function (aNode){
19
19
  var self=this;
20
- try{var char_=nil;
21
- var result=nil;
22
- var chunk=nil;
23
- (result=smalltalk.send("", "_writeStream", []));
24
- (function(){while((function(){(char_=smalltalk.send(self['@stream'], "_next", []));return smalltalk.send(char_, "_notNil", []);})()) {(function(){((($receiver = smalltalk.send(char_, "__eq", [unescape("%21")])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(smalltalk.send(self['@stream'], "_peek", []), "__eq", [unescape("%21")])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_next", []);})() : (function(){return (function(){throw({name: 'stReturn', selector: '_nextChunk', fn: function(){return smalltalk.send(smalltalk.send(result, "_contents", []), "_trimBoth", [])}})})();})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self['@stream'], "_next", []);}), (function(){return (function(){throw({name: 'stReturn', selector: '_nextChunk', fn: function(){return smalltalk.send(smalltalk.send(result, "_contents", []), "_trimBoth", [])}})})();})]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return ((($receiver = smalltalk.send(smalltalk.send(self['@stream'], "_peek", []), "__eq", [unescape("%21")])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_next", []);})() : (function(){return (function(){throw({name: 'stReturn', selector: '_nextChunk', fn: function(){return smalltalk.send(smalltalk.send(result, "_contents", []), "_trimBoth", [])}})})();})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self['@stream'], "_next", []);}), (function(){return (function(){throw({name: 'stReturn', selector: '_nextChunk', fn: function(){return smalltalk.send(smalltalk.send(result, "_contents", []), "_trimBoth", [])}})})();})]));})]));return smalltalk.send(result, "_nextPut_", [char_]);})()}})();
25
- (function(){throw({name: 'stReturn', selector: '_nextChunk', fn: function(){return nil}})})();
26
- return self;
27
- } catch(e) {if(e.name === 'stReturn' && e.selector === '_nextChunk'){return e.fn()} throw(e)}}
20
+
21
+ return self;}
28
22
  }),
29
- smalltalk.ChunkParser);
23
+ smalltalk.NodeVisitor);
24
+
25
+ smalltalk.addMethod(
26
+ unescape('_visitMethodNode_'),
27
+ smalltalk.method({
28
+ selector: unescape('visitMethodNode%3A'),
29
+ fn: function (aNode){
30
+ var self=this;
31
+ smalltalk.send(self, "_visitNode_", [aNode]);
32
+ return self;}
33
+ }),
34
+ smalltalk.NodeVisitor);
30
35
 
36
+ smalltalk.addMethod(
37
+ unescape('_visitSequenceNode_'),
38
+ smalltalk.method({
39
+ selector: unescape('visitSequenceNode%3A'),
40
+ fn: function (aNode){
41
+ var self=this;
42
+ smalltalk.send(self, "_visitNode_", [aNode]);
43
+ return self;}
44
+ }),
45
+ smalltalk.NodeVisitor);
31
46
 
32
47
  smalltalk.addMethod(
33
- unescape('_on_'),
48
+ unescape('_visitBlockSequenceNode_'),
34
49
  smalltalk.method({
35
- selector: unescape('on%3A'),
36
- fn: function (aStream){
50
+ selector: unescape('visitBlockSequenceNode%3A'),
51
+ fn: function (aNode){
37
52
  var self=this;
38
- return smalltalk.send(smalltalk.send(self, "_new", []), "_stream_", [aStream]);
53
+ smalltalk.send(self, "_visitSequenceNode_", [aNode]);
39
54
  return self;}
40
55
  }),
41
- smalltalk.ChunkParser.klass);
56
+ smalltalk.NodeVisitor);
57
+
58
+ smalltalk.addMethod(
59
+ unescape('_visitBlockNode_'),
60
+ smalltalk.method({
61
+ selector: unescape('visitBlockNode%3A'),
62
+ fn: function (aNode){
63
+ var self=this;
64
+ smalltalk.send(self, "_visitNode_", [aNode]);
65
+ return self;}
66
+ }),
67
+ smalltalk.NodeVisitor);
68
+
69
+ smalltalk.addMethod(
70
+ unescape('_visitReturnNode_'),
71
+ smalltalk.method({
72
+ selector: unescape('visitReturnNode%3A'),
73
+ fn: function (aNode){
74
+ var self=this;
75
+ smalltalk.send(self, "_visitNode_", [aNode]);
76
+ return self;}
77
+ }),
78
+ smalltalk.NodeVisitor);
79
+
80
+ smalltalk.addMethod(
81
+ unescape('_visitSendNode_'),
82
+ smalltalk.method({
83
+ selector: unescape('visitSendNode%3A'),
84
+ fn: function (aNode){
85
+ var self=this;
86
+ smalltalk.send(self, "_visitNode_", [aNode]);
87
+ return self;}
88
+ }),
89
+ smalltalk.NodeVisitor);
90
+
91
+ smalltalk.addMethod(
92
+ unescape('_visitCascadeNode_'),
93
+ smalltalk.method({
94
+ selector: unescape('visitCascadeNode%3A'),
95
+ fn: function (aNode){
96
+ var self=this;
97
+ smalltalk.send(self, "_visitNode_", [aNode]);
98
+ return self;}
99
+ }),
100
+ smalltalk.NodeVisitor);
101
+
102
+ smalltalk.addMethod(
103
+ unescape('_visitValueNode_'),
104
+ smalltalk.method({
105
+ selector: unescape('visitValueNode%3A'),
106
+ fn: function (aNode){
107
+ var self=this;
108
+ smalltalk.send(self, "_visitNode_", [aNode]);
109
+ return self;}
110
+ }),
111
+ smalltalk.NodeVisitor);
112
+
113
+ smalltalk.addMethod(
114
+ unescape('_visitVariableNode_'),
115
+ smalltalk.method({
116
+ selector: unescape('visitVariableNode%3A'),
117
+ fn: function (aNode){
118
+ var self=this;
119
+
120
+ return self;}
121
+ }),
122
+ smalltalk.NodeVisitor);
123
+
124
+ smalltalk.addMethod(
125
+ unescape('_visitAssignmentNode_'),
126
+ smalltalk.method({
127
+ selector: unescape('visitAssignmentNode%3A'),
128
+ fn: function (aNode){
129
+ var self=this;
130
+ smalltalk.send(self, "_visitNode_", [aNode]);
131
+ return self;}
132
+ }),
133
+ smalltalk.NodeVisitor);
134
+
135
+ smalltalk.addMethod(
136
+ unescape('_visitClassReferenceNode_'),
137
+ smalltalk.method({
138
+ selector: unescape('visitClassReferenceNode%3A'),
139
+ fn: function (aNode){
140
+ var self=this;
141
+ (function($rec){smalltalk.send($rec, "_nextPutAll_", ["smalltalk."]);return smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(aNode, "_value", [])]);})(self);
142
+ return self;}
143
+ }),
144
+ smalltalk.NodeVisitor);
145
+
146
+ smalltalk.addMethod(
147
+ unescape('_visitJSStatementNode_'),
148
+ smalltalk.method({
149
+ selector: unescape('visitJSStatementNode%3A'),
150
+ fn: function (aNode){
151
+ var self=this;
152
+ (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);
153
+ return self;}
154
+ }),
155
+ smalltalk.NodeVisitor);
156
+
157
+ smalltalk.addMethod(
158
+ unescape('_visitDynamicArrayNode_'),
159
+ smalltalk.method({
160
+ selector: unescape('visitDynamicArrayNode%3A'),
161
+ fn: function (aNode){
162
+ var self=this;
163
+ smalltalk.send(self, "_visitNode_", [aNode]);
164
+ return self;}
165
+ }),
166
+ smalltalk.NodeVisitor);
167
+
168
+ smalltalk.addMethod(
169
+ unescape('_visitDynamicDictionaryNode_'),
170
+ smalltalk.method({
171
+ selector: unescape('visitDynamicDictionaryNode%3A'),
172
+ fn: function (aNode){
173
+ var self=this;
174
+ smalltalk.send(self, "_visitNode_", [aNode]);
175
+ return self;}
176
+ }),
177
+ smalltalk.NodeVisitor);
178
+
179
+
180
+
181
+ smalltalk.addClass('DoIt', smalltalk.Object, [], 'Compiler');
42
182
 
43
183
 
44
184
  smalltalk.addClass('Importer', smalltalk.Object, [], 'Compiler');
@@ -130,7 +270,7 @@ selector: unescape('exportPackage%3A'),
130
270
  fn: function (packageName){
131
271
  var self=this;
132
272
  var package=nil;
133
- 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(package, "_classes", []), "_do_", [(function(each){return smalltalk.send(stream, "_nextPutAll_", [smalltalk.send(self, "_exportClass_", [each])]);})]);return smalltalk.send(self, "_exportPackageExtensionsOf_on_", [package, stream]);})]);
273
+ 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(package, "_sortedClasses", []), "_do_", [(function(each){return smalltalk.send(stream, "_nextPutAll_", [smalltalk.send(self, "_exportClass_", [each])]);})]);return smalltalk.send(self, "_exportPackageExtensionsOf_on_", [package, stream]);})]);
134
274
  return self;}
135
275
  }),
136
276
  smalltalk.Exporter);
@@ -184,169 +324,73 @@ smalltalk.Exporter);
184
324
 
185
325
 
186
326
 
187
- smalltalk.addClass('ChunkExporter', smalltalk.Exporter, [], 'Compiler');
327
+ smalltalk.addClass('ChunkParser', smalltalk.Object, ['stream'], 'Compiler');
188
328
  smalltalk.addMethod(
189
- unescape('_exportDefinitionOf_on_'),
329
+ unescape('_stream_'),
190
330
  smalltalk.method({
191
- selector: unescape('exportDefinitionOf%3Aon%3A'),
192
- fn: function (aClass, aStream){
331
+ selector: unescape('stream%3A'),
332
+ fn: function (aStream){
193
333
  var self=this;
194
- (function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(self, "_classNameFor_", [smalltalk.send(aClass, "_superclass", [])])]);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(unescape("%20subclass%3A%20%23"), "__comma", [smalltalk.send(self, "_classNameFor_", [aClass])])]);smalltalk.send($rec, "_lf", []);return smalltalk.send($rec, "_nextPutAll_", [unescape("%09instanceVariableNames%3A%20%27")]);})(aStream);
195
- smalltalk.send(smalltalk.send(aClass, "_instanceVariableNames", []), "_do_separatedBy_", [(function(each){return smalltalk.send(aStream, "_nextPutAll_", [each]);}), (function(){return smalltalk.send(aStream, "_nextPutAll_", [" "]);})]);
196
- (function($rec){smalltalk.send($rec, "_nextPutAll_", [unescape("%27")]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(unescape("%09category%3A%20%27"), "__comma", [smalltalk.send(aClass, "_category", [])]), "__comma", [unescape("%27%21")])]);return smalltalk.send($rec, "_lf", []);})(aStream);
197
- ((($receiver = smalltalk.send(smalltalk.send(aClass, "_comment", []), "_notEmpty", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(unescape("%21"), "__comma", [smalltalk.send(self, "_classNameFor_", [aClass])]), "__comma", [unescape("%20commentStamp%21")])]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(self, "_chunkEscape_", [smalltalk.send(aClass, "_comment", [])]), "__comma", [unescape("%21")])]);return smalltalk.send($rec, "_lf", []);})(aStream);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return (function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(unescape("%21"), "__comma", [smalltalk.send(self, "_classNameFor_", [aClass])]), "__comma", [unescape("%20commentStamp%21")])]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(self, "_chunkEscape_", [smalltalk.send(aClass, "_comment", [])]), "__comma", [unescape("%21")])]);return smalltalk.send($rec, "_lf", []);})(aStream);})]));
198
- smalltalk.send(aStream, "_lf", []);
334
+ (self['@stream']=aStream);
199
335
  return self;}
200
336
  }),
201
- smalltalk.ChunkExporter);
337
+ smalltalk.ChunkParser);
202
338
 
203
339
  smalltalk.addMethod(
204
- unescape('_exportMethod_of_on_'),
340
+ unescape('_nextChunk'),
205
341
  smalltalk.method({
206
- selector: unescape('exportMethod%3Aof%3Aon%3A'),
207
- fn: function (aMethod, aClass, aStream){
342
+ selector: unescape('nextChunk'),
343
+ fn: function (){
208
344
  var self=this;
209
- (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_", [unescape("%21")]);})(aStream);
210
- return self;}
345
+ try{var char_=nil;
346
+ var result=nil;
347
+ var chunk=nil;
348
+ (result=smalltalk.send("", "_writeStream", []));
349
+ (function(){while((function(){(char_=smalltalk.send(self['@stream'], "_next", []));return smalltalk.send(char_, "_notNil", []);})()) {(function(){((($receiver = smalltalk.send(char_, "__eq", [unescape("%21")])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return ((($receiver = smalltalk.send(smalltalk.send(self['@stream'], "_peek", []), "__eq", [unescape("%21")])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_next", []);})() : (function(){return (function(){throw({name: 'stReturn', selector: '_nextChunk', fn: function(){return smalltalk.send(smalltalk.send(result, "_contents", []), "_trimBoth", [])}})})();})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self['@stream'], "_next", []);}), (function(){return (function(){throw({name: 'stReturn', selector: '_nextChunk', fn: function(){return smalltalk.send(smalltalk.send(result, "_contents", []), "_trimBoth", [])}})})();})]));})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return ((($receiver = smalltalk.send(smalltalk.send(self['@stream'], "_peek", []), "__eq", [unescape("%21")])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self['@stream'], "_next", []);})() : (function(){return (function(){throw({name: 'stReturn', selector: '_nextChunk', fn: function(){return smalltalk.send(smalltalk.send(result, "_contents", []), "_trimBoth", [])}})})();})()) : smalltalk.send($receiver, "_ifTrue_ifFalse_", [(function(){return smalltalk.send(self['@stream'], "_next", []);}), (function(){return (function(){throw({name: 'stReturn', selector: '_nextChunk', fn: function(){return smalltalk.send(smalltalk.send(result, "_contents", []), "_trimBoth", [])}})})();})]));})]));return smalltalk.send(result, "_nextPut_", [char_]);})()}})();
350
+ (function(){throw({name: 'stReturn', selector: '_nextChunk', fn: function(){return nil}})})();
351
+ return self;
352
+ } catch(e) {if(e.name === 'stReturn' && e.selector === '_nextChunk'){return e.fn()} throw(e)}}
211
353
  }),
212
- smalltalk.ChunkExporter);
354
+ smalltalk.ChunkParser);
355
+
213
356
 
214
357
  smalltalk.addMethod(
215
- unescape('_exportMethodsOf_on_'),
358
+ unescape('_on_'),
216
359
  smalltalk.method({
217
- selector: unescape('exportMethodsOf%3Aon%3A'),
218
- fn: function (aClass, aStream){
360
+ selector: unescape('on%3A'),
361
+ fn: function (aStream){
219
362
  var self=this;
220
- smalltalk.send(aClass, "_protocolsDo_", [(function(category, methods){return ((($receiver = smalltalk.send(category, "_match_", [unescape("%5E%5C*")])).klass === smalltalk.Boolean) ? (! $receiver ? (function(){return smalltalk.send(self, "_exportMethods_category_of_on_", [methods, category, aClass, aStream]);})() : nil) : smalltalk.send($receiver, "_ifFalse_", [(function(){return smalltalk.send(self, "_exportMethods_category_of_on_", [methods, category, aClass, aStream]);})]));})]);
363
+ return smalltalk.send(smalltalk.send(self, "_new", []), "_stream_", [aStream]);
221
364
  return self;}
222
365
  }),
223
- smalltalk.ChunkExporter);
366
+ smalltalk.ChunkParser.klass);
367
+
224
368
 
369
+ smalltalk.addClass('Node', smalltalk.Object, ['nodes'], 'Compiler');
225
370
  smalltalk.addMethod(
226
- unescape('_exportMetaDefinitionOf_on_'),
371
+ unescape('_nodes'),
227
372
  smalltalk.method({
228
- selector: unescape('exportMetaDefinitionOf%3Aon%3A'),
229
- fn: function (aClass, aStream){
373
+ selector: unescape('nodes'),
374
+ fn: function (){
230
375
  var self=this;
231
- ((($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_", [unescape("%20instanceVariableNames%3A%20%27")]);})(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_", [unescape("%27%21")]);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_", [unescape("%20instanceVariableNames%3A%20%27")]);})(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_", [unescape("%27%21")]);smalltalk.send($rec, "_lf", []);return smalltalk.send($rec, "_lf", []);})(aStream);})]));
376
+ return (($receiver = self['@nodes']) == nil || $receiver == undefined) ? (function(){return (self['@nodes']=smalltalk.send((smalltalk.Array || Array), "_new", []));})() : $receiver;
232
377
  return self;}
233
378
  }),
234
- smalltalk.ChunkExporter);
379
+ smalltalk.Node);
235
380
 
236
381
  smalltalk.addMethod(
237
- unescape('_classNameFor_'),
382
+ unescape('_nodes_'),
238
383
  smalltalk.method({
239
- selector: unescape('classNameFor%3A'),
240
- fn: function (aClass){
384
+ selector: unescape('nodes%3A'),
385
+ fn: function (aCollection){
241
386
  var self=this;
242
- 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", []);})]));})]));
387
+ (self['@nodes']=aCollection);
243
388
  return self;}
244
389
  }),
245
- smalltalk.ChunkExporter);
390
+ smalltalk.Node);
246
391
 
247
392
  smalltalk.addMethod(
248
- unescape('_chunkEscape_'),
249
- smalltalk.method({
250
- selector: unescape('chunkEscape%3A'),
251
- fn: function (aString){
252
- var self=this;
253
- return smalltalk.send(smalltalk.send(aString, "_replace_with_", [unescape("%21"), unescape("%21%21")]), "_trimBoth", []);
254
- return self;}
255
- }),
256
- smalltalk.ChunkExporter);
257
-
258
- smalltalk.addMethod(
259
- unescape('_exportMethods_category_of_on_'),
260
- smalltalk.method({
261
- selector: unescape('exportMethods%3Acategory%3Aof%3Aon%3A'),
262
- fn: function (methods, category, aClass, aStream){
263
- var self=this;
264
- (function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(unescape("%21"), "__comma", [smalltalk.send(self, "_classNameFor_", [aClass])])]);return smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(unescape("%20methodsFor%3A%20%27"), "__comma", [category]), "__comma", [unescape("%27%21")])]);})(aStream);
265
- smalltalk.send(methods, "_do_", [(function(each){return smalltalk.send(self, "_exportMethod_of_on_", [each, aClass, aStream]);})]);
266
- (function($rec){smalltalk.send($rec, "_nextPutAll_", [unescape("%20%21")]);smalltalk.send($rec, "_lf", []);return smalltalk.send($rec, "_lf", []);})(aStream);
267
- return self;}
268
- }),
269
- smalltalk.ChunkExporter);
270
-
271
- smalltalk.addMethod(
272
- unescape('_exportPackageExtensionsOf_on_'),
273
- smalltalk.method({
274
- selector: unescape('exportPackageExtensionsOf%3Aon%3A'),
275
- fn: function (package, aStream){
276
- var self=this;
277
- var name=nil;
278
- (name=smalltalk.send(package, "_name", []));
279
- smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk), "_current", []), "_classes", []), "__comma", [smalltalk.send(smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk), "_current", []), "_classes", []), "_collect_", [(function(each){return smalltalk.send(each, "_class", []);})])]), "_do_", [(function(each){return smalltalk.send(each, "_protocolsDo_", [(function(category, methods){return ((($receiver = smalltalk.send(category, "__eq", [smalltalk.send(unescape("*"), "__comma", [name])])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self, "_exportMethods_category_of_on_", [methods, category, each, aStream]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return smalltalk.send(self, "_exportMethods_category_of_on_", [methods, category, each, aStream]);})]));})]);})]);
280
- return self;}
281
- }),
282
- smalltalk.ChunkExporter);
283
-
284
- smalltalk.addMethod(
285
- unescape('_exportPackageDefinitionOf_on_'),
286
- smalltalk.method({
287
- selector: unescape('exportPackageDefinitionOf%3Aon%3A'),
288
- fn: function (package, aStream){
289
- var self=this;
290
- (function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(unescape("Smalltalk%20current%20createPackage%3A%20%27"), "__comma", [smalltalk.send(package, "_name", [])]), "__comma", [unescape("%27%20properties%3A%20")]), "__comma", [smalltalk.send(smalltalk.send(package, "_properties", []), "_storeString", [])]), "__comma", [unescape("%21")])]);return smalltalk.send($rec, "_lf", []);})(aStream);
291
- return self;}
292
- }),
293
- smalltalk.ChunkExporter);
294
-
295
-
296
-
297
- smalltalk.addClass('StrippedExporter', smalltalk.Exporter, [], 'Compiler');
298
- smalltalk.addMethod(
299
- unescape('_exportDefinitionOf_on_'),
300
- smalltalk.method({
301
- selector: unescape('exportDefinitionOf%3Aon%3A'),
302
- fn: function (aClass, aStream){
303
- var self=this;
304
- (function($rec){smalltalk.send($rec, "_nextPutAll_", [unescape("smalltalk.addClass%28")]);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(unescape("%27"), "__comma", [smalltalk.send(self, "_classNameFor_", [aClass])]), "__comma", [unescape("%27%2C%20")])]);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send("smalltalk.", "__comma", [smalltalk.send(self, "_classNameFor_", [smalltalk.send(aClass, "_superclass", [])])])]);return smalltalk.send($rec, "_nextPutAll_", [unescape("%2C%20%5B")]);})(aStream);
305
- smalltalk.send(smalltalk.send(aClass, "_instanceVariableNames", []), "_do_separatedBy_", [(function(each){return smalltalk.send(aStream, "_nextPutAll_", [smalltalk.send(smalltalk.send(unescape("%27"), "__comma", [each]), "__comma", [unescape("%27")])]);}), (function(){return smalltalk.send(aStream, "_nextPutAll_", [unescape("%2C%20")]);})]);
306
- (function($rec){smalltalk.send($rec, "_nextPutAll_", [unescape("%5D%2C%20%27")]);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(aClass, "_category", []), "__comma", [unescape("%27")])]);return smalltalk.send($rec, "_nextPutAll_", [unescape("%29%3B")]);})(aStream);
307
- smalltalk.send(aStream, "_lf", []);
308
- return self;}
309
- }),
310
- smalltalk.StrippedExporter);
311
-
312
- smalltalk.addMethod(
313
- unescape('_exportMethod_of_on_'),
314
- smalltalk.method({
315
- selector: unescape('exportMethod%3Aof%3Aon%3A'),
316
- fn: function (aMethod, aClass, aStream){
317
- var self=this;
318
- (function($rec){smalltalk.send($rec, "_nextPutAll_", [unescape("smalltalk.addMethod%28")]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(unescape("unescape%28%27"), "__comma", [smalltalk.send(smalltalk.send(smalltalk.send(aMethod, "_selector", []), "_asSelector", []), "_escaped", [])]), "__comma", [unescape("%27%29%2C")])]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [unescape("smalltalk.method%28%7B")]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(unescape("selector%3A%20unescape%28%27"), "__comma", [smalltalk.send(smalltalk.send(aMethod, "_selector", []), "_escaped", [])]), "__comma", [unescape("%27%29%2C")])]);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_", [unescape("%7D%29%2C")]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send("smalltalk.", "__comma", [smalltalk.send(self, "_classNameFor_", [aClass])])]);smalltalk.send($rec, "_nextPutAll_", [unescape("%29%3B")]);smalltalk.send($rec, "_lf", []);return smalltalk.send($rec, "_lf", []);})(aStream);
319
- return self;}
320
- }),
321
- smalltalk.StrippedExporter);
322
-
323
-
324
-
325
- smalltalk.addClass('Node', smalltalk.Object, ['nodes'], 'Compiler');
326
- smalltalk.addMethod(
327
- unescape('_nodes'),
328
- smalltalk.method({
329
- selector: unescape('nodes'),
330
- fn: function (){
331
- var self=this;
332
- return (($receiver = self['@nodes']) == nil || $receiver == undefined) ? (function(){return (self['@nodes']=smalltalk.send((smalltalk.Array || Array), "_new", []));})() : $receiver;
333
- return self;}
334
- }),
335
- smalltalk.Node);
336
-
337
- smalltalk.addMethod(
338
- unescape('_nodes_'),
339
- smalltalk.method({
340
- selector: unescape('nodes%3A'),
341
- fn: function (aCollection){
342
- var self=this;
343
- (self['@nodes']=aCollection);
344
- return self;}
345
- }),
346
- smalltalk.Node);
347
-
348
- smalltalk.addMethod(
349
- unescape('_addNode_'),
393
+ unescape('_addNode_'),
350
394
  smalltalk.method({
351
395
  selector: unescape('addNode%3A'),
352
396
  fn: function (aNode){
@@ -402,72 +446,39 @@ smalltalk.Node);
402
446
 
403
447
 
404
448
 
405
- smalltalk.addClass('MethodNode', smalltalk.Node, ['selector', 'arguments', 'source'], 'Compiler');
406
- smalltalk.addMethod(
407
- unescape('_selector'),
408
- smalltalk.method({
409
- selector: unescape('selector'),
410
- fn: function (){
411
- var self=this;
412
- return self['@selector'];
413
- return self;}
414
- }),
415
- smalltalk.MethodNode);
416
-
417
- smalltalk.addMethod(
418
- unescape('_selector_'),
419
- smalltalk.method({
420
- selector: unescape('selector%3A'),
421
- fn: function (aString){
422
- var self=this;
423
- (self['@selector']=aString);
424
- return self;}
425
- }),
426
- smalltalk.MethodNode);
427
-
449
+ smalltalk.addClass('SequenceNode', smalltalk.Node, ['temps'], 'Compiler');
428
450
  smalltalk.addMethod(
429
- unescape('_arguments'),
451
+ unescape('_temps'),
430
452
  smalltalk.method({
431
- selector: unescape('arguments'),
453
+ selector: unescape('temps'),
432
454
  fn: function (){
433
455
  var self=this;
434
- return (($receiver = self['@arguments']) == nil || $receiver == undefined) ? (function(){return [];})() : $receiver;
456
+ return (($receiver = self['@temps']) == nil || $receiver == undefined) ? (function(){return [];})() : $receiver;
435
457
  return self;}
436
458
  }),
437
- smalltalk.MethodNode);
459
+ smalltalk.SequenceNode);
438
460
 
439
461
  smalltalk.addMethod(
440
- unescape('_arguments_'),
462
+ unescape('_temps_'),
441
463
  smalltalk.method({
442
- selector: unescape('arguments%3A'),
464
+ selector: unescape('temps%3A'),
443
465
  fn: function (aCollection){
444
466
  var self=this;
445
- (self['@arguments']=aCollection);
467
+ (self['@temps']=aCollection);
446
468
  return self;}
447
469
  }),
448
- smalltalk.MethodNode);
470
+ smalltalk.SequenceNode);
449
471
 
450
472
  smalltalk.addMethod(
451
- unescape('_source'),
473
+ unescape('_asBlockSequenceNode'),
452
474
  smalltalk.method({
453
- selector: unescape('source'),
475
+ selector: unescape('asBlockSequenceNode'),
454
476
  fn: function (){
455
477
  var self=this;
456
- return self['@source'];
457
- return self;}
458
- }),
459
- smalltalk.MethodNode);
460
-
461
- smalltalk.addMethod(
462
- unescape('_source_'),
463
- smalltalk.method({
464
- selector: unescape('source%3A'),
465
- fn: function (aString){
466
- var self=this;
467
- (self['@source']=aString);
478
+ 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", []));
468
479
  return self;}
469
480
  }),
470
- smalltalk.MethodNode);
481
+ smalltalk.SequenceNode);
471
482
 
472
483
  smalltalk.addMethod(
473
484
  unescape('_accept_'),
@@ -475,198 +486,63 @@ smalltalk.method({
475
486
  selector: unescape('accept%3A'),
476
487
  fn: function (aVisitor){
477
488
  var self=this;
478
- smalltalk.send(aVisitor, "_visitMethodNode_", [self]);
479
- return self;}
480
- }),
481
- smalltalk.MethodNode);
482
-
483
-
484
-
485
- smalltalk.addClass('SendNode', smalltalk.Node, ['selector', 'arguments', 'receiver'], 'Compiler');
486
- smalltalk.addMethod(
487
- unescape('_selector'),
488
- smalltalk.method({
489
- selector: unescape('selector'),
490
- fn: function (){
491
- var self=this;
492
- return self['@selector'];
493
- return self;}
494
- }),
495
- smalltalk.SendNode);
496
-
497
- smalltalk.addMethod(
498
- unescape('_selector_'),
499
- smalltalk.method({
500
- selector: unescape('selector%3A'),
501
- fn: function (aString){
502
- var self=this;
503
- (self['@selector']=aString);
504
- return self;}
505
- }),
506
- smalltalk.SendNode);
507
-
508
- smalltalk.addMethod(
509
- unescape('_arguments'),
510
- smalltalk.method({
511
- selector: unescape('arguments'),
512
- fn: function (){
513
- var self=this;
514
- return (($receiver = self['@arguments']) == nil || $receiver == undefined) ? (function(){return (self['@arguments']=[]);})() : $receiver;
515
- return self;}
516
- }),
517
- smalltalk.SendNode);
518
-
519
- smalltalk.addMethod(
520
- unescape('_arguments_'),
521
- smalltalk.method({
522
- selector: unescape('arguments%3A'),
523
- fn: function (aCollection){
524
- var self=this;
525
- (self['@arguments']=aCollection);
526
- return self;}
527
- }),
528
- smalltalk.SendNode);
529
-
530
- smalltalk.addMethod(
531
- unescape('_receiver'),
532
- smalltalk.method({
533
- selector: unescape('receiver'),
534
- fn: function (){
535
- var self=this;
536
- return self['@receiver'];
537
- return self;}
538
- }),
539
- smalltalk.SendNode);
540
-
541
- smalltalk.addMethod(
542
- unescape('_receiver_'),
543
- smalltalk.method({
544
- selector: unescape('receiver%3A'),
545
- fn: function (aNode){
546
- var self=this;
547
- (self['@receiver']=aNode);
489
+ smalltalk.send(aVisitor, "_visitSequenceNode_", [self]);
548
490
  return self;}
549
491
  }),
550
- smalltalk.SendNode);
492
+ smalltalk.SequenceNode);
551
493
 
552
- smalltalk.addMethod(
553
- unescape('_valueForReceiver_'),
554
- smalltalk.method({
555
- selector: unescape('valueForReceiver%3A'),
556
- fn: function (anObject){
557
- var self=this;
558
- 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", []));
559
- return self;}
560
- }),
561
- smalltalk.SendNode);
562
494
 
563
- smalltalk.addMethod(
564
- unescape('_cascadeNodeWithMessages_'),
565
- smalltalk.method({
566
- selector: unescape('cascadeNodeWithMessages%3A'),
567
- fn: function (aCollection){
568
- var self=this;
569
- var first=nil;
570
- (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", [])));
571
- return (function($rec){smalltalk.send($rec, "_receiver_", [smalltalk.send(self, "_receiver", [])]);smalltalk.send($rec, "_nodes_", [smalltalk.send(smalltalk.send((smalltalk.Array || Array), "_with_", [first]), "__comma", [aCollection])]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.CascadeNode || CascadeNode), "_new", []));
572
- return self;}
573
- }),
574
- smalltalk.SendNode);
575
495
 
496
+ smalltalk.addClass('DynamicDictionaryNode', smalltalk.Node, [], 'Compiler');
576
497
  smalltalk.addMethod(
577
498
  unescape('_accept_'),
578
499
  smalltalk.method({
579
500
  selector: unescape('accept%3A'),
580
501
  fn: function (aVisitor){
581
502
  var self=this;
582
- smalltalk.send(aVisitor, "_visitSendNode_", [self]);
503
+ smalltalk.send(aVisitor, "_visitDynamicDictionaryNode_", [self]);
583
504
  return self;}
584
505
  }),
585
- smalltalk.SendNode);
586
-
506
+ smalltalk.DynamicDictionaryNode);
587
507
 
588
508
 
589
- smalltalk.addClass('CascadeNode', smalltalk.Node, ['receiver'], 'Compiler');
590
- smalltalk.addMethod(
591
- unescape('_receiver'),
592
- smalltalk.method({
593
- selector: unescape('receiver'),
594
- fn: function (){
595
- var self=this;
596
- return self['@receiver'];
597
- return self;}
598
- }),
599
- smalltalk.CascadeNode);
600
-
601
- smalltalk.addMethod(
602
- unescape('_receiver_'),
603
- smalltalk.method({
604
- selector: unescape('receiver%3A'),
605
- fn: function (aNode){
606
- var self=this;
607
- (self['@receiver']=aNode);
608
- return self;}
609
- }),
610
- smalltalk.CascadeNode);
611
509
 
510
+ smalltalk.addClass('ReturnNode', smalltalk.Node, [], 'Compiler');
612
511
  smalltalk.addMethod(
613
512
  unescape('_accept_'),
614
513
  smalltalk.method({
615
514
  selector: unescape('accept%3A'),
616
515
  fn: function (aVisitor){
617
516
  var self=this;
618
- smalltalk.send(aVisitor, "_visitCascadeNode_", [self]);
517
+ smalltalk.send(aVisitor, "_visitReturnNode_", [self]);
619
518
  return self;}
620
519
  }),
621
- smalltalk.CascadeNode);
622
-
623
-
520
+ smalltalk.ReturnNode);
624
521
 
625
- smalltalk.addClass('AssignmentNode', smalltalk.Node, ['left', 'right'], 'Compiler');
626
- smalltalk.addMethod(
627
- unescape('_left'),
628
- smalltalk.method({
629
- selector: unescape('left'),
630
- fn: function (){
631
- var self=this;
632
- return self['@left'];
633
- return self;}
634
- }),
635
- smalltalk.AssignmentNode);
636
522
 
637
- smalltalk.addMethod(
638
- unescape('_left_'),
639
- smalltalk.method({
640
- selector: unescape('left%3A'),
641
- fn: function (aNode){
642
- var self=this;
643
- (self['@left']=aNode);
644
- smalltalk.send(self['@left'], "_assigned_", [true]);
645
- return self;}
646
- }),
647
- smalltalk.AssignmentNode);
648
523
 
524
+ smalltalk.addClass('ValueNode', smalltalk.Node, ['value'], 'Compiler');
649
525
  smalltalk.addMethod(
650
- unescape('_right'),
526
+ unescape('_value'),
651
527
  smalltalk.method({
652
- selector: unescape('right'),
528
+ selector: unescape('value'),
653
529
  fn: function (){
654
530
  var self=this;
655
- return self['@right'];
531
+ return self['@value'];
656
532
  return self;}
657
533
  }),
658
- smalltalk.AssignmentNode);
534
+ smalltalk.ValueNode);
659
535
 
660
536
  smalltalk.addMethod(
661
- unescape('_right_'),
537
+ unescape('_value_'),
662
538
  smalltalk.method({
663
- selector: unescape('right%3A'),
664
- fn: function (aNode){
539
+ selector: unescape('value%3A'),
540
+ fn: function (anObject){
665
541
  var self=this;
666
- (self['@right']=aNode);
542
+ (self['@value']=anObject);
667
543
  return self;}
668
544
  }),
669
- smalltalk.AssignmentNode);
545
+ smalltalk.ValueNode);
670
546
 
671
547
  smalltalk.addMethod(
672
548
  unescape('_accept_'),
@@ -674,248 +550,167 @@ smalltalk.method({
674
550
  selector: unescape('accept%3A'),
675
551
  fn: function (aVisitor){
676
552
  var self=this;
677
- smalltalk.send(aVisitor, "_visitAssignmentNode_", [self]);
553
+ smalltalk.send(aVisitor, "_visitValueNode_", [self]);
678
554
  return self;}
679
555
  }),
680
- smalltalk.AssignmentNode);
681
-
682
-
556
+ smalltalk.ValueNode);
683
557
 
684
- smalltalk.addClass('BlockNode', smalltalk.Node, ['parameters', 'inlined'], 'Compiler');
685
558
  smalltalk.addMethod(
686
- unescape('_parameters'),
559
+ unescape('_isValueNode'),
687
560
  smalltalk.method({
688
- selector: unescape('parameters'),
561
+ selector: unescape('isValueNode'),
689
562
  fn: function (){
690
563
  var self=this;
691
- return (($receiver = self['@parameters']) == nil || $receiver == undefined) ? (function(){return (self['@parameters']=smalltalk.send((smalltalk.Array || Array), "_new", []));})() : $receiver;
564
+ return true;
692
565
  return self;}
693
566
  }),
694
- smalltalk.BlockNode);
567
+ smalltalk.ValueNode);
695
568
 
696
- smalltalk.addMethod(
697
- unescape('_parameters_'),
698
- smalltalk.method({
699
- selector: unescape('parameters%3A'),
700
- fn: function (aCollection){
701
- var self=this;
702
- (self['@parameters']=aCollection);
703
- return self;}
704
- }),
705
- smalltalk.BlockNode);
706
569
 
570
+
571
+ smalltalk.addClass('VariableNode', smalltalk.ValueNode, ['assigned'], 'Compiler');
707
572
  smalltalk.addMethod(
708
573
  unescape('_accept_'),
709
574
  smalltalk.method({
710
575
  selector: unescape('accept%3A'),
711
576
  fn: function (aVisitor){
712
577
  var self=this;
713
- smalltalk.send(aVisitor, "_visitBlockNode_", [self]);
714
- return self;}
715
- }),
716
- smalltalk.BlockNode);
717
-
718
- smalltalk.addMethod(
719
- unescape('_isBlockNode'),
720
- smalltalk.method({
721
- selector: unescape('isBlockNode'),
722
- fn: function (){
723
- var self=this;
724
- return true;
578
+ smalltalk.send(aVisitor, "_visitVariableNode_", [self]);
725
579
  return self;}
726
580
  }),
727
- smalltalk.BlockNode);
581
+ smalltalk.VariableNode);
728
582
 
729
583
  smalltalk.addMethod(
730
- unescape('_inlined'),
584
+ unescape('_assigned'),
731
585
  smalltalk.method({
732
- selector: unescape('inlined'),
586
+ selector: unescape('assigned'),
733
587
  fn: function (){
734
588
  var self=this;
735
- return (($receiver = self['@inlined']) == nil || $receiver == undefined) ? (function(){return false;})() : $receiver;
589
+ return (($receiver = self['@assigned']) == nil || $receiver == undefined) ? (function(){return false;})() : $receiver;
736
590
  return self;}
737
591
  }),
738
- smalltalk.BlockNode);
592
+ smalltalk.VariableNode);
739
593
 
740
594
  smalltalk.addMethod(
741
- unescape('_inlined_'),
595
+ unescape('_assigned_'),
742
596
  smalltalk.method({
743
- selector: unescape('inlined%3A'),
597
+ selector: unescape('assigned%3A'),
744
598
  fn: function (aBoolean){
745
599
  var self=this;
746
- (self['@inlined']=aBoolean);
747
- return self;}
748
- }),
749
- smalltalk.BlockNode);
750
-
751
-
752
-
753
- smalltalk.addClass('SequenceNode', smalltalk.Node, ['temps'], 'Compiler');
754
- smalltalk.addMethod(
755
- unescape('_temps'),
756
- smalltalk.method({
757
- selector: unescape('temps'),
758
- fn: function (){
759
- var self=this;
760
- return (($receiver = self['@temps']) == nil || $receiver == undefined) ? (function(){return [];})() : $receiver;
761
- return self;}
762
- }),
763
- smalltalk.SequenceNode);
764
-
765
- smalltalk.addMethod(
766
- unescape('_temps_'),
767
- smalltalk.method({
768
- selector: unescape('temps%3A'),
769
- fn: function (aCollection){
770
- var self=this;
771
- (self['@temps']=aCollection);
772
- return self;}
773
- }),
774
- smalltalk.SequenceNode);
775
-
776
- smalltalk.addMethod(
777
- unescape('_asBlockSequenceNode'),
778
- smalltalk.method({
779
- selector: unescape('asBlockSequenceNode'),
780
- fn: function (){
781
- var self=this;
782
- 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", []));
783
- return self;}
784
- }),
785
- smalltalk.SequenceNode);
786
-
787
- smalltalk.addMethod(
788
- unescape('_accept_'),
789
- smalltalk.method({
790
- selector: unescape('accept%3A'),
791
- fn: function (aVisitor){
792
- var self=this;
793
- smalltalk.send(aVisitor, "_visitSequenceNode_", [self]);
600
+ (self['@assigned']=aBoolean);
794
601
  return self;}
795
602
  }),
796
- smalltalk.SequenceNode);
797
-
603
+ smalltalk.VariableNode);
798
604
 
799
605
 
800
- smalltalk.addClass('BlockSequenceNode', smalltalk.SequenceNode, [], 'Compiler');
801
- smalltalk.addMethod(
802
- unescape('_accept_'),
803
- smalltalk.method({
804
- selector: unescape('accept%3A'),
805
- fn: function (aVisitor){
806
- var self=this;
807
- smalltalk.send(aVisitor, "_visitBlockSequenceNode_", [self]);
808
- return self;}
809
- }),
810
- smalltalk.BlockSequenceNode);
811
606
 
607
+ smalltalk.addClass('ChunkExporter', smalltalk.Exporter, [], 'Compiler');
812
608
  smalltalk.addMethod(
813
- unescape('_isBlockSequenceNode'),
609
+ unescape('_exportDefinitionOf_on_'),
814
610
  smalltalk.method({
815
- selector: unescape('isBlockSequenceNode'),
816
- fn: function (){
611
+ selector: unescape('exportDefinitionOf%3Aon%3A'),
612
+ fn: function (aClass, aStream){
817
613
  var self=this;
818
- return true;
614
+ (function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(self, "_classNameFor_", [smalltalk.send(aClass, "_superclass", [])])]);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(unescape("%20subclass%3A%20%23"), "__comma", [smalltalk.send(self, "_classNameFor_", [aClass])])]);smalltalk.send($rec, "_lf", []);return smalltalk.send($rec, "_nextPutAll_", [unescape("%09instanceVariableNames%3A%20%27")]);})(aStream);
615
+ smalltalk.send(smalltalk.send(aClass, "_instanceVariableNames", []), "_do_separatedBy_", [(function(each){return smalltalk.send(aStream, "_nextPutAll_", [each]);}), (function(){return smalltalk.send(aStream, "_nextPutAll_", [" "]);})]);
616
+ (function($rec){smalltalk.send($rec, "_nextPutAll_", [unescape("%27")]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(unescape("%09category%3A%20%27"), "__comma", [smalltalk.send(aClass, "_category", [])]), "__comma", [unescape("%27%21")])]);return smalltalk.send($rec, "_lf", []);})(aStream);
617
+ ((($receiver = smalltalk.send(smalltalk.send(aClass, "_comment", []), "_notEmpty", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return (function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(unescape("%21"), "__comma", [smalltalk.send(self, "_classNameFor_", [aClass])]), "__comma", [unescape("%20commentStamp%21")])]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(self, "_chunkEscape_", [smalltalk.send(aClass, "_comment", [])]), "__comma", [unescape("%21")])]);return smalltalk.send($rec, "_lf", []);})(aStream);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return (function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(unescape("%21"), "__comma", [smalltalk.send(self, "_classNameFor_", [aClass])]), "__comma", [unescape("%20commentStamp%21")])]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(self, "_chunkEscape_", [smalltalk.send(aClass, "_comment", [])]), "__comma", [unescape("%21")])]);return smalltalk.send($rec, "_lf", []);})(aStream);})]));
618
+ smalltalk.send(aStream, "_lf", []);
819
619
  return self;}
820
620
  }),
821
- smalltalk.BlockSequenceNode);
822
-
823
-
621
+ smalltalk.ChunkExporter);
824
622
 
825
- smalltalk.addClass('ReturnNode', smalltalk.Node, [], 'Compiler');
826
623
  smalltalk.addMethod(
827
- unescape('_accept_'),
624
+ unescape('_exportMethod_of_on_'),
828
625
  smalltalk.method({
829
- selector: unescape('accept%3A'),
830
- fn: function (aVisitor){
626
+ selector: unescape('exportMethod%3Aof%3Aon%3A'),
627
+ fn: function (aMethod, aClass, aStream){
831
628
  var self=this;
832
- smalltalk.send(aVisitor, "_visitReturnNode_", [self]);
629
+ (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_", [unescape("%21")]);})(aStream);
833
630
  return self;}
834
631
  }),
835
- smalltalk.ReturnNode);
836
-
837
-
632
+ smalltalk.ChunkExporter);
838
633
 
839
- smalltalk.addClass('ValueNode', smalltalk.Node, ['value'], 'Compiler');
840
634
  smalltalk.addMethod(
841
- unescape('_value'),
635
+ unescape('_exportMethodsOf_on_'),
842
636
  smalltalk.method({
843
- selector: unescape('value'),
844
- fn: function (){
637
+ selector: unescape('exportMethodsOf%3Aon%3A'),
638
+ fn: function (aClass, aStream){
845
639
  var self=this;
846
- return self['@value'];
640
+ smalltalk.send(aClass, "_protocolsDo_", [(function(category, methods){return ((($receiver = smalltalk.send(category, "_match_", [unescape("%5E%5C*")])).klass === smalltalk.Boolean) ? (! $receiver ? (function(){return smalltalk.send(self, "_exportMethods_category_of_on_", [methods, category, aClass, aStream]);})() : nil) : smalltalk.send($receiver, "_ifFalse_", [(function(){return smalltalk.send(self, "_exportMethods_category_of_on_", [methods, category, aClass, aStream]);})]));})]);
847
641
  return self;}
848
642
  }),
849
- smalltalk.ValueNode);
643
+ smalltalk.ChunkExporter);
850
644
 
851
645
  smalltalk.addMethod(
852
- unescape('_value_'),
646
+ unescape('_exportMetaDefinitionOf_on_'),
853
647
  smalltalk.method({
854
- selector: unescape('value%3A'),
855
- fn: function (anObject){
648
+ selector: unescape('exportMetaDefinitionOf%3Aon%3A'),
649
+ fn: function (aClass, aStream){
856
650
  var self=this;
857
- (self['@value']=anObject);
651
+ ((($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_", [unescape("%20instanceVariableNames%3A%20%27")]);})(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_", [unescape("%27%21")]);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_", [unescape("%20instanceVariableNames%3A%20%27")]);})(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_", [unescape("%27%21")]);smalltalk.send($rec, "_lf", []);return smalltalk.send($rec, "_lf", []);})(aStream);})]));
858
652
  return self;}
859
653
  }),
860
- smalltalk.ValueNode);
654
+ smalltalk.ChunkExporter);
861
655
 
862
656
  smalltalk.addMethod(
863
- unescape('_accept_'),
657
+ unescape('_classNameFor_'),
864
658
  smalltalk.method({
865
- selector: unescape('accept%3A'),
866
- fn: function (aVisitor){
659
+ selector: unescape('classNameFor%3A'),
660
+ fn: function (aClass){
867
661
  var self=this;
868
- smalltalk.send(aVisitor, "_visitValueNode_", [self]);
662
+ 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", []);})]));})]));
869
663
  return self;}
870
664
  }),
871
- smalltalk.ValueNode);
665
+ smalltalk.ChunkExporter);
872
666
 
873
667
  smalltalk.addMethod(
874
- unescape('_isValueNode'),
668
+ unescape('_chunkEscape_'),
875
669
  smalltalk.method({
876
- selector: unescape('isValueNode'),
877
- fn: function (){
670
+ selector: unescape('chunkEscape%3A'),
671
+ fn: function (aString){
878
672
  var self=this;
879
- return true;
673
+ return smalltalk.send(smalltalk.send(aString, "_replace_with_", [unescape("%21"), unescape("%21%21")]), "_trimBoth", []);
880
674
  return self;}
881
675
  }),
882
- smalltalk.ValueNode);
883
-
884
-
676
+ smalltalk.ChunkExporter);
885
677
 
886
- smalltalk.addClass('VariableNode', smalltalk.ValueNode, ['assigned'], 'Compiler');
887
678
  smalltalk.addMethod(
888
- unescape('_accept_'),
679
+ unescape('_exportMethods_category_of_on_'),
889
680
  smalltalk.method({
890
- selector: unescape('accept%3A'),
891
- fn: function (aVisitor){
681
+ selector: unescape('exportMethods%3Acategory%3Aof%3Aon%3A'),
682
+ fn: function (methods, category, aClass, aStream){
892
683
  var self=this;
893
- smalltalk.send(aVisitor, "_visitVariableNode_", [self]);
684
+ (function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(unescape("%21"), "__comma", [smalltalk.send(self, "_classNameFor_", [aClass])])]);return smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(unescape("%20methodsFor%3A%20%27"), "__comma", [category]), "__comma", [unescape("%27%21")])]);})(aStream);
685
+ smalltalk.send(methods, "_do_", [(function(each){return smalltalk.send(self, "_exportMethod_of_on_", [each, aClass, aStream]);})]);
686
+ (function($rec){smalltalk.send($rec, "_nextPutAll_", [unescape("%20%21")]);smalltalk.send($rec, "_lf", []);return smalltalk.send($rec, "_lf", []);})(aStream);
894
687
  return self;}
895
688
  }),
896
- smalltalk.VariableNode);
689
+ smalltalk.ChunkExporter);
897
690
 
898
691
  smalltalk.addMethod(
899
- unescape('_assigned'),
692
+ unescape('_exportPackageExtensionsOf_on_'),
900
693
  smalltalk.method({
901
- selector: unescape('assigned'),
902
- fn: function (){
694
+ selector: unescape('exportPackageExtensionsOf%3Aon%3A'),
695
+ fn: function (package, aStream){
903
696
  var self=this;
904
- return (($receiver = self['@assigned']) == nil || $receiver == undefined) ? (function(){return false;})() : $receiver;
697
+ var name=nil;
698
+ (name=smalltalk.send(package, "_name", []));
699
+ smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk), "_current", []), "_classes", []), "__comma", [smalltalk.send(smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk), "_current", []), "_classes", []), "_collect_", [(function(each){return smalltalk.send(each, "_class", []);})])]), "_do_", [(function(each){return smalltalk.send(each, "_protocolsDo_", [(function(category, methods){return ((($receiver = smalltalk.send(category, "__eq", [smalltalk.send(unescape("*"), "__comma", [name])])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self, "_exportMethods_category_of_on_", [methods, category, each, aStream]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return smalltalk.send(self, "_exportMethods_category_of_on_", [methods, category, each, aStream]);})]));})]);})]);
905
700
  return self;}
906
701
  }),
907
- smalltalk.VariableNode);
702
+ smalltalk.ChunkExporter);
908
703
 
909
704
  smalltalk.addMethod(
910
- unescape('_assigned_'),
705
+ unescape('_exportPackageDefinitionOf_on_'),
911
706
  smalltalk.method({
912
- selector: unescape('assigned%3A'),
913
- fn: function (aBoolean){
707
+ selector: unescape('exportPackageDefinitionOf%3Aon%3A'),
708
+ fn: function (package, aStream){
914
709
  var self=this;
915
- (self['@assigned']=aBoolean);
710
+ (function($rec){smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(unescape("Smalltalk%20current%20createPackage%3A%20%27"), "__comma", [smalltalk.send(package, "_name", [])]), "__comma", [unescape("%27%20properties%3A%20")]), "__comma", [smalltalk.send(smalltalk.send(package, "_properties", []), "_storeString", [])]), "__comma", [unescape("%21")])]);return smalltalk.send($rec, "_lf", []);})(aStream);
916
711
  return self;}
917
712
  }),
918
- smalltalk.VariableNode);
713
+ smalltalk.ChunkExporter);
919
714
 
920
715
 
921
716
 
@@ -933,218 +728,216 @@ smalltalk.ClassReferenceNode);
933
728
 
934
729
 
935
730
 
936
- smalltalk.addClass('JSStatementNode', smalltalk.Node, ['source'], 'Compiler');
731
+ smalltalk.addClass('SendNode', smalltalk.Node, ['selector', 'arguments', 'receiver'], 'Compiler');
937
732
  smalltalk.addMethod(
938
- unescape('_source'),
733
+ unescape('_selector'),
939
734
  smalltalk.method({
940
- selector: unescape('source'),
735
+ selector: unescape('selector'),
941
736
  fn: function (){
942
737
  var self=this;
943
- return (($receiver = self['@source']) == nil || $receiver == undefined) ? (function(){return "";})() : $receiver;
738
+ return self['@selector'];
944
739
  return self;}
945
740
  }),
946
- smalltalk.JSStatementNode);
741
+ smalltalk.SendNode);
947
742
 
948
743
  smalltalk.addMethod(
949
- unescape('_source_'),
744
+ unescape('_selector_'),
950
745
  smalltalk.method({
951
- selector: unescape('source%3A'),
746
+ selector: unescape('selector%3A'),
952
747
  fn: function (aString){
953
748
  var self=this;
954
- (self['@source']=aString);
749
+ (self['@selector']=aString);
955
750
  return self;}
956
751
  }),
957
- smalltalk.JSStatementNode);
752
+ smalltalk.SendNode);
958
753
 
959
754
  smalltalk.addMethod(
960
- unescape('_accept_'),
755
+ unescape('_arguments'),
961
756
  smalltalk.method({
962
- selector: unescape('accept%3A'),
963
- fn: function (aVisitor){
757
+ selector: unescape('arguments'),
758
+ fn: function (){
964
759
  var self=this;
965
- smalltalk.send(aVisitor, "_visitJSStatementNode_", [self]);
760
+ return (($receiver = self['@arguments']) == nil || $receiver == undefined) ? (function(){return (self['@arguments']=[]);})() : $receiver;
966
761
  return self;}
967
762
  }),
968
- smalltalk.JSStatementNode);
969
-
970
-
763
+ smalltalk.SendNode);
971
764
 
972
- smalltalk.addClass('NodeVisitor', smalltalk.Object, [], 'Compiler');
973
765
  smalltalk.addMethod(
974
- unescape('_visit_'),
766
+ unescape('_arguments_'),
975
767
  smalltalk.method({
976
- selector: unescape('visit%3A'),
977
- fn: function (aNode){
768
+ selector: unescape('arguments%3A'),
769
+ fn: function (aCollection){
978
770
  var self=this;
979
- smalltalk.send(aNode, "_accept_", [self]);
771
+ (self['@arguments']=aCollection);
980
772
  return self;}
981
773
  }),
982
- smalltalk.NodeVisitor);
774
+ smalltalk.SendNode);
983
775
 
984
776
  smalltalk.addMethod(
985
- unescape('_visitNode_'),
777
+ unescape('_receiver'),
986
778
  smalltalk.method({
987
- selector: unescape('visitNode%3A'),
988
- fn: function (aNode){
779
+ selector: unescape('receiver'),
780
+ fn: function (){
989
781
  var self=this;
990
-
782
+ return self['@receiver'];
991
783
  return self;}
992
784
  }),
993
- smalltalk.NodeVisitor);
785
+ smalltalk.SendNode);
994
786
 
995
787
  smalltalk.addMethod(
996
- unescape('_visitMethodNode_'),
788
+ unescape('_receiver_'),
997
789
  smalltalk.method({
998
- selector: unescape('visitMethodNode%3A'),
790
+ selector: unescape('receiver%3A'),
999
791
  fn: function (aNode){
1000
792
  var self=this;
1001
- smalltalk.send(self, "_visitNode_", [aNode]);
793
+ (self['@receiver']=aNode);
1002
794
  return self;}
1003
795
  }),
1004
- smalltalk.NodeVisitor);
796
+ smalltalk.SendNode);
1005
797
 
1006
798
  smalltalk.addMethod(
1007
- unescape('_visitSequenceNode_'),
799
+ unescape('_valueForReceiver_'),
1008
800
  smalltalk.method({
1009
- selector: unescape('visitSequenceNode%3A'),
1010
- fn: function (aNode){
801
+ selector: unescape('valueForReceiver%3A'),
802
+ fn: function (anObject){
1011
803
  var self=this;
1012
- smalltalk.send(self, "_visitNode_", [aNode]);
804
+ 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", []));
1013
805
  return self;}
1014
806
  }),
1015
- smalltalk.NodeVisitor);
807
+ smalltalk.SendNode);
1016
808
 
1017
809
  smalltalk.addMethod(
1018
- unescape('_visitBlockSequenceNode_'),
810
+ unescape('_cascadeNodeWithMessages_'),
1019
811
  smalltalk.method({
1020
- selector: unescape('visitBlockSequenceNode%3A'),
1021
- fn: function (aNode){
812
+ selector: unescape('cascadeNodeWithMessages%3A'),
813
+ fn: function (aCollection){
1022
814
  var self=this;
1023
- smalltalk.send(self, "_visitSequenceNode_", [aNode]);
815
+ var first=nil;
816
+ (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", [])));
817
+ return (function($rec){smalltalk.send($rec, "_receiver_", [smalltalk.send(self, "_receiver", [])]);smalltalk.send($rec, "_nodes_", [smalltalk.send(smalltalk.send((smalltalk.Array || Array), "_with_", [first]), "__comma", [aCollection])]);return smalltalk.send($rec, "_yourself", []);})(smalltalk.send((smalltalk.CascadeNode || CascadeNode), "_new", []));
1024
818
  return self;}
1025
819
  }),
1026
- smalltalk.NodeVisitor);
820
+ smalltalk.SendNode);
1027
821
 
1028
822
  smalltalk.addMethod(
1029
- unescape('_visitBlockNode_'),
823
+ unescape('_accept_'),
1030
824
  smalltalk.method({
1031
- selector: unescape('visitBlockNode%3A'),
1032
- fn: function (aNode){
825
+ selector: unescape('accept%3A'),
826
+ fn: function (aVisitor){
1033
827
  var self=this;
1034
- smalltalk.send(self, "_visitNode_", [aNode]);
828
+ smalltalk.send(aVisitor, "_visitSendNode_", [self]);
1035
829
  return self;}
1036
830
  }),
1037
- smalltalk.NodeVisitor);
831
+ smalltalk.SendNode);
1038
832
 
1039
- smalltalk.addMethod(
1040
- unescape('_visitReturnNode_'),
1041
- smalltalk.method({
1042
- selector: unescape('visitReturnNode%3A'),
1043
- fn: function (aNode){
1044
- var self=this;
1045
- smalltalk.send(self, "_visitNode_", [aNode]);
1046
- return self;}
1047
- }),
1048
- smalltalk.NodeVisitor);
1049
833
 
834
+
835
+ smalltalk.addClass('JSStatementNode', smalltalk.Node, ['source'], 'Compiler');
1050
836
  smalltalk.addMethod(
1051
- unescape('_visitSendNode_'),
837
+ unescape('_source'),
1052
838
  smalltalk.method({
1053
- selector: unescape('visitSendNode%3A'),
1054
- fn: function (aNode){
839
+ selector: unescape('source'),
840
+ fn: function (){
1055
841
  var self=this;
1056
- smalltalk.send(self, "_visitNode_", [aNode]);
842
+ return (($receiver = self['@source']) == nil || $receiver == undefined) ? (function(){return "";})() : $receiver;
1057
843
  return self;}
1058
844
  }),
1059
- smalltalk.NodeVisitor);
845
+ smalltalk.JSStatementNode);
1060
846
 
1061
847
  smalltalk.addMethod(
1062
- unescape('_visitCascadeNode_'),
848
+ unescape('_source_'),
1063
849
  smalltalk.method({
1064
- selector: unescape('visitCascadeNode%3A'),
1065
- fn: function (aNode){
850
+ selector: unescape('source%3A'),
851
+ fn: function (aString){
1066
852
  var self=this;
1067
- smalltalk.send(self, "_visitNode_", [aNode]);
853
+ (self['@source']=aString);
1068
854
  return self;}
1069
855
  }),
1070
- smalltalk.NodeVisitor);
856
+ smalltalk.JSStatementNode);
1071
857
 
1072
858
  smalltalk.addMethod(
1073
- unescape('_visitValueNode_'),
859
+ unescape('_accept_'),
1074
860
  smalltalk.method({
1075
- selector: unescape('visitValueNode%3A'),
1076
- fn: function (aNode){
861
+ selector: unescape('accept%3A'),
862
+ fn: function (aVisitor){
1077
863
  var self=this;
1078
- smalltalk.send(self, "_visitNode_", [aNode]);
864
+ smalltalk.send(aVisitor, "_visitJSStatementNode_", [self]);
1079
865
  return self;}
1080
866
  }),
1081
- smalltalk.NodeVisitor);
867
+ smalltalk.JSStatementNode);
1082
868
 
869
+
870
+
871
+ smalltalk.addClass('AssignmentNode', smalltalk.Node, ['left', 'right'], 'Compiler');
1083
872
  smalltalk.addMethod(
1084
- unescape('_visitVariableNode_'),
873
+ unescape('_left'),
1085
874
  smalltalk.method({
1086
- selector: unescape('visitVariableNode%3A'),
1087
- fn: function (aNode){
875
+ selector: unescape('left'),
876
+ fn: function (){
1088
877
  var self=this;
1089
-
878
+ return self['@left'];
1090
879
  return self;}
1091
880
  }),
1092
- smalltalk.NodeVisitor);
881
+ smalltalk.AssignmentNode);
1093
882
 
1094
883
  smalltalk.addMethod(
1095
- unescape('_visitAssignmentNode_'),
884
+ unescape('_left_'),
1096
885
  smalltalk.method({
1097
- selector: unescape('visitAssignmentNode%3A'),
886
+ selector: unescape('left%3A'),
1098
887
  fn: function (aNode){
1099
888
  var self=this;
1100
- smalltalk.send(self, "_visitNode_", [aNode]);
889
+ (self['@left']=aNode);
890
+ smalltalk.send(self['@left'], "_assigned_", [true]);
1101
891
  return self;}
1102
892
  }),
1103
- smalltalk.NodeVisitor);
893
+ smalltalk.AssignmentNode);
1104
894
 
1105
895
  smalltalk.addMethod(
1106
- unescape('_visitClassReferenceNode_'),
896
+ unescape('_right'),
1107
897
  smalltalk.method({
1108
- selector: unescape('visitClassReferenceNode%3A'),
1109
- fn: function (aNode){
898
+ selector: unescape('right'),
899
+ fn: function (){
1110
900
  var self=this;
1111
- (function($rec){smalltalk.send($rec, "_nextPutAll_", ["smalltalk."]);return smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(aNode, "_value", [])]);})(self);
901
+ return self['@right'];
1112
902
  return self;}
1113
903
  }),
1114
- smalltalk.NodeVisitor);
904
+ smalltalk.AssignmentNode);
1115
905
 
1116
906
  smalltalk.addMethod(
1117
- unescape('_visitJSStatementNode_'),
907
+ unescape('_right_'),
1118
908
  smalltalk.method({
1119
- selector: unescape('visitJSStatementNode%3A'),
909
+ selector: unescape('right%3A'),
1120
910
  fn: function (aNode){
1121
911
  var self=this;
1122
- (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);
912
+ (self['@right']=aNode);
1123
913
  return self;}
1124
914
  }),
1125
- smalltalk.NodeVisitor);
915
+ smalltalk.AssignmentNode);
1126
916
 
1127
917
  smalltalk.addMethod(
1128
- unescape('_visitDynamicArrayNode_'),
918
+ unescape('_accept_'),
1129
919
  smalltalk.method({
1130
- selector: unescape('visitDynamicArrayNode%3A'),
1131
- fn: function (aNode){
920
+ selector: unescape('accept%3A'),
921
+ fn: function (aVisitor){
1132
922
  var self=this;
1133
- smalltalk.send(self, "_visitNode_", [aNode]);
923
+ smalltalk.send(aVisitor, "_visitAssignmentNode_", [self]);
1134
924
  return self;}
1135
925
  }),
1136
- smalltalk.NodeVisitor);
926
+ smalltalk.AssignmentNode);
927
+
928
+
1137
929
 
930
+ smalltalk.addClass('DynamicArrayNode', smalltalk.Node, [], 'Compiler');
1138
931
  smalltalk.addMethod(
1139
- unescape('_visitDynamicDictionaryNode_'),
932
+ unescape('_accept_'),
1140
933
  smalltalk.method({
1141
- selector: unescape('visitDynamicDictionaryNode%3A'),
1142
- fn: function (aNode){
934
+ selector: unescape('accept%3A'),
935
+ fn: function (aVisitor){
1143
936
  var self=this;
1144
- smalltalk.send(self, "_visitNode_", [aNode]);
937
+ smalltalk.send(aVisitor, "_visitDynamicArrayNode_", [self]);
1145
938
  return self;}
1146
939
  }),
1147
- smalltalk.NodeVisitor);
940
+ smalltalk.DynamicArrayNode);
1148
941
 
1149
942
 
1150
943
 
@@ -1838,34 +1631,241 @@ return self;}
1838
1631
  smalltalk.Compiler.klass);
1839
1632
 
1840
1633
 
1841
- smalltalk.addClass('DoIt', smalltalk.Object, [], 'Compiler');
1634
+ smalltalk.addClass('BlockSequenceNode', smalltalk.SequenceNode, [], 'Compiler');
1635
+ smalltalk.addMethod(
1636
+ unescape('_accept_'),
1637
+ smalltalk.method({
1638
+ selector: unescape('accept%3A'),
1639
+ fn: function (aVisitor){
1640
+ var self=this;
1641
+ smalltalk.send(aVisitor, "_visitBlockSequenceNode_", [self]);
1642
+ return self;}
1643
+ }),
1644
+ smalltalk.BlockSequenceNode);
1645
+
1646
+ smalltalk.addMethod(
1647
+ unescape('_isBlockSequenceNode'),
1648
+ smalltalk.method({
1649
+ selector: unescape('isBlockSequenceNode'),
1650
+ fn: function (){
1651
+ var self=this;
1652
+ return true;
1653
+ return self;}
1654
+ }),
1655
+ smalltalk.BlockSequenceNode);
1842
1656
 
1843
1657
 
1844
- smalltalk.addClass('DynamicArrayNode', smalltalk.Node, [], 'Compiler');
1658
+
1659
+ smalltalk.addClass('BlockNode', smalltalk.Node, ['parameters', 'inlined'], 'Compiler');
1660
+ smalltalk.addMethod(
1661
+ unescape('_parameters'),
1662
+ smalltalk.method({
1663
+ selector: unescape('parameters'),
1664
+ fn: function (){
1665
+ var self=this;
1666
+ return (($receiver = self['@parameters']) == nil || $receiver == undefined) ? (function(){return (self['@parameters']=smalltalk.send((smalltalk.Array || Array), "_new", []));})() : $receiver;
1667
+ return self;}
1668
+ }),
1669
+ smalltalk.BlockNode);
1670
+
1671
+ smalltalk.addMethod(
1672
+ unescape('_parameters_'),
1673
+ smalltalk.method({
1674
+ selector: unescape('parameters%3A'),
1675
+ fn: function (aCollection){
1676
+ var self=this;
1677
+ (self['@parameters']=aCollection);
1678
+ return self;}
1679
+ }),
1680
+ smalltalk.BlockNode);
1681
+
1845
1682
  smalltalk.addMethod(
1846
1683
  unescape('_accept_'),
1847
1684
  smalltalk.method({
1848
1685
  selector: unescape('accept%3A'),
1849
1686
  fn: function (aVisitor){
1850
1687
  var self=this;
1851
- smalltalk.send(aVisitor, "_visitDynamicArrayNode_", [self]);
1688
+ smalltalk.send(aVisitor, "_visitBlockNode_", [self]);
1852
1689
  return self;}
1853
1690
  }),
1854
- smalltalk.DynamicArrayNode);
1691
+ smalltalk.BlockNode);
1692
+
1693
+ smalltalk.addMethod(
1694
+ unescape('_isBlockNode'),
1695
+ smalltalk.method({
1696
+ selector: unescape('isBlockNode'),
1697
+ fn: function (){
1698
+ var self=this;
1699
+ return true;
1700
+ return self;}
1701
+ }),
1702
+ smalltalk.BlockNode);
1703
+
1704
+ smalltalk.addMethod(
1705
+ unescape('_inlined'),
1706
+ smalltalk.method({
1707
+ selector: unescape('inlined'),
1708
+ fn: function (){
1709
+ var self=this;
1710
+ return (($receiver = self['@inlined']) == nil || $receiver == undefined) ? (function(){return false;})() : $receiver;
1711
+ return self;}
1712
+ }),
1713
+ smalltalk.BlockNode);
1714
+
1715
+ smalltalk.addMethod(
1716
+ unescape('_inlined_'),
1717
+ smalltalk.method({
1718
+ selector: unescape('inlined%3A'),
1719
+ fn: function (aBoolean){
1720
+ var self=this;
1721
+ (self['@inlined']=aBoolean);
1722
+ return self;}
1723
+ }),
1724
+ smalltalk.BlockNode);
1855
1725
 
1856
1726
 
1857
1727
 
1858
- smalltalk.addClass('DynamicDictionaryNode', smalltalk.Node, [], 'Compiler');
1728
+ smalltalk.addClass('CascadeNode', smalltalk.Node, ['receiver'], 'Compiler');
1729
+ smalltalk.addMethod(
1730
+ unescape('_receiver'),
1731
+ smalltalk.method({
1732
+ selector: unescape('receiver'),
1733
+ fn: function (){
1734
+ var self=this;
1735
+ return self['@receiver'];
1736
+ return self;}
1737
+ }),
1738
+ smalltalk.CascadeNode);
1739
+
1740
+ smalltalk.addMethod(
1741
+ unescape('_receiver_'),
1742
+ smalltalk.method({
1743
+ selector: unescape('receiver%3A'),
1744
+ fn: function (aNode){
1745
+ var self=this;
1746
+ (self['@receiver']=aNode);
1747
+ return self;}
1748
+ }),
1749
+ smalltalk.CascadeNode);
1750
+
1859
1751
  smalltalk.addMethod(
1860
1752
  unescape('_accept_'),
1861
1753
  smalltalk.method({
1862
1754
  selector: unescape('accept%3A'),
1863
1755
  fn: function (aVisitor){
1864
1756
  var self=this;
1865
- smalltalk.send(aVisitor, "_visitDynamicDictionaryNode_", [self]);
1757
+ smalltalk.send(aVisitor, "_visitCascadeNode_", [self]);
1866
1758
  return self;}
1867
1759
  }),
1868
- smalltalk.DynamicDictionaryNode);
1760
+ smalltalk.CascadeNode);
1761
+
1762
+
1763
+
1764
+ smalltalk.addClass('MethodNode', smalltalk.Node, ['selector', 'arguments', 'source'], 'Compiler');
1765
+ smalltalk.addMethod(
1766
+ unescape('_selector'),
1767
+ smalltalk.method({
1768
+ selector: unescape('selector'),
1769
+ fn: function (){
1770
+ var self=this;
1771
+ return self['@selector'];
1772
+ return self;}
1773
+ }),
1774
+ smalltalk.MethodNode);
1775
+
1776
+ smalltalk.addMethod(
1777
+ unescape('_selector_'),
1778
+ smalltalk.method({
1779
+ selector: unescape('selector%3A'),
1780
+ fn: function (aString){
1781
+ var self=this;
1782
+ (self['@selector']=aString);
1783
+ return self;}
1784
+ }),
1785
+ smalltalk.MethodNode);
1786
+
1787
+ smalltalk.addMethod(
1788
+ unescape('_arguments'),
1789
+ smalltalk.method({
1790
+ selector: unescape('arguments'),
1791
+ fn: function (){
1792
+ var self=this;
1793
+ return (($receiver = self['@arguments']) == nil || $receiver == undefined) ? (function(){return [];})() : $receiver;
1794
+ return self;}
1795
+ }),
1796
+ smalltalk.MethodNode);
1797
+
1798
+ smalltalk.addMethod(
1799
+ unescape('_arguments_'),
1800
+ smalltalk.method({
1801
+ selector: unescape('arguments%3A'),
1802
+ fn: function (aCollection){
1803
+ var self=this;
1804
+ (self['@arguments']=aCollection);
1805
+ return self;}
1806
+ }),
1807
+ smalltalk.MethodNode);
1808
+
1809
+ smalltalk.addMethod(
1810
+ unescape('_source'),
1811
+ smalltalk.method({
1812
+ selector: unescape('source'),
1813
+ fn: function (){
1814
+ var self=this;
1815
+ return self['@source'];
1816
+ return self;}
1817
+ }),
1818
+ smalltalk.MethodNode);
1819
+
1820
+ smalltalk.addMethod(
1821
+ unescape('_source_'),
1822
+ smalltalk.method({
1823
+ selector: unescape('source%3A'),
1824
+ fn: function (aString){
1825
+ var self=this;
1826
+ (self['@source']=aString);
1827
+ return self;}
1828
+ }),
1829
+ smalltalk.MethodNode);
1830
+
1831
+ smalltalk.addMethod(
1832
+ unescape('_accept_'),
1833
+ smalltalk.method({
1834
+ selector: unescape('accept%3A'),
1835
+ fn: function (aVisitor){
1836
+ var self=this;
1837
+ smalltalk.send(aVisitor, "_visitMethodNode_", [self]);
1838
+ return self;}
1839
+ }),
1840
+ smalltalk.MethodNode);
1841
+
1842
+
1843
+
1844
+ smalltalk.addClass('StrippedExporter', smalltalk.Exporter, [], 'Compiler');
1845
+ smalltalk.addMethod(
1846
+ unescape('_exportDefinitionOf_on_'),
1847
+ smalltalk.method({
1848
+ selector: unescape('exportDefinitionOf%3Aon%3A'),
1849
+ fn: function (aClass, aStream){
1850
+ var self=this;
1851
+ (function($rec){smalltalk.send($rec, "_nextPutAll_", [unescape("smalltalk.addClass%28")]);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(unescape("%27"), "__comma", [smalltalk.send(self, "_classNameFor_", [aClass])]), "__comma", [unescape("%27%2C%20")])]);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send("smalltalk.", "__comma", [smalltalk.send(self, "_classNameFor_", [smalltalk.send(aClass, "_superclass", [])])])]);return smalltalk.send($rec, "_nextPutAll_", [unescape("%2C%20%5B")]);})(aStream);
1852
+ smalltalk.send(smalltalk.send(aClass, "_instanceVariableNames", []), "_do_separatedBy_", [(function(each){return smalltalk.send(aStream, "_nextPutAll_", [smalltalk.send(smalltalk.send(unescape("%27"), "__comma", [each]), "__comma", [unescape("%27")])]);}), (function(){return smalltalk.send(aStream, "_nextPutAll_", [unescape("%2C%20")]);})]);
1853
+ (function($rec){smalltalk.send($rec, "_nextPutAll_", [unescape("%5D%2C%20%27")]);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(aClass, "_category", []), "__comma", [unescape("%27")])]);return smalltalk.send($rec, "_nextPutAll_", [unescape("%29%3B")]);})(aStream);
1854
+ smalltalk.send(aStream, "_lf", []);
1855
+ return self;}
1856
+ }),
1857
+ smalltalk.StrippedExporter);
1858
+
1859
+ smalltalk.addMethod(
1860
+ unescape('_exportMethod_of_on_'),
1861
+ smalltalk.method({
1862
+ selector: unescape('exportMethod%3Aof%3Aon%3A'),
1863
+ fn: function (aMethod, aClass, aStream){
1864
+ var self=this;
1865
+ (function($rec){smalltalk.send($rec, "_nextPutAll_", [unescape("smalltalk.addMethod%28")]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(unescape("unescape%28%27"), "__comma", [smalltalk.send(smalltalk.send(smalltalk.send(aMethod, "_selector", []), "_asSelector", []), "_escaped", [])]), "__comma", [unescape("%27%29%2C")])]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [unescape("smalltalk.method%28%7B")]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send(smalltalk.send(unescape("selector%3A%20unescape%28%27"), "__comma", [smalltalk.send(smalltalk.send(aMethod, "_selector", []), "_escaped", [])]), "__comma", [unescape("%27%29%2C")])]);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_", [unescape("%7D%29%2C")]);smalltalk.send($rec, "_lf", []);smalltalk.send($rec, "_nextPutAll_", [smalltalk.send("smalltalk.", "__comma", [smalltalk.send(self, "_classNameFor_", [aClass])])]);smalltalk.send($rec, "_nextPutAll_", [unescape("%29%3B")]);smalltalk.send($rec, "_lf", []);return smalltalk.send($rec, "_lf", []);})(aStream);
1866
+ return self;}
1867
+ }),
1868
+ smalltalk.StrippedExporter);
1869
1869
 
1870
1870
 
1871
1871