resin 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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