resin 0.3.1 → 0.4.0
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.
- data/amber/bin/amberc +10 -350
- data/amber/js/Benchfib.deploy.js +80 -89
- data/amber/js/Benchfib.js +80 -89
- data/amber/js/Canvas.deploy.js +558 -545
- data/amber/js/Canvas.js +563 -545
- data/amber/js/Compiler-AST.deploy.js +431 -243
- data/amber/js/Compiler-AST.js +487 -244
- data/amber/js/Compiler-Core.deploy.js +201 -1045
- data/amber/js/Compiler-Core.js +208 -1207
- data/amber/js/Compiler-Exceptions.deploy.js +37 -18
- data/amber/js/Compiler-Exceptions.js +42 -18
- data/amber/js/Compiler-IR.deploy.js +1071 -774
- data/amber/js/Compiler-IR.js +1194 -848
- data/amber/js/Compiler-Inlining.deploy.js +395 -373
- data/amber/js/Compiler-Inlining.js +395 -373
- data/amber/js/Compiler-Interpreter.deploy.js +1202 -0
- data/amber/js/Compiler-Interpreter.js +1631 -0
- data/amber/js/Compiler-Semantic.deploy.js +695 -600
- data/amber/js/Compiler-Semantic.js +721 -611
- data/amber/js/Compiler-Tests.deploy.js +699 -376
- data/amber/js/Compiler-Tests.js +834 -381
- data/amber/js/Compiler.deploy.js +8563 -1805
- data/amber/js/Compiler.js +11476 -2633
- data/amber/js/Examples.deploy.js +29 -29
- data/amber/js/Examples.js +29 -29
- data/amber/js/IDE.deploy.js +3292 -2649
- data/amber/js/IDE.js +3318 -2710
- data/amber/js/Importer-Exporter.deploy.js +393 -349
- data/amber/js/Importer-Exporter.js +398 -354
- data/amber/js/Kernel-Announcements.deploy.js +53 -44
- data/amber/js/Kernel-Announcements.js +55 -44
- data/amber/js/Kernel-Classes.deploy.js +566 -368
- data/amber/js/Kernel-Classes.js +660 -402
- data/amber/js/Kernel-Collections.deploy.js +1149 -1098
- data/amber/js/Kernel-Collections.js +1183 -1116
- data/amber/js/Kernel-Exceptions.deploy.js +173 -75
- data/amber/js/Kernel-Exceptions.js +215 -77
- data/amber/js/Kernel-Methods.deploy.js +530 -313
- data/amber/js/Kernel-Methods.js +632 -338
- data/amber/js/Kernel-Objects.deploy.js +1734 -1577
- data/amber/js/Kernel-Objects.js +1867 -1654
- data/amber/js/Kernel-Tests.deploy.js +1416 -973
- data/amber/js/Kernel-Tests.js +1495 -981
- data/amber/js/Kernel-Transcript.deploy.js +23 -24
- data/amber/js/Kernel-Transcript.js +25 -26
- data/amber/js/SUnit-Tests.deploy.js +402 -0
- data/amber/js/SUnit-Tests.js +518 -0
- data/amber/js/SUnit.deploy.js +535 -237
- data/amber/js/SUnit.js +634 -246
- data/amber/js/amber.js +90 -53
- data/amber/js/boot.js +441 -255
- data/amber/js/init.js +1 -3
- data/amber/js/lib/CodeMirror/codemirror.css +3 -0
- data/amber/js/lib/CodeMirror/codemirror.js +104 -55
- data/amber/js/lib/peg-0.7.0.min.js +9 -0
- data/amber/js/parser.js +1504 -802
- data/amber/js/parser.pegjs +170 -165
- data/amber/st/Canvas.st +6 -0
- data/amber/st/Compiler-AST.st +54 -3
- data/amber/st/Compiler-Core.st +6 -551
- data/amber/st/Compiler-Exceptions.st +4 -0
- data/amber/st/Compiler-IR.st +205 -87
- data/amber/st/Compiler-Interpreter.st +597 -0
- data/amber/st/Compiler-Semantic.st +46 -21
- data/amber/st/Compiler-Tests.st +254 -7
- data/amber/st/Compiler.st +3172 -1541
- data/amber/st/IDE.st +57 -93
- data/amber/st/Importer-Exporter.st +4 -7
- data/amber/st/Kernel-Announcements.st +8 -0
- data/amber/st/Kernel-Classes.st +149 -40
- data/amber/st/Kernel-Collections.st +43 -32
- data/amber/st/Kernel-Exceptions.st +70 -1
- data/amber/st/Kernel-Methods.st +165 -27
- data/amber/st/Kernel-Objects.st +215 -140
- data/amber/st/Kernel-Tests.st +195 -10
- data/amber/st/Kernel-Transcript.st +1 -3
- data/amber/st/SUnit-Tests.st +186 -0
- data/amber/st/SUnit.st +186 -14
- data/bin/resin +6 -0
- data/lib/resin/cli.rb +19 -0
- metadata +41 -25
- data/amber/js/lib/peg-0.6.2.min.js +0 -2
- data/bin/resin-compile +0 -6
- data/bin/runresin +0 -12
data/amber/js/Compiler-AST.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
smalltalk.addPackage('Compiler-AST', {});
|
2
|
-
smalltalk.addClass('Node', smalltalk.Object, ['nodes', 'shouldBeInlined', 'shouldBeAliased'], 'Compiler-AST');
|
3
|
-
smalltalk.Node.comment="I am the abstract root class of the abstract syntax tree
|
2
|
+
smalltalk.addClass('Node', smalltalk.Object, ['position', 'nodes', 'shouldBeInlined', 'shouldBeAliased'], 'Compiler-AST');
|
3
|
+
smalltalk.Node.comment="I am the abstract root class of the abstract syntax tree.\x0a\x0aposition: holds a point containing lline- and column number of the symbol location in the original source file"
|
4
4
|
smalltalk.addMethod(
|
5
5
|
"_accept_",
|
6
6
|
smalltalk.method({
|
@@ -8,10 +8,10 @@ selector: "accept:",
|
|
8
8
|
category: 'visiting',
|
9
9
|
fn: function (aVisitor){
|
10
10
|
var self=this;
|
11
|
-
|
12
|
-
$1=
|
11
|
+
return smalltalk.withContext(function($ctx1) {
|
12
|
+
$1=_st(aVisitor)._visitNode_(self);
|
13
13
|
return $1;
|
14
|
-
},
|
14
|
+
}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.Node)})},
|
15
15
|
args: ["aVisitor"],
|
16
16
|
source: "accept: aVisitor\x0a\x09^ aVisitor visitNode: self",
|
17
17
|
messageSends: ["visitNode:"],
|
@@ -26,8 +26,8 @@ selector: "addNode:",
|
|
26
26
|
category: 'accessing',
|
27
27
|
fn: function (aNode){
|
28
28
|
var self=this;
|
29
|
-
smalltalk.
|
30
|
-
return self},
|
29
|
+
return smalltalk.withContext(function($ctx1) {
|
30
|
+
return self}, function($ctx1) {$ctx1.fill(self,"addNode:",{aNode:aNode}, smalltalk.Node)})},
|
31
31
|
args: ["aNode"],
|
32
32
|
source: "addNode: aNode\x0a\x09self nodes add: aNode",
|
33
33
|
messageSends: ["add:", "nodes"],
|
@@ -42,8 +42,8 @@ selector: "isAssignmentNode",
|
|
42
42
|
category: 'testing',
|
43
43
|
fn: function (){
|
44
44
|
var self=this;
|
45
|
-
return
|
46
|
-
},
|
45
|
+
return smalltalk.withContext(function($ctx1) {
|
46
|
+
}, function($ctx1) {$ctx1.fill(self,"isAssignmentNode",{}, smalltalk.Node)})},
|
47
47
|
args: [],
|
48
48
|
source: "isAssignmentNode\x0a\x09^ false",
|
49
49
|
messageSends: [],
|
@@ -58,8 +58,8 @@ selector: "isBlockNode",
|
|
58
58
|
category: 'testing',
|
59
59
|
fn: function (){
|
60
60
|
var self=this;
|
61
|
-
return
|
62
|
-
},
|
61
|
+
return smalltalk.withContext(function($ctx1) {
|
62
|
+
}, function($ctx1) {$ctx1.fill(self,"isBlockNode",{}, smalltalk.Node)})},
|
63
63
|
args: [],
|
64
64
|
source: "isBlockNode\x0a\x09^false",
|
65
65
|
messageSends: [],
|
@@ -74,8 +74,8 @@ selector: "isBlockSequenceNode",
|
|
74
74
|
category: 'testing',
|
75
75
|
fn: function (){
|
76
76
|
var self=this;
|
77
|
-
return
|
78
|
-
},
|
77
|
+
return smalltalk.withContext(function($ctx1) {
|
78
|
+
}, function($ctx1) {$ctx1.fill(self,"isBlockSequenceNode",{}, smalltalk.Node)})},
|
79
79
|
args: [],
|
80
80
|
source: "isBlockSequenceNode\x0a\x09^false",
|
81
81
|
messageSends: [],
|
@@ -83,6 +83,38 @@ referencedClasses: []
|
|
83
83
|
}),
|
84
84
|
smalltalk.Node);
|
85
85
|
|
86
|
+
smalltalk.addMethod(
|
87
|
+
"_isImmutable",
|
88
|
+
smalltalk.method({
|
89
|
+
selector: "isImmutable",
|
90
|
+
category: 'testing',
|
91
|
+
fn: function (){
|
92
|
+
var self=this;
|
93
|
+
return smalltalk.withContext(function($ctx1) {
|
94
|
+
}, function($ctx1) {$ctx1.fill(self,"isImmutable",{}, smalltalk.Node)})},
|
95
|
+
args: [],
|
96
|
+
source: "isImmutable\x0a\x09^false",
|
97
|
+
messageSends: [],
|
98
|
+
referencedClasses: []
|
99
|
+
}),
|
100
|
+
smalltalk.Node);
|
101
|
+
|
102
|
+
smalltalk.addMethod(
|
103
|
+
"_isNode",
|
104
|
+
smalltalk.method({
|
105
|
+
selector: "isNode",
|
106
|
+
category: 'testing',
|
107
|
+
fn: function (){
|
108
|
+
var self=this;
|
109
|
+
return smalltalk.withContext(function($ctx1) {
|
110
|
+
}, function($ctx1) {$ctx1.fill(self,"isNode",{}, smalltalk.Node)})},
|
111
|
+
args: [],
|
112
|
+
source: "isNode\x0a\x09^ true",
|
113
|
+
messageSends: [],
|
114
|
+
referencedClasses: []
|
115
|
+
}),
|
116
|
+
smalltalk.Node);
|
117
|
+
|
86
118
|
smalltalk.addMethod(
|
87
119
|
"_isReturnNode",
|
88
120
|
smalltalk.method({
|
@@ -90,8 +122,8 @@ selector: "isReturnNode",
|
|
90
122
|
category: 'testing',
|
91
123
|
fn: function (){
|
92
124
|
var self=this;
|
93
|
-
return
|
94
|
-
},
|
125
|
+
return smalltalk.withContext(function($ctx1) {
|
126
|
+
}, function($ctx1) {$ctx1.fill(self,"isReturnNode",{}, smalltalk.Node)})},
|
95
127
|
args: [],
|
96
128
|
source: "isReturnNode\x0a\x09^false",
|
97
129
|
messageSends: [],
|
@@ -106,8 +138,8 @@ selector: "isSendNode",
|
|
106
138
|
category: 'testing',
|
107
139
|
fn: function (){
|
108
140
|
var self=this;
|
109
|
-
return
|
110
|
-
},
|
141
|
+
return smalltalk.withContext(function($ctx1) {
|
142
|
+
}, function($ctx1) {$ctx1.fill(self,"isSendNode",{}, smalltalk.Node)})},
|
111
143
|
args: [],
|
112
144
|
source: "isSendNode\x0a\x09^false",
|
113
145
|
messageSends: [],
|
@@ -122,8 +154,8 @@ selector: "isValueNode",
|
|
122
154
|
category: 'testing',
|
123
155
|
fn: function (){
|
124
156
|
var self=this;
|
125
|
-
return
|
126
|
-
},
|
157
|
+
return smalltalk.withContext(function($ctx1) {
|
158
|
+
}, function($ctx1) {$ctx1.fill(self,"isValueNode",{}, smalltalk.Node)})},
|
127
159
|
args: [],
|
128
160
|
source: "isValueNode\x0a\x09^false",
|
129
161
|
messageSends: [],
|
@@ -138,15 +170,16 @@ selector: "nodes",
|
|
138
170
|
category: 'accessing',
|
139
171
|
fn: function (){
|
140
172
|
var self=this;
|
141
|
-
|
142
|
-
|
143
|
-
|
173
|
+
return smalltalk.withContext(function($ctx1) {
|
174
|
+
$2=self["@nodes"];
|
175
|
+
if(($receiver = $2) == nil || $receiver == undefined){
|
176
|
+
self["@nodes"]=_st((smalltalk.Array || Array))._new();
|
144
177
|
$1=self["@nodes"];
|
145
178
|
} else {
|
146
|
-
$1
|
179
|
+
$1=$2;
|
147
180
|
};
|
148
181
|
return $1;
|
149
|
-
},
|
182
|
+
}, function($ctx1) {$ctx1.fill(self,"nodes",{}, smalltalk.Node)})},
|
150
183
|
args: [],
|
151
184
|
source: "nodes\x0a\x09^nodes ifNil: [nodes := Array new]",
|
152
185
|
messageSends: ["ifNil:", "new"],
|
@@ -161,8 +194,8 @@ selector: "nodes:",
|
|
161
194
|
category: 'building',
|
162
195
|
fn: function (aCollection){
|
163
196
|
var self=this;
|
164
|
-
|
165
|
-
return self},
|
197
|
+
return smalltalk.withContext(function($ctx1) {
|
198
|
+
return self}, function($ctx1) {$ctx1.fill(self,"nodes:",{aCollection:aCollection}, smalltalk.Node)})},
|
166
199
|
args: ["aCollection"],
|
167
200
|
source: "nodes: aCollection\x0a\x09nodes := aCollection",
|
168
201
|
messageSends: [],
|
@@ -170,6 +203,46 @@ referencedClasses: []
|
|
170
203
|
}),
|
171
204
|
smalltalk.Node);
|
172
205
|
|
206
|
+
smalltalk.addMethod(
|
207
|
+
"_position",
|
208
|
+
smalltalk.method({
|
209
|
+
selector: "position",
|
210
|
+
category: 'accessing',
|
211
|
+
fn: function (){
|
212
|
+
var self=this;
|
213
|
+
return smalltalk.withContext(function($ctx1) {
|
214
|
+
$2=self["@position"];
|
215
|
+
if(($receiver = $2) == nil || $receiver == undefined){
|
216
|
+
self["@position"]=_st((0)).__at((0));
|
217
|
+
$1=self["@position"];
|
218
|
+
} else {
|
219
|
+
$1=$2;
|
220
|
+
};
|
221
|
+
return $1;
|
222
|
+
}, function($ctx1) {$ctx1.fill(self,"position",{}, smalltalk.Node)})},
|
223
|
+
args: [],
|
224
|
+
source: "position\x0a\x09^position ifNil: [position := 0@0]",
|
225
|
+
messageSends: ["ifNil:", "@"],
|
226
|
+
referencedClasses: []
|
227
|
+
}),
|
228
|
+
smalltalk.Node);
|
229
|
+
|
230
|
+
smalltalk.addMethod(
|
231
|
+
"_position_",
|
232
|
+
smalltalk.method({
|
233
|
+
selector: "position:",
|
234
|
+
category: 'building',
|
235
|
+
fn: function (aPosition){
|
236
|
+
var self=this;
|
237
|
+
return smalltalk.withContext(function($ctx1) {
|
238
|
+
return self}, function($ctx1) {$ctx1.fill(self,"position:",{aPosition:aPosition}, smalltalk.Node)})},
|
239
|
+
args: ["aPosition"],
|
240
|
+
source: "position: aPosition\x0a\x09position := aPosition",
|
241
|
+
messageSends: [],
|
242
|
+
referencedClasses: []
|
243
|
+
}),
|
244
|
+
smalltalk.Node);
|
245
|
+
|
173
246
|
smalltalk.addMethod(
|
174
247
|
"_shouldBeAliased",
|
175
248
|
smalltalk.method({
|
@@ -177,14 +250,15 @@ selector: "shouldBeAliased",
|
|
177
250
|
category: 'accessing',
|
178
251
|
fn: function (){
|
179
252
|
var self=this;
|
180
|
-
|
181
|
-
|
253
|
+
return smalltalk.withContext(function($ctx1) {
|
254
|
+
$2=self["@shouldBeAliased"];
|
255
|
+
if(($receiver = $2) == nil || $receiver == undefined){
|
182
256
|
$1=false;
|
183
257
|
} else {
|
184
|
-
$1
|
258
|
+
$1=$2;
|
185
259
|
};
|
186
260
|
return $1;
|
187
|
-
},
|
261
|
+
}, function($ctx1) {$ctx1.fill(self,"shouldBeAliased",{}, smalltalk.Node)})},
|
188
262
|
args: [],
|
189
263
|
source: "shouldBeAliased\x0a\x09^ shouldBeAliased ifNil: [ false ]",
|
190
264
|
messageSends: ["ifNil:"],
|
@@ -199,8 +273,8 @@ selector: "shouldBeAliased:",
|
|
199
273
|
category: 'accessing',
|
200
274
|
fn: function (aBoolean){
|
201
275
|
var self=this;
|
202
|
-
|
203
|
-
return self},
|
276
|
+
return smalltalk.withContext(function($ctx1) {
|
277
|
+
return self}, function($ctx1) {$ctx1.fill(self,"shouldBeAliased:",{aBoolean:aBoolean}, smalltalk.Node)})},
|
204
278
|
args: ["aBoolean"],
|
205
279
|
source: "shouldBeAliased: aBoolean\x0a\x09shouldBeAliased := aBoolean",
|
206
280
|
messageSends: [],
|
@@ -215,14 +289,15 @@ selector: "shouldBeInlined",
|
|
215
289
|
category: 'accessing',
|
216
290
|
fn: function (){
|
217
291
|
var self=this;
|
218
|
-
|
219
|
-
|
292
|
+
return smalltalk.withContext(function($ctx1) {
|
293
|
+
$2=self["@shouldBeInlined"];
|
294
|
+
if(($receiver = $2) == nil || $receiver == undefined){
|
220
295
|
$1=false;
|
221
296
|
} else {
|
222
|
-
$1
|
297
|
+
$1=$2;
|
223
298
|
};
|
224
299
|
return $1;
|
225
|
-
},
|
300
|
+
}, function($ctx1) {$ctx1.fill(self,"shouldBeInlined",{}, smalltalk.Node)})},
|
226
301
|
args: [],
|
227
302
|
source: "shouldBeInlined\x0a\x09^ shouldBeInlined ifNil: [ false ]",
|
228
303
|
messageSends: ["ifNil:"],
|
@@ -237,8 +312,8 @@ selector: "shouldBeInlined:",
|
|
237
312
|
category: 'accessing',
|
238
313
|
fn: function (aBoolean){
|
239
314
|
var self=this;
|
240
|
-
|
241
|
-
return self},
|
315
|
+
return smalltalk.withContext(function($ctx1) {
|
316
|
+
return self}, function($ctx1) {$ctx1.fill(self,"shouldBeInlined:",{aBoolean:aBoolean}, smalltalk.Node)})},
|
242
317
|
args: ["aBoolean"],
|
243
318
|
source: "shouldBeInlined: aBoolean\x0a\x09shouldBeInlined := aBoolean",
|
244
319
|
messageSends: [],
|
@@ -246,6 +321,32 @@ referencedClasses: []
|
|
246
321
|
}),
|
247
322
|
smalltalk.Node);
|
248
323
|
|
324
|
+
smalltalk.addMethod(
|
325
|
+
"_subtreeNeedsAliasing",
|
326
|
+
smalltalk.method({
|
327
|
+
selector: "subtreeNeedsAliasing",
|
328
|
+
category: 'testing',
|
329
|
+
fn: function (){
|
330
|
+
var self=this;
|
331
|
+
return smalltalk.withContext(function($ctx1) {
|
332
|
+
$1=_st(_st(_st(self)._shouldBeAliased())._or_((function(){
|
333
|
+
return smalltalk.withContext(function($ctx2) {
|
334
|
+
}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})})))._or_((function(){
|
335
|
+
return smalltalk.withContext(function($ctx2) {
|
336
|
+
return smalltalk.withContext(function($ctx3) {
|
337
|
+
}, function($ctx3) {$ctx3.fillBlock({each:each},$ctx1)})}),(function(){
|
338
|
+
return smalltalk.withContext(function($ctx3) {
|
339
|
+
}, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}))).__tild_eq(false);
|
340
|
+
}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
|
341
|
+
return $1;
|
342
|
+
}, function($ctx1) {$ctx1.fill(self,"subtreeNeedsAliasing",{}, smalltalk.Node)})},
|
343
|
+
args: [],
|
344
|
+
source: "subtreeNeedsAliasing\x0a ^(self shouldBeAliased or: [ self shouldBeInlined ]) or: [\x0a (self nodes detect: [ :each | each subtreeNeedsAliasing ] ifNone: [ false ]) ~= false ]",
|
345
|
+
messageSends: ["or:", "~=", "detect:ifNone:", "subtreeNeedsAliasing", "nodes", "shouldBeInlined", "shouldBeAliased"],
|
346
|
+
referencedClasses: []
|
347
|
+
}),
|
348
|
+
smalltalk.Node);
|
349
|
+
|
249
350
|
|
250
351
|
|
251
352
|
smalltalk.addClass('AssignmentNode', smalltalk.Node, ['left', 'right'], 'Compiler-AST');
|
@@ -256,10 +357,10 @@ selector: "accept:",
|
|
256
357
|
category: 'visiting',
|
257
358
|
fn: function (aVisitor){
|
258
359
|
var self=this;
|
259
|
-
|
260
|
-
$1=
|
360
|
+
return smalltalk.withContext(function($ctx1) {
|
361
|
+
$1=_st(aVisitor)._visitAssignmentNode_(self);
|
261
362
|
return $1;
|
262
|
-
},
|
363
|
+
}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.AssignmentNode)})},
|
263
364
|
args: ["aVisitor"],
|
264
365
|
source: "accept: aVisitor\x0a\x09^ aVisitor visitAssignmentNode: self",
|
265
366
|
messageSends: ["visitAssignmentNode:"],
|
@@ -274,8 +375,8 @@ selector: "isAssignmentNode",
|
|
274
375
|
category: 'testing',
|
275
376
|
fn: function (){
|
276
377
|
var self=this;
|
277
|
-
return
|
278
|
-
},
|
378
|
+
return smalltalk.withContext(function($ctx1) {
|
379
|
+
}, function($ctx1) {$ctx1.fill(self,"isAssignmentNode",{}, smalltalk.AssignmentNode)})},
|
279
380
|
args: [],
|
280
381
|
source: "isAssignmentNode\x0a\x09^ true",
|
281
382
|
messageSends: [],
|
@@ -290,8 +391,10 @@ selector: "left",
|
|
290
391
|
category: 'accessing',
|
291
392
|
fn: function (){
|
292
393
|
var self=this;
|
293
|
-
return
|
294
|
-
|
394
|
+
return smalltalk.withContext(function($ctx1) {
|
395
|
+
$1=self["@left"];
|
396
|
+
return $1;
|
397
|
+
}, function($ctx1) {$ctx1.fill(self,"left",{}, smalltalk.AssignmentNode)})},
|
295
398
|
args: [],
|
296
399
|
source: "left\x0a\x09^left",
|
297
400
|
messageSends: [],
|
@@ -306,8 +409,8 @@ selector: "left:",
|
|
306
409
|
category: 'accessing',
|
307
410
|
fn: function (aNode){
|
308
411
|
var self=this;
|
309
|
-
|
310
|
-
return self},
|
412
|
+
return smalltalk.withContext(function($ctx1) {
|
413
|
+
return self}, function($ctx1) {$ctx1.fill(self,"left:",{aNode:aNode}, smalltalk.AssignmentNode)})},
|
311
414
|
args: ["aNode"],
|
312
415
|
source: "left: aNode\x0a\x09left := aNode",
|
313
416
|
messageSends: [],
|
@@ -322,10 +425,10 @@ selector: "nodes",
|
|
322
425
|
category: 'accessing',
|
323
426
|
fn: function (){
|
324
427
|
var self=this;
|
325
|
-
|
326
|
-
$1=
|
428
|
+
return smalltalk.withContext(function($ctx1) {
|
429
|
+
$1=_st((smalltalk.Array || Array))._with_with_(_st(self)._left(),_st(self)._right());
|
327
430
|
return $1;
|
328
|
-
},
|
431
|
+
}, function($ctx1) {$ctx1.fill(self,"nodes",{}, smalltalk.AssignmentNode)})},
|
329
432
|
args: [],
|
330
433
|
source: "nodes\x0a\x09^ Array with: self left with: self right",
|
331
434
|
messageSends: ["with:with:", "left", "right"],
|
@@ -340,8 +443,10 @@ selector: "right",
|
|
340
443
|
category: 'accessing',
|
341
444
|
fn: function (){
|
342
445
|
var self=this;
|
343
|
-
return
|
344
|
-
|
446
|
+
return smalltalk.withContext(function($ctx1) {
|
447
|
+
$1=self["@right"];
|
448
|
+
return $1;
|
449
|
+
}, function($ctx1) {$ctx1.fill(self,"right",{}, smalltalk.AssignmentNode)})},
|
345
450
|
args: [],
|
346
451
|
source: "right\x0a\x09^right",
|
347
452
|
messageSends: [],
|
@@ -356,8 +461,8 @@ selector: "right:",
|
|
356
461
|
category: 'accessing',
|
357
462
|
fn: function (aNode){
|
358
463
|
var self=this;
|
359
|
-
|
360
|
-
return self},
|
464
|
+
return smalltalk.withContext(function($ctx1) {
|
465
|
+
return self}, function($ctx1) {$ctx1.fill(self,"right:",{aNode:aNode}, smalltalk.AssignmentNode)})},
|
361
466
|
args: ["aNode"],
|
362
467
|
source: "right: aNode\x0a\x09right := aNode",
|
363
468
|
messageSends: [],
|
@@ -375,10 +480,10 @@ selector: "accept:",
|
|
375
480
|
category: 'visiting',
|
376
481
|
fn: function (aVisitor){
|
377
482
|
var self=this;
|
378
|
-
|
379
|
-
$1=
|
483
|
+
return smalltalk.withContext(function($ctx1) {
|
484
|
+
$1=_st(aVisitor)._visitBlockNode_(self);
|
380
485
|
return $1;
|
381
|
-
},
|
486
|
+
}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.BlockNode)})},
|
382
487
|
args: ["aVisitor"],
|
383
488
|
source: "accept: aVisitor\x0a\x09^ aVisitor visitBlockNode: self",
|
384
489
|
messageSends: ["visitBlockNode:"],
|
@@ -393,8 +498,8 @@ selector: "isBlockNode",
|
|
393
498
|
category: 'testing',
|
394
499
|
fn: function (){
|
395
500
|
var self=this;
|
396
|
-
return
|
397
|
-
},
|
501
|
+
return smalltalk.withContext(function($ctx1) {
|
502
|
+
}, function($ctx1) {$ctx1.fill(self,"isBlockNode",{}, smalltalk.BlockNode)})},
|
398
503
|
args: [],
|
399
504
|
source: "isBlockNode\x0a\x09^true",
|
400
505
|
messageSends: [],
|
@@ -409,15 +514,16 @@ selector: "parameters",
|
|
409
514
|
category: 'accessing',
|
410
515
|
fn: function (){
|
411
516
|
var self=this;
|
412
|
-
|
413
|
-
|
414
|
-
|
517
|
+
return smalltalk.withContext(function($ctx1) {
|
518
|
+
$2=self["@parameters"];
|
519
|
+
if(($receiver = $2) == nil || $receiver == undefined){
|
520
|
+
self["@parameters"]=_st((smalltalk.Array || Array))._new();
|
415
521
|
$1=self["@parameters"];
|
416
522
|
} else {
|
417
|
-
$1
|
523
|
+
$1=$2;
|
418
524
|
};
|
419
525
|
return $1;
|
420
|
-
},
|
526
|
+
}, function($ctx1) {$ctx1.fill(self,"parameters",{}, smalltalk.BlockNode)})},
|
421
527
|
args: [],
|
422
528
|
source: "parameters\x0a\x09^parameters ifNil: [parameters := Array new]",
|
423
529
|
messageSends: ["ifNil:", "new"],
|
@@ -432,8 +538,8 @@ selector: "parameters:",
|
|
432
538
|
category: 'accessing',
|
433
539
|
fn: function (aCollection){
|
434
540
|
var self=this;
|
435
|
-
|
436
|
-
return self},
|
541
|
+
return smalltalk.withContext(function($ctx1) {
|
542
|
+
return self}, function($ctx1) {$ctx1.fill(self,"parameters:",{aCollection:aCollection}, smalltalk.BlockNode)})},
|
437
543
|
args: ["aCollection"],
|
438
544
|
source: "parameters: aCollection\x0a\x09parameters := aCollection",
|
439
545
|
messageSends: [],
|
@@ -448,8 +554,10 @@ selector: "scope",
|
|
448
554
|
category: 'accessing',
|
449
555
|
fn: function (){
|
450
556
|
var self=this;
|
451
|
-
return
|
452
|
-
|
557
|
+
return smalltalk.withContext(function($ctx1) {
|
558
|
+
$1=self["@scope"];
|
559
|
+
return $1;
|
560
|
+
}, function($ctx1) {$ctx1.fill(self,"scope",{}, smalltalk.BlockNode)})},
|
453
561
|
args: [],
|
454
562
|
source: "scope\x0a\x09^ scope",
|
455
563
|
messageSends: [],
|
@@ -464,8 +572,8 @@ selector: "scope:",
|
|
464
572
|
category: 'accessing',
|
465
573
|
fn: function (aLexicalScope){
|
466
574
|
var self=this;
|
467
|
-
|
468
|
-
return self},
|
575
|
+
return smalltalk.withContext(function($ctx1) {
|
576
|
+
return self}, function($ctx1) {$ctx1.fill(self,"scope:",{aLexicalScope:aLexicalScope}, smalltalk.BlockNode)})},
|
469
577
|
args: ["aLexicalScope"],
|
470
578
|
source: "scope: aLexicalScope\x0a\x09scope := aLexicalScope",
|
471
579
|
messageSends: [],
|
@@ -473,6 +581,26 @@ referencedClasses: []
|
|
473
581
|
}),
|
474
582
|
smalltalk.BlockNode);
|
475
583
|
|
584
|
+
smalltalk.addMethod(
|
585
|
+
"_subtreeNeedsAliasing",
|
586
|
+
smalltalk.method({
|
587
|
+
selector: "subtreeNeedsAliasing",
|
588
|
+
category: 'testing',
|
589
|
+
fn: function (){
|
590
|
+
var self=this;
|
591
|
+
return smalltalk.withContext(function($ctx1) {
|
592
|
+
$1=_st(_st(self)._shouldBeAliased())._or_((function(){
|
593
|
+
return smalltalk.withContext(function($ctx2) {
|
594
|
+
}, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
|
595
|
+
return $1;
|
596
|
+
}, function($ctx1) {$ctx1.fill(self,"subtreeNeedsAliasing",{}, smalltalk.BlockNode)})},
|
597
|
+
args: [],
|
598
|
+
source: "subtreeNeedsAliasing\x0a ^ self shouldBeAliased or: [ self shouldBeInlined ]",
|
599
|
+
messageSends: ["or:", "shouldBeInlined", "shouldBeAliased"],
|
600
|
+
referencedClasses: []
|
601
|
+
}),
|
602
|
+
smalltalk.BlockNode);
|
603
|
+
|
476
604
|
|
477
605
|
|
478
606
|
smalltalk.addClass('CascadeNode', smalltalk.Node, ['receiver'], 'Compiler-AST');
|
@@ -483,10 +611,10 @@ selector: "accept:",
|
|
483
611
|
category: 'visiting',
|
484
612
|
fn: function (aVisitor){
|
485
613
|
var self=this;
|
486
|
-
|
487
|
-
$1=
|
614
|
+
return smalltalk.withContext(function($ctx1) {
|
615
|
+
$1=_st(aVisitor)._visitCascadeNode_(self);
|
488
616
|
return $1;
|
489
|
-
},
|
617
|
+
}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.CascadeNode)})},
|
490
618
|
args: ["aVisitor"],
|
491
619
|
source: "accept: aVisitor\x0a\x09^ aVisitor visitCascadeNode: self",
|
492
620
|
messageSends: ["visitCascadeNode:"],
|
@@ -501,8 +629,10 @@ selector: "receiver",
|
|
501
629
|
category: 'accessing',
|
502
630
|
fn: function (){
|
503
631
|
var self=this;
|
504
|
-
return
|
505
|
-
|
632
|
+
return smalltalk.withContext(function($ctx1) {
|
633
|
+
$1=self["@receiver"];
|
634
|
+
return $1;
|
635
|
+
}, function($ctx1) {$ctx1.fill(self,"receiver",{}, smalltalk.CascadeNode)})},
|
506
636
|
args: [],
|
507
637
|
source: "receiver\x0a\x09^receiver",
|
508
638
|
messageSends: [],
|
@@ -517,8 +647,8 @@ selector: "receiver:",
|
|
517
647
|
category: 'accessing',
|
518
648
|
fn: function (aNode){
|
519
649
|
var self=this;
|
520
|
-
|
521
|
-
return self},
|
650
|
+
return smalltalk.withContext(function($ctx1) {
|
651
|
+
return self}, function($ctx1) {$ctx1.fill(self,"receiver:",{aNode:aNode}, smalltalk.CascadeNode)})},
|
522
652
|
args: ["aNode"],
|
523
653
|
source: "receiver: aNode\x0a\x09receiver := aNode",
|
524
654
|
messageSends: [],
|
@@ -536,10 +666,10 @@ selector: "accept:",
|
|
536
666
|
category: 'visiting',
|
537
667
|
fn: function (aVisitor){
|
538
668
|
var self=this;
|
539
|
-
|
540
|
-
$1=
|
669
|
+
return smalltalk.withContext(function($ctx1) {
|
670
|
+
$1=_st(aVisitor)._visitDynamicArrayNode_(self);
|
541
671
|
return $1;
|
542
|
-
},
|
672
|
+
}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.DynamicArrayNode)})},
|
543
673
|
args: ["aVisitor"],
|
544
674
|
source: "accept: aVisitor\x0a\x09^ aVisitor visitDynamicArrayNode: self",
|
545
675
|
messageSends: ["visitDynamicArrayNode:"],
|
@@ -557,10 +687,10 @@ selector: "accept:",
|
|
557
687
|
category: 'visiting',
|
558
688
|
fn: function (aVisitor){
|
559
689
|
var self=this;
|
560
|
-
|
561
|
-
$1=
|
690
|
+
return smalltalk.withContext(function($ctx1) {
|
691
|
+
$1=_st(aVisitor)._visitDynamicDictionaryNode_(self);
|
562
692
|
return $1;
|
563
|
-
},
|
693
|
+
}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.DynamicDictionaryNode)})},
|
564
694
|
args: ["aVisitor"],
|
565
695
|
source: "accept: aVisitor\x0a\x09^ aVisitor visitDynamicDictionaryNode: self",
|
566
696
|
messageSends: ["visitDynamicDictionaryNode:"],
|
@@ -578,10 +708,10 @@ selector: "accept:",
|
|
578
708
|
category: 'visiting',
|
579
709
|
fn: function (aVisitor){
|
580
710
|
var self=this;
|
581
|
-
|
582
|
-
$1=
|
711
|
+
return smalltalk.withContext(function($ctx1) {
|
712
|
+
$1=_st(aVisitor)._visitJSStatementNode_(self);
|
583
713
|
return $1;
|
584
|
-
},
|
714
|
+
}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.JSStatementNode)})},
|
585
715
|
args: ["aVisitor"],
|
586
716
|
source: "accept: aVisitor\x0a\x09^ aVisitor visitJSStatementNode: self",
|
587
717
|
messageSends: ["visitJSStatementNode:"],
|
@@ -596,14 +726,15 @@ selector: "source",
|
|
596
726
|
category: 'accessing',
|
597
727
|
fn: function (){
|
598
728
|
var self=this;
|
599
|
-
|
600
|
-
|
729
|
+
return smalltalk.withContext(function($ctx1) {
|
730
|
+
$2=self["@source"];
|
731
|
+
if(($receiver = $2) == nil || $receiver == undefined){
|
601
732
|
$1="";
|
602
733
|
} else {
|
603
|
-
$1
|
734
|
+
$1=$2;
|
604
735
|
};
|
605
736
|
return $1;
|
606
|
-
},
|
737
|
+
}, function($ctx1) {$ctx1.fill(self,"source",{}, smalltalk.JSStatementNode)})},
|
607
738
|
args: [],
|
608
739
|
source: "source\x0a\x09^source ifNil: ['']",
|
609
740
|
messageSends: ["ifNil:"],
|
@@ -618,8 +749,8 @@ selector: "source:",
|
|
618
749
|
category: 'accessing',
|
619
750
|
fn: function (aString){
|
620
751
|
var self=this;
|
621
|
-
|
622
|
-
return self},
|
752
|
+
return smalltalk.withContext(function($ctx1) {
|
753
|
+
return self}, function($ctx1) {$ctx1.fill(self,"source:",{aString:aString}, smalltalk.JSStatementNode)})},
|
623
754
|
args: ["aString"],
|
624
755
|
source: "source: aString\x0a\x09source := aString",
|
625
756
|
messageSends: [],
|
@@ -629,7 +760,7 @@ smalltalk.JSStatementNode);
|
|
629
760
|
|
630
761
|
|
631
762
|
|
632
|
-
smalltalk.addClass('MethodNode', smalltalk.Node, ['selector', 'arguments', 'source', 'scope', 'classReferences', 'messageSends'], 'Compiler-AST');
|
763
|
+
smalltalk.addClass('MethodNode', smalltalk.Node, ['selector', 'arguments', 'source', 'scope', 'classReferences', 'messageSends', 'superSends'], 'Compiler-AST');
|
633
764
|
smalltalk.addMethod(
|
634
765
|
"_accept_",
|
635
766
|
smalltalk.method({
|
@@ -637,10 +768,10 @@ selector: "accept:",
|
|
637
768
|
category: 'visiting',
|
638
769
|
fn: function (aVisitor){
|
639
770
|
var self=this;
|
640
|
-
|
641
|
-
$1=
|
771
|
+
return smalltalk.withContext(function($ctx1) {
|
772
|
+
$1=_st(aVisitor)._visitMethodNode_(self);
|
642
773
|
return $1;
|
643
|
-
},
|
774
|
+
}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.MethodNode)})},
|
644
775
|
args: ["aVisitor"],
|
645
776
|
source: "accept: aVisitor\x0a\x09^ aVisitor visitMethodNode: self",
|
646
777
|
messageSends: ["visitMethodNode:"],
|
@@ -655,14 +786,15 @@ selector: "arguments",
|
|
655
786
|
category: 'accessing',
|
656
787
|
fn: function (){
|
657
788
|
var self=this;
|
658
|
-
|
659
|
-
|
789
|
+
return smalltalk.withContext(function($ctx1) {
|
790
|
+
$2=self["@arguments"];
|
791
|
+
if(($receiver = $2) == nil || $receiver == undefined){
|
660
792
|
$1=[];
|
661
793
|
} else {
|
662
|
-
$1
|
794
|
+
$1=$2;
|
663
795
|
};
|
664
796
|
return $1;
|
665
|
-
},
|
797
|
+
}, function($ctx1) {$ctx1.fill(self,"arguments",{}, smalltalk.MethodNode)})},
|
666
798
|
args: [],
|
667
799
|
source: "arguments\x0a\x09^arguments ifNil: [#()]",
|
668
800
|
messageSends: ["ifNil:"],
|
@@ -677,8 +809,8 @@ selector: "arguments:",
|
|
677
809
|
category: 'accessing',
|
678
810
|
fn: function (aCollection){
|
679
811
|
var self=this;
|
680
|
-
|
681
|
-
return self},
|
812
|
+
return smalltalk.withContext(function($ctx1) {
|
813
|
+
return self}, function($ctx1) {$ctx1.fill(self,"arguments:",{aCollection:aCollection}, smalltalk.MethodNode)})},
|
682
814
|
args: ["aCollection"],
|
683
815
|
source: "arguments: aCollection\x0a\x09arguments := aCollection",
|
684
816
|
messageSends: [],
|
@@ -693,8 +825,10 @@ selector: "classReferences",
|
|
693
825
|
category: 'accessing',
|
694
826
|
fn: function (){
|
695
827
|
var self=this;
|
696
|
-
return
|
697
|
-
|
828
|
+
return smalltalk.withContext(function($ctx1) {
|
829
|
+
$1=self["@classReferences"];
|
830
|
+
return $1;
|
831
|
+
}, function($ctx1) {$ctx1.fill(self,"classReferences",{}, smalltalk.MethodNode)})},
|
698
832
|
args: [],
|
699
833
|
source: "classReferences\x0a\x09^ classReferences",
|
700
834
|
messageSends: [],
|
@@ -709,8 +843,8 @@ selector: "classReferences:",
|
|
709
843
|
category: 'accessing',
|
710
844
|
fn: function (aCollection){
|
711
845
|
var self=this;
|
712
|
-
|
713
|
-
return self},
|
846
|
+
return smalltalk.withContext(function($ctx1) {
|
847
|
+
return self}, function($ctx1) {$ctx1.fill(self,"classReferences:",{aCollection:aCollection}, smalltalk.MethodNode)})},
|
714
848
|
args: ["aCollection"],
|
715
849
|
source: "classReferences: aCollection\x0a\x09classReferences := aCollection",
|
716
850
|
messageSends: [],
|
@@ -725,8 +859,10 @@ selector: "messageSends",
|
|
725
859
|
category: 'accessing',
|
726
860
|
fn: function (){
|
727
861
|
var self=this;
|
728
|
-
return
|
729
|
-
|
862
|
+
return smalltalk.withContext(function($ctx1) {
|
863
|
+
$1=self["@messageSends"];
|
864
|
+
return $1;
|
865
|
+
}, function($ctx1) {$ctx1.fill(self,"messageSends",{}, smalltalk.MethodNode)})},
|
730
866
|
args: [],
|
731
867
|
source: "messageSends\x0a\x09^ messageSends",
|
732
868
|
messageSends: [],
|
@@ -741,8 +877,8 @@ selector: "messageSends:",
|
|
741
877
|
category: 'accessing',
|
742
878
|
fn: function (aCollection){
|
743
879
|
var self=this;
|
744
|
-
|
745
|
-
return self},
|
880
|
+
return smalltalk.withContext(function($ctx1) {
|
881
|
+
return self}, function($ctx1) {$ctx1.fill(self,"messageSends:",{aCollection:aCollection}, smalltalk.MethodNode)})},
|
746
882
|
args: ["aCollection"],
|
747
883
|
source: "messageSends: aCollection\x0a\x09messageSends := aCollection",
|
748
884
|
messageSends: [],
|
@@ -757,8 +893,10 @@ selector: "scope",
|
|
757
893
|
category: 'accessing',
|
758
894
|
fn: function (){
|
759
895
|
var self=this;
|
760
|
-
return
|
761
|
-
|
896
|
+
return smalltalk.withContext(function($ctx1) {
|
897
|
+
$1=self["@scope"];
|
898
|
+
return $1;
|
899
|
+
}, function($ctx1) {$ctx1.fill(self,"scope",{}, smalltalk.MethodNode)})},
|
762
900
|
args: [],
|
763
901
|
source: "scope\x0a\x09^ scope",
|
764
902
|
messageSends: [],
|
@@ -773,8 +911,8 @@ selector: "scope:",
|
|
773
911
|
category: 'accessing',
|
774
912
|
fn: function (aMethodScope){
|
775
913
|
var self=this;
|
776
|
-
|
777
|
-
return self},
|
914
|
+
return smalltalk.withContext(function($ctx1) {
|
915
|
+
return self}, function($ctx1) {$ctx1.fill(self,"scope:",{aMethodScope:aMethodScope}, smalltalk.MethodNode)})},
|
778
916
|
args: ["aMethodScope"],
|
779
917
|
source: "scope: aMethodScope\x0a\x09scope := aMethodScope",
|
780
918
|
messageSends: [],
|
@@ -789,8 +927,10 @@ selector: "selector",
|
|
789
927
|
category: 'accessing',
|
790
928
|
fn: function (){
|
791
929
|
var self=this;
|
792
|
-
return
|
793
|
-
|
930
|
+
return smalltalk.withContext(function($ctx1) {
|
931
|
+
$1=self["@selector"];
|
932
|
+
return $1;
|
933
|
+
}, function($ctx1) {$ctx1.fill(self,"selector",{}, smalltalk.MethodNode)})},
|
794
934
|
args: [],
|
795
935
|
source: "selector\x0a\x09^selector",
|
796
936
|
messageSends: [],
|
@@ -805,8 +945,8 @@ selector: "selector:",
|
|
805
945
|
category: 'accessing',
|
806
946
|
fn: function (aString){
|
807
947
|
var self=this;
|
808
|
-
|
809
|
-
return self},
|
948
|
+
return smalltalk.withContext(function($ctx1) {
|
949
|
+
return self}, function($ctx1) {$ctx1.fill(self,"selector:",{aString:aString}, smalltalk.MethodNode)})},
|
810
950
|
args: ["aString"],
|
811
951
|
source: "selector: aString\x0a\x09selector := aString",
|
812
952
|
messageSends: [],
|
@@ -821,8 +961,10 @@ selector: "source",
|
|
821
961
|
category: 'accessing',
|
822
962
|
fn: function (){
|
823
963
|
var self=this;
|
824
|
-
return
|
825
|
-
|
964
|
+
return smalltalk.withContext(function($ctx1) {
|
965
|
+
$1=self["@source"];
|
966
|
+
return $1;
|
967
|
+
}, function($ctx1) {$ctx1.fill(self,"source",{}, smalltalk.MethodNode)})},
|
826
968
|
args: [],
|
827
969
|
source: "source\x0a\x09^source",
|
828
970
|
messageSends: [],
|
@@ -837,8 +979,8 @@ selector: "source:",
|
|
837
979
|
category: 'accessing',
|
838
980
|
fn: function (aString){
|
839
981
|
var self=this;
|
840
|
-
|
841
|
-
return self},
|
982
|
+
return smalltalk.withContext(function($ctx1) {
|
983
|
+
return self}, function($ctx1) {$ctx1.fill(self,"source:",{aString:aString}, smalltalk.MethodNode)})},
|
842
984
|
args: ["aString"],
|
843
985
|
source: "source: aString\x0a\x09source := aString",
|
844
986
|
messageSends: [],
|
@@ -846,6 +988,40 @@ referencedClasses: []
|
|
846
988
|
}),
|
847
989
|
smalltalk.MethodNode);
|
848
990
|
|
991
|
+
smalltalk.addMethod(
|
992
|
+
"_superSends",
|
993
|
+
smalltalk.method({
|
994
|
+
selector: "superSends",
|
995
|
+
category: 'accessing',
|
996
|
+
fn: function (){
|
997
|
+
var self=this;
|
998
|
+
return smalltalk.withContext(function($ctx1) {
|
999
|
+
$1=self["@superSends"];
|
1000
|
+
return $1;
|
1001
|
+
}, function($ctx1) {$ctx1.fill(self,"superSends",{}, smalltalk.MethodNode)})},
|
1002
|
+
args: [],
|
1003
|
+
source: "superSends\x0a\x09^ superSends",
|
1004
|
+
messageSends: [],
|
1005
|
+
referencedClasses: []
|
1006
|
+
}),
|
1007
|
+
smalltalk.MethodNode);
|
1008
|
+
|
1009
|
+
smalltalk.addMethod(
|
1010
|
+
"_superSends_",
|
1011
|
+
smalltalk.method({
|
1012
|
+
selector: "superSends:",
|
1013
|
+
category: 'accessing',
|
1014
|
+
fn: function (aCollection){
|
1015
|
+
var self=this;
|
1016
|
+
return smalltalk.withContext(function($ctx1) {
|
1017
|
+
return self}, function($ctx1) {$ctx1.fill(self,"superSends:",{aCollection:aCollection}, smalltalk.MethodNode)})},
|
1018
|
+
args: ["aCollection"],
|
1019
|
+
source: "superSends: aCollection\x0a\x09superSends := aCollection",
|
1020
|
+
messageSends: [],
|
1021
|
+
referencedClasses: []
|
1022
|
+
}),
|
1023
|
+
smalltalk.MethodNode);
|
1024
|
+
|
849
1025
|
|
850
1026
|
|
851
1027
|
smalltalk.addClass('ReturnNode', smalltalk.Node, ['scope'], 'Compiler-AST');
|
@@ -856,10 +1032,10 @@ selector: "accept:",
|
|
856
1032
|
category: 'visiting',
|
857
1033
|
fn: function (aVisitor){
|
858
1034
|
var self=this;
|
859
|
-
|
860
|
-
$1=
|
1035
|
+
return smalltalk.withContext(function($ctx1) {
|
1036
|
+
$1=_st(aVisitor)._visitReturnNode_(self);
|
861
1037
|
return $1;
|
862
|
-
},
|
1038
|
+
}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.ReturnNode)})},
|
863
1039
|
args: ["aVisitor"],
|
864
1040
|
source: "accept: aVisitor\x0a\x09^ aVisitor visitReturnNode: self",
|
865
1041
|
messageSends: ["visitReturnNode:"],
|
@@ -874,8 +1050,8 @@ selector: "isReturnNode",
|
|
874
1050
|
category: 'testing',
|
875
1051
|
fn: function (){
|
876
1052
|
var self=this;
|
877
|
-
return
|
878
|
-
},
|
1053
|
+
return smalltalk.withContext(function($ctx1) {
|
1054
|
+
}, function($ctx1) {$ctx1.fill(self,"isReturnNode",{}, smalltalk.ReturnNode)})},
|
879
1055
|
args: [],
|
880
1056
|
source: "isReturnNode\x0a\x09^ true",
|
881
1057
|
messageSends: [],
|
@@ -890,10 +1066,10 @@ selector: "nonLocalReturn",
|
|
890
1066
|
category: 'testing',
|
891
1067
|
fn: function (){
|
892
1068
|
var self=this;
|
893
|
-
|
894
|
-
$1=
|
1069
|
+
return smalltalk.withContext(function($ctx1) {
|
1070
|
+
$1=_st(_st(_st(self)._scope())._isMethodScope())._not();
|
895
1071
|
return $1;
|
896
|
-
},
|
1072
|
+
}, function($ctx1) {$ctx1.fill(self,"nonLocalReturn",{}, smalltalk.ReturnNode)})},
|
897
1073
|
args: [],
|
898
1074
|
source: "nonLocalReturn\x0a\x09^ self scope isMethodScope not",
|
899
1075
|
messageSends: ["not", "isMethodScope", "scope"],
|
@@ -908,8 +1084,10 @@ selector: "scope",
|
|
908
1084
|
category: 'accessing',
|
909
1085
|
fn: function (){
|
910
1086
|
var self=this;
|
911
|
-
return
|
912
|
-
|
1087
|
+
return smalltalk.withContext(function($ctx1) {
|
1088
|
+
$1=self["@scope"];
|
1089
|
+
return $1;
|
1090
|
+
}, function($ctx1) {$ctx1.fill(self,"scope",{}, smalltalk.ReturnNode)})},
|
913
1091
|
args: [],
|
914
1092
|
source: "scope\x0a\x09^ scope",
|
915
1093
|
messageSends: [],
|
@@ -924,8 +1102,8 @@ selector: "scope:",
|
|
924
1102
|
category: 'accessing',
|
925
1103
|
fn: function (aLexicalScope){
|
926
1104
|
var self=this;
|
927
|
-
|
928
|
-
return self},
|
1105
|
+
return smalltalk.withContext(function($ctx1) {
|
1106
|
+
return self}, function($ctx1) {$ctx1.fill(self,"scope:",{aLexicalScope:aLexicalScope}, smalltalk.ReturnNode)})},
|
929
1107
|
args: ["aLexicalScope"],
|
930
1108
|
source: "scope: aLexicalScope\x0a\x09scope := aLexicalScope",
|
931
1109
|
messageSends: [],
|
@@ -943,10 +1121,10 @@ selector: "accept:",
|
|
943
1121
|
category: 'visiting',
|
944
1122
|
fn: function (aVisitor){
|
945
1123
|
var self=this;
|
946
|
-
|
947
|
-
$1=
|
1124
|
+
return smalltalk.withContext(function($ctx1) {
|
1125
|
+
$1=_st(aVisitor)._visitSendNode_(self);
|
948
1126
|
return $1;
|
949
|
-
},
|
1127
|
+
}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.SendNode)})},
|
950
1128
|
args: ["aVisitor"],
|
951
1129
|
source: "accept: aVisitor\x0a\x09^ aVisitor visitSendNode: self",
|
952
1130
|
messageSends: ["visitSendNode:"],
|
@@ -961,15 +1139,16 @@ selector: "arguments",
|
|
961
1139
|
category: 'accessing',
|
962
1140
|
fn: function (){
|
963
1141
|
var self=this;
|
964
|
-
|
965
|
-
|
1142
|
+
return smalltalk.withContext(function($ctx1) {
|
1143
|
+
$2=self["@arguments"];
|
1144
|
+
if(($receiver = $2) == nil || $receiver == undefined){
|
966
1145
|
self["@arguments"]=[];
|
967
1146
|
$1=self["@arguments"];
|
968
1147
|
} else {
|
969
|
-
$1
|
1148
|
+
$1=$2;
|
970
1149
|
};
|
971
1150
|
return $1;
|
972
|
-
},
|
1151
|
+
}, function($ctx1) {$ctx1.fill(self,"arguments",{}, smalltalk.SendNode)})},
|
973
1152
|
args: [],
|
974
1153
|
source: "arguments\x0a\x09^arguments ifNil: [arguments := #()]",
|
975
1154
|
messageSends: ["ifNil:"],
|
@@ -984,8 +1163,8 @@ selector: "arguments:",
|
|
984
1163
|
category: 'accessing',
|
985
1164
|
fn: function (aCollection){
|
986
1165
|
var self=this;
|
987
|
-
|
988
|
-
return self},
|
1166
|
+
return smalltalk.withContext(function($ctx1) {
|
1167
|
+
return self}, function($ctx1) {$ctx1.fill(self,"arguments:",{aCollection:aCollection}, smalltalk.SendNode)})},
|
989
1168
|
args: ["aCollection"],
|
990
1169
|
source: "arguments: aCollection\x0a\x09arguments := aCollection",
|
991
1170
|
messageSends: [],
|
@@ -1000,20 +1179,20 @@ selector: "cascadeNodeWithMessages:",
|
|
1000
1179
|
category: 'accessing',
|
1001
1180
|
fn: function (aCollection){
|
1002
1181
|
var self=this;
|
1003
|
-
var $1,$2,$4,$5,$3;
|
1004
1182
|
var first;
|
1005
|
-
|
1006
|
-
|
1007
|
-
|
1008
|
-
|
1183
|
+
return smalltalk.withContext(function($ctx1) {
|
1184
|
+
$1=_st((smalltalk.SendNode || SendNode))._new();
|
1185
|
+
_st($1)._selector_(_st(self)._selector());
|
1186
|
+
_st($1)._arguments_(_st(self)._arguments());
|
1187
|
+
$2=_st($1)._yourself();
|
1009
1188
|
first=$2;
|
1010
|
-
$4=
|
1011
|
-
|
1012
|
-
|
1013
|
-
$5=
|
1189
|
+
$4=_st((smalltalk.CascadeNode || CascadeNode))._new();
|
1190
|
+
_st($4)._receiver_(_st(self)._receiver());
|
1191
|
+
_st($4)._nodes_(_st(_st((smalltalk.Array || Array))._with_(first)).__comma(aCollection));
|
1192
|
+
$5=_st($4)._yourself();
|
1014
1193
|
$3=$5;
|
1015
1194
|
return $3;
|
1016
|
-
},
|
1195
|
+
}, function($ctx1) {$ctx1.fill(self,"cascadeNodeWithMessages:",{aCollection:aCollection,first:first}, smalltalk.SendNode)})},
|
1017
1196
|
args: ["aCollection"],
|
1018
1197
|
source: "cascadeNodeWithMessages: aCollection\x0a\x09| first |\x0a\x09first := SendNode new\x0a\x09 selector: self selector;\x0a\x09 arguments: self arguments;\x0a\x09 yourself.\x0a\x09^CascadeNode new\x0a\x09 receiver: self receiver;\x0a\x09 nodes: (Array with: first), aCollection;\x0a\x09 yourself",
|
1019
1198
|
messageSends: ["selector:", "selector", "new", "arguments:", "arguments", "yourself", "receiver:", "receiver", "nodes:", ",", "with:"],
|
@@ -1028,8 +1207,10 @@ selector: "index",
|
|
1028
1207
|
category: 'accessing',
|
1029
1208
|
fn: function (){
|
1030
1209
|
var self=this;
|
1031
|
-
return
|
1032
|
-
|
1210
|
+
return smalltalk.withContext(function($ctx1) {
|
1211
|
+
$1=self["@index"];
|
1212
|
+
return $1;
|
1213
|
+
}, function($ctx1) {$ctx1.fill(self,"index",{}, smalltalk.SendNode)})},
|
1033
1214
|
args: [],
|
1034
1215
|
source: "index\x0a\x09^ index",
|
1035
1216
|
messageSends: [],
|
@@ -1044,8 +1225,8 @@ selector: "index:",
|
|
1044
1225
|
category: 'accessing',
|
1045
1226
|
fn: function (anInteger){
|
1046
1227
|
var self=this;
|
1047
|
-
|
1048
|
-
return self},
|
1228
|
+
return smalltalk.withContext(function($ctx1) {
|
1229
|
+
return self}, function($ctx1) {$ctx1.fill(self,"index:",{anInteger:anInteger}, smalltalk.SendNode)})},
|
1049
1230
|
args: ["anInteger"],
|
1050
1231
|
source: "index: anInteger\x0a\x09index := anInteger",
|
1051
1232
|
messageSends: [],
|
@@ -1060,8 +1241,8 @@ selector: "isSendNode",
|
|
1060
1241
|
category: 'testing',
|
1061
1242
|
fn: function (){
|
1062
1243
|
var self=this;
|
1063
|
-
return
|
1064
|
-
},
|
1244
|
+
return smalltalk.withContext(function($ctx1) {
|
1245
|
+
}, function($ctx1) {$ctx1.fill(self,"isSendNode",{}, smalltalk.SendNode)})},
|
1065
1246
|
args: [],
|
1066
1247
|
source: "isSendNode\x0a\x09^ true",
|
1067
1248
|
messageSends: [],
|
@@ -1076,13 +1257,13 @@ selector: "nodes",
|
|
1076
1257
|
category: 'accessing',
|
1077
1258
|
fn: function (){
|
1078
1259
|
var self=this;
|
1079
|
-
|
1080
|
-
$2=
|
1081
|
-
|
1082
|
-
$3=
|
1260
|
+
return smalltalk.withContext(function($ctx1) {
|
1261
|
+
$2=_st((smalltalk.Array || Array))._withAll_(_st(self)._arguments());
|
1262
|
+
_st($2)._add_(_st(self)._receiver());
|
1263
|
+
$3=_st($2)._yourself();
|
1083
1264
|
$1=$3;
|
1084
1265
|
return $1;
|
1085
|
-
},
|
1266
|
+
}, function($ctx1) {$ctx1.fill(self,"nodes",{}, smalltalk.SendNode)})},
|
1086
1267
|
args: [],
|
1087
1268
|
source: "nodes\x0a\x09^ (Array withAll: self arguments)\x0a\x09\x09add: self receiver;\x0a\x09\x09yourself",
|
1088
1269
|
messageSends: ["add:", "receiver", "withAll:", "arguments", "yourself"],
|
@@ -1097,8 +1278,10 @@ selector: "receiver",
|
|
1097
1278
|
category: 'accessing',
|
1098
1279
|
fn: function (){
|
1099
1280
|
var self=this;
|
1100
|
-
return
|
1101
|
-
|
1281
|
+
return smalltalk.withContext(function($ctx1) {
|
1282
|
+
$1=self["@receiver"];
|
1283
|
+
return $1;
|
1284
|
+
}, function($ctx1) {$ctx1.fill(self,"receiver",{}, smalltalk.SendNode)})},
|
1102
1285
|
args: [],
|
1103
1286
|
source: "receiver\x0a\x09^receiver",
|
1104
1287
|
messageSends: [],
|
@@ -1113,8 +1296,8 @@ selector: "receiver:",
|
|
1113
1296
|
category: 'accessing',
|
1114
1297
|
fn: function (aNode){
|
1115
1298
|
var self=this;
|
1116
|
-
|
1117
|
-
return self},
|
1299
|
+
return smalltalk.withContext(function($ctx1) {
|
1300
|
+
return self}, function($ctx1) {$ctx1.fill(self,"receiver:",{aNode:aNode}, smalltalk.SendNode)})},
|
1118
1301
|
args: ["aNode"],
|
1119
1302
|
source: "receiver: aNode\x0a\x09receiver := aNode",
|
1120
1303
|
messageSends: [],
|
@@ -1129,8 +1312,10 @@ selector: "selector",
|
|
1129
1312
|
category: 'accessing',
|
1130
1313
|
fn: function (){
|
1131
1314
|
var self=this;
|
1132
|
-
return
|
1133
|
-
|
1315
|
+
return smalltalk.withContext(function($ctx1) {
|
1316
|
+
$1=self["@selector"];
|
1317
|
+
return $1;
|
1318
|
+
}, function($ctx1) {$ctx1.fill(self,"selector",{}, smalltalk.SendNode)})},
|
1134
1319
|
args: [],
|
1135
1320
|
source: "selector\x0a\x09^selector",
|
1136
1321
|
messageSends: [],
|
@@ -1145,8 +1330,8 @@ selector: "selector:",
|
|
1145
1330
|
category: 'accessing',
|
1146
1331
|
fn: function (aString){
|
1147
1332
|
var self=this;
|
1148
|
-
|
1149
|
-
return self},
|
1333
|
+
return smalltalk.withContext(function($ctx1) {
|
1334
|
+
return self}, function($ctx1) {$ctx1.fill(self,"selector:",{aString:aString}, smalltalk.SendNode)})},
|
1150
1335
|
args: ["aString"],
|
1151
1336
|
source: "selector: aString\x0a\x09selector := aString",
|
1152
1337
|
messageSends: [],
|
@@ -1161,14 +1346,15 @@ selector: "superSend",
|
|
1161
1346
|
category: 'accessing',
|
1162
1347
|
fn: function (){
|
1163
1348
|
var self=this;
|
1164
|
-
|
1165
|
-
|
1349
|
+
return smalltalk.withContext(function($ctx1) {
|
1350
|
+
$2=self["@superSend"];
|
1351
|
+
if(($receiver = $2) == nil || $receiver == undefined){
|
1166
1352
|
$1=false;
|
1167
1353
|
} else {
|
1168
|
-
$1
|
1354
|
+
$1=$2;
|
1169
1355
|
};
|
1170
1356
|
return $1;
|
1171
|
-
},
|
1357
|
+
}, function($ctx1) {$ctx1.fill(self,"superSend",{}, smalltalk.SendNode)})},
|
1172
1358
|
args: [],
|
1173
1359
|
source: "superSend\x0a\x09^ superSend ifNil: [ false ]",
|
1174
1360
|
messageSends: ["ifNil:"],
|
@@ -1183,8 +1369,8 @@ selector: "superSend:",
|
|
1183
1369
|
category: 'accessing',
|
1184
1370
|
fn: function (aBoolean){
|
1185
1371
|
var self=this;
|
1186
|
-
|
1187
|
-
return self},
|
1372
|
+
return smalltalk.withContext(function($ctx1) {
|
1373
|
+
return self}, function($ctx1) {$ctx1.fill(self,"superSend:",{aBoolean:aBoolean}, smalltalk.SendNode)})},
|
1188
1374
|
args: ["aBoolean"],
|
1189
1375
|
source: "superSend: aBoolean\x0a\x09superSend := aBoolean",
|
1190
1376
|
messageSends: [],
|
@@ -1199,21 +1385,22 @@ selector: "valueForReceiver:",
|
|
1199
1385
|
category: 'accessing',
|
1200
1386
|
fn: function (anObject){
|
1201
1387
|
var self=this;
|
1202
|
-
|
1203
|
-
$2=
|
1204
|
-
$
|
1205
|
-
|
1206
|
-
$
|
1388
|
+
return smalltalk.withContext(function($ctx1) {
|
1389
|
+
$2=_st((smalltalk.SendNode || SendNode))._new();
|
1390
|
+
$3=$2;
|
1391
|
+
$5=_st(self)._receiver();
|
1392
|
+
if(($receiver = $5) == nil || $receiver == undefined){
|
1393
|
+
$4=anObject;
|
1207
1394
|
} else {
|
1208
|
-
$
|
1395
|
+
$4=_st(_st(self)._receiver())._valueForReceiver_(anObject);
|
1209
1396
|
};
|
1210
|
-
|
1211
|
-
|
1212
|
-
|
1213
|
-
$
|
1214
|
-
$1=$
|
1397
|
+
_st($3)._receiver_($4);
|
1398
|
+
_st($2)._selector_(_st(self)._selector());
|
1399
|
+
_st($2)._arguments_(_st(self)._arguments());
|
1400
|
+
$6=_st($2)._yourself();
|
1401
|
+
$1=$6;
|
1215
1402
|
return $1;
|
1216
|
-
},
|
1403
|
+
}, function($ctx1) {$ctx1.fill(self,"valueForReceiver:",{anObject:anObject}, smalltalk.SendNode)})},
|
1217
1404
|
args: ["anObject"],
|
1218
1405
|
source: "valueForReceiver: anObject\x0a\x09^SendNode new\x0a\x09 receiver: (self receiver \x0a\x09\x09ifNil: [anObject]\x0a\x09\x09ifNotNil: [self receiver valueForReceiver: anObject]);\x0a\x09 selector: self selector;\x0a\x09 arguments: self arguments;\x0a\x09 yourself",
|
1219
1406
|
messageSends: ["receiver:", "ifNil:ifNotNil:", "valueForReceiver:", "receiver", "new", "selector:", "selector", "arguments:", "arguments", "yourself"],
|
@@ -1231,10 +1418,10 @@ selector: "accept:",
|
|
1231
1418
|
category: 'visiting',
|
1232
1419
|
fn: function (aVisitor){
|
1233
1420
|
var self=this;
|
1234
|
-
|
1235
|
-
$1=
|
1421
|
+
return smalltalk.withContext(function($ctx1) {
|
1422
|
+
$1=_st(aVisitor)._visitSequenceNode_(self);
|
1236
1423
|
return $1;
|
1237
|
-
},
|
1424
|
+
}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.SequenceNode)})},
|
1238
1425
|
args: ["aVisitor"],
|
1239
1426
|
source: "accept: aVisitor\x0a\x09^ aVisitor visitSequenceNode: self",
|
1240
1427
|
messageSends: ["visitSequenceNode:"],
|
@@ -1249,14 +1436,14 @@ selector: "asBlockSequenceNode",
|
|
1249
1436
|
category: 'testing',
|
1250
1437
|
fn: function (){
|
1251
1438
|
var self=this;
|
1252
|
-
|
1253
|
-
$2=
|
1254
|
-
|
1255
|
-
|
1256
|
-
$3=
|
1439
|
+
return smalltalk.withContext(function($ctx1) {
|
1440
|
+
$2=_st((smalltalk.BlockSequenceNode || BlockSequenceNode))._new();
|
1441
|
+
_st($2)._nodes_(_st(self)._nodes());
|
1442
|
+
_st($2)._temps_(_st(self)._temps());
|
1443
|
+
$3=_st($2)._yourself();
|
1257
1444
|
$1=$3;
|
1258
1445
|
return $1;
|
1259
|
-
},
|
1446
|
+
}, function($ctx1) {$ctx1.fill(self,"asBlockSequenceNode",{}, smalltalk.SequenceNode)})},
|
1260
1447
|
args: [],
|
1261
1448
|
source: "asBlockSequenceNode\x0a\x09^BlockSequenceNode new\x0a\x09 nodes: self nodes;\x0a\x09 temps: self temps;\x0a\x09 yourself",
|
1262
1449
|
messageSends: ["nodes:", "nodes", "new", "temps:", "temps", "yourself"],
|
@@ -1271,8 +1458,10 @@ selector: "scope",
|
|
1271
1458
|
category: 'accessing',
|
1272
1459
|
fn: function (){
|
1273
1460
|
var self=this;
|
1274
|
-
return
|
1275
|
-
|
1461
|
+
return smalltalk.withContext(function($ctx1) {
|
1462
|
+
$1=self["@scope"];
|
1463
|
+
return $1;
|
1464
|
+
}, function($ctx1) {$ctx1.fill(self,"scope",{}, smalltalk.SequenceNode)})},
|
1276
1465
|
args: [],
|
1277
1466
|
source: "scope\x0a\x09^ scope",
|
1278
1467
|
messageSends: [],
|
@@ -1287,8 +1476,8 @@ selector: "scope:",
|
|
1287
1476
|
category: 'accessing',
|
1288
1477
|
fn: function (aLexicalScope){
|
1289
1478
|
var self=this;
|
1290
|
-
|
1291
|
-
return self},
|
1479
|
+
return smalltalk.withContext(function($ctx1) {
|
1480
|
+
return self}, function($ctx1) {$ctx1.fill(self,"scope:",{aLexicalScope:aLexicalScope}, smalltalk.SequenceNode)})},
|
1292
1481
|
args: ["aLexicalScope"],
|
1293
1482
|
source: "scope: aLexicalScope\x0a\x09scope := aLexicalScope",
|
1294
1483
|
messageSends: [],
|
@@ -1303,14 +1492,15 @@ selector: "temps",
|
|
1303
1492
|
category: 'accessing',
|
1304
1493
|
fn: function (){
|
1305
1494
|
var self=this;
|
1306
|
-
|
1307
|
-
|
1495
|
+
return smalltalk.withContext(function($ctx1) {
|
1496
|
+
$2=self["@temps"];
|
1497
|
+
if(($receiver = $2) == nil || $receiver == undefined){
|
1308
1498
|
$1=[];
|
1309
1499
|
} else {
|
1310
|
-
$1
|
1500
|
+
$1=$2;
|
1311
1501
|
};
|
1312
1502
|
return $1;
|
1313
|
-
},
|
1503
|
+
}, function($ctx1) {$ctx1.fill(self,"temps",{}, smalltalk.SequenceNode)})},
|
1314
1504
|
args: [],
|
1315
1505
|
source: "temps\x0a\x09^temps ifNil: [#()]",
|
1316
1506
|
messageSends: ["ifNil:"],
|
@@ -1325,8 +1515,8 @@ selector: "temps:",
|
|
1325
1515
|
category: 'accessing',
|
1326
1516
|
fn: function (aCollection){
|
1327
1517
|
var self=this;
|
1328
|
-
|
1329
|
-
return self},
|
1518
|
+
return smalltalk.withContext(function($ctx1) {
|
1519
|
+
return self}, function($ctx1) {$ctx1.fill(self,"temps:",{aCollection:aCollection}, smalltalk.SequenceNode)})},
|
1330
1520
|
args: ["aCollection"],
|
1331
1521
|
source: "temps: aCollection\x0a\x09temps := aCollection",
|
1332
1522
|
messageSends: [],
|
@@ -1344,10 +1534,10 @@ selector: "accept:",
|
|
1344
1534
|
category: 'visiting',
|
1345
1535
|
fn: function (aVisitor){
|
1346
1536
|
var self=this;
|
1347
|
-
|
1348
|
-
$1=
|
1537
|
+
return smalltalk.withContext(function($ctx1) {
|
1538
|
+
$1=_st(aVisitor)._visitBlockSequenceNode_(self);
|
1349
1539
|
return $1;
|
1350
|
-
},
|
1540
|
+
}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.BlockSequenceNode)})},
|
1351
1541
|
args: ["aVisitor"],
|
1352
1542
|
source: "accept: aVisitor\x0a\x09^ aVisitor visitBlockSequenceNode: self",
|
1353
1543
|
messageSends: ["visitBlockSequenceNode:"],
|
@@ -1362,8 +1552,8 @@ selector: "isBlockSequenceNode",
|
|
1362
1552
|
category: 'testing',
|
1363
1553
|
fn: function (){
|
1364
1554
|
var self=this;
|
1365
|
-
return
|
1366
|
-
},
|
1555
|
+
return smalltalk.withContext(function($ctx1) {
|
1556
|
+
}, function($ctx1) {$ctx1.fill(self,"isBlockSequenceNode",{}, smalltalk.BlockSequenceNode)})},
|
1367
1557
|
args: [],
|
1368
1558
|
source: "isBlockSequenceNode\x0a\x09^true",
|
1369
1559
|
messageSends: [],
|
@@ -1381,10 +1571,10 @@ selector: "accept:",
|
|
1381
1571
|
category: 'visiting',
|
1382
1572
|
fn: function (aVisitor){
|
1383
1573
|
var self=this;
|
1384
|
-
|
1385
|
-
$1=
|
1574
|
+
return smalltalk.withContext(function($ctx1) {
|
1575
|
+
$1=_st(aVisitor)._visitValueNode_(self);
|
1386
1576
|
return $1;
|
1387
|
-
},
|
1577
|
+
}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.ValueNode)})},
|
1388
1578
|
args: ["aVisitor"],
|
1389
1579
|
source: "accept: aVisitor\x0a\x09^ aVisitor visitValueNode: self",
|
1390
1580
|
messageSends: ["visitValueNode:"],
|
@@ -1392,6 +1582,22 @@ referencedClasses: []
|
|
1392
1582
|
}),
|
1393
1583
|
smalltalk.ValueNode);
|
1394
1584
|
|
1585
|
+
smalltalk.addMethod(
|
1586
|
+
"_isImmutable",
|
1587
|
+
smalltalk.method({
|
1588
|
+
selector: "isImmutable",
|
1589
|
+
category: 'testing',
|
1590
|
+
fn: function (){
|
1591
|
+
var self=this;
|
1592
|
+
return smalltalk.withContext(function($ctx1) {
|
1593
|
+
}, function($ctx1) {$ctx1.fill(self,"isImmutable",{}, smalltalk.ValueNode)})},
|
1594
|
+
args: [],
|
1595
|
+
source: "isImmutable\x0a\x09^true",
|
1596
|
+
messageSends: [],
|
1597
|
+
referencedClasses: []
|
1598
|
+
}),
|
1599
|
+
smalltalk.ValueNode);
|
1600
|
+
|
1395
1601
|
smalltalk.addMethod(
|
1396
1602
|
"_isValueNode",
|
1397
1603
|
smalltalk.method({
|
@@ -1399,8 +1605,8 @@ selector: "isValueNode",
|
|
1399
1605
|
category: 'testing',
|
1400
1606
|
fn: function (){
|
1401
1607
|
var self=this;
|
1402
|
-
return
|
1403
|
-
},
|
1608
|
+
return smalltalk.withContext(function($ctx1) {
|
1609
|
+
}, function($ctx1) {$ctx1.fill(self,"isValueNode",{}, smalltalk.ValueNode)})},
|
1404
1610
|
args: [],
|
1405
1611
|
source: "isValueNode\x0a\x09^true",
|
1406
1612
|
messageSends: [],
|
@@ -1415,8 +1621,10 @@ selector: "value",
|
|
1415
1621
|
category: 'accessing',
|
1416
1622
|
fn: function (){
|
1417
1623
|
var self=this;
|
1418
|
-
return
|
1419
|
-
|
1624
|
+
return smalltalk.withContext(function($ctx1) {
|
1625
|
+
$1=self["@value"];
|
1626
|
+
return $1;
|
1627
|
+
}, function($ctx1) {$ctx1.fill(self,"value",{}, smalltalk.ValueNode)})},
|
1420
1628
|
args: [],
|
1421
1629
|
source: "value\x0a\x09^value",
|
1422
1630
|
messageSends: [],
|
@@ -1431,8 +1639,8 @@ selector: "value:",
|
|
1431
1639
|
category: 'accessing',
|
1432
1640
|
fn: function (anObject){
|
1433
1641
|
var self=this;
|
1434
|
-
|
1435
|
-
return self},
|
1642
|
+
return smalltalk.withContext(function($ctx1) {
|
1643
|
+
return self}, function($ctx1) {$ctx1.fill(self,"value:",{anObject:anObject}, smalltalk.ValueNode)})},
|
1436
1644
|
args: ["anObject"],
|
1437
1645
|
source: "value: anObject\x0a\x09value := anObject",
|
1438
1646
|
messageSends: [],
|
@@ -1450,10 +1658,10 @@ selector: "accept:",
|
|
1450
1658
|
category: 'visiting',
|
1451
1659
|
fn: function (aVisitor){
|
1452
1660
|
var self=this;
|
1453
|
-
|
1454
|
-
$1=
|
1661
|
+
return smalltalk.withContext(function($ctx1) {
|
1662
|
+
$1=_st(aVisitor)._visitVariableNode_(self);
|
1455
1663
|
return $1;
|
1456
|
-
},
|
1664
|
+
}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.VariableNode)})},
|
1457
1665
|
args: ["aVisitor"],
|
1458
1666
|
source: "accept: aVisitor\x0a\x09^ aVisitor visitVariableNode: self",
|
1459
1667
|
messageSends: ["visitVariableNode:"],
|
@@ -1468,10 +1676,10 @@ selector: "alias",
|
|
1468
1676
|
category: 'accessing',
|
1469
1677
|
fn: function (){
|
1470
1678
|
var self=this;
|
1471
|
-
|
1472
|
-
$1=
|
1679
|
+
return smalltalk.withContext(function($ctx1) {
|
1680
|
+
$1=_st(_st(self)._binding())._alias();
|
1473
1681
|
return $1;
|
1474
|
-
},
|
1682
|
+
}, function($ctx1) {$ctx1.fill(self,"alias",{}, smalltalk.VariableNode)})},
|
1475
1683
|
args: [],
|
1476
1684
|
source: "alias\x0a\x09^ self binding alias",
|
1477
1685
|
messageSends: ["alias", "binding"],
|
@@ -1486,14 +1694,15 @@ selector: "assigned",
|
|
1486
1694
|
category: 'accessing',
|
1487
1695
|
fn: function (){
|
1488
1696
|
var self=this;
|
1489
|
-
|
1490
|
-
|
1697
|
+
return smalltalk.withContext(function($ctx1) {
|
1698
|
+
$2=self["@assigned"];
|
1699
|
+
if(($receiver = $2) == nil || $receiver == undefined){
|
1491
1700
|
$1=false;
|
1492
1701
|
} else {
|
1493
|
-
$1
|
1702
|
+
$1=$2;
|
1494
1703
|
};
|
1495
1704
|
return $1;
|
1496
|
-
},
|
1705
|
+
}, function($ctx1) {$ctx1.fill(self,"assigned",{}, smalltalk.VariableNode)})},
|
1497
1706
|
args: [],
|
1498
1707
|
source: "assigned\x0a\x09^assigned ifNil: [false]",
|
1499
1708
|
messageSends: ["ifNil:"],
|
@@ -1508,8 +1717,8 @@ selector: "assigned:",
|
|
1508
1717
|
category: 'accessing',
|
1509
1718
|
fn: function (aBoolean){
|
1510
1719
|
var self=this;
|
1511
|
-
|
1512
|
-
return self},
|
1720
|
+
return smalltalk.withContext(function($ctx1) {
|
1721
|
+
return self}, function($ctx1) {$ctx1.fill(self,"assigned:",{aBoolean:aBoolean}, smalltalk.VariableNode)})},
|
1513
1722
|
args: ["aBoolean"],
|
1514
1723
|
source: "assigned: aBoolean\x0a\x09assigned := aBoolean",
|
1515
1724
|
messageSends: [],
|
@@ -1524,9 +1733,9 @@ selector: "beAssigned",
|
|
1524
1733
|
category: 'accessing',
|
1525
1734
|
fn: function (){
|
1526
1735
|
var self=this;
|
1527
|
-
smalltalk.
|
1736
|
+
return smalltalk.withContext(function($ctx1) {
|
1528
1737
|
self["@assigned"]=true;
|
1529
|
-
return self},
|
1738
|
+
return self}, function($ctx1) {$ctx1.fill(self,"beAssigned",{}, smalltalk.VariableNode)})},
|
1530
1739
|
args: [],
|
1531
1740
|
source: "beAssigned\x0a\x09self binding validateAssignment.\x0a\x09assigned := true",
|
1532
1741
|
messageSends: ["validateAssignment", "binding"],
|
@@ -1541,8 +1750,10 @@ selector: "binding",
|
|
1541
1750
|
category: 'accessing',
|
1542
1751
|
fn: function (){
|
1543
1752
|
var self=this;
|
1544
|
-
return
|
1545
|
-
|
1753
|
+
return smalltalk.withContext(function($ctx1) {
|
1754
|
+
$1=self["@binding"];
|
1755
|
+
return $1;
|
1756
|
+
}, function($ctx1) {$ctx1.fill(self,"binding",{}, smalltalk.VariableNode)})},
|
1546
1757
|
args: [],
|
1547
1758
|
source: "binding\x0a\x09^ binding",
|
1548
1759
|
messageSends: [],
|
@@ -1557,8 +1768,8 @@ selector: "binding:",
|
|
1557
1768
|
category: 'accessing',
|
1558
1769
|
fn: function (aScopeVar){
|
1559
1770
|
var self=this;
|
1560
|
-
|
1561
|
-
return self},
|
1771
|
+
return smalltalk.withContext(function($ctx1) {
|
1772
|
+
return self}, function($ctx1) {$ctx1.fill(self,"binding:",{aScopeVar:aScopeVar}, smalltalk.VariableNode)})},
|
1562
1773
|
args: ["aScopeVar"],
|
1563
1774
|
source: "binding: aScopeVar\x0a\x09binding := aScopeVar",
|
1564
1775
|
messageSends: [],
|
@@ -1566,6 +1777,22 @@ referencedClasses: []
|
|
1566
1777
|
}),
|
1567
1778
|
smalltalk.VariableNode);
|
1568
1779
|
|
1780
|
+
smalltalk.addMethod(
|
1781
|
+
"_isImmutable",
|
1782
|
+
smalltalk.method({
|
1783
|
+
selector: "isImmutable",
|
1784
|
+
category: 'testing',
|
1785
|
+
fn: function (){
|
1786
|
+
var self=this;
|
1787
|
+
return smalltalk.withContext(function($ctx1) {
|
1788
|
+
}, function($ctx1) {$ctx1.fill(self,"isImmutable",{}, smalltalk.VariableNode)})},
|
1789
|
+
args: [],
|
1790
|
+
source: "isImmutable\x0a\x09^false",
|
1791
|
+
messageSends: [],
|
1792
|
+
referencedClasses: []
|
1793
|
+
}),
|
1794
|
+
smalltalk.VariableNode);
|
1795
|
+
|
1569
1796
|
|
1570
1797
|
|
1571
1798
|
smalltalk.addClass('ClassReferenceNode', smalltalk.VariableNode, [], 'Compiler-AST');
|
@@ -1576,10 +1803,10 @@ selector: "accept:",
|
|
1576
1803
|
category: 'visiting',
|
1577
1804
|
fn: function (aVisitor){
|
1578
1805
|
var self=this;
|
1579
|
-
|
1580
|
-
$1=
|
1806
|
+
return smalltalk.withContext(function($ctx1) {
|
1807
|
+
$1=_st(aVisitor)._visitClassReferenceNode_(self);
|
1581
1808
|
return $1;
|
1582
|
-
},
|
1809
|
+
}, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.ClassReferenceNode)})},
|
1583
1810
|
args: ["aVisitor"],
|
1584
1811
|
source: "accept: aVisitor\x0a\x09^ aVisitor visitClassReferenceNode: self",
|
1585
1812
|
messageSends: ["visitClassReferenceNode:"],
|
@@ -1589,3 +1816,19 @@ smalltalk.ClassReferenceNode);
|
|
1589
1816
|
|
1590
1817
|
|
1591
1818
|
|
1819
|
+
smalltalk.addMethod(
|
1820
|
+
"_isNode",
|
1821
|
+
smalltalk.method({
|
1822
|
+
selector: "isNode",
|
1823
|
+
category: '*Compiler-AST',
|
1824
|
+
fn: function (){
|
1825
|
+
var self=this;
|
1826
|
+
return smalltalk.withContext(function($ctx1) {
|
1827
|
+
}, function($ctx1) {$ctx1.fill(self,"isNode",{}, smalltalk.Object)})},
|
1828
|
+
args: [],
|
1829
|
+
source: "isNode\x0a\x09^ false",
|
1830
|
+
messageSends: [],
|
1831
|
+
referencedClasses: []
|
1832
|
+
}),
|
1833
|
+
smalltalk.Object);
|
1834
|
+
|