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.
Files changed (84) hide show
  1. data/amber/bin/amberc +10 -350
  2. data/amber/js/Benchfib.deploy.js +80 -89
  3. data/amber/js/Benchfib.js +80 -89
  4. data/amber/js/Canvas.deploy.js +558 -545
  5. data/amber/js/Canvas.js +563 -545
  6. data/amber/js/Compiler-AST.deploy.js +431 -243
  7. data/amber/js/Compiler-AST.js +487 -244
  8. data/amber/js/Compiler-Core.deploy.js +201 -1045
  9. data/amber/js/Compiler-Core.js +208 -1207
  10. data/amber/js/Compiler-Exceptions.deploy.js +37 -18
  11. data/amber/js/Compiler-Exceptions.js +42 -18
  12. data/amber/js/Compiler-IR.deploy.js +1071 -774
  13. data/amber/js/Compiler-IR.js +1194 -848
  14. data/amber/js/Compiler-Inlining.deploy.js +395 -373
  15. data/amber/js/Compiler-Inlining.js +395 -373
  16. data/amber/js/Compiler-Interpreter.deploy.js +1202 -0
  17. data/amber/js/Compiler-Interpreter.js +1631 -0
  18. data/amber/js/Compiler-Semantic.deploy.js +695 -600
  19. data/amber/js/Compiler-Semantic.js +721 -611
  20. data/amber/js/Compiler-Tests.deploy.js +699 -376
  21. data/amber/js/Compiler-Tests.js +834 -381
  22. data/amber/js/Compiler.deploy.js +8563 -1805
  23. data/amber/js/Compiler.js +11476 -2633
  24. data/amber/js/Examples.deploy.js +29 -29
  25. data/amber/js/Examples.js +29 -29
  26. data/amber/js/IDE.deploy.js +3292 -2649
  27. data/amber/js/IDE.js +3318 -2710
  28. data/amber/js/Importer-Exporter.deploy.js +393 -349
  29. data/amber/js/Importer-Exporter.js +398 -354
  30. data/amber/js/Kernel-Announcements.deploy.js +53 -44
  31. data/amber/js/Kernel-Announcements.js +55 -44
  32. data/amber/js/Kernel-Classes.deploy.js +566 -368
  33. data/amber/js/Kernel-Classes.js +660 -402
  34. data/amber/js/Kernel-Collections.deploy.js +1149 -1098
  35. data/amber/js/Kernel-Collections.js +1183 -1116
  36. data/amber/js/Kernel-Exceptions.deploy.js +173 -75
  37. data/amber/js/Kernel-Exceptions.js +215 -77
  38. data/amber/js/Kernel-Methods.deploy.js +530 -313
  39. data/amber/js/Kernel-Methods.js +632 -338
  40. data/amber/js/Kernel-Objects.deploy.js +1734 -1577
  41. data/amber/js/Kernel-Objects.js +1867 -1654
  42. data/amber/js/Kernel-Tests.deploy.js +1416 -973
  43. data/amber/js/Kernel-Tests.js +1495 -981
  44. data/amber/js/Kernel-Transcript.deploy.js +23 -24
  45. data/amber/js/Kernel-Transcript.js +25 -26
  46. data/amber/js/SUnit-Tests.deploy.js +402 -0
  47. data/amber/js/SUnit-Tests.js +518 -0
  48. data/amber/js/SUnit.deploy.js +535 -237
  49. data/amber/js/SUnit.js +634 -246
  50. data/amber/js/amber.js +90 -53
  51. data/amber/js/boot.js +441 -255
  52. data/amber/js/init.js +1 -3
  53. data/amber/js/lib/CodeMirror/codemirror.css +3 -0
  54. data/amber/js/lib/CodeMirror/codemirror.js +104 -55
  55. data/amber/js/lib/peg-0.7.0.min.js +9 -0
  56. data/amber/js/parser.js +1504 -802
  57. data/amber/js/parser.pegjs +170 -165
  58. data/amber/st/Canvas.st +6 -0
  59. data/amber/st/Compiler-AST.st +54 -3
  60. data/amber/st/Compiler-Core.st +6 -551
  61. data/amber/st/Compiler-Exceptions.st +4 -0
  62. data/amber/st/Compiler-IR.st +205 -87
  63. data/amber/st/Compiler-Interpreter.st +597 -0
  64. data/amber/st/Compiler-Semantic.st +46 -21
  65. data/amber/st/Compiler-Tests.st +254 -7
  66. data/amber/st/Compiler.st +3172 -1541
  67. data/amber/st/IDE.st +57 -93
  68. data/amber/st/Importer-Exporter.st +4 -7
  69. data/amber/st/Kernel-Announcements.st +8 -0
  70. data/amber/st/Kernel-Classes.st +149 -40
  71. data/amber/st/Kernel-Collections.st +43 -32
  72. data/amber/st/Kernel-Exceptions.st +70 -1
  73. data/amber/st/Kernel-Methods.st +165 -27
  74. data/amber/st/Kernel-Objects.st +215 -140
  75. data/amber/st/Kernel-Tests.st +195 -10
  76. data/amber/st/Kernel-Transcript.st +1 -3
  77. data/amber/st/SUnit-Tests.st +186 -0
  78. data/amber/st/SUnit.st +186 -14
  79. data/bin/resin +6 -0
  80. data/lib/resin/cli.rb +19 -0
  81. metadata +41 -25
  82. data/amber/js/lib/peg-0.6.2.min.js +0 -2
  83. data/bin/resin-compile +0 -6
  84. data/bin/runresin +0 -12
@@ -0,0 +1,1202 @@
1
+ smalltalk.addPackage('Compiler-Interpreter', {});
2
+ smalltalk.addClass('AIContext', smalltalk.NodeVisitor, ['outerContext', 'pc', 'locals', 'method'], 'Compiler-Interpreter');
3
+ smalltalk.addMethod(
4
+ "_initializeFromMethodContext_",
5
+ smalltalk.method({
6
+ selector: "initializeFromMethodContext:",
7
+ fn: function (aMethodContext){
8
+ var self=this;
9
+ return smalltalk.withContext(function($ctx1) {
10
+ _st(self)._pc_(_st(aMethodContext)._pc());
11
+ _st(self)._receiver_(_st(aMethodContext)._receiver());
12
+ _st(self)._method_(_st(aMethodContext)._method());
13
+ $1=_st(aMethodContext)._outerContext();
14
+ if(($receiver = $1) == nil || $receiver == undefined){
15
+ $1;
16
+ } else {
17
+ _st(self)._outerContext_(_st(_st(self)._class())._fromMethodContext_(_st(aMethodContext)._outerContext()));
18
+ };
19
+ _st(_st(aMethodContext)._locals())._keysAndValuesDo_((function(key,value){
20
+ return smalltalk.withContext(function($ctx2) {
21
+ }, function($ctx2) {$ctx2.fillBlock({key:key,value:value},$ctx1)})}));
22
+ return self}, function($ctx1) {$ctx1.fill(self,"initializeFromMethodContext:",{aMethodContext:aMethodContext}, smalltalk.AIContext)})}
23
+ }),
24
+ smalltalk.AIContext);
25
+
26
+ smalltalk.addMethod(
27
+ "_localAt_",
28
+ smalltalk.method({
29
+ selector: "localAt:",
30
+ fn: function (aString){
31
+ var self=this;
32
+ return smalltalk.withContext(function($ctx1) {
33
+ $1=_st(_st(self)._locals())._at_ifAbsent_(aString,(function(){
34
+ return smalltalk.withContext(function($ctx2) {
35
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
36
+ return $1;
37
+ }, function($ctx1) {$ctx1.fill(self,"localAt:",{aString:aString}, smalltalk.AIContext)})}
38
+ }),
39
+ smalltalk.AIContext);
40
+
41
+ smalltalk.addMethod(
42
+ "_localAt_put_",
43
+ smalltalk.method({
44
+ selector: "localAt:put:",
45
+ fn: function (aString,anObject){
46
+ var self=this;
47
+ return smalltalk.withContext(function($ctx1) {
48
+ return self}, function($ctx1) {$ctx1.fill(self,"localAt:put:",{aString:aString,anObject:anObject}, smalltalk.AIContext)})}
49
+ }),
50
+ smalltalk.AIContext);
51
+
52
+ smalltalk.addMethod(
53
+ "_locals",
54
+ smalltalk.method({
55
+ selector: "locals",
56
+ fn: function (){
57
+ var self=this;
58
+ return smalltalk.withContext(function($ctx1) {
59
+ $2=self["@locals"];
60
+ if(($receiver = $2) == nil || $receiver == undefined){
61
+ self["@locals"]=_st((smalltalk.Dictionary || Dictionary))._new();
62
+ $1=self["@locals"];
63
+ } else {
64
+ $1=$2;
65
+ };
66
+ return $1;
67
+ }, function($ctx1) {$ctx1.fill(self,"locals",{}, smalltalk.AIContext)})}
68
+ }),
69
+ smalltalk.AIContext);
70
+
71
+ smalltalk.addMethod(
72
+ "_method",
73
+ smalltalk.method({
74
+ selector: "method",
75
+ fn: function (){
76
+ var self=this;
77
+ return smalltalk.withContext(function($ctx1) {
78
+ $1=self["@method"];
79
+ return $1;
80
+ }, function($ctx1) {$ctx1.fill(self,"method",{}, smalltalk.AIContext)})}
81
+ }),
82
+ smalltalk.AIContext);
83
+
84
+ smalltalk.addMethod(
85
+ "_method_",
86
+ smalltalk.method({
87
+ selector: "method:",
88
+ fn: function (aCompiledMethod){
89
+ var self=this;
90
+ return smalltalk.withContext(function($ctx1) {
91
+ return self}, function($ctx1) {$ctx1.fill(self,"method:",{aCompiledMethod:aCompiledMethod}, smalltalk.AIContext)})}
92
+ }),
93
+ smalltalk.AIContext);
94
+
95
+ smalltalk.addMethod(
96
+ "_outerContext",
97
+ smalltalk.method({
98
+ selector: "outerContext",
99
+ fn: function (){
100
+ var self=this;
101
+ return smalltalk.withContext(function($ctx1) {
102
+ $1=self["@outerContext"];
103
+ return $1;
104
+ }, function($ctx1) {$ctx1.fill(self,"outerContext",{}, smalltalk.AIContext)})}
105
+ }),
106
+ smalltalk.AIContext);
107
+
108
+ smalltalk.addMethod(
109
+ "_outerContext_",
110
+ smalltalk.method({
111
+ selector: "outerContext:",
112
+ fn: function (anAIContext){
113
+ var self=this;
114
+ return smalltalk.withContext(function($ctx1) {
115
+ return self}, function($ctx1) {$ctx1.fill(self,"outerContext:",{anAIContext:anAIContext}, smalltalk.AIContext)})}
116
+ }),
117
+ smalltalk.AIContext);
118
+
119
+ smalltalk.addMethod(
120
+ "_pc",
121
+ smalltalk.method({
122
+ selector: "pc",
123
+ fn: function (){
124
+ var self=this;
125
+ return smalltalk.withContext(function($ctx1) {
126
+ $2=self["@pc"];
127
+ if(($receiver = $2) == nil || $receiver == undefined){
128
+ self["@pc"]=(0);
129
+ $1=self["@pc"];
130
+ } else {
131
+ $1=$2;
132
+ };
133
+ return $1;
134
+ }, function($ctx1) {$ctx1.fill(self,"pc",{}, smalltalk.AIContext)})}
135
+ }),
136
+ smalltalk.AIContext);
137
+
138
+ smalltalk.addMethod(
139
+ "_pc_",
140
+ smalltalk.method({
141
+ selector: "pc:",
142
+ fn: function (anInteger){
143
+ var self=this;
144
+ return smalltalk.withContext(function($ctx1) {
145
+ return self}, function($ctx1) {$ctx1.fill(self,"pc:",{anInteger:anInteger}, smalltalk.AIContext)})}
146
+ }),
147
+ smalltalk.AIContext);
148
+
149
+ smalltalk.addMethod(
150
+ "_receiver",
151
+ smalltalk.method({
152
+ selector: "receiver",
153
+ fn: function (){
154
+ var self=this;
155
+ return smalltalk.withContext(function($ctx1) {
156
+ $1=_st(self)._localAt_("self");
157
+ return $1;
158
+ }, function($ctx1) {$ctx1.fill(self,"receiver",{}, smalltalk.AIContext)})}
159
+ }),
160
+ smalltalk.AIContext);
161
+
162
+ smalltalk.addMethod(
163
+ "_receiver_",
164
+ smalltalk.method({
165
+ selector: "receiver:",
166
+ fn: function (anObject){
167
+ var self=this;
168
+ return smalltalk.withContext(function($ctx1) {
169
+ return self}, function($ctx1) {$ctx1.fill(self,"receiver:",{anObject:anObject}, smalltalk.AIContext)})}
170
+ }),
171
+ smalltalk.AIContext);
172
+
173
+ smalltalk.addMethod(
174
+ "_selector",
175
+ smalltalk.method({
176
+ selector: "selector",
177
+ fn: function (){
178
+ var self=this;
179
+ return smalltalk.withContext(function($ctx1) {
180
+ $2=_st(self)._metod();
181
+ if(($receiver = $2) == nil || $receiver == undefined){
182
+ $1=$2;
183
+ } else {
184
+ $1=_st(_st(self)._method())._selector();
185
+ };
186
+ return $1;
187
+ }, function($ctx1) {$ctx1.fill(self,"selector",{}, smalltalk.AIContext)})}
188
+ }),
189
+ smalltalk.AIContext);
190
+
191
+
192
+ smalltalk.addMethod(
193
+ "_fromMethodContext_",
194
+ smalltalk.method({
195
+ selector: "fromMethodContext:",
196
+ fn: function (aMethodContext){
197
+ var self=this;
198
+ return smalltalk.withContext(function($ctx1) {
199
+ $2=_st(self)._new();
200
+ _st($2)._initializeFromMethodContext_(aMethodContext);
201
+ $3=_st($2)._yourself();
202
+ $1=$3;
203
+ return $1;
204
+ }, function($ctx1) {$ctx1.fill(self,"fromMethodContext:",{aMethodContext:aMethodContext}, smalltalk.AIContext.klass)})}
205
+ }),
206
+ smalltalk.AIContext.klass);
207
+
208
+
209
+ smalltalk.addClass('ASTDebugger', smalltalk.Object, ['interpreter', 'context'], 'Compiler-Interpreter');
210
+ smalltalk.addMethod(
211
+ "_buildAST",
212
+ smalltalk.method({
213
+ selector: "buildAST",
214
+ fn: function (){
215
+ var self=this;
216
+ var ast;
217
+ return smalltalk.withContext(function($ctx1) {
218
+ ast=_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._parse_(_st(_st(self)._method())._source());
219
+ _st(_st((smalltalk.SemanticAnalyzer || SemanticAnalyzer))._on_(_st(_st(_st(self)._context())._receiver())._class()))._visit_(ast);
220
+ $1=ast;
221
+ return $1;
222
+ }, function($ctx1) {$ctx1.fill(self,"buildAST",{ast:ast}, smalltalk.ASTDebugger)})}
223
+ }),
224
+ smalltalk.ASTDebugger);
225
+
226
+ smalltalk.addMethod(
227
+ "_context",
228
+ smalltalk.method({
229
+ selector: "context",
230
+ fn: function (){
231
+ var self=this;
232
+ return smalltalk.withContext(function($ctx1) {
233
+ $1=self["@context"];
234
+ return $1;
235
+ }, function($ctx1) {$ctx1.fill(self,"context",{}, smalltalk.ASTDebugger)})}
236
+ }),
237
+ smalltalk.ASTDebugger);
238
+
239
+ smalltalk.addMethod(
240
+ "_context_",
241
+ smalltalk.method({
242
+ selector: "context:",
243
+ fn: function (aContext){
244
+ var self=this;
245
+ return smalltalk.withContext(function($ctx1) {
246
+ return self}, function($ctx1) {$ctx1.fill(self,"context:",{aContext:aContext}, smalltalk.ASTDebugger)})}
247
+ }),
248
+ smalltalk.ASTDebugger);
249
+
250
+ smalltalk.addMethod(
251
+ "_defaultInterpreterClass",
252
+ smalltalk.method({
253
+ selector: "defaultInterpreterClass",
254
+ fn: function (){
255
+ var self=this;
256
+ return smalltalk.withContext(function($ctx1) {
257
+ $1=(smalltalk.ASTSteppingInterpreter || ASTSteppingInterpreter);
258
+ return $1;
259
+ }, function($ctx1) {$ctx1.fill(self,"defaultInterpreterClass",{}, smalltalk.ASTDebugger)})}
260
+ }),
261
+ smalltalk.ASTDebugger);
262
+
263
+ smalltalk.addMethod(
264
+ "_initializeInterpreter",
265
+ smalltalk.method({
266
+ selector: "initializeInterpreter",
267
+ fn: function (){
268
+ var self=this;
269
+ return smalltalk.withContext(function($ctx1) {
270
+ return self}, function($ctx1) {$ctx1.fill(self,"initializeInterpreter",{}, smalltalk.ASTDebugger)})}
271
+ }),
272
+ smalltalk.ASTDebugger);
273
+
274
+ smalltalk.addMethod(
275
+ "_initializeWithContext_",
276
+ smalltalk.method({
277
+ selector: "initializeWithContext:",
278
+ fn: function (aMethodContext){
279
+ var self=this;
280
+ return smalltalk.withContext(function($ctx1) {
281
+ _st(self)._initializeInterpreter();
282
+ return self}, function($ctx1) {$ctx1.fill(self,"initializeWithContext:",{aMethodContext:aMethodContext}, smalltalk.ASTDebugger)})}
283
+ }),
284
+ smalltalk.ASTDebugger);
285
+
286
+ smalltalk.addMethod(
287
+ "_interpreter",
288
+ smalltalk.method({
289
+ selector: "interpreter",
290
+ fn: function (){
291
+ var self=this;
292
+ return smalltalk.withContext(function($ctx1) {
293
+ $2=self["@interpreter"];
294
+ if(($receiver = $2) == nil || $receiver == undefined){
295
+ self["@interpreter"]=_st(_st(self)._defaultInterpreterClass())._new();
296
+ $1=self["@interpreter"];
297
+ } else {
298
+ $1=$2;
299
+ };
300
+ return $1;
301
+ }, function($ctx1) {$ctx1.fill(self,"interpreter",{}, smalltalk.ASTDebugger)})}
302
+ }),
303
+ smalltalk.ASTDebugger);
304
+
305
+ smalltalk.addMethod(
306
+ "_interpreter_",
307
+ smalltalk.method({
308
+ selector: "interpreter:",
309
+ fn: function (anInterpreter){
310
+ var self=this;
311
+ return smalltalk.withContext(function($ctx1) {
312
+ return self}, function($ctx1) {$ctx1.fill(self,"interpreter:",{anInterpreter:anInterpreter}, smalltalk.ASTDebugger)})}
313
+ }),
314
+ smalltalk.ASTDebugger);
315
+
316
+ smalltalk.addMethod(
317
+ "_method",
318
+ smalltalk.method({
319
+ selector: "method",
320
+ fn: function (){
321
+ var self=this;
322
+ return smalltalk.withContext(function($ctx1) {
323
+ $1=_st(_st(self)._context())._method();
324
+ return $1;
325
+ }, function($ctx1) {$ctx1.fill(self,"method",{}, smalltalk.ASTDebugger)})}
326
+ }),
327
+ smalltalk.ASTDebugger);
328
+
329
+ smalltalk.addMethod(
330
+ "_restart",
331
+ smalltalk.method({
332
+ selector: "restart",
333
+ fn: function (){
334
+ var self=this;
335
+ return smalltalk.withContext(function($ctx1) {
336
+ return self}, function($ctx1) {$ctx1.fill(self,"restart",{}, smalltalk.ASTDebugger)})}
337
+ }),
338
+ smalltalk.ASTDebugger);
339
+
340
+ smalltalk.addMethod(
341
+ "_resume",
342
+ smalltalk.method({
343
+ selector: "resume",
344
+ fn: function (){
345
+ var self=this;
346
+ return smalltalk.withContext(function($ctx1) {
347
+ return self}, function($ctx1) {$ctx1.fill(self,"resume",{}, smalltalk.ASTDebugger)})}
348
+ }),
349
+ smalltalk.ASTDebugger);
350
+
351
+ smalltalk.addMethod(
352
+ "_step",
353
+ smalltalk.method({
354
+ selector: "step",
355
+ fn: function (){
356
+ var self=this;
357
+ return smalltalk.withContext(function($ctx1) {
358
+ return smalltalk.withContext(function($ctx2) {
359
+ return smalltalk.withContext(function($ctx3) {
360
+ }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})})))._or_((function(){
361
+ return smalltalk.withContext(function($ctx3) {
362
+ }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
363
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}))._whileFalse_((function(){
364
+ return smalltalk.withContext(function($ctx2) {
365
+ return _st(self)._step();
366
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
367
+ return self}, function($ctx1) {$ctx1.fill(self,"step",{}, smalltalk.ASTDebugger)})}
368
+ }),
369
+ smalltalk.ASTDebugger);
370
+
371
+ smalltalk.addMethod(
372
+ "_stepInto",
373
+ smalltalk.method({
374
+ selector: "stepInto",
375
+ fn: function (){
376
+ var self=this;
377
+ return smalltalk.withContext(function($ctx1) {
378
+ return self}, function($ctx1) {$ctx1.fill(self,"stepInto",{}, smalltalk.ASTDebugger)})}
379
+ }),
380
+ smalltalk.ASTDebugger);
381
+
382
+ smalltalk.addMethod(
383
+ "_stepOver",
384
+ smalltalk.method({
385
+ selector: "stepOver",
386
+ fn: function (){
387
+ var self=this;
388
+ return smalltalk.withContext(function($ctx1) {
389
+ return self}, function($ctx1) {$ctx1.fill(self,"stepOver",{}, smalltalk.ASTDebugger)})}
390
+ }),
391
+ smalltalk.ASTDebugger);
392
+
393
+
394
+ smalltalk.addMethod(
395
+ "_context_",
396
+ smalltalk.method({
397
+ selector: "context:",
398
+ fn: function (aMethodContext){
399
+ var self=this;
400
+ return smalltalk.withContext(function($ctx1) {
401
+ $2=_st(self)._new();
402
+ _st($2)._initializeWithContext_(aMethodContext);
403
+ $3=_st($2)._yourself();
404
+ $1=$3;
405
+ return $1;
406
+ }, function($ctx1) {$ctx1.fill(self,"context:",{aMethodContext:aMethodContext}, smalltalk.ASTDebugger.klass)})}
407
+ }),
408
+ smalltalk.ASTDebugger.klass);
409
+
410
+
411
+ smalltalk.addClass('ASTInterpreter', smalltalk.Object, ['currentNode', 'context', 'shouldReturn', 'result'], 'Compiler-Interpreter');
412
+ smalltalk.addMethod(
413
+ "_assign_to_",
414
+ smalltalk.method({
415
+ selector: "assign:to:",
416
+ fn: function (aNode,anObject){
417
+ var self=this;
418
+ return smalltalk.withContext(function($ctx1) {
419
+ $2=_st(_st(aNode)._binding())._isInstanceVar();
420
+ if(smalltalk.assert($2)){
421
+ $1=_st(_st(_st(self)._context())._receiver())._instVarAt_put_(_st(aNode)._value(),anObject);
422
+ } else {
423
+ $1=_st(_st(self)._context())._localAt_put_(_st(aNode)._value(),anObject);
424
+ };
425
+ return $1;
426
+ }, function($ctx1) {$ctx1.fill(self,"assign:to:",{aNode:aNode,anObject:anObject}, smalltalk.ASTInterpreter)})}
427
+ }),
428
+ smalltalk.ASTInterpreter);
429
+
430
+ smalltalk.addMethod(
431
+ "_context",
432
+ smalltalk.method({
433
+ selector: "context",
434
+ fn: function (){
435
+ var self=this;
436
+ return smalltalk.withContext(function($ctx1) {
437
+ $2=self["@context"];
438
+ if(($receiver = $2) == nil || $receiver == undefined){
439
+ self["@context"]=_st((smalltalk.AIContext || AIContext))._new();
440
+ $1=self["@context"];
441
+ } else {
442
+ $1=$2;
443
+ };
444
+ return $1;
445
+ }, function($ctx1) {$ctx1.fill(self,"context",{}, smalltalk.ASTInterpreter)})}
446
+ }),
447
+ smalltalk.ASTInterpreter);
448
+
449
+ smalltalk.addMethod(
450
+ "_context_",
451
+ smalltalk.method({
452
+ selector: "context:",
453
+ fn: function (anAIContext){
454
+ var self=this;
455
+ return smalltalk.withContext(function($ctx1) {
456
+ return self}, function($ctx1) {$ctx1.fill(self,"context:",{anAIContext:anAIContext}, smalltalk.ASTInterpreter)})}
457
+ }),
458
+ smalltalk.ASTInterpreter);
459
+
460
+ smalltalk.addMethod(
461
+ "_continue_value_",
462
+ smalltalk.method({
463
+ selector: "continue:value:",
464
+ fn: function (aBlock,anObject){
465
+ var self=this;
466
+ return smalltalk.withContext(function($ctx1) {
467
+ _st(aBlock)._value_(anObject);
468
+ return self}, function($ctx1) {$ctx1.fill(self,"continue:value:",{aBlock:aBlock,anObject:anObject}, smalltalk.ASTInterpreter)})}
469
+ }),
470
+ smalltalk.ASTInterpreter);
471
+
472
+ smalltalk.addMethod(
473
+ "_currentNode",
474
+ smalltalk.method({
475
+ selector: "currentNode",
476
+ fn: function (){
477
+ var self=this;
478
+ return smalltalk.withContext(function($ctx1) {
479
+ $1=self["@currentNode"];
480
+ return $1;
481
+ }, function($ctx1) {$ctx1.fill(self,"currentNode",{}, smalltalk.ASTInterpreter)})}
482
+ }),
483
+ smalltalk.ASTInterpreter);
484
+
485
+ smalltalk.addMethod(
486
+ "_eval_",
487
+ smalltalk.method({
488
+ selector: "eval:",
489
+ fn: function (aString){
490
+ var self=this;
491
+ var source,function_;
492
+ return smalltalk.withContext(function($ctx1) {
493
+ source=_st((smalltalk.String || String))._streamContents_((function(str){
494
+ return smalltalk.withContext(function($ctx2) {
495
+ _st(_st(_st(_st(self)._context())._locals())._keys())._do_separatedBy_((function(each){
496
+ return smalltalk.withContext(function($ctx3) {
497
+ }, function($ctx3) {$ctx3.fillBlock({each:each},$ctx1)})}),(function(){
498
+ return smalltalk.withContext(function($ctx3) {
499
+ }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
500
+ $1=str;
501
+ _st($1)._nextPutAll_("){ return (function() {");
502
+ _st($1)._nextPutAll_(aString);
503
+ $2=_st($1)._nextPutAll_("})() })");
504
+ return $2;
505
+ }, function($ctx2) {$ctx2.fillBlock({str:str},$ctx1)})}));
506
+ function_=_st(_st((smalltalk.Compiler || Compiler))._new())._eval_(source);
507
+ $3=_st(function_)._valueWithPossibleArguments_(_st(_st(_st(self)._context())._locals())._values());
508
+ return $3;
509
+ }, function($ctx1) {$ctx1.fill(self,"eval:",{aString:aString,source:source,function_:function_}, smalltalk.ASTInterpreter)})}
510
+ }),
511
+ smalltalk.ASTInterpreter);
512
+
513
+ smalltalk.addMethod(
514
+ "_initialize",
515
+ smalltalk.method({
516
+ selector: "initialize",
517
+ fn: function (){
518
+ var self=this;
519
+ return smalltalk.withContext(function($ctx1) {
520
+ self["@shouldReturn"]=false;
521
+ return self}, function($ctx1) {$ctx1.fill(self,"initialize",{}, smalltalk.ASTInterpreter)})}
522
+ }),
523
+ smalltalk.ASTInterpreter);
524
+
525
+ smalltalk.addMethod(
526
+ "_interpret_",
527
+ smalltalk.method({
528
+ selector: "interpret:",
529
+ fn: function (aNode){
530
+ var self=this;
531
+ return smalltalk.withContext(function($ctx1) {
532
+ _st(self)._interpret_continue_(aNode,(function(value){
533
+ return smalltalk.withContext(function($ctx2) {
534
+ return self["@result"];
535
+ }, function($ctx2) {$ctx2.fillBlock({value:value},$ctx1)})}));
536
+ return self}, function($ctx1) {$ctx1.fill(self,"interpret:",{aNode:aNode}, smalltalk.ASTInterpreter)})}
537
+ }),
538
+ smalltalk.ASTInterpreter);
539
+
540
+ smalltalk.addMethod(
541
+ "_interpret_continue_",
542
+ smalltalk.method({
543
+ selector: "interpret:continue:",
544
+ fn: function (aNode,aBlock){
545
+ var self=this;
546
+ return smalltalk.withContext(function($ctx1) {
547
+ $1=self["@shouldReturn"];
548
+ if(smalltalk.assert($1)){
549
+ $2=self;
550
+ return $2;
551
+ };
552
+ $3=_st(aNode)._isNode();
553
+ if(smalltalk.assert($3)){
554
+ self["@currentNode"]=aNode;
555
+ self["@currentNode"];
556
+ _st(self)._interpretNode_continue_(aNode,(function(value){
557
+ return smalltalk.withContext(function($ctx2) {
558
+ }, function($ctx2) {$ctx2.fillBlock({value:value},$ctx1)})}));
559
+ } else {
560
+ _st(self)._continue_value_(aBlock,aNode);
561
+ };
562
+ return self}, function($ctx1) {$ctx1.fill(self,"interpret:continue:",{aNode:aNode,aBlock:aBlock}, smalltalk.ASTInterpreter)})}
563
+ }),
564
+ smalltalk.ASTInterpreter);
565
+
566
+ smalltalk.addMethod(
567
+ "_interpretAll_continue_",
568
+ smalltalk.method({
569
+ selector: "interpretAll:continue:",
570
+ fn: function (aCollection,aBlock){
571
+ var self=this;
572
+ return smalltalk.withContext(function($ctx1) {
573
+ return self}, function($ctx1) {$ctx1.fill(self,"interpretAll:continue:",{aCollection:aCollection,aBlock:aBlock}, smalltalk.ASTInterpreter)})}
574
+ }),
575
+ smalltalk.ASTInterpreter);
576
+
577
+ smalltalk.addMethod(
578
+ "_interpretAll_continue_result_",
579
+ smalltalk.method({
580
+ selector: "interpretAll:continue:result:",
581
+ fn: function (nodes,aBlock,aCollection){
582
+ var self=this;
583
+ return smalltalk.withContext(function($ctx1) {
584
+ $1=_st(nodes)._isEmpty();
585
+ if(smalltalk.assert($1)){
586
+ _st(self)._continue_value_(aBlock,aCollection);
587
+ } else {
588
+ _st(self)._interpret_continue_(_st(nodes)._first(),(function(value){
589
+ return smalltalk.withContext(function($ctx2) {
590
+ }, function($ctx2) {$ctx2.fillBlock({value:value},$ctx1)})}));
591
+ };
592
+ return self}, function($ctx1) {$ctx1.fill(self,"interpretAll:continue:result:",{nodes:nodes,aBlock:aBlock,aCollection:aCollection}, smalltalk.ASTInterpreter)})}
593
+ }),
594
+ smalltalk.ASTInterpreter);
595
+
596
+ smalltalk.addMethod(
597
+ "_interpretAssignmentNode_continue_",
598
+ smalltalk.method({
599
+ selector: "interpretAssignmentNode:continue:",
600
+ fn: function (aNode,aBlock){
601
+ var self=this;
602
+ return smalltalk.withContext(function($ctx1) {
603
+ return smalltalk.withContext(function($ctx2) {
604
+ }, function($ctx2) {$ctx2.fillBlock({value:value},$ctx1)})}));
605
+ return self}, function($ctx1) {$ctx1.fill(self,"interpretAssignmentNode:continue:",{aNode:aNode,aBlock:aBlock}, smalltalk.ASTInterpreter)})}
606
+ }),
607
+ smalltalk.ASTInterpreter);
608
+
609
+ smalltalk.addMethod(
610
+ "_interpretBlockNode_continue_",
611
+ smalltalk.method({
612
+ selector: "interpretBlockNode:continue:",
613
+ fn: function (aNode,aBlock){
614
+ var self=this;
615
+ return smalltalk.withContext(function($ctx1) {
616
+ _st(self)._continue_value_(aBlock,(function(){
617
+ return smalltalk.withContext(function($ctx2) {
618
+ _st($1)._interpret_(_st(_st(aNode)._nodes())._first());
619
+ $2=_st($1)._result();
620
+ return $2;
621
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
622
+ return self}, function($ctx1) {$ctx1.fill(self,"interpretBlockNode:continue:",{aNode:aNode,aBlock:aBlock}, smalltalk.ASTInterpreter)})}
623
+ }),
624
+ smalltalk.ASTInterpreter);
625
+
626
+ smalltalk.addMethod(
627
+ "_interpretBlockSequenceNode_continue_",
628
+ smalltalk.method({
629
+ selector: "interpretBlockSequenceNode:continue:",
630
+ fn: function (aNode,aBlock){
631
+ var self=this;
632
+ return smalltalk.withContext(function($ctx1) {
633
+ return self}, function($ctx1) {$ctx1.fill(self,"interpretBlockSequenceNode:continue:",{aNode:aNode,aBlock:aBlock}, smalltalk.ASTInterpreter)})}
634
+ }),
635
+ smalltalk.ASTInterpreter);
636
+
637
+ smalltalk.addMethod(
638
+ "_interpretCascadeNode_continue_",
639
+ smalltalk.method({
640
+ selector: "interpretCascadeNode:continue:",
641
+ fn: function (aNode,aBlock){
642
+ var self=this;
643
+ return smalltalk.withContext(function($ctx1) {
644
+ return smalltalk.withContext(function($ctx2) {
645
+ return smalltalk.withContext(function($ctx3) {
646
+ }, function($ctx3) {$ctx3.fillBlock({each:each},$ctx1)})}));
647
+ return _st(self)._interpretAll_continue_(_st(_st(aNode)._nodes())._allButLast(),(function(){
648
+ return smalltalk.withContext(function($ctx3) {
649
+ return smalltalk.withContext(function($ctx4) {
650
+ }, function($ctx4) {$ctx4.fillBlock({val:val},$ctx1)})}));
651
+ }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
652
+ }, function($ctx2) {$ctx2.fillBlock({receiver:receiver},$ctx1)})}));
653
+ return self}, function($ctx1) {$ctx1.fill(self,"interpretCascadeNode:continue:",{aNode:aNode,aBlock:aBlock}, smalltalk.ASTInterpreter)})}
654
+ }),
655
+ smalltalk.ASTInterpreter);
656
+
657
+ smalltalk.addMethod(
658
+ "_interpretClassReferenceNode_continue_",
659
+ smalltalk.method({
660
+ selector: "interpretClassReferenceNode:continue:",
661
+ fn: function (aNode,aBlock){
662
+ var self=this;
663
+ return smalltalk.withContext(function($ctx1) {
664
+ return self}, function($ctx1) {$ctx1.fill(self,"interpretClassReferenceNode:continue:",{aNode:aNode,aBlock:aBlock}, smalltalk.ASTInterpreter)})}
665
+ }),
666
+ smalltalk.ASTInterpreter);
667
+
668
+ smalltalk.addMethod(
669
+ "_interpretDynamicArrayNode_continue_",
670
+ smalltalk.method({
671
+ selector: "interpretDynamicArrayNode:continue:",
672
+ fn: function (aNode,aBlock){
673
+ var self=this;
674
+ return smalltalk.withContext(function($ctx1) {
675
+ return smalltalk.withContext(function($ctx2) {
676
+ }, function($ctx2) {$ctx2.fillBlock({array:array},$ctx1)})}));
677
+ return self}, function($ctx1) {$ctx1.fill(self,"interpretDynamicArrayNode:continue:",{aNode:aNode,aBlock:aBlock}, smalltalk.ASTInterpreter)})}
678
+ }),
679
+ smalltalk.ASTInterpreter);
680
+
681
+ smalltalk.addMethod(
682
+ "_interpretDynamicDictionaryNode_continue_",
683
+ smalltalk.method({
684
+ selector: "interpretDynamicDictionaryNode:continue:",
685
+ fn: function (aNode,aBlock){
686
+ var self=this;
687
+ return smalltalk.withContext(function($ctx1) {
688
+ var hashedCollection;
689
+ return smalltalk.withContext(function($ctx2) {
690
+ hashedCollection;
691
+ _st(array)._do_((function(each){
692
+ return smalltalk.withContext(function($ctx3) {
693
+ }, function($ctx3) {$ctx3.fillBlock({each:each},$ctx1)})}));
694
+ return _st(self)._continue_value_(aBlock,hashedCollection);
695
+ }, function($ctx2) {$ctx2.fillBlock({array:array,hashedCollection:hashedCollection},$ctx1)})}));
696
+ return self}, function($ctx1) {$ctx1.fill(self,"interpretDynamicDictionaryNode:continue:",{aNode:aNode,aBlock:aBlock}, smalltalk.ASTInterpreter)})}
697
+ }),
698
+ smalltalk.ASTInterpreter);
699
+
700
+ smalltalk.addMethod(
701
+ "_interpretJSStatementNode_continue_",
702
+ smalltalk.method({
703
+ selector: "interpretJSStatementNode:continue:",
704
+ fn: function (aNode,aBlock){
705
+ var self=this;
706
+ return smalltalk.withContext(function($ctx1) {
707
+ _st(self)._continue_value_(aBlock,_st(self)._eval_(_st(aNode)._source()));
708
+ return self}, function($ctx1) {$ctx1.fill(self,"interpretJSStatementNode:continue:",{aNode:aNode,aBlock:aBlock}, smalltalk.ASTInterpreter)})}
709
+ }),
710
+ smalltalk.ASTInterpreter);
711
+
712
+ smalltalk.addMethod(
713
+ "_interpretMethodNode_continue_",
714
+ smalltalk.method({
715
+ selector: "interpretMethodNode:continue:",
716
+ fn: function (aNode,aBlock){
717
+ var self=this;
718
+ return smalltalk.withContext(function($ctx1) {
719
+ return smalltalk.withContext(function($ctx2) {
720
+ }, function($ctx2) {$ctx2.fillBlock({array:array},$ctx1)})}));
721
+ return self}, function($ctx1) {$ctx1.fill(self,"interpretMethodNode:continue:",{aNode:aNode,aBlock:aBlock}, smalltalk.ASTInterpreter)})}
722
+ }),
723
+ smalltalk.ASTInterpreter);
724
+
725
+ smalltalk.addMethod(
726
+ "_interpretNode_continue_",
727
+ smalltalk.method({
728
+ selector: "interpretNode:continue:",
729
+ fn: function (aNode,aBlock){
730
+ var self=this;
731
+ return smalltalk.withContext(function($ctx1) {
732
+ return self}, function($ctx1) {$ctx1.fill(self,"interpretNode:continue:",{aNode:aNode,aBlock:aBlock}, smalltalk.ASTInterpreter)})}
733
+ }),
734
+ smalltalk.ASTInterpreter);
735
+
736
+ smalltalk.addMethod(
737
+ "_interpretReturnNode_continue_",
738
+ smalltalk.method({
739
+ selector: "interpretReturnNode:continue:",
740
+ fn: function (aNode,aBlock){
741
+ var self=this;
742
+ return smalltalk.withContext(function($ctx1) {
743
+ return smalltalk.withContext(function($ctx2) {
744
+ self["@shouldReturn"];
745
+ return _st(self)._continue_value_(aBlock,value);
746
+ }, function($ctx2) {$ctx2.fillBlock({value:value},$ctx1)})}));
747
+ return self}, function($ctx1) {$ctx1.fill(self,"interpretReturnNode:continue:",{aNode:aNode,aBlock:aBlock}, smalltalk.ASTInterpreter)})}
748
+ }),
749
+ smalltalk.ASTInterpreter);
750
+
751
+ smalltalk.addMethod(
752
+ "_interpretSendNode_continue_",
753
+ smalltalk.method({
754
+ selector: "interpretSendNode:continue:",
755
+ fn: function (aNode,aBlock){
756
+ var self=this;
757
+ return smalltalk.withContext(function($ctx1) {
758
+ return smalltalk.withContext(function($ctx2) {
759
+ return smalltalk.withContext(function($ctx3) {
760
+ return smalltalk.withContext(function($ctx4) {
761
+ return _st(self)._continue_value_(aBlock,_st(message)._sendTo_(receiver));
762
+ }, function($ctx4) {$ctx4.fillBlock({message:message},$ctx1)})}));
763
+ }, function($ctx3) {$ctx3.fillBlock({args:args},$ctx1)})}));
764
+ }, function($ctx2) {$ctx2.fillBlock({receiver:receiver},$ctx1)})}));
765
+ return self}, function($ctx1) {$ctx1.fill(self,"interpretSendNode:continue:",{aNode:aNode,aBlock:aBlock}, smalltalk.ASTInterpreter)})}
766
+ }),
767
+ smalltalk.ASTInterpreter);
768
+
769
+ smalltalk.addMethod(
770
+ "_interpretSequenceNode_continue_",
771
+ smalltalk.method({
772
+ selector: "interpretSequenceNode:continue:",
773
+ fn: function (aNode,aBlock){
774
+ var self=this;
775
+ return smalltalk.withContext(function($ctx1) {
776
+ return smalltalk.withContext(function($ctx2) {
777
+ }, function($ctx2) {$ctx2.fillBlock({array:array},$ctx1)})}));
778
+ return self}, function($ctx1) {$ctx1.fill(self,"interpretSequenceNode:continue:",{aNode:aNode,aBlock:aBlock}, smalltalk.ASTInterpreter)})}
779
+ }),
780
+ smalltalk.ASTInterpreter);
781
+
782
+ smalltalk.addMethod(
783
+ "_interpretValueNode_continue_",
784
+ smalltalk.method({
785
+ selector: "interpretValueNode:continue:",
786
+ fn: function (aNode,aBlock){
787
+ var self=this;
788
+ return smalltalk.withContext(function($ctx1) {
789
+ return self}, function($ctx1) {$ctx1.fill(self,"interpretValueNode:continue:",{aNode:aNode,aBlock:aBlock}, smalltalk.ASTInterpreter)})}
790
+ }),
791
+ smalltalk.ASTInterpreter);
792
+
793
+ smalltalk.addMethod(
794
+ "_interpretVariableNode_continue_",
795
+ smalltalk.method({
796
+ selector: "interpretVariableNode:continue:",
797
+ fn: function (aNode,aBlock){
798
+ var self=this;
799
+ return smalltalk.withContext(function($ctx1) {
800
+ $1=self;
801
+ $2=aBlock;
802
+ $4=_st(_st(aNode)._binding())._isInstanceVar();
803
+ if(smalltalk.assert($4)){
804
+ $3=_st(_st(_st(self)._context())._receiver())._instVarAt_(_st(aNode)._value());
805
+ } else {
806
+ $3=_st(_st(self)._context())._localAt_(_st(aNode)._value());
807
+ };
808
+ _st($1)._continue_value_($2,$3);
809
+ return self}, function($ctx1) {$ctx1.fill(self,"interpretVariableNode:continue:",{aNode:aNode,aBlock:aBlock}, smalltalk.ASTInterpreter)})}
810
+ }),
811
+ smalltalk.ASTInterpreter);
812
+
813
+ smalltalk.addMethod(
814
+ "_messageFromSendNode_arguments_do_",
815
+ smalltalk.method({
816
+ selector: "messageFromSendNode:arguments:do:",
817
+ fn: function (aSendNode,aCollection,aBlock){
818
+ var self=this;
819
+ return smalltalk.withContext(function($ctx1) {
820
+ $1=_st((smalltalk.Message || Message))._new();
821
+ _st($1)._selector_(_st(aSendNode)._selector());
822
+ _st($1)._arguments_(aCollection);
823
+ $2=_st($1)._yourself();
824
+ _st(self)._continue_value_(aBlock,$2);
825
+ return self}, function($ctx1) {$ctx1.fill(self,"messageFromSendNode:arguments:do:",{aSendNode:aSendNode,aCollection:aCollection,aBlock:aBlock}, smalltalk.ASTInterpreter)})}
826
+ }),
827
+ smalltalk.ASTInterpreter);
828
+
829
+ smalltalk.addMethod(
830
+ "_result",
831
+ smalltalk.method({
832
+ selector: "result",
833
+ fn: function (){
834
+ var self=this;
835
+ return smalltalk.withContext(function($ctx1) {
836
+ $1=self["@result"];
837
+ return $1;
838
+ }, function($ctx1) {$ctx1.fill(self,"result",{}, smalltalk.ASTInterpreter)})}
839
+ }),
840
+ smalltalk.ASTInterpreter);
841
+
842
+ smalltalk.addMethod(
843
+ "_shouldReturn",
844
+ smalltalk.method({
845
+ selector: "shouldReturn",
846
+ fn: function (){
847
+ var self=this;
848
+ return smalltalk.withContext(function($ctx1) {
849
+ $2=self["@shouldReturn"];
850
+ if(($receiver = $2) == nil || $receiver == undefined){
851
+ $1=false;
852
+ } else {
853
+ $1=$2;
854
+ };
855
+ return $1;
856
+ }, function($ctx1) {$ctx1.fill(self,"shouldReturn",{}, smalltalk.ASTInterpreter)})}
857
+ }),
858
+ smalltalk.ASTInterpreter);
859
+
860
+
861
+
862
+ smalltalk.addClass('ASTSteppingInterpreter', smalltalk.ASTInterpreter, ['continuation', 'nextNode'], 'Compiler-Interpreter');
863
+ smalltalk.addMethod(
864
+ "_atEnd",
865
+ smalltalk.method({
866
+ selector: "atEnd",
867
+ fn: function (){
868
+ var self=this;
869
+ return smalltalk.withContext(function($ctx1) {
870
+ $1=_st(_st(self)._shouldReturn())._or_((function(){
871
+ return smalltalk.withContext(function($ctx2) {
872
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
873
+ return $1;
874
+ }, function($ctx1) {$ctx1.fill(self,"atEnd",{}, smalltalk.ASTSteppingInterpreter)})}
875
+ }),
876
+ smalltalk.ASTSteppingInterpreter);
877
+
878
+ smalltalk.addMethod(
879
+ "_initialize",
880
+ smalltalk.method({
881
+ selector: "initialize",
882
+ fn: function (){
883
+ var self=this;
884
+ return smalltalk.withContext(function($ctx1) {
885
+ self["@continuation"]=(function(){
886
+ return smalltalk.withContext(function($ctx2) {
887
+ return self}, function($ctx1) {$ctx1.fill(self,"initialize",{}, smalltalk.ASTSteppingInterpreter)})}
888
+ }),
889
+ smalltalk.ASTSteppingInterpreter);
890
+
891
+ smalltalk.addMethod(
892
+ "_interpret_continue_",
893
+ smalltalk.method({
894
+ selector: "interpret:continue:",
895
+ fn: function (aNode,aBlock){
896
+ var self=this;
897
+ return smalltalk.withContext(function($ctx1) {
898
+ self["@continuation"]=(function(){
899
+ return smalltalk.withContext(function($ctx2) {
900
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
901
+ return self}, function($ctx1) {$ctx1.fill(self,"interpret:continue:",{aNode:aNode,aBlock:aBlock}, smalltalk.ASTSteppingInterpreter)})}
902
+ }),
903
+ smalltalk.ASTSteppingInterpreter);
904
+
905
+ smalltalk.addMethod(
906
+ "_nextNode",
907
+ smalltalk.method({
908
+ selector: "nextNode",
909
+ fn: function (){
910
+ var self=this;
911
+ return smalltalk.withContext(function($ctx1) {
912
+ $1=self["@nextNode"];
913
+ return $1;
914
+ }, function($ctx1) {$ctx1.fill(self,"nextNode",{}, smalltalk.ASTSteppingInterpreter)})}
915
+ }),
916
+ smalltalk.ASTSteppingInterpreter);
917
+
918
+ smalltalk.addMethod(
919
+ "_step",
920
+ smalltalk.method({
921
+ selector: "step",
922
+ fn: function (){
923
+ var self=this;
924
+ return smalltalk.withContext(function($ctx1) {
925
+ return self}, function($ctx1) {$ctx1.fill(self,"step",{}, smalltalk.ASTSteppingInterpreter)})}
926
+ }),
927
+ smalltalk.ASTSteppingInterpreter);
928
+
929
+
930
+
931
+ smalltalk.addMethod(
932
+ "_interpreter_continue_",
933
+ smalltalk.method({
934
+ selector: "interpreter:continue:",
935
+ fn: function (anInterpreter,aBlock){
936
+ var self=this;
937
+ return smalltalk.withContext(function($ctx1) {
938
+ $1=_st(anInterpreter)._interpretNode_continue_(self,aBlock);
939
+ return $1;
940
+ }, function($ctx1) {$ctx1.fill(self,"interpreter:continue:",{anInterpreter:anInterpreter,aBlock:aBlock}, smalltalk.Node)})}
941
+ }),
942
+ smalltalk.Node);
943
+
944
+ smalltalk.addMethod(
945
+ "_isSteppingNode",
946
+ smalltalk.method({
947
+ selector: "isSteppingNode",
948
+ fn: function (){
949
+ var self=this;
950
+ return smalltalk.withContext(function($ctx1) {
951
+ }, function($ctx1) {$ctx1.fill(self,"isSteppingNode",{}, smalltalk.Node)})}
952
+ }),
953
+ smalltalk.Node);
954
+
955
+ smalltalk.addMethod(
956
+ "_interpreter_continue_",
957
+ smalltalk.method({
958
+ selector: "interpreter:continue:",
959
+ fn: function (anInterpreter,aBlock){
960
+ var self=this;
961
+ return smalltalk.withContext(function($ctx1) {
962
+ $1=_st(anInterpreter)._interpretAssignmentNode_continue_(self,aBlock);
963
+ return $1;
964
+ }, function($ctx1) {$ctx1.fill(self,"interpreter:continue:",{anInterpreter:anInterpreter,aBlock:aBlock}, smalltalk.AssignmentNode)})}
965
+ }),
966
+ smalltalk.AssignmentNode);
967
+
968
+ smalltalk.addMethod(
969
+ "_isSteppingNode",
970
+ smalltalk.method({
971
+ selector: "isSteppingNode",
972
+ fn: function (){
973
+ var self=this;
974
+ return smalltalk.withContext(function($ctx1) {
975
+ }, function($ctx1) {$ctx1.fill(self,"isSteppingNode",{}, smalltalk.AssignmentNode)})}
976
+ }),
977
+ smalltalk.AssignmentNode);
978
+
979
+ smalltalk.addMethod(
980
+ "_interpreter_continue_",
981
+ smalltalk.method({
982
+ selector: "interpreter:continue:",
983
+ fn: function (anInterpreter,aBlock){
984
+ var self=this;
985
+ return smalltalk.withContext(function($ctx1) {
986
+ $1=_st(anInterpreter)._interpretBlockNode_continue_(self,aBlock);
987
+ return $1;
988
+ }, function($ctx1) {$ctx1.fill(self,"interpreter:continue:",{anInterpreter:anInterpreter,aBlock:aBlock}, smalltalk.BlockNode)})}
989
+ }),
990
+ smalltalk.BlockNode);
991
+
992
+ smalltalk.addMethod(
993
+ "_isSteppingNode",
994
+ smalltalk.method({
995
+ selector: "isSteppingNode",
996
+ fn: function (){
997
+ var self=this;
998
+ return smalltalk.withContext(function($ctx1) {
999
+ }, function($ctx1) {$ctx1.fill(self,"isSteppingNode",{}, smalltalk.BlockNode)})}
1000
+ }),
1001
+ smalltalk.BlockNode);
1002
+
1003
+ smalltalk.addMethod(
1004
+ "_interpreter_continue_",
1005
+ smalltalk.method({
1006
+ selector: "interpreter:continue:",
1007
+ fn: function (anInterpreter,aBlock){
1008
+ var self=this;
1009
+ return smalltalk.withContext(function($ctx1) {
1010
+ $1=_st(anInterpreter)._interpretCascadeNode_continue_(self,aBlock);
1011
+ return $1;
1012
+ }, function($ctx1) {$ctx1.fill(self,"interpreter:continue:",{anInterpreter:anInterpreter,aBlock:aBlock}, smalltalk.CascadeNode)})}
1013
+ }),
1014
+ smalltalk.CascadeNode);
1015
+
1016
+ smalltalk.addMethod(
1017
+ "_interpreter_continue_",
1018
+ smalltalk.method({
1019
+ selector: "interpreter:continue:",
1020
+ fn: function (anInterpreter,aBlock){
1021
+ var self=this;
1022
+ return smalltalk.withContext(function($ctx1) {
1023
+ $1=_st(anInterpreter)._interpretDynamicArrayNode_continue_(self,aBlock);
1024
+ return $1;
1025
+ }, function($ctx1) {$ctx1.fill(self,"interpreter:continue:",{anInterpreter:anInterpreter,aBlock:aBlock}, smalltalk.DynamicArrayNode)})}
1026
+ }),
1027
+ smalltalk.DynamicArrayNode);
1028
+
1029
+ smalltalk.addMethod(
1030
+ "_isSteppingNode",
1031
+ smalltalk.method({
1032
+ selector: "isSteppingNode",
1033
+ fn: function (){
1034
+ var self=this;
1035
+ return smalltalk.withContext(function($ctx1) {
1036
+ }, function($ctx1) {$ctx1.fill(self,"isSteppingNode",{}, smalltalk.DynamicArrayNode)})}
1037
+ }),
1038
+ smalltalk.DynamicArrayNode);
1039
+
1040
+ smalltalk.addMethod(
1041
+ "_interpreter_continue_",
1042
+ smalltalk.method({
1043
+ selector: "interpreter:continue:",
1044
+ fn: function (anInterpreter,aBlock){
1045
+ var self=this;
1046
+ return smalltalk.withContext(function($ctx1) {
1047
+ $1=_st(anInterpreter)._interpretDynamicDictionaryNode_continue_(self,aBlock);
1048
+ return $1;
1049
+ }, function($ctx1) {$ctx1.fill(self,"interpreter:continue:",{anInterpreter:anInterpreter,aBlock:aBlock}, smalltalk.DynamicDictionaryNode)})}
1050
+ }),
1051
+ smalltalk.DynamicDictionaryNode);
1052
+
1053
+ smalltalk.addMethod(
1054
+ "_isSteppingNode",
1055
+ smalltalk.method({
1056
+ selector: "isSteppingNode",
1057
+ fn: function (){
1058
+ var self=this;
1059
+ return smalltalk.withContext(function($ctx1) {
1060
+ }, function($ctx1) {$ctx1.fill(self,"isSteppingNode",{}, smalltalk.DynamicDictionaryNode)})}
1061
+ }),
1062
+ smalltalk.DynamicDictionaryNode);
1063
+
1064
+ smalltalk.addMethod(
1065
+ "_interpreter_continue_",
1066
+ smalltalk.method({
1067
+ selector: "interpreter:continue:",
1068
+ fn: function (anInterpreter,aBlock){
1069
+ var self=this;
1070
+ return smalltalk.withContext(function($ctx1) {
1071
+ $1=_st(anInterpreter)._interpretJSStatementNode_continue_(self,aBlock);
1072
+ return $1;
1073
+ }, function($ctx1) {$ctx1.fill(self,"interpreter:continue:",{anInterpreter:anInterpreter,aBlock:aBlock}, smalltalk.JSStatementNode)})}
1074
+ }),
1075
+ smalltalk.JSStatementNode);
1076
+
1077
+ smalltalk.addMethod(
1078
+ "_isSteppingNode",
1079
+ smalltalk.method({
1080
+ selector: "isSteppingNode",
1081
+ fn: function (){
1082
+ var self=this;
1083
+ return smalltalk.withContext(function($ctx1) {
1084
+ }, function($ctx1) {$ctx1.fill(self,"isSteppingNode",{}, smalltalk.JSStatementNode)})}
1085
+ }),
1086
+ smalltalk.JSStatementNode);
1087
+
1088
+ smalltalk.addMethod(
1089
+ "_interpreter_continue_",
1090
+ smalltalk.method({
1091
+ selector: "interpreter:continue:",
1092
+ fn: function (anInterpreter,aBlock){
1093
+ var self=this;
1094
+ return smalltalk.withContext(function($ctx1) {
1095
+ $1=_st(anInterpreter)._interpretMethodNode_continue_(self,aBlock);
1096
+ return $1;
1097
+ }, function($ctx1) {$ctx1.fill(self,"interpreter:continue:",{anInterpreter:anInterpreter,aBlock:aBlock}, smalltalk.MethodNode)})}
1098
+ }),
1099
+ smalltalk.MethodNode);
1100
+
1101
+ smalltalk.addMethod(
1102
+ "_interpreter_continue_",
1103
+ smalltalk.method({
1104
+ selector: "interpreter:continue:",
1105
+ fn: function (anInterpreter,aBlock){
1106
+ var self=this;
1107
+ return smalltalk.withContext(function($ctx1) {
1108
+ $1=_st(anInterpreter)._interpretReturnNode_continue_(self,aBlock);
1109
+ return $1;
1110
+ }, function($ctx1) {$ctx1.fill(self,"interpreter:continue:",{anInterpreter:anInterpreter,aBlock:aBlock}, smalltalk.ReturnNode)})}
1111
+ }),
1112
+ smalltalk.ReturnNode);
1113
+
1114
+ smalltalk.addMethod(
1115
+ "_interpreter_continue_",
1116
+ smalltalk.method({
1117
+ selector: "interpreter:continue:",
1118
+ fn: function (anInterpreter,aBlock){
1119
+ var self=this;
1120
+ return smalltalk.withContext(function($ctx1) {
1121
+ $1=_st(anInterpreter)._interpretSendNode_continue_(self,aBlock);
1122
+ return $1;
1123
+ }, function($ctx1) {$ctx1.fill(self,"interpreter:continue:",{anInterpreter:anInterpreter,aBlock:aBlock}, smalltalk.SendNode)})}
1124
+ }),
1125
+ smalltalk.SendNode);
1126
+
1127
+ smalltalk.addMethod(
1128
+ "_isSteppingNode",
1129
+ smalltalk.method({
1130
+ selector: "isSteppingNode",
1131
+ fn: function (){
1132
+ var self=this;
1133
+ return smalltalk.withContext(function($ctx1) {
1134
+ }, function($ctx1) {$ctx1.fill(self,"isSteppingNode",{}, smalltalk.SendNode)})}
1135
+ }),
1136
+ smalltalk.SendNode);
1137
+
1138
+ smalltalk.addMethod(
1139
+ "_interpreter_continue_",
1140
+ smalltalk.method({
1141
+ selector: "interpreter:continue:",
1142
+ fn: function (anInterpreter,aBlock){
1143
+ var self=this;
1144
+ return smalltalk.withContext(function($ctx1) {
1145
+ $1=_st(anInterpreter)._interpretSequenceNode_continue_(self,aBlock);
1146
+ return $1;
1147
+ }, function($ctx1) {$ctx1.fill(self,"interpreter:continue:",{anInterpreter:anInterpreter,aBlock:aBlock}, smalltalk.SequenceNode)})}
1148
+ }),
1149
+ smalltalk.SequenceNode);
1150
+
1151
+ smalltalk.addMethod(
1152
+ "_interpreter_continue_",
1153
+ smalltalk.method({
1154
+ selector: "interpreter:continue:",
1155
+ fn: function (anInterpreter,aBlock){
1156
+ var self=this;
1157
+ return smalltalk.withContext(function($ctx1) {
1158
+ $1=_st(anInterpreter)._interpretBlockSequenceNode_continue_(self,aBlock);
1159
+ return $1;
1160
+ }, function($ctx1) {$ctx1.fill(self,"interpreter:continue:",{anInterpreter:anInterpreter,aBlock:aBlock}, smalltalk.BlockSequenceNode)})}
1161
+ }),
1162
+ smalltalk.BlockSequenceNode);
1163
+
1164
+ smalltalk.addMethod(
1165
+ "_interpreter_continue_",
1166
+ smalltalk.method({
1167
+ selector: "interpreter:continue:",
1168
+ fn: function (anInterpreter,aBlock){
1169
+ var self=this;
1170
+ return smalltalk.withContext(function($ctx1) {
1171
+ $1=_st(anInterpreter)._interpretValueNode_continue_(self,aBlock);
1172
+ return $1;
1173
+ }, function($ctx1) {$ctx1.fill(self,"interpreter:continue:",{anInterpreter:anInterpreter,aBlock:aBlock}, smalltalk.ValueNode)})}
1174
+ }),
1175
+ smalltalk.ValueNode);
1176
+
1177
+ smalltalk.addMethod(
1178
+ "_interpreter_continue_",
1179
+ smalltalk.method({
1180
+ selector: "interpreter:continue:",
1181
+ fn: function (anInterpreter,aBlock){
1182
+ var self=this;
1183
+ return smalltalk.withContext(function($ctx1) {
1184
+ $1=_st(anInterpreter)._interpretVariableNode_continue_(self,aBlock);
1185
+ return $1;
1186
+ }, function($ctx1) {$ctx1.fill(self,"interpreter:continue:",{anInterpreter:anInterpreter,aBlock:aBlock}, smalltalk.VariableNode)})}
1187
+ }),
1188
+ smalltalk.VariableNode);
1189
+
1190
+ smalltalk.addMethod(
1191
+ "_interpreter_continue_",
1192
+ smalltalk.method({
1193
+ selector: "interpreter:continue:",
1194
+ fn: function (anInterpreter,aBlock){
1195
+ var self=this;
1196
+ return smalltalk.withContext(function($ctx1) {
1197
+ $1=_st(anInterpreter)._interpretClassReferenceNode_continue_(self,aBlock);
1198
+ return $1;
1199
+ }, function($ctx1) {$ctx1.fill(self,"interpreter:continue:",{anInterpreter:anInterpreter,aBlock:aBlock}, smalltalk.ClassReferenceNode)})}
1200
+ }),
1201
+ smalltalk.ClassReferenceNode);
1202
+