resin 0.3.1 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -18,10 +18,10 @@ smalltalk.method({
18
18
  selector: "messageText",
19
19
  fn: function (){
20
20
  var self=this;
21
- var $1;
22
- $1=smalltalk.send(" Invalid assignment to variable: ","__comma",[smalltalk.send(self,"_variableName",[])]);
21
+ return smalltalk.withContext(function($ctx1) {
22
+ $1=_st(" Invalid assignment to variable: ").__comma(_st(self)._variableName());
23
23
  return $1;
24
- }
24
+ }, function($ctx1) {$ctx1.fill(self,"messageText",{}, smalltalk.InvalidAssignmentError)})}
25
25
  }),
26
26
  smalltalk.InvalidAssignmentError);
27
27
 
@@ -31,8 +31,10 @@ smalltalk.method({
31
31
  selector: "variableName",
32
32
  fn: function (){
33
33
  var self=this;
34
- return self["@variableName"];
35
- }
34
+ return smalltalk.withContext(function($ctx1) {
35
+ $1=self["@variableName"];
36
+ return $1;
37
+ }, function($ctx1) {$ctx1.fill(self,"variableName",{}, smalltalk.InvalidAssignmentError)})}
36
38
  }),
37
39
  smalltalk.InvalidAssignmentError);
38
40
 
@@ -42,8 +44,8 @@ smalltalk.method({
42
44
  selector: "variableName:",
43
45
  fn: function (aString){
44
46
  var self=this;
45
- self["@variableName"]=aString;
46
- return self}
47
+ return smalltalk.withContext(function($ctx1) {
48
+ return self}, function($ctx1) {$ctx1.fill(self,"variableName:",{aString:aString}, smalltalk.InvalidAssignmentError)})}
47
49
  }),
48
50
  smalltalk.InvalidAssignmentError);
49
51
 
@@ -56,10 +58,10 @@ smalltalk.method({
56
58
  selector: "messageText",
57
59
  fn: function (){
58
60
  var self=this;
59
- var $1;
60
- $1=smalltalk.send(smalltalk.send("Variable shadowing error: ","__comma",[smalltalk.send(self,"_variableName",[])]),"__comma",[" is already defined"]);
61
+ return smalltalk.withContext(function($ctx1) {
62
+ $1=_st(_st("Variable shadowing error: ").__comma(_st(self)._variableName())).__comma(" is already defined");
61
63
  return $1;
62
- }
64
+ }, function($ctx1) {$ctx1.fill(self,"messageText",{}, smalltalk.ShadowingVariableError)})}
63
65
  }),
64
66
  smalltalk.ShadowingVariableError);
65
67
 
@@ -69,8 +71,10 @@ smalltalk.method({
69
71
  selector: "variableName",
70
72
  fn: function (){
71
73
  var self=this;
72
- return self["@variableName"];
73
- }
74
+ return smalltalk.withContext(function($ctx1) {
75
+ $1=self["@variableName"];
76
+ return $1;
77
+ }, function($ctx1) {$ctx1.fill(self,"variableName",{}, smalltalk.ShadowingVariableError)})}
74
78
  }),
75
79
  smalltalk.ShadowingVariableError);
76
80
 
@@ -80,22 +84,37 @@ smalltalk.method({
80
84
  selector: "variableName:",
81
85
  fn: function (aString){
82
86
  var self=this;
83
- self["@variableName"]=aString;
84
- return self}
87
+ return smalltalk.withContext(function($ctx1) {
88
+ return self}, function($ctx1) {$ctx1.fill(self,"variableName:",{aString:aString}, smalltalk.ShadowingVariableError)})}
85
89
  }),
86
90
  smalltalk.ShadowingVariableError);
87
91
 
88
92
 
89
93
 
90
94
  smalltalk.addClass('UnknownVariableError', smalltalk.SemanticError, ['variableName'], 'Compiler-Exceptions');
95
+ smalltalk.addMethod(
96
+ "_messageText",
97
+ smalltalk.method({
98
+ selector: "messageText",
99
+ fn: function (){
100
+ var self=this;
101
+ return smalltalk.withContext(function($ctx1) {
102
+ $1=_st(_st("Unknown Variable error: ").__comma(_st(self)._variableName())).__comma(" is not defined");
103
+ return $1;
104
+ }, function($ctx1) {$ctx1.fill(self,"messageText",{}, smalltalk.UnknownVariableError)})}
105
+ }),
106
+ smalltalk.UnknownVariableError);
107
+
91
108
  smalltalk.addMethod(
92
109
  "_variableName",
93
110
  smalltalk.method({
94
111
  selector: "variableName",
95
112
  fn: function (){
96
113
  var self=this;
97
- return self["@variableName"];
98
- }
114
+ return smalltalk.withContext(function($ctx1) {
115
+ $1=self["@variableName"];
116
+ return $1;
117
+ }, function($ctx1) {$ctx1.fill(self,"variableName",{}, smalltalk.UnknownVariableError)})}
99
118
  }),
100
119
  smalltalk.UnknownVariableError);
101
120
 
@@ -105,8 +124,8 @@ smalltalk.method({
105
124
  selector: "variableName:",
106
125
  fn: function (aString){
107
126
  var self=this;
108
- self["@variableName"]=aString;
109
- return self}
127
+ return smalltalk.withContext(function($ctx1) {
128
+ return self}, function($ctx1) {$ctx1.fill(self,"variableName:",{aString:aString}, smalltalk.UnknownVariableError)})}
110
129
  }),
111
130
  smalltalk.UnknownVariableError);
112
131
 
@@ -24,10 +24,10 @@ selector: "messageText",
24
24
  category: 'accessing',
25
25
  fn: function (){
26
26
  var self=this;
27
- var $1;
28
- $1=smalltalk.send(" Invalid assignment to variable: ","__comma",[smalltalk.send(self,"_variableName",[])]);
27
+ return smalltalk.withContext(function($ctx1) {
28
+ $1=_st(" Invalid assignment to variable: ").__comma(_st(self)._variableName());
29
29
  return $1;
30
- },
30
+ }, function($ctx1) {$ctx1.fill(self,"messageText",{}, smalltalk.InvalidAssignmentError)})},
31
31
  args: [],
32
32
  source: "messageText\x0a\x09^ ' Invalid assignment to variable: ', self variableName",
33
33
  messageSends: [",", "variableName"],
@@ -42,8 +42,10 @@ selector: "variableName",
42
42
  category: 'accessing',
43
43
  fn: function (){
44
44
  var self=this;
45
- return self["@variableName"];
46
- },
45
+ return smalltalk.withContext(function($ctx1) {
46
+ $1=self["@variableName"];
47
+ return $1;
48
+ }, function($ctx1) {$ctx1.fill(self,"variableName",{}, smalltalk.InvalidAssignmentError)})},
47
49
  args: [],
48
50
  source: "variableName\x0a\x09^ variableName",
49
51
  messageSends: [],
@@ -58,8 +60,8 @@ selector: "variableName:",
58
60
  category: 'accessing',
59
61
  fn: function (aString){
60
62
  var self=this;
61
- self["@variableName"]=aString;
62
- return self},
63
+ return smalltalk.withContext(function($ctx1) {
64
+ return self}, function($ctx1) {$ctx1.fill(self,"variableName:",{aString:aString}, smalltalk.InvalidAssignmentError)})},
63
65
  args: ["aString"],
64
66
  source: "variableName: aString\x0a\x09variableName := aString",
65
67
  messageSends: [],
@@ -78,10 +80,10 @@ selector: "messageText",
78
80
  category: 'accessing',
79
81
  fn: function (){
80
82
  var self=this;
81
- var $1;
82
- $1=smalltalk.send(smalltalk.send("Variable shadowing error: ","__comma",[smalltalk.send(self,"_variableName",[])]),"__comma",[" is already defined"]);
83
+ return smalltalk.withContext(function($ctx1) {
84
+ $1=_st(_st("Variable shadowing error: ").__comma(_st(self)._variableName())).__comma(" is already defined");
83
85
  return $1;
84
- },
86
+ }, function($ctx1) {$ctx1.fill(self,"messageText",{}, smalltalk.ShadowingVariableError)})},
85
87
  args: [],
86
88
  source: "messageText\x0a\x09^ 'Variable shadowing error: ', self variableName, ' is already defined'",
87
89
  messageSends: [",", "variableName"],
@@ -96,8 +98,10 @@ selector: "variableName",
96
98
  category: 'accessing',
97
99
  fn: function (){
98
100
  var self=this;
99
- return self["@variableName"];
100
- },
101
+ return smalltalk.withContext(function($ctx1) {
102
+ $1=self["@variableName"];
103
+ return $1;
104
+ }, function($ctx1) {$ctx1.fill(self,"variableName",{}, smalltalk.ShadowingVariableError)})},
101
105
  args: [],
102
106
  source: "variableName\x0a\x09^ variableName",
103
107
  messageSends: [],
@@ -112,8 +116,8 @@ selector: "variableName:",
112
116
  category: 'accessing',
113
117
  fn: function (aString){
114
118
  var self=this;
115
- self["@variableName"]=aString;
116
- return self},
119
+ return smalltalk.withContext(function($ctx1) {
120
+ return self}, function($ctx1) {$ctx1.fill(self,"variableName:",{aString:aString}, smalltalk.ShadowingVariableError)})},
117
121
  args: ["aString"],
118
122
  source: "variableName: aString\x0a\x09variableName := aString",
119
123
  messageSends: [],
@@ -125,6 +129,24 @@ smalltalk.ShadowingVariableError);
125
129
 
126
130
  smalltalk.addClass('UnknownVariableError', smalltalk.SemanticError, ['variableName'], 'Compiler-Exceptions');
127
131
  smalltalk.UnknownVariableError.comment="I get signaled when a variable is not defined.\x0aThe default behavior is to allow it, as this is how Amber currently is able to seamlessly send messages to JavaScript objects."
132
+ smalltalk.addMethod(
133
+ "_messageText",
134
+ smalltalk.method({
135
+ selector: "messageText",
136
+ category: 'accessing',
137
+ fn: function (){
138
+ var self=this;
139
+ return smalltalk.withContext(function($ctx1) {
140
+ $1=_st(_st("Unknown Variable error: ").__comma(_st(self)._variableName())).__comma(" is not defined");
141
+ return $1;
142
+ }, function($ctx1) {$ctx1.fill(self,"messageText",{}, smalltalk.UnknownVariableError)})},
143
+ args: [],
144
+ source: "messageText\x0a\x09^ 'Unknown Variable error: ', self variableName, ' is not defined'",
145
+ messageSends: [",", "variableName"],
146
+ referencedClasses: []
147
+ }),
148
+ smalltalk.UnknownVariableError);
149
+
128
150
  smalltalk.addMethod(
129
151
  "_variableName",
130
152
  smalltalk.method({
@@ -132,8 +154,10 @@ selector: "variableName",
132
154
  category: 'accessing',
133
155
  fn: function (){
134
156
  var self=this;
135
- return self["@variableName"];
136
- },
157
+ return smalltalk.withContext(function($ctx1) {
158
+ $1=self["@variableName"];
159
+ return $1;
160
+ }, function($ctx1) {$ctx1.fill(self,"variableName",{}, smalltalk.UnknownVariableError)})},
137
161
  args: [],
138
162
  source: "variableName\x0a\x09^ variableName",
139
163
  messageSends: [],
@@ -148,8 +172,8 @@ selector: "variableName:",
148
172
  category: 'accessing',
149
173
  fn: function (aString){
150
174
  var self=this;
151
- self["@variableName"]=aString;
152
- return self},
175
+ return smalltalk.withContext(function($ctx1) {
176
+ return self}, function($ctx1) {$ctx1.fill(self,"variableName:",{aString:aString}, smalltalk.UnknownVariableError)})},
153
177
  args: ["aString"],
154
178
  source: "variableName: aString\x0a\x09variableName := aString",
155
179
  messageSends: [],
@@ -6,25 +6,63 @@ smalltalk.method({
6
6
  selector: "alias:",
7
7
  fn: function (aNode){
8
8
  var self=this;
9
- var $1,$2,$3,$4,$5,$6;
10
9
  var variable;
11
- $1=smalltalk.send(aNode,"_isValueNode",[]);
10
+ return smalltalk.withContext(function($ctx1) {
11
+ $1=_st(aNode)._isImmutable();
12
12
  if(smalltalk.assert($1)){
13
- $2=smalltalk.send(self,"_visit_",[aNode]);
13
+ $2=_st(self)._visit_(aNode);
14
14
  return $2;
15
15
  };
16
- $3=smalltalk.send((smalltalk.IRVariable || IRVariable),"_new",[]);
17
- smalltalk.send($3,"_variable_",[smalltalk.send(smalltalk.send((smalltalk.AliasVar || AliasVar),"_new",[]),"_name_",[smalltalk.send("$","__comma",[smalltalk.send(self,"_nextAlias",[])])])]);
18
- $4=smalltalk.send($3,"_yourself",[]);
16
+ $3=_st((smalltalk.IRVariable || IRVariable))._new();
17
+ _st($3)._variable_(_st(_st((smalltalk.AliasVar || AliasVar))._new())._name_(_st("$").__comma(_st(self)._nextAlias())));
18
+ $4=_st($3)._yourself();
19
19
  variable=$4;
20
- $5=smalltalk.send((smalltalk.IRAssignment || IRAssignment),"_new",[]);
21
- smalltalk.send($5,"_add_",[variable]);
22
- smalltalk.send($5,"_add_",[smalltalk.send(self,"_visit_",[aNode])]);
23
- $6=smalltalk.send($5,"_yourself",[]);
24
- smalltalk.send(smalltalk.send(self,"_sequence",[]),"_add_",[$6]);
25
- smalltalk.send(smalltalk.send(smalltalk.send(self,"_method",[]),"_internalVariables",[]),"_add_",[variable]);
26
- return variable;
27
- }
20
+ $5=_st((smalltalk.IRAssignment || IRAssignment))._new();
21
+ _st($5)._add_(variable);
22
+ _st($5)._add_(_st(self)._visit_(aNode));
23
+ $6=_st($5)._yourself();
24
+ _st(_st(self)._sequence())._add_($6);
25
+ _st(_st(_st(self)._method())._internalVariables())._add_(variable);
26
+ $7=variable;
27
+ return $7;
28
+ }, function($ctx1) {$ctx1.fill(self,"alias:",{aNode:aNode,variable:variable}, smalltalk.IRASTTranslator)})}
29
+ }),
30
+ smalltalk.IRASTTranslator);
31
+
32
+ smalltalk.addMethod(
33
+ "_aliasTemporally_",
34
+ smalltalk.method({
35
+ selector: "aliasTemporally:",
36
+ fn: function (aCollection){
37
+ var self=this;
38
+ var threshold,result;
39
+ return smalltalk.withContext(function($ctx1) {
40
+ threshold=(0);
41
+ $1=aCollection;
42
+ $2=(function(each,i){
43
+ return smalltalk.withContext(function($ctx2) {
44
+ if(smalltalk.assert($3)){
45
+ threshold=i;
46
+ return threshold;
47
+ };
48
+ }, function($ctx2) {$ctx2.fillBlock({each:each,i:i},$ctx1)})});
49
+ _st($1)._withIndexDo_($2);
50
+ result=_st((smalltalk.OrderedCollection || OrderedCollection))._new();
51
+ $4=aCollection;
52
+ $5=(function(each,i){
53
+ return smalltalk.withContext(function($ctx2) {
54
+ $8=_st(i).__lt_eq(threshold);
55
+ if(smalltalk.assert($8)){
56
+ $7=_st(self)._alias_(each);
57
+ } else {
58
+ $7=_st(self)._visit_(each);
59
+ };
60
+ return _st($6)._add_($7);
61
+ }, function($ctx2) {$ctx2.fillBlock({each:each,i:i},$ctx1)})});
62
+ _st($4)._withIndexDo_($5);
63
+ $9=result;
64
+ return $9;
65
+ }, function($ctx1) {$ctx1.fill(self,"aliasTemporally:",{aCollection:aCollection,threshold:threshold,result:result}, smalltalk.IRASTTranslator)})}
28
66
  }),
29
67
  smalltalk.IRASTTranslator);
30
68
 
@@ -34,8 +72,10 @@ smalltalk.method({
34
72
  selector: "method",
35
73
  fn: function (){
36
74
  var self=this;
37
- return self["@method"];
38
- }
75
+ return smalltalk.withContext(function($ctx1) {
76
+ $1=self["@method"];
77
+ return $1;
78
+ }, function($ctx1) {$ctx1.fill(self,"method",{}, smalltalk.IRASTTranslator)})}
39
79
  }),
40
80
  smalltalk.IRASTTranslator);
41
81
 
@@ -45,8 +85,8 @@ smalltalk.method({
45
85
  selector: "method:",
46
86
  fn: function (anIRMethod){
47
87
  var self=this;
48
- self["@method"]=anIRMethod;
49
- return self}
88
+ return smalltalk.withContext(function($ctx1) {
89
+ return self}, function($ctx1) {$ctx1.fill(self,"method:",{anIRMethod:anIRMethod}, smalltalk.IRASTTranslator)})}
50
90
  }),
51
91
  smalltalk.IRASTTranslator);
52
92
 
@@ -56,17 +96,18 @@ smalltalk.method({
56
96
  selector: "nextAlias",
57
97
  fn: function (){
58
98
  var self=this;
59
- var $1;
60
- if(($receiver = self["@nextAlias"]) == nil || $receiver == undefined){
99
+ return smalltalk.withContext(function($ctx1) {
100
+ $1=self["@nextAlias"];
101
+ if(($receiver = $1) == nil || $receiver == undefined){
61
102
  self["@nextAlias"]=(0);
62
103
  self["@nextAlias"];
63
104
  } else {
64
- self["@nextAlias"];
105
+ $1;
65
106
  };
66
- self["@nextAlias"]=smalltalk.send(self["@nextAlias"],"__plus",[(1)]);
67
- $1=smalltalk.send(self["@nextAlias"],"_asString",[]);
68
- return $1;
69
- }
107
+ self["@nextAlias"]=_st(self["@nextAlias"]).__plus((1));
108
+ $2=_st(self["@nextAlias"])._asString();
109
+ return $2;
110
+ }, function($ctx1) {$ctx1.fill(self,"nextAlias",{}, smalltalk.IRASTTranslator)})}
70
111
  }),
71
112
  smalltalk.IRASTTranslator);
72
113
 
@@ -76,8 +117,10 @@ smalltalk.method({
76
117
  selector: "sequence",
77
118
  fn: function (){
78
119
  var self=this;
79
- return self["@sequence"];
80
- }
120
+ return smalltalk.withContext(function($ctx1) {
121
+ $1=self["@sequence"];
122
+ return $1;
123
+ }, function($ctx1) {$ctx1.fill(self,"sequence",{}, smalltalk.IRASTTranslator)})}
81
124
  }),
82
125
  smalltalk.IRASTTranslator);
83
126
 
@@ -87,8 +130,8 @@ smalltalk.method({
87
130
  selector: "sequence:",
88
131
  fn: function (anIRSequence){
89
132
  var self=this;
90
- self["@sequence"]=anIRSequence;
91
- return self}
133
+ return smalltalk.withContext(function($ctx1) {
134
+ return self}, function($ctx1) {$ctx1.fill(self,"sequence:",{anIRSequence:anIRSequence}, smalltalk.IRASTTranslator)})}
92
135
  }),
93
136
  smalltalk.IRASTTranslator);
94
137
 
@@ -98,8 +141,10 @@ smalltalk.method({
98
141
  selector: "source",
99
142
  fn: function (){
100
143
  var self=this;
101
- return self["@source"];
102
- }
144
+ return smalltalk.withContext(function($ctx1) {
145
+ $1=self["@source"];
146
+ return $1;
147
+ }, function($ctx1) {$ctx1.fill(self,"source",{}, smalltalk.IRASTTranslator)})}
103
148
  }),
104
149
  smalltalk.IRASTTranslator);
105
150
 
@@ -109,8 +154,8 @@ smalltalk.method({
109
154
  selector: "source:",
110
155
  fn: function (aString){
111
156
  var self=this;
112
- self["@source"]=aString;
113
- return self}
157
+ return smalltalk.withContext(function($ctx1) {
158
+ return self}, function($ctx1) {$ctx1.fill(self,"source:",{aString:aString}, smalltalk.IRASTTranslator)})}
114
159
  }),
115
160
  smalltalk.IRASTTranslator);
116
161
 
@@ -120,8 +165,10 @@ smalltalk.method({
120
165
  selector: "theClass",
121
166
  fn: function (){
122
167
  var self=this;
123
- return self["@theClass"];
124
- }
168
+ return smalltalk.withContext(function($ctx1) {
169
+ $1=self["@theClass"];
170
+ return $1;
171
+ }, function($ctx1) {$ctx1.fill(self,"theClass",{}, smalltalk.IRASTTranslator)})}
125
172
  }),
126
173
  smalltalk.IRASTTranslator);
127
174
 
@@ -131,8 +178,8 @@ smalltalk.method({
131
178
  selector: "theClass:",
132
179
  fn: function (aClass){
133
180
  var self=this;
134
- self["@theClass"]=aClass;
135
- return self}
181
+ return smalltalk.withContext(function($ctx1) {
182
+ return self}, function($ctx1) {$ctx1.fill(self,"theClass:",{aClass:aClass}, smalltalk.IRASTTranslator)})}
136
183
  }),
137
184
  smalltalk.IRASTTranslator);
138
185
 
@@ -142,19 +189,18 @@ smalltalk.method({
142
189
  selector: "visitAssignmentNode:",
143
190
  fn: function (aNode){
144
191
  var self=this;
145
- var $1,$2;
146
- var left;
147
- var right;
148
- var assignment;
149
- right=smalltalk.send(self,"_visit_",[smalltalk.send(aNode,"_right",[])]);
150
- left=smalltalk.send(self,"_visit_",[smalltalk.send(aNode,"_left",[])]);
151
- $1=smalltalk.send((smalltalk.IRAssignment || IRAssignment),"_new",[]);
152
- smalltalk.send($1,"_add_",[left]);
153
- smalltalk.send($1,"_add_",[right]);
154
- $2=smalltalk.send($1,"_yourself",[]);
155
- smalltalk.send(smalltalk.send(self,"_sequence",[]),"_add_",[$2]);
156
- return left;
157
- }
192
+ var left,right,assignment;
193
+ return smalltalk.withContext(function($ctx1) {
194
+ right=_st(self)._visit_(_st(aNode)._right());
195
+ left=_st(self)._visit_(_st(aNode)._left());
196
+ $1=_st((smalltalk.IRAssignment || IRAssignment))._new();
197
+ _st($1)._add_(left);
198
+ _st($1)._add_(right);
199
+ $2=_st($1)._yourself();
200
+ _st(_st(self)._sequence())._add_($2);
201
+ $3=left;
202
+ return $3;
203
+ }, function($ctx1) {$ctx1.fill(self,"visitAssignmentNode:",{aNode:aNode,left:left,right:right,assignment:assignment}, smalltalk.IRASTTranslator)})}
158
204
  }),
159
205
  smalltalk.IRASTTranslator);
160
206
 
@@ -164,24 +210,26 @@ smalltalk.method({
164
210
  selector: "visitBlockNode:",
165
211
  fn: function (aNode){
166
212
  var self=this;
167
- var $1,$2,$3,$4;
168
213
  var closure;
169
- $1=smalltalk.send((smalltalk.IRClosure || IRClosure),"_new",[]);
170
- smalltalk.send($1,"_arguments_",[smalltalk.send(aNode,"_parameters",[])]);
171
- smalltalk.send($1,"_scope_",[smalltalk.send(aNode,"_scope",[])]);
172
- $2=smalltalk.send($1,"_yourself",[]);
214
+ return smalltalk.withContext(function($ctx1) {
215
+ $1=_st((smalltalk.IRClosure || IRClosure))._new();
216
+ _st($1)._arguments_(_st(aNode)._parameters());
217
+ _st($1)._scope_(_st(aNode)._scope());
218
+ $2=_st($1)._yourself();
173
219
  closure=$2;
174
- smalltalk.send(smalltalk.send(smalltalk.send(aNode,"_scope",[]),"_temps",[]),"_do_",[(function(each){
175
- $3=smalltalk.send((smalltalk.IRTempDeclaration || IRTempDeclaration),"_new",[]);
176
- smalltalk.send($3,"_name_",[smalltalk.send(each,"_name",[])]);
177
- $4=smalltalk.send($3,"_yourself",[]);
178
- return smalltalk.send(closure,"_add_",[$4]);
179
- })]);
180
- smalltalk.send(smalltalk.send(aNode,"_nodes",[]),"_do_",[(function(each){
181
- return smalltalk.send(closure,"_add_",[smalltalk.send(self,"_visit_",[each])]);
182
- })]);
183
- return closure;
184
- }
220
+ _st(_st(_st(aNode)._scope())._temps())._do_((function(each){
221
+ return smalltalk.withContext(function($ctx2) {
222
+ _st($3)._name_(_st(each)._name());
223
+ _st($3)._scope_(_st(aNode)._scope());
224
+ $4=_st($3)._yourself();
225
+ return _st(closure)._add_($4);
226
+ }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
227
+ _st(_st(aNode)._nodes())._do_((function(each){
228
+ return smalltalk.withContext(function($ctx2) {
229
+ }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
230
+ $5=closure;
231
+ return $5;
232
+ }, function($ctx1) {$ctx1.fill(self,"visitBlockNode:",{aNode:aNode,closure:closure}, smalltalk.IRASTTranslator)})}
185
233
  }),
186
234
  smalltalk.IRASTTranslator);
187
235
 
@@ -191,25 +239,30 @@ smalltalk.method({
191
239
  selector: "visitBlockSequenceNode:",
192
240
  fn: function (aNode){
193
241
  var self=this;
194
- var $2,$3,$4,$1;
195
- $1=smalltalk.send(self,"_withSequence_do_",[smalltalk.send((smalltalk.IRBlockSequence || IRBlockSequence),"_new",[]),(function(){
196
- return smalltalk.send(smalltalk.send(aNode,"_nodes",[]),"_ifNotEmpty_",[(function(){
197
- smalltalk.send(smalltalk.send(smalltalk.send(aNode,"_nodes",[]),"_allButLast",[]),"_do_",[(function(each){
198
- return smalltalk.send(smalltalk.send(self,"_sequence",[]),"_add_",[smalltalk.send(self,"_visit_",[each])]);
199
- })]);
200
- $2=smalltalk.send(smalltalk.send(smalltalk.send(aNode,"_nodes",[]),"_last",[]),"_isReturnNode",[]);
201
- if(smalltalk.assert($2)){
202
- return smalltalk.send(smalltalk.send(self,"_sequence",[]),"_add_",[smalltalk.send(self,"_visit_",[smalltalk.send(smalltalk.send(aNode,"_nodes",[]),"_last",[])])]);
242
+ return smalltalk.withContext(function($ctx1) {
243
+ $2=self;
244
+ $3=_st((smalltalk.IRBlockSequence || IRBlockSequence))._new();
245
+ $4=(function(){
246
+ return smalltalk.withContext(function($ctx2) {
247
+ $6=(function(){
248
+ return smalltalk.withContext(function($ctx3) {
249
+ return smalltalk.withContext(function($ctx4) {
250
+ }, function($ctx4) {$ctx4.fillBlock({each:each},$ctx1)})}));
251
+ $7=_st(_st(_st(aNode)._nodes())._last())._isReturnNode();
252
+ if(smalltalk.assert($7)){
253
+ return _st(_st(self)._sequence())._add_(_st(self)._visit_(_st(_st(aNode)._nodes())._last()));
203
254
  } else {
204
- $3=smalltalk.send((smalltalk.IRBlockReturn || IRBlockReturn),"_new",[]);
205
- smalltalk.send($3,"_add_",[smalltalk.send(self,"_visit_",[smalltalk.send(smalltalk.send(aNode,"_nodes",[]),"_last",[])])]);
206
- $4=smalltalk.send($3,"_yourself",[]);
207
- return smalltalk.send(smalltalk.send(self,"_sequence",[]),"_add_",[$4]);
255
+ $8=_st((smalltalk.IRBlockReturn || IRBlockReturn))._new();
256
+ _st($8)._add_(_st(self)._visit_(_st(_st(aNode)._nodes())._last()));
257
+ $9=_st($8)._yourself();
258
+ return _st(_st(self)._sequence())._add_($9);
208
259
  };
209
- })]);
210
- })]);
260
+ }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})});
261
+ return _st($5)._ifNotEmpty_($6);
262
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
263
+ $1=_st($2)._withSequence_do_($3,$4);
211
264
  return $1;
212
- }
265
+ }, function($ctx1) {$ctx1.fill(self,"visitBlockSequenceNode:",{aNode:aNode}, smalltalk.IRASTTranslator)})}
213
266
  }),
214
267
  smalltalk.IRASTTranslator);
215
268
 
@@ -219,22 +272,22 @@ smalltalk.method({
219
272
  selector: "visitCascadeNode:",
220
273
  fn: function (aNode){
221
274
  var self=this;
222
- var $1,$2;
223
275
  var alias;
224
- $1=smalltalk.send(smalltalk.send(aNode,"_receiver",[]),"_isValueNode",[]);
276
+ return smalltalk.withContext(function($ctx1) {
277
+ $1=_st(_st(aNode)._receiver())._isImmutable();
225
278
  if(! smalltalk.assert($1)){
226
- alias=smalltalk.send(self,"_alias_",[smalltalk.send(aNode,"_receiver",[])]);
279
+ alias=_st(self)._alias_(_st(aNode)._receiver());
227
280
  alias;
228
- smalltalk.send(smalltalk.send(aNode,"_nodes",[]),"_do_",[(function(each){
229
- return smalltalk.send(each,"_receiver_",[smalltalk.send(smalltalk.send((smalltalk.VariableNode || VariableNode),"_new",[]),"_binding_",[smalltalk.send(alias,"_variable",[])])]);
230
- })]);
281
+ _st(_st(aNode)._nodes())._do_((function(each){
282
+ return smalltalk.withContext(function($ctx2) {
283
+ }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
231
284
  };
232
- smalltalk.send(smalltalk.send(smalltalk.send(aNode,"_nodes",[]),"_allButLast",[]),"_do_",[(function(each){
233
- return smalltalk.send(smalltalk.send(self,"_sequence",[]),"_add_",[smalltalk.send(self,"_visit_",[each])]);
234
- })]);
235
- $2=smalltalk.send(self,"_alias_",[smalltalk.send(smalltalk.send(aNode,"_nodes",[]),"_last",[])]);
285
+ _st(_st(_st(aNode)._nodes())._allButLast())._do_((function(each){
286
+ return smalltalk.withContext(function($ctx2) {
287
+ }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
288
+ $2=_st(self)._alias_(_st(_st(aNode)._nodes())._last());
236
289
  return $2;
237
- }
290
+ }, function($ctx1) {$ctx1.fill(self,"visitCascadeNode:",{aNode:aNode,alias:alias}, smalltalk.IRASTTranslator)})}
238
291
  }),
239
292
  smalltalk.IRASTTranslator);
240
293
 
@@ -245,12 +298,14 @@ selector: "visitDynamicArrayNode:",
245
298
  fn: function (aNode){
246
299
  var self=this;
247
300
  var array;
248
- array=smalltalk.send((smalltalk.IRDynamicArray || IRDynamicArray),"_new",[]);
249
- smalltalk.send(smalltalk.send(aNode,"_nodes",[]),"_do_",[(function(each){
250
- return smalltalk.send(array,"_add_",[smalltalk.send(self,"_visit_",[each])]);
251
- })]);
252
- return array;
253
- }
301
+ return smalltalk.withContext(function($ctx1) {
302
+ array=_st((smalltalk.IRDynamicArray || IRDynamicArray))._new();
303
+ _st(_st(self)._aliasTemporally_(_st(aNode)._nodes()))._do_((function(each){
304
+ return smalltalk.withContext(function($ctx2) {
305
+ }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
306
+ $1=array;
307
+ return $1;
308
+ }, function($ctx1) {$ctx1.fill(self,"visitDynamicArrayNode:",{aNode:aNode,array:array}, smalltalk.IRASTTranslator)})}
254
309
  }),
255
310
  smalltalk.IRASTTranslator);
256
311
 
@@ -261,12 +316,14 @@ selector: "visitDynamicDictionaryNode:",
261
316
  fn: function (aNode){
262
317
  var self=this;
263
318
  var dictionary;
264
- dictionary=smalltalk.send((smalltalk.IRDynamicDictionary || IRDynamicDictionary),"_new",[]);
265
- smalltalk.send(smalltalk.send(aNode,"_nodes",[]),"_do_",[(function(each){
266
- return smalltalk.send(dictionary,"_add_",[smalltalk.send(self,"_visit_",[each])]);
267
- })]);
268
- return dictionary;
269
- }
319
+ return smalltalk.withContext(function($ctx1) {
320
+ dictionary=_st((smalltalk.IRDynamicDictionary || IRDynamicDictionary))._new();
321
+ _st(_st(self)._aliasTemporally_(_st(aNode)._nodes()))._do_((function(each){
322
+ return smalltalk.withContext(function($ctx2) {
323
+ }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
324
+ $1=dictionary;
325
+ return $1;
326
+ }, function($ctx1) {$ctx1.fill(self,"visitDynamicDictionaryNode:",{aNode:aNode,dictionary:dictionary}, smalltalk.IRASTTranslator)})}
270
327
  }),
271
328
  smalltalk.IRASTTranslator);
272
329
 
@@ -276,13 +333,13 @@ smalltalk.method({
276
333
  selector: "visitJSStatementNode:",
277
334
  fn: function (aNode){
278
335
  var self=this;
279
- var $2,$3,$1;
280
- $2=smalltalk.send((smalltalk.IRVerbatim || IRVerbatim),"_new",[]);
281
- smalltalk.send($2,"_source_",[smalltalk.send(aNode,"_source",[])]);
282
- $3=smalltalk.send($2,"_yourself",[]);
336
+ return smalltalk.withContext(function($ctx1) {
337
+ $2=_st((smalltalk.IRVerbatim || IRVerbatim))._new();
338
+ _st($2)._source_(_st(aNode)._source());
339
+ $3=_st($2)._yourself();
283
340
  $1=$3;
284
341
  return $1;
285
- }
342
+ }, function($ctx1) {$ctx1.fill(self,"visitJSStatementNode:",{aNode:aNode}, smalltalk.IRASTTranslator)})}
286
343
  }),
287
344
  smalltalk.IRASTTranslator);
288
345
 
@@ -292,35 +349,38 @@ smalltalk.method({
292
349
  selector: "visitMethodNode:",
293
350
  fn: function (aNode){
294
351
  var self=this;
295
- var $1,$2,$3,$4,$5,$6,$7,$8;
296
- $1=smalltalk.send((smalltalk.IRMethod || IRMethod),"_new",[]);
297
- smalltalk.send($1,"_source_",[smalltalk.send(self,"_source",[])]);
298
- smalltalk.send($1,"_arguments_",[smalltalk.send(aNode,"_arguments",[])]);
299
- smalltalk.send($1,"_selector_",[smalltalk.send(aNode,"_selector",[])]);
300
- smalltalk.send($1,"_messageSends_",[smalltalk.send(aNode,"_messageSends",[])]);
301
- smalltalk.send($1,"_classReferences_",[smalltalk.send(aNode,"_classReferences",[])]);
302
- smalltalk.send($1,"_scope_",[smalltalk.send(aNode,"_scope",[])]);
303
- $2=smalltalk.send($1,"_yourself",[]);
304
- smalltalk.send(self,"_method_",[$2]);
305
- smalltalk.send(smalltalk.send(smalltalk.send(aNode,"_scope",[]),"_temps",[]),"_do_",[(function(each){
306
- $3=smalltalk.send((smalltalk.IRTempDeclaration || IRTempDeclaration),"_new",[]);
307
- smalltalk.send($3,"_name_",[smalltalk.send(each,"_name",[])]);
308
- $4=smalltalk.send($3,"_yourself",[]);
309
- return smalltalk.send(smalltalk.send(self,"_method",[]),"_add_",[$4]);
310
- })]);
311
- smalltalk.send(smalltalk.send(aNode,"_nodes",[]),"_do_",[(function(each){
312
- return smalltalk.send(smalltalk.send(self,"_method",[]),"_add_",[smalltalk.send(self,"_visit_",[each])]);
313
- })]);
314
- $5=smalltalk.send(smalltalk.send(aNode,"_scope",[]),"_hasLocalReturn",[]);
352
+ return smalltalk.withContext(function($ctx1) {
353
+ $1=_st((smalltalk.IRMethod || IRMethod))._new();
354
+ _st($1)._source_(_st(self)._source());
355
+ _st($1)._theClass_(_st(self)._theClass());
356
+ _st($1)._arguments_(_st(aNode)._arguments());
357
+ _st($1)._selector_(_st(aNode)._selector());
358
+ _st($1)._messageSends_(_st(aNode)._messageSends());
359
+ _st($1)._superSends_(_st(aNode)._superSends());
360
+ _st($1)._classReferences_(_st(aNode)._classReferences());
361
+ _st($1)._scope_(_st(aNode)._scope());
362
+ $2=_st($1)._yourself();
363
+ _st(self)._method_($2);
364
+ _st(_st(_st(aNode)._scope())._temps())._do_((function(each){
365
+ return smalltalk.withContext(function($ctx2) {
366
+ _st($3)._name_(_st(each)._name());
367
+ _st($3)._scope_(_st(aNode)._scope());
368
+ $4=_st($3)._yourself();
369
+ return _st(_st(self)._method())._add_($4);
370
+ }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
371
+ _st(_st(aNode)._nodes())._do_((function(each){
372
+ return smalltalk.withContext(function($ctx2) {
373
+ }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
374
+ $5=_st(_st(aNode)._scope())._hasLocalReturn();
315
375
  if(! smalltalk.assert($5)){
316
- $6=smalltalk.send((smalltalk.IRVariable || IRVariable),"_new",[]);
317
- smalltalk.send($6,"_variable_",[smalltalk.send(smalltalk.send(smalltalk.send(aNode,"_scope",[]),"_pseudoVars",[]),"_at_",["self"])]);
318
- $7=smalltalk.send($6,"_yourself",[]);
319
- smalltalk.send(smalltalk.send(smalltalk.send(self,"_method",[]),"_add_",[smalltalk.send((smalltalk.IRReturn || IRReturn),"_new",[])]),"_add_",[$7]);
376
+ $6=_st((smalltalk.IRVariable || IRVariable))._new();
377
+ _st($6)._variable_(_st(_st(_st(aNode)._scope())._pseudoVars())._at_("self"));
378
+ $7=_st($6)._yourself();
379
+ _st(_st(_st(self)._method())._add_(_st((smalltalk.IRReturn || IRReturn))._new()))._add_($7);
320
380
  };
321
- $8=smalltalk.send(self,"_method",[]);
381
+ $8=_st(self)._method();
322
382
  return $8;
323
- }
383
+ }, function($ctx1) {$ctx1.fill(self,"visitMethodNode:",{aNode:aNode}, smalltalk.IRASTTranslator)})}
324
384
  }),
325
385
  smalltalk.IRASTTranslator);
326
386
 
@@ -330,20 +390,21 @@ smalltalk.method({
330
390
  selector: "visitReturnNode:",
331
391
  fn: function (aNode){
332
392
  var self=this;
333
- var $1;
334
393
  var return_;
335
- $1=smalltalk.send(aNode,"_nonLocalReturn",[]);
394
+ return smalltalk.withContext(function($ctx1) {
395
+ $1=_st(aNode)._nonLocalReturn();
336
396
  if(smalltalk.assert($1)){
337
- return_=smalltalk.send((smalltalk.IRNonLocalReturn || IRNonLocalReturn),"_new",[]);
397
+ return_=_st((smalltalk.IRNonLocalReturn || IRNonLocalReturn))._new();
338
398
  } else {
339
- return_=smalltalk.send((smalltalk.IRReturn || IRReturn),"_new",[]);
399
+ return_=_st((smalltalk.IRReturn || IRReturn))._new();
340
400
  };
341
- smalltalk.send(return_,"_scope_",[smalltalk.send(aNode,"_scope",[])]);
342
- smalltalk.send(smalltalk.send(aNode,"_nodes",[]),"_do_",[(function(each){
343
- return smalltalk.send(return_,"_add_",[smalltalk.send(self,"_alias_",[each])]);
344
- })]);
345
- return return_;
346
- }
401
+ _st(return_)._scope_(_st(aNode)._scope());
402
+ _st(_st(aNode)._nodes())._do_((function(each){
403
+ return smalltalk.withContext(function($ctx2) {
404
+ }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
405
+ $2=return_;
406
+ return $2;
407
+ }, function($ctx1) {$ctx1.fill(self,"visitReturnNode:",{aNode:aNode,return_:return_}, smalltalk.IRASTTranslator)})}
347
408
  }),
348
409
  smalltalk.IRASTTranslator);
349
410
 
@@ -353,39 +414,26 @@ smalltalk.method({
353
414
  selector: "visitSendNode:",
354
415
  fn: function (aNode){
355
416
  var self=this;
356
- var $1,$2,$3,$4;
357
- var send;
358
- var receiver;
359
- var arguments;
360
- send=smalltalk.send((smalltalk.IRSend || IRSend),"_new",[]);
361
- smalltalk.send(send,"_selector_",[smalltalk.send(aNode,"_selector",[])]);
362
- $1=smalltalk.send(send,"_index_",[smalltalk.send(aNode,"_index",[])]);
363
- $2=smalltalk.send(aNode,"_superSend",[]);
364
- if(smalltalk.assert($2)){
365
- smalltalk.send(send,"_classSend_",[smalltalk.send(smalltalk.send(self,"_theClass",[]),"_superclass",[])]);
366
- };
367
- $3=smalltalk.send(smalltalk.send(smalltalk.send(aNode,"_receiver",[]),"_shouldBeInlined",[]),"_or_",[(function(){
368
- return smalltalk.send(smalltalk.send(aNode,"_receiver",[]),"_shouldBeAliased",[]);
369
- })]);
417
+ var send,all,receiver,arguments;
418
+ return smalltalk.withContext(function($ctx1) {
419
+ send=_st((smalltalk.IRSend || IRSend))._new();
420
+ $1=send;
421
+ _st($1)._selector_(_st(aNode)._selector());
422
+ $2=_st($1)._index_(_st(aNode)._index());
423
+ $3=_st(aNode)._superSend();
370
424
  if(smalltalk.assert($3)){
371
- receiver=smalltalk.send(self,"_alias_",[smalltalk.send(aNode,"_receiver",[])]);
372
- } else {
373
- receiver=smalltalk.send(self,"_visit_",[smalltalk.send(aNode,"_receiver",[])]);
425
+ _st(send)._classSend_(_st(_st(self)._theClass())._superclass());
374
426
  };
375
- arguments=smalltalk.send(smalltalk.send(aNode,"_arguments",[]),"_collect_",[(function(each){
376
- $4=smalltalk.send(each,"_shouldBeInlined",[]);
377
- if(smalltalk.assert($4)){
378
- return smalltalk.send(self,"_alias_",[each]);
379
- } else {
380
- return smalltalk.send(self,"_visit_",[each]);
381
- };
382
- })]);
383
- smalltalk.send(send,"_add_",[receiver]);
384
- smalltalk.send(arguments,"_do_",[(function(each){
385
- return smalltalk.send(send,"_add_",[each]);
386
- })]);
387
- return send;
388
- }
427
+ all=_st(self)._aliasTemporally_(_st([_st(aNode)._receiver()]).__comma(_st(aNode)._arguments()));
428
+ receiver=_st(all)._first();
429
+ arguments=_st(all)._allButFirst();
430
+ _st(send)._add_(receiver);
431
+ _st(arguments)._do_((function(each){
432
+ return smalltalk.withContext(function($ctx2) {
433
+ }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
434
+ $4=send;
435
+ return $4;
436
+ }, function($ctx1) {$ctx1.fill(self,"visitSendNode:",{aNode:aNode,send:send,all:all,receiver:receiver,arguments:arguments}, smalltalk.IRASTTranslator)})}
389
437
  }),
390
438
  smalltalk.IRASTTranslator);
391
439
 
@@ -395,20 +443,25 @@ smalltalk.method({
395
443
  selector: "visitSequenceNode:",
396
444
  fn: function (aNode){
397
445
  var self=this;
398
- var $2,$1;
399
- $1=smalltalk.send(self,"_withSequence_do_",[smalltalk.send((smalltalk.IRSequence || IRSequence),"_new",[]),(function(){
400
- return smalltalk.send(smalltalk.send(aNode,"_nodes",[]),"_do_",[(function(each){
446
+ return smalltalk.withContext(function($ctx1) {
447
+ $2=self;
448
+ $3=_st((smalltalk.IRSequence || IRSequence))._new();
449
+ $4=(function(){
450
+ return smalltalk.withContext(function($ctx2) {
451
+ $6=(function(each){
401
452
  var instruction;
402
- instruction=smalltalk.send(self,"_visit_",[each]);
453
+ return smalltalk.withContext(function($ctx3) {
403
454
  instruction;
404
- $2=smalltalk.send(instruction,"_isVariable",[]);
405
- if(! smalltalk.assert($2)){
406
- return smalltalk.send(smalltalk.send(self,"_sequence",[]),"_add_",[instruction]);
455
+ $7=_st(instruction)._isVariable();
456
+ if(! smalltalk.assert($7)){
457
+ return _st(_st(self)._sequence())._add_(instruction);
407
458
  };
408
- })]);
409
- })]);
459
+ }, function($ctx3) {$ctx3.fillBlock({each:each,instruction:instruction},$ctx1)})});
460
+ return _st($5)._do_($6);
461
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
462
+ $1=_st($2)._withSequence_do_($3,$4);
410
463
  return $1;
411
- }
464
+ }, function($ctx1) {$ctx1.fill(self,"visitSequenceNode:",{aNode:aNode}, smalltalk.IRASTTranslator)})}
412
465
  }),
413
466
  smalltalk.IRASTTranslator);
414
467
 
@@ -418,13 +471,13 @@ smalltalk.method({
418
471
  selector: "visitValueNode:",
419
472
  fn: function (aNode){
420
473
  var self=this;
421
- var $2,$3,$1;
422
- $2=smalltalk.send((smalltalk.IRValue || IRValue),"_new",[]);
423
- smalltalk.send($2,"_value_",[smalltalk.send(aNode,"_value",[])]);
424
- $3=smalltalk.send($2,"_yourself",[]);
474
+ return smalltalk.withContext(function($ctx1) {
475
+ $2=_st((smalltalk.IRValue || IRValue))._new();
476
+ _st($2)._value_(_st(aNode)._value());
477
+ $3=_st($2)._yourself();
425
478
  $1=$3;
426
479
  return $1;
427
- }
480
+ }, function($ctx1) {$ctx1.fill(self,"visitValueNode:",{aNode:aNode}, smalltalk.IRASTTranslator)})}
428
481
  }),
429
482
  smalltalk.IRASTTranslator);
430
483
 
@@ -434,13 +487,13 @@ smalltalk.method({
434
487
  selector: "visitVariableNode:",
435
488
  fn: function (aNode){
436
489
  var self=this;
437
- var $2,$3,$1;
438
- $2=smalltalk.send((smalltalk.IRVariable || IRVariable),"_new",[]);
439
- smalltalk.send($2,"_variable_",[smalltalk.send(aNode,"_binding",[])]);
440
- $3=smalltalk.send($2,"_yourself",[]);
490
+ return smalltalk.withContext(function($ctx1) {
491
+ $2=_st((smalltalk.IRVariable || IRVariable))._new();
492
+ _st($2)._variable_(_st(aNode)._binding());
493
+ $3=_st($2)._yourself();
441
494
  $1=$3;
442
495
  return $1;
443
- }
496
+ }, function($ctx1) {$ctx1.fill(self,"visitVariableNode:",{aNode:aNode}, smalltalk.IRASTTranslator)})}
444
497
  }),
445
498
  smalltalk.IRASTTranslator);
446
499
 
@@ -451,12 +504,14 @@ selector: "withSequence:do:",
451
504
  fn: function (aSequence,aBlock){
452
505
  var self=this;
453
506
  var outerSequence;
454
- outerSequence=smalltalk.send(self,"_sequence",[]);
455
- smalltalk.send(self,"_sequence_",[aSequence]);
456
- smalltalk.send(aBlock,"_value",[]);
457
- smalltalk.send(self,"_sequence_",[outerSequence]);
458
- return aSequence;
459
- }
507
+ return smalltalk.withContext(function($ctx1) {
508
+ outerSequence=_st(self)._sequence();
509
+ _st(self)._sequence_(aSequence);
510
+ _st(aBlock)._value();
511
+ _st(self)._sequence_(outerSequence);
512
+ $1=aSequence;
513
+ return $1;
514
+ }, function($ctx1) {$ctx1.fill(self,"withSequence:do:",{aSequence:aSequence,aBlock:aBlock,outerSequence:outerSequence}, smalltalk.IRASTTranslator)})}
460
515
  }),
461
516
  smalltalk.IRASTTranslator);
462
517
 
@@ -469,10 +524,10 @@ smalltalk.method({
469
524
  selector: "accept:",
470
525
  fn: function (aVisitor){
471
526
  var self=this;
472
- var $1;
473
- $1=smalltalk.send(aVisitor,"_visitIRInstruction_",[self]);
527
+ return smalltalk.withContext(function($ctx1) {
528
+ $1=_st(aVisitor)._visitIRInstruction_(self);
474
529
  return $1;
475
- }
530
+ }, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRInstruction)})}
476
531
  }),
477
532
  smalltalk.IRInstruction);
478
533
 
@@ -482,11 +537,11 @@ smalltalk.method({
482
537
  selector: "add:",
483
538
  fn: function (anObject){
484
539
  var self=this;
485
- var $1;
486
- smalltalk.send(anObject,"_parent_",[self]);
487
- $1=smalltalk.send(smalltalk.send(self,"_instructions",[]),"_add_",[anObject]);
540
+ return smalltalk.withContext(function($ctx1) {
541
+ _st(anObject)._parent_(self);
542
+ $1=_st(_st(self)._instructions())._add_(anObject);
488
543
  return $1;
489
- }
544
+ }, function($ctx1) {$ctx1.fill(self,"add:",{anObject:anObject}, smalltalk.IRInstruction)})}
490
545
  }),
491
546
  smalltalk.IRInstruction);
492
547
 
@@ -496,8 +551,8 @@ smalltalk.method({
496
551
  selector: "canBeAssigned",
497
552
  fn: function (){
498
553
  var self=this;
499
- return true;
500
- }
554
+ return smalltalk.withContext(function($ctx1) {
555
+ }, function($ctx1) {$ctx1.fill(self,"canBeAssigned",{}, smalltalk.IRInstruction)})}
501
556
  }),
502
557
  smalltalk.IRInstruction);
503
558
 
@@ -507,15 +562,16 @@ smalltalk.method({
507
562
  selector: "instructions",
508
563
  fn: function (){
509
564
  var self=this;
510
- var $1;
511
- if(($receiver = self["@instructions"]) == nil || $receiver == undefined){
512
- self["@instructions"]=smalltalk.send((smalltalk.OrderedCollection || OrderedCollection),"_new",[]);
565
+ return smalltalk.withContext(function($ctx1) {
566
+ $2=self["@instructions"];
567
+ if(($receiver = $2) == nil || $receiver == undefined){
568
+ self["@instructions"]=_st((smalltalk.OrderedCollection || OrderedCollection))._new();
513
569
  $1=self["@instructions"];
514
570
  } else {
515
- $1=self["@instructions"];
571
+ $1=$2;
516
572
  };
517
573
  return $1;
518
- }
574
+ }, function($ctx1) {$ctx1.fill(self,"instructions",{}, smalltalk.IRInstruction)})}
519
575
  }),
520
576
  smalltalk.IRInstruction);
521
577
 
@@ -525,8 +581,8 @@ smalltalk.method({
525
581
  selector: "isClosure",
526
582
  fn: function (){
527
583
  var self=this;
528
- return false;
529
- }
584
+ return smalltalk.withContext(function($ctx1) {
585
+ }, function($ctx1) {$ctx1.fill(self,"isClosure",{}, smalltalk.IRInstruction)})}
530
586
  }),
531
587
  smalltalk.IRInstruction);
532
588
 
@@ -536,8 +592,8 @@ smalltalk.method({
536
592
  selector: "isInlined",
537
593
  fn: function (){
538
594
  var self=this;
539
- return false;
540
- }
595
+ return smalltalk.withContext(function($ctx1) {
596
+ }, function($ctx1) {$ctx1.fill(self,"isInlined",{}, smalltalk.IRInstruction)})}
541
597
  }),
542
598
  smalltalk.IRInstruction);
543
599
 
@@ -547,8 +603,19 @@ smalltalk.method({
547
603
  selector: "isLocalReturn",
548
604
  fn: function (){
549
605
  var self=this;
550
- return false;
551
- }
606
+ return smalltalk.withContext(function($ctx1) {
607
+ }, function($ctx1) {$ctx1.fill(self,"isLocalReturn",{}, smalltalk.IRInstruction)})}
608
+ }),
609
+ smalltalk.IRInstruction);
610
+
611
+ smalltalk.addMethod(
612
+ "_isMethod",
613
+ smalltalk.method({
614
+ selector: "isMethod",
615
+ fn: function (){
616
+ var self=this;
617
+ return smalltalk.withContext(function($ctx1) {
618
+ }, function($ctx1) {$ctx1.fill(self,"isMethod",{}, smalltalk.IRInstruction)})}
552
619
  }),
553
620
  smalltalk.IRInstruction);
554
621
 
@@ -558,8 +625,8 @@ smalltalk.method({
558
625
  selector: "isReturn",
559
626
  fn: function (){
560
627
  var self=this;
561
- return false;
562
- }
628
+ return smalltalk.withContext(function($ctx1) {
629
+ }, function($ctx1) {$ctx1.fill(self,"isReturn",{}, smalltalk.IRInstruction)})}
563
630
  }),
564
631
  smalltalk.IRInstruction);
565
632
 
@@ -569,8 +636,8 @@ smalltalk.method({
569
636
  selector: "isSend",
570
637
  fn: function (){
571
638
  var self=this;
572
- return false;
573
- }
639
+ return smalltalk.withContext(function($ctx1) {
640
+ }, function($ctx1) {$ctx1.fill(self,"isSend",{}, smalltalk.IRInstruction)})}
574
641
  }),
575
642
  smalltalk.IRInstruction);
576
643
 
@@ -580,8 +647,8 @@ smalltalk.method({
580
647
  selector: "isSequence",
581
648
  fn: function (){
582
649
  var self=this;
583
- return false;
584
- }
650
+ return smalltalk.withContext(function($ctx1) {
651
+ }, function($ctx1) {$ctx1.fill(self,"isSequence",{}, smalltalk.IRInstruction)})}
585
652
  }),
586
653
  smalltalk.IRInstruction);
587
654
 
@@ -591,8 +658,8 @@ smalltalk.method({
591
658
  selector: "isTempDeclaration",
592
659
  fn: function (){
593
660
  var self=this;
594
- return false;
595
- }
661
+ return smalltalk.withContext(function($ctx1) {
662
+ }, function($ctx1) {$ctx1.fill(self,"isTempDeclaration",{}, smalltalk.IRInstruction)})}
596
663
  }),
597
664
  smalltalk.IRInstruction);
598
665
 
@@ -602,8 +669,21 @@ smalltalk.method({
602
669
  selector: "isVariable",
603
670
  fn: function (){
604
671
  var self=this;
605
- return false;
606
- }
672
+ return smalltalk.withContext(function($ctx1) {
673
+ }, function($ctx1) {$ctx1.fill(self,"isVariable",{}, smalltalk.IRInstruction)})}
674
+ }),
675
+ smalltalk.IRInstruction);
676
+
677
+ smalltalk.addMethod(
678
+ "_method",
679
+ smalltalk.method({
680
+ selector: "method",
681
+ fn: function (){
682
+ var self=this;
683
+ return smalltalk.withContext(function($ctx1) {
684
+ $1=_st(_st(self)._parent())._method();
685
+ return $1;
686
+ }, function($ctx1) {$ctx1.fill(self,"method",{}, smalltalk.IRInstruction)})}
607
687
  }),
608
688
  smalltalk.IRInstruction);
609
689
 
@@ -613,8 +693,10 @@ smalltalk.method({
613
693
  selector: "parent",
614
694
  fn: function (){
615
695
  var self=this;
616
- return self["@parent"];
617
- }
696
+ return smalltalk.withContext(function($ctx1) {
697
+ $1=self["@parent"];
698
+ return $1;
699
+ }, function($ctx1) {$ctx1.fill(self,"parent",{}, smalltalk.IRInstruction)})}
618
700
  }),
619
701
  smalltalk.IRInstruction);
620
702
 
@@ -624,8 +706,8 @@ smalltalk.method({
624
706
  selector: "parent:",
625
707
  fn: function (anIRInstruction){
626
708
  var self=this;
627
- self["@parent"]=anIRInstruction;
628
- return self}
709
+ return smalltalk.withContext(function($ctx1) {
710
+ return self}, function($ctx1) {$ctx1.fill(self,"parent:",{anIRInstruction:anIRInstruction}, smalltalk.IRInstruction)})}
629
711
  }),
630
712
  smalltalk.IRInstruction);
631
713
 
@@ -635,8 +717,8 @@ smalltalk.method({
635
717
  selector: "remove",
636
718
  fn: function (){
637
719
  var self=this;
638
- smalltalk.send(smalltalk.send(self,"_parent",[]),"_remove_",[self]);
639
- return self}
720
+ return smalltalk.withContext(function($ctx1) {
721
+ return self}, function($ctx1) {$ctx1.fill(self,"remove",{}, smalltalk.IRInstruction)})}
640
722
  }),
641
723
  smalltalk.IRInstruction);
642
724
 
@@ -646,8 +728,8 @@ smalltalk.method({
646
728
  selector: "remove:",
647
729
  fn: function (anIRInstruction){
648
730
  var self=this;
649
- smalltalk.send(smalltalk.send(self,"_instructions",[]),"_remove_",[anIRInstruction]);
650
- return self}
731
+ return smalltalk.withContext(function($ctx1) {
732
+ return self}, function($ctx1) {$ctx1.fill(self,"remove:",{anIRInstruction:anIRInstruction}, smalltalk.IRInstruction)})}
651
733
  }),
652
734
  smalltalk.IRInstruction);
653
735
 
@@ -657,9 +739,9 @@ smalltalk.method({
657
739
  selector: "replace:with:",
658
740
  fn: function (anIRInstruction,anotherIRInstruction){
659
741
  var self=this;
660
- smalltalk.send(anotherIRInstruction,"_parent_",[self]);
661
- smalltalk.send(smalltalk.send(self,"_instructions",[]),"_at_put_",[smalltalk.send(smalltalk.send(self,"_instructions",[]),"_indexOf_",[anIRInstruction]),anotherIRInstruction]);
662
- return self}
742
+ return smalltalk.withContext(function($ctx1) {
743
+ _st(_st(self)._instructions())._at_put_(_st(_st(self)._instructions())._indexOf_(anIRInstruction),anotherIRInstruction);
744
+ return self}, function($ctx1) {$ctx1.fill(self,"replace:with:",{anIRInstruction:anIRInstruction,anotherIRInstruction:anotherIRInstruction}, smalltalk.IRInstruction)})}
663
745
  }),
664
746
  smalltalk.IRInstruction);
665
747
 
@@ -669,8 +751,8 @@ smalltalk.method({
669
751
  selector: "replaceWith:",
670
752
  fn: function (anIRInstruction){
671
753
  var self=this;
672
- smalltalk.send(smalltalk.send(self,"_parent",[]),"_replace_with_",[self,anIRInstruction]);
673
- return self}
754
+ return smalltalk.withContext(function($ctx1) {
755
+ return self}, function($ctx1) {$ctx1.fill(self,"replaceWith:",{anIRInstruction:anIRInstruction}, smalltalk.IRInstruction)})}
674
756
  }),
675
757
  smalltalk.IRInstruction);
676
758
 
@@ -681,13 +763,13 @@ smalltalk.method({
681
763
  selector: "on:",
682
764
  fn: function (aBuilder){
683
765
  var self=this;
684
- var $2,$3,$1;
685
- $2=smalltalk.send(self,"_new",[]);
686
- smalltalk.send($2,"_builder_",[aBuilder]);
687
- $3=smalltalk.send($2,"_yourself",[]);
766
+ return smalltalk.withContext(function($ctx1) {
767
+ $2=_st(self)._new();
768
+ _st($2)._builder_(aBuilder);
769
+ $3=_st($2)._yourself();
688
770
  $1=$3;
689
771
  return $1;
690
- }
772
+ }, function($ctx1) {$ctx1.fill(self,"on:",{aBuilder:aBuilder}, smalltalk.IRInstruction.klass)})}
691
773
  }),
692
774
  smalltalk.IRInstruction.klass);
693
775
 
@@ -699,10 +781,10 @@ smalltalk.method({
699
781
  selector: "accept:",
700
782
  fn: function (aVisitor){
701
783
  var self=this;
702
- var $1;
703
- $1=smalltalk.send(aVisitor,"_visitIRAssignment_",[self]);
784
+ return smalltalk.withContext(function($ctx1) {
785
+ $1=_st(aVisitor)._visitIRAssignment_(self);
704
786
  return $1;
705
- }
787
+ }, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRAssignment)})}
706
788
  }),
707
789
  smalltalk.IRAssignment);
708
790
 
@@ -715,10 +797,10 @@ smalltalk.method({
715
797
  selector: "accept:",
716
798
  fn: function (aVisitor){
717
799
  var self=this;
718
- var $1;
719
- $1=smalltalk.send(aVisitor,"_visitIRDynamicArray_",[self]);
800
+ return smalltalk.withContext(function($ctx1) {
801
+ $1=_st(aVisitor)._visitIRDynamicArray_(self);
720
802
  return $1;
721
- }
803
+ }, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRDynamicArray)})}
722
804
  }),
723
805
  smalltalk.IRDynamicArray);
724
806
 
@@ -731,10 +813,10 @@ smalltalk.method({
731
813
  selector: "accept:",
732
814
  fn: function (aVisitor){
733
815
  var self=this;
734
- var $1;
735
- $1=smalltalk.send(aVisitor,"_visitIRDynamicDictionary_",[self]);
816
+ return smalltalk.withContext(function($ctx1) {
817
+ $1=_st(aVisitor)._visitIRDynamicDictionary_(self);
736
818
  return $1;
737
- }
819
+ }, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRDynamicDictionary)})}
738
820
  }),
739
821
  smalltalk.IRDynamicDictionary);
740
822
 
@@ -747,8 +829,10 @@ smalltalk.method({
747
829
  selector: "scope",
748
830
  fn: function (){
749
831
  var self=this;
750
- return self["@scope"];
751
- }
832
+ return smalltalk.withContext(function($ctx1) {
833
+ $1=self["@scope"];
834
+ return $1;
835
+ }, function($ctx1) {$ctx1.fill(self,"scope",{}, smalltalk.IRScopedInstruction)})}
752
836
  }),
753
837
  smalltalk.IRScopedInstruction);
754
838
 
@@ -758,43 +842,31 @@ smalltalk.method({
758
842
  selector: "scope:",
759
843
  fn: function (aScope){
760
844
  var self=this;
761
- self["@scope"]=aScope;
762
- return self}
845
+ return smalltalk.withContext(function($ctx1) {
846
+ return self}, function($ctx1) {$ctx1.fill(self,"scope:",{aScope:aScope}, smalltalk.IRScopedInstruction)})}
763
847
  }),
764
848
  smalltalk.IRScopedInstruction);
765
849
 
766
850
 
767
851
 
768
- smalltalk.addClass('IRClosure', smalltalk.IRScopedInstruction, ['arguments'], 'Compiler-IR');
769
- smalltalk.addMethod(
770
- "_accept_",
771
- smalltalk.method({
772
- selector: "accept:",
773
- fn: function (aVisitor){
774
- var self=this;
775
- var $1;
776
- $1=smalltalk.send(aVisitor,"_visitIRClosure_",[self]);
777
- return $1;
778
- }
779
- }),
780
- smalltalk.IRClosure);
781
-
852
+ smalltalk.addClass('IRClosureInstruction', smalltalk.IRScopedInstruction, ['arguments'], 'Compiler-IR');
782
853
  smalltalk.addMethod(
783
854
  "_arguments",
784
855
  smalltalk.method({
785
856
  selector: "arguments",
786
857
  fn: function (){
787
858
  var self=this;
788
- var $1;
789
- if(($receiver = self["@arguments"]) == nil || $receiver == undefined){
859
+ return smalltalk.withContext(function($ctx1) {
860
+ $2=self["@arguments"];
861
+ if(($receiver = $2) == nil || $receiver == undefined){
790
862
  $1=[];
791
863
  } else {
792
- $1=self["@arguments"];
864
+ $1=$2;
793
865
  };
794
866
  return $1;
795
- }
867
+ }, function($ctx1) {$ctx1.fill(self,"arguments",{}, smalltalk.IRClosureInstruction)})}
796
868
  }),
797
- smalltalk.IRClosure);
869
+ smalltalk.IRClosureInstruction);
798
870
 
799
871
  smalltalk.addMethod(
800
872
  "_arguments_",
@@ -802,21 +874,28 @@ smalltalk.method({
802
874
  selector: "arguments:",
803
875
  fn: function (aCollection){
804
876
  var self=this;
805
- self["@arguments"]=aCollection;
806
- return self}
877
+ return smalltalk.withContext(function($ctx1) {
878
+ return self}, function($ctx1) {$ctx1.fill(self,"arguments:",{aCollection:aCollection}, smalltalk.IRClosureInstruction)})}
807
879
  }),
808
- smalltalk.IRClosure);
880
+ smalltalk.IRClosureInstruction);
809
881
 
810
882
  smalltalk.addMethod(
811
- "_isClosure",
883
+ "_locals",
812
884
  smalltalk.method({
813
- selector: "isClosure",
885
+ selector: "locals",
814
886
  fn: function (){
815
887
  var self=this;
816
- return true;
817
- }
888
+ return smalltalk.withContext(function($ctx1) {
889
+ $2=_st(_st(self)._arguments())._copy();
890
+ _st($2)._addAll_(_st(_st(self)._tempDeclarations())._collect_((function(each){
891
+ return smalltalk.withContext(function($ctx2) {
892
+ }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})})));
893
+ $3=_st($2)._yourself();
894
+ $1=$3;
895
+ return $1;
896
+ }, function($ctx1) {$ctx1.fill(self,"locals",{}, smalltalk.IRClosureInstruction)})}
818
897
  }),
819
- smalltalk.IRClosure);
898
+ smalltalk.IRClosureInstruction);
820
899
 
821
900
  smalltalk.addMethod(
822
901
  "_scope_",
@@ -824,60 +903,80 @@ smalltalk.method({
824
903
  selector: "scope:",
825
904
  fn: function (aScope){
826
905
  var self=this;
827
- smalltalk.send(self,"_scope_",[aScope],smalltalk.IRScopedInstruction);
828
- smalltalk.send(aScope,"_instruction_",[self]);
829
- return self}
906
+ return smalltalk.withContext(function($ctx1) {
907
+ _st(aScope)._instruction_(self);
908
+ return self}, function($ctx1) {$ctx1.fill(self,"scope:",{aScope:aScope}, smalltalk.IRClosureInstruction)})}
830
909
  }),
831
- smalltalk.IRClosure);
910
+ smalltalk.IRClosureInstruction);
832
911
 
833
912
  smalltalk.addMethod(
834
- "_sequence",
913
+ "_tempDeclarations",
835
914
  smalltalk.method({
836
- selector: "sequence",
915
+ selector: "tempDeclarations",
837
916
  fn: function (){
838
917
  var self=this;
839
- var $1;
840
- $1=smalltalk.send(smalltalk.send(self,"_instructions",[]),"_last",[]);
918
+ return smalltalk.withContext(function($ctx1) {
919
+ $1=_st(_st(self)._instructions())._select_((function(each){
920
+ return smalltalk.withContext(function($ctx2) {
921
+ }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
841
922
  return $1;
842
- }
923
+ }, function($ctx1) {$ctx1.fill(self,"tempDeclarations",{}, smalltalk.IRClosureInstruction)})}
843
924
  }),
844
- smalltalk.IRClosure);
925
+ smalltalk.IRClosureInstruction);
845
926
 
846
927
 
847
928
 
848
- smalltalk.addClass('IRMethod', smalltalk.IRScopedInstruction, ['source', 'selector', 'classReferences', 'messageSends', 'arguments', 'internalVariables'], 'Compiler-IR');
929
+ smalltalk.addClass('IRClosure', smalltalk.IRClosureInstruction, [], 'Compiler-IR');
849
930
  smalltalk.addMethod(
850
931
  "_accept_",
851
932
  smalltalk.method({
852
933
  selector: "accept:",
853
934
  fn: function (aVisitor){
854
935
  var self=this;
855
- var $1;
856
- $1=smalltalk.send(aVisitor,"_visitIRMethod_",[self]);
936
+ return smalltalk.withContext(function($ctx1) {
937
+ $1=_st(aVisitor)._visitIRClosure_(self);
857
938
  return $1;
858
- }
939
+ }, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRClosure)})}
859
940
  }),
860
- smalltalk.IRMethod);
941
+ smalltalk.IRClosure);
861
942
 
862
943
  smalltalk.addMethod(
863
- "_arguments",
944
+ "_isClosure",
864
945
  smalltalk.method({
865
- selector: "arguments",
946
+ selector: "isClosure",
866
947
  fn: function (){
867
948
  var self=this;
868
- return self["@arguments"];
869
- }
949
+ return smalltalk.withContext(function($ctx1) {
950
+ }, function($ctx1) {$ctx1.fill(self,"isClosure",{}, smalltalk.IRClosure)})}
870
951
  }),
871
- smalltalk.IRMethod);
952
+ smalltalk.IRClosure);
872
953
 
873
954
  smalltalk.addMethod(
874
- "_arguments_",
955
+ "_sequence",
875
956
  smalltalk.method({
876
- selector: "arguments:",
877
- fn: function (aCollection){
957
+ selector: "sequence",
958
+ fn: function (){
878
959
  var self=this;
879
- self["@arguments"]=aCollection;
880
- return self}
960
+ return smalltalk.withContext(function($ctx1) {
961
+ $1=_st(_st(self)._instructions())._last();
962
+ return $1;
963
+ }, function($ctx1) {$ctx1.fill(self,"sequence",{}, smalltalk.IRClosure)})}
964
+ }),
965
+ smalltalk.IRClosure);
966
+
967
+
968
+
969
+ smalltalk.addClass('IRMethod', smalltalk.IRClosureInstruction, ['theClass', 'source', 'selector', 'classReferences', 'messageSends', 'superSends', 'internalVariables'], 'Compiler-IR');
970
+ smalltalk.addMethod(
971
+ "_accept_",
972
+ smalltalk.method({
973
+ selector: "accept:",
974
+ fn: function (aVisitor){
975
+ var self=this;
976
+ return smalltalk.withContext(function($ctx1) {
977
+ $1=_st(aVisitor)._visitIRMethod_(self);
978
+ return $1;
979
+ }, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRMethod)})}
881
980
  }),
882
981
  smalltalk.IRMethod);
883
982
 
@@ -887,8 +986,10 @@ smalltalk.method({
887
986
  selector: "classReferences",
888
987
  fn: function (){
889
988
  var self=this;
890
- return self["@classReferences"];
891
- }
989
+ return smalltalk.withContext(function($ctx1) {
990
+ $1=self["@classReferences"];
991
+ return $1;
992
+ }, function($ctx1) {$ctx1.fill(self,"classReferences",{}, smalltalk.IRMethod)})}
892
993
  }),
893
994
  smalltalk.IRMethod);
894
995
 
@@ -898,8 +999,8 @@ smalltalk.method({
898
999
  selector: "classReferences:",
899
1000
  fn: function (aCollection){
900
1001
  var self=this;
901
- self["@classReferences"]=aCollection;
902
- return self}
1002
+ return smalltalk.withContext(function($ctx1) {
1003
+ return self}, function($ctx1) {$ctx1.fill(self,"classReferences:",{aCollection:aCollection}, smalltalk.IRMethod)})}
903
1004
  }),
904
1005
  smalltalk.IRMethod);
905
1006
 
@@ -909,15 +1010,27 @@ smalltalk.method({
909
1010
  selector: "internalVariables",
910
1011
  fn: function (){
911
1012
  var self=this;
912
- var $1;
913
- if(($receiver = self["@internalVariables"]) == nil || $receiver == undefined){
914
- self["@internalVariables"]=smalltalk.send((smalltalk.Set || Set),"_new",[]);
1013
+ return smalltalk.withContext(function($ctx1) {
1014
+ $2=self["@internalVariables"];
1015
+ if(($receiver = $2) == nil || $receiver == undefined){
1016
+ self["@internalVariables"]=_st((smalltalk.Set || Set))._new();
915
1017
  $1=self["@internalVariables"];
916
1018
  } else {
917
- $1=self["@internalVariables"];
1019
+ $1=$2;
918
1020
  };
919
1021
  return $1;
920
- }
1022
+ }, function($ctx1) {$ctx1.fill(self,"internalVariables",{}, smalltalk.IRMethod)})}
1023
+ }),
1024
+ smalltalk.IRMethod);
1025
+
1026
+ smalltalk.addMethod(
1027
+ "_isMethod",
1028
+ smalltalk.method({
1029
+ selector: "isMethod",
1030
+ fn: function (){
1031
+ var self=this;
1032
+ return smalltalk.withContext(function($ctx1) {
1033
+ }, function($ctx1) {$ctx1.fill(self,"isMethod",{}, smalltalk.IRMethod)})}
921
1034
  }),
922
1035
  smalltalk.IRMethod);
923
1036
 
@@ -927,8 +1040,10 @@ smalltalk.method({
927
1040
  selector: "messageSends",
928
1041
  fn: function (){
929
1042
  var self=this;
930
- return self["@messageSends"];
931
- }
1043
+ return smalltalk.withContext(function($ctx1) {
1044
+ $1=self["@messageSends"];
1045
+ return $1;
1046
+ }, function($ctx1) {$ctx1.fill(self,"messageSends",{}, smalltalk.IRMethod)})}
932
1047
  }),
933
1048
  smalltalk.IRMethod);
934
1049
 
@@ -938,20 +1053,21 @@ smalltalk.method({
938
1053
  selector: "messageSends:",
939
1054
  fn: function (aCollection){
940
1055
  var self=this;
941
- self["@messageSends"]=aCollection;
942
- return self}
1056
+ return smalltalk.withContext(function($ctx1) {
1057
+ return self}, function($ctx1) {$ctx1.fill(self,"messageSends:",{aCollection:aCollection}, smalltalk.IRMethod)})}
943
1058
  }),
944
1059
  smalltalk.IRMethod);
945
1060
 
946
1061
  smalltalk.addMethod(
947
- "_scope_",
1062
+ "_method",
948
1063
  smalltalk.method({
949
- selector: "scope:",
950
- fn: function (aScope){
1064
+ selector: "method",
1065
+ fn: function (){
951
1066
  var self=this;
952
- smalltalk.send(self,"_scope_",[aScope],smalltalk.IRScopedInstruction);
953
- smalltalk.send(aScope,"_instruction_",[self]);
954
- return self}
1067
+ return smalltalk.withContext(function($ctx1) {
1068
+ $1=self;
1069
+ return $1;
1070
+ }, function($ctx1) {$ctx1.fill(self,"method",{}, smalltalk.IRMethod)})}
955
1071
  }),
956
1072
  smalltalk.IRMethod);
957
1073
 
@@ -961,8 +1077,10 @@ smalltalk.method({
961
1077
  selector: "selector",
962
1078
  fn: function (){
963
1079
  var self=this;
964
- return self["@selector"];
965
- }
1080
+ return smalltalk.withContext(function($ctx1) {
1081
+ $1=self["@selector"];
1082
+ return $1;
1083
+ }, function($ctx1) {$ctx1.fill(self,"selector",{}, smalltalk.IRMethod)})}
966
1084
  }),
967
1085
  smalltalk.IRMethod);
968
1086
 
@@ -972,8 +1090,8 @@ smalltalk.method({
972
1090
  selector: "selector:",
973
1091
  fn: function (aString){
974
1092
  var self=this;
975
- self["@selector"]=aString;
976
- return self}
1093
+ return smalltalk.withContext(function($ctx1) {
1094
+ return self}, function($ctx1) {$ctx1.fill(self,"selector:",{aString:aString}, smalltalk.IRMethod)})}
977
1095
  }),
978
1096
  smalltalk.IRMethod);
979
1097
 
@@ -983,8 +1101,10 @@ smalltalk.method({
983
1101
  selector: "source",
984
1102
  fn: function (){
985
1103
  var self=this;
986
- return self["@source"];
987
- }
1104
+ return smalltalk.withContext(function($ctx1) {
1105
+ $1=self["@source"];
1106
+ return $1;
1107
+ }, function($ctx1) {$ctx1.fill(self,"source",{}, smalltalk.IRMethod)})}
988
1108
  }),
989
1109
  smalltalk.IRMethod);
990
1110
 
@@ -994,8 +1114,56 @@ smalltalk.method({
994
1114
  selector: "source:",
995
1115
  fn: function (aString){
996
1116
  var self=this;
997
- self["@source"]=aString;
998
- return self}
1117
+ return smalltalk.withContext(function($ctx1) {
1118
+ return self}, function($ctx1) {$ctx1.fill(self,"source:",{aString:aString}, smalltalk.IRMethod)})}
1119
+ }),
1120
+ smalltalk.IRMethod);
1121
+
1122
+ smalltalk.addMethod(
1123
+ "_superSends",
1124
+ smalltalk.method({
1125
+ selector: "superSends",
1126
+ fn: function (){
1127
+ var self=this;
1128
+ return smalltalk.withContext(function($ctx1) {
1129
+ $1=self["@superSends"];
1130
+ return $1;
1131
+ }, function($ctx1) {$ctx1.fill(self,"superSends",{}, smalltalk.IRMethod)})}
1132
+ }),
1133
+ smalltalk.IRMethod);
1134
+
1135
+ smalltalk.addMethod(
1136
+ "_superSends_",
1137
+ smalltalk.method({
1138
+ selector: "superSends:",
1139
+ fn: function (aCollection){
1140
+ var self=this;
1141
+ return smalltalk.withContext(function($ctx1) {
1142
+ return self}, function($ctx1) {$ctx1.fill(self,"superSends:",{aCollection:aCollection}, smalltalk.IRMethod)})}
1143
+ }),
1144
+ smalltalk.IRMethod);
1145
+
1146
+ smalltalk.addMethod(
1147
+ "_theClass",
1148
+ smalltalk.method({
1149
+ selector: "theClass",
1150
+ fn: function (){
1151
+ var self=this;
1152
+ return smalltalk.withContext(function($ctx1) {
1153
+ $1=self["@theClass"];
1154
+ return $1;
1155
+ }, function($ctx1) {$ctx1.fill(self,"theClass",{}, smalltalk.IRMethod)})}
1156
+ }),
1157
+ smalltalk.IRMethod);
1158
+
1159
+ smalltalk.addMethod(
1160
+ "_theClass_",
1161
+ smalltalk.method({
1162
+ selector: "theClass:",
1163
+ fn: function (aClass){
1164
+ var self=this;
1165
+ return smalltalk.withContext(function($ctx1) {
1166
+ return self}, function($ctx1) {$ctx1.fill(self,"theClass:",{aClass:aClass}, smalltalk.IRMethod)})}
999
1167
  }),
1000
1168
  smalltalk.IRMethod);
1001
1169
 
@@ -1008,10 +1176,10 @@ smalltalk.method({
1008
1176
  selector: "accept:",
1009
1177
  fn: function (aVisitor){
1010
1178
  var self=this;
1011
- var $1;
1012
- $1=smalltalk.send(aVisitor,"_visitIRReturn_",[self]);
1179
+ return smalltalk.withContext(function($ctx1) {
1180
+ $1=_st(aVisitor)._visitIRReturn_(self);
1013
1181
  return $1;
1014
- }
1182
+ }, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRReturn)})}
1015
1183
  }),
1016
1184
  smalltalk.IRReturn);
1017
1185
 
@@ -1021,8 +1189,8 @@ smalltalk.method({
1021
1189
  selector: "canBeAssigned",
1022
1190
  fn: function (){
1023
1191
  var self=this;
1024
- return false;
1025
- }
1192
+ return smalltalk.withContext(function($ctx1) {
1193
+ }, function($ctx1) {$ctx1.fill(self,"canBeAssigned",{}, smalltalk.IRReturn)})}
1026
1194
  }),
1027
1195
  smalltalk.IRReturn);
1028
1196
 
@@ -1032,8 +1200,8 @@ smalltalk.method({
1032
1200
  selector: "isBlockReturn",
1033
1201
  fn: function (){
1034
1202
  var self=this;
1035
- return false;
1036
- }
1203
+ return smalltalk.withContext(function($ctx1) {
1204
+ }, function($ctx1) {$ctx1.fill(self,"isBlockReturn",{}, smalltalk.IRReturn)})}
1037
1205
  }),
1038
1206
  smalltalk.IRReturn);
1039
1207
 
@@ -1043,8 +1211,8 @@ smalltalk.method({
1043
1211
  selector: "isLocalReturn",
1044
1212
  fn: function (){
1045
1213
  var self=this;
1046
- return true;
1047
- }
1214
+ return smalltalk.withContext(function($ctx1) {
1215
+ }, function($ctx1) {$ctx1.fill(self,"isLocalReturn",{}, smalltalk.IRReturn)})}
1048
1216
  }),
1049
1217
  smalltalk.IRReturn);
1050
1218
 
@@ -1054,10 +1222,10 @@ smalltalk.method({
1054
1222
  selector: "isNonLocalReturn",
1055
1223
  fn: function (){
1056
1224
  var self=this;
1057
- var $1;
1058
- $1=smalltalk.send(smalltalk.send(self,"_isLocalReturn",[]),"_not",[]);
1225
+ return smalltalk.withContext(function($ctx1) {
1226
+ $1=_st(_st(self)._isLocalReturn())._not();
1059
1227
  return $1;
1060
- }
1228
+ }, function($ctx1) {$ctx1.fill(self,"isNonLocalReturn",{}, smalltalk.IRReturn)})}
1061
1229
  }),
1062
1230
  smalltalk.IRReturn);
1063
1231
 
@@ -1067,8 +1235,8 @@ smalltalk.method({
1067
1235
  selector: "isReturn",
1068
1236
  fn: function (){
1069
1237
  var self=this;
1070
- return true;
1071
- }
1238
+ return smalltalk.withContext(function($ctx1) {
1239
+ }, function($ctx1) {$ctx1.fill(self,"isReturn",{}, smalltalk.IRReturn)})}
1072
1240
  }),
1073
1241
  smalltalk.IRReturn);
1074
1242
 
@@ -1081,10 +1249,10 @@ smalltalk.method({
1081
1249
  selector: "accept:",
1082
1250
  fn: function (aVisitor){
1083
1251
  var self=this;
1084
- var $1;
1085
- $1=smalltalk.send(aVisitor,"_visitIRBlockReturn_",[self]);
1252
+ return smalltalk.withContext(function($ctx1) {
1253
+ $1=_st(aVisitor)._visitIRBlockReturn_(self);
1086
1254
  return $1;
1087
- }
1255
+ }, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRBlockReturn)})}
1088
1256
  }),
1089
1257
  smalltalk.IRBlockReturn);
1090
1258
 
@@ -1094,8 +1262,8 @@ smalltalk.method({
1094
1262
  selector: "isBlockReturn",
1095
1263
  fn: function (){
1096
1264
  var self=this;
1097
- return true;
1098
- }
1265
+ return smalltalk.withContext(function($ctx1) {
1266
+ }, function($ctx1) {$ctx1.fill(self,"isBlockReturn",{}, smalltalk.IRBlockReturn)})}
1099
1267
  }),
1100
1268
  smalltalk.IRBlockReturn);
1101
1269
 
@@ -1108,10 +1276,10 @@ smalltalk.method({
1108
1276
  selector: "accept:",
1109
1277
  fn: function (aVisitor){
1110
1278
  var self=this;
1111
- var $1;
1112
- $1=smalltalk.send(aVisitor,"_visitIRNonLocalReturn_",[self]);
1279
+ return smalltalk.withContext(function($ctx1) {
1280
+ $1=_st(aVisitor)._visitIRNonLocalReturn_(self);
1113
1281
  return $1;
1114
- }
1282
+ }, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRNonLocalReturn)})}
1115
1283
  }),
1116
1284
  smalltalk.IRNonLocalReturn);
1117
1285
 
@@ -1121,13 +1289,64 @@ smalltalk.method({
1121
1289
  selector: "isLocalReturn",
1122
1290
  fn: function (){
1123
1291
  var self=this;
1124
- return false;
1125
- }
1292
+ return smalltalk.withContext(function($ctx1) {
1293
+ }, function($ctx1) {$ctx1.fill(self,"isLocalReturn",{}, smalltalk.IRNonLocalReturn)})}
1126
1294
  }),
1127
1295
  smalltalk.IRNonLocalReturn);
1128
1296
 
1129
1297
 
1130
1298
 
1299
+ smalltalk.addClass('IRTempDeclaration', smalltalk.IRScopedInstruction, ['name'], 'Compiler-IR');
1300
+ smalltalk.addMethod(
1301
+ "_accept_",
1302
+ smalltalk.method({
1303
+ selector: "accept:",
1304
+ fn: function (aVisitor){
1305
+ var self=this;
1306
+ return smalltalk.withContext(function($ctx1) {
1307
+ $1=_st(aVisitor)._visitIRTempDeclaration_(self);
1308
+ return $1;
1309
+ }, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRTempDeclaration)})}
1310
+ }),
1311
+ smalltalk.IRTempDeclaration);
1312
+
1313
+ smalltalk.addMethod(
1314
+ "_isTempDeclaration",
1315
+ smalltalk.method({
1316
+ selector: "isTempDeclaration",
1317
+ fn: function (){
1318
+ var self=this;
1319
+ return smalltalk.withContext(function($ctx1) {
1320
+ }, function($ctx1) {$ctx1.fill(self,"isTempDeclaration",{}, smalltalk.IRTempDeclaration)})}
1321
+ }),
1322
+ smalltalk.IRTempDeclaration);
1323
+
1324
+ smalltalk.addMethod(
1325
+ "_name",
1326
+ smalltalk.method({
1327
+ selector: "name",
1328
+ fn: function (){
1329
+ var self=this;
1330
+ return smalltalk.withContext(function($ctx1) {
1331
+ $1=self["@name"];
1332
+ return $1;
1333
+ }, function($ctx1) {$ctx1.fill(self,"name",{}, smalltalk.IRTempDeclaration)})}
1334
+ }),
1335
+ smalltalk.IRTempDeclaration);
1336
+
1337
+ smalltalk.addMethod(
1338
+ "_name_",
1339
+ smalltalk.method({
1340
+ selector: "name:",
1341
+ fn: function (aString){
1342
+ var self=this;
1343
+ return smalltalk.withContext(function($ctx1) {
1344
+ return self}, function($ctx1) {$ctx1.fill(self,"name:",{aString:aString}, smalltalk.IRTempDeclaration)})}
1345
+ }),
1346
+ smalltalk.IRTempDeclaration);
1347
+
1348
+
1349
+
1131
1350
  smalltalk.addClass('IRSend', smalltalk.IRInstruction, ['selector', 'classSend', 'index'], 'Compiler-IR');
1132
1351
  smalltalk.addMethod(
1133
1352
  "_accept_",
@@ -1135,10 +1354,10 @@ smalltalk.method({
1135
1354
  selector: "accept:",
1136
1355
  fn: function (aVisitor){
1137
1356
  var self=this;
1138
- var $1;
1139
- $1=smalltalk.send(aVisitor,"_visitIRSend_",[self]);
1357
+ return smalltalk.withContext(function($ctx1) {
1358
+ $1=_st(aVisitor)._visitIRSend_(self);
1140
1359
  return $1;
1141
- }
1360
+ }, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRSend)})}
1142
1361
  }),
1143
1362
  smalltalk.IRSend);
1144
1363
 
@@ -1148,8 +1367,10 @@ smalltalk.method({
1148
1367
  selector: "classSend",
1149
1368
  fn: function (){
1150
1369
  var self=this;
1151
- return self["@classSend"];
1152
- }
1370
+ return smalltalk.withContext(function($ctx1) {
1371
+ $1=self["@classSend"];
1372
+ return $1;
1373
+ }, function($ctx1) {$ctx1.fill(self,"classSend",{}, smalltalk.IRSend)})}
1153
1374
  }),
1154
1375
  smalltalk.IRSend);
1155
1376
 
@@ -1159,8 +1380,8 @@ smalltalk.method({
1159
1380
  selector: "classSend:",
1160
1381
  fn: function (aClass){
1161
1382
  var self=this;
1162
- self["@classSend"]=aClass;
1163
- return self}
1383
+ return smalltalk.withContext(function($ctx1) {
1384
+ return self}, function($ctx1) {$ctx1.fill(self,"classSend:",{aClass:aClass}, smalltalk.IRSend)})}
1164
1385
  }),
1165
1386
  smalltalk.IRSend);
1166
1387
 
@@ -1170,8 +1391,10 @@ smalltalk.method({
1170
1391
  selector: "index",
1171
1392
  fn: function (){
1172
1393
  var self=this;
1173
- return self["@index"];
1174
- }
1394
+ return smalltalk.withContext(function($ctx1) {
1395
+ $1=self["@index"];
1396
+ return $1;
1397
+ }, function($ctx1) {$ctx1.fill(self,"index",{}, smalltalk.IRSend)})}
1175
1398
  }),
1176
1399
  smalltalk.IRSend);
1177
1400
 
@@ -1181,8 +1404,8 @@ smalltalk.method({
1181
1404
  selector: "index:",
1182
1405
  fn: function (anInteger){
1183
1406
  var self=this;
1184
- self["@index"]=anInteger;
1185
- return self}
1407
+ return smalltalk.withContext(function($ctx1) {
1408
+ return self}, function($ctx1) {$ctx1.fill(self,"index:",{anInteger:anInteger}, smalltalk.IRSend)})}
1186
1409
  }),
1187
1410
  smalltalk.IRSend);
1188
1411
 
@@ -1192,8 +1415,26 @@ smalltalk.method({
1192
1415
  selector: "isSend",
1193
1416
  fn: function (){
1194
1417
  var self=this;
1195
- return true;
1196
- }
1418
+ return smalltalk.withContext(function($ctx1) {
1419
+ }, function($ctx1) {$ctx1.fill(self,"isSend",{}, smalltalk.IRSend)})}
1420
+ }),
1421
+ smalltalk.IRSend);
1422
+
1423
+ smalltalk.addMethod(
1424
+ "_javascriptSelector",
1425
+ smalltalk.method({
1426
+ selector: "javascriptSelector",
1427
+ fn: function (){
1428
+ var self=this;
1429
+ return smalltalk.withContext(function($ctx1) {
1430
+ $2=_st(self)._classSend();
1431
+ if(($receiver = $2) == nil || $receiver == undefined){
1432
+ $1=_st(_st(self)._selector())._asSelector();
1433
+ } else {
1434
+ $1=_st(_st(self)._selector())._asSuperSelector();
1435
+ };
1436
+ return $1;
1437
+ }, function($ctx1) {$ctx1.fill(self,"javascriptSelector",{}, smalltalk.IRSend)})}
1197
1438
  }),
1198
1439
  smalltalk.IRSend);
1199
1440
 
@@ -1203,8 +1444,10 @@ smalltalk.method({
1203
1444
  selector: "selector",
1204
1445
  fn: function (){
1205
1446
  var self=this;
1206
- return self["@selector"];
1207
- }
1447
+ return smalltalk.withContext(function($ctx1) {
1448
+ $1=self["@selector"];
1449
+ return $1;
1450
+ }, function($ctx1) {$ctx1.fill(self,"selector",{}, smalltalk.IRSend)})}
1208
1451
  }),
1209
1452
  smalltalk.IRSend);
1210
1453
 
@@ -1214,8 +1457,8 @@ smalltalk.method({
1214
1457
  selector: "selector:",
1215
1458
  fn: function (aString){
1216
1459
  var self=this;
1217
- self["@selector"]=aString;
1218
- return self}
1460
+ return smalltalk.withContext(function($ctx1) {
1461
+ return self}, function($ctx1) {$ctx1.fill(self,"selector:",{aString:aString}, smalltalk.IRSend)})}
1219
1462
  }),
1220
1463
  smalltalk.IRSend);
1221
1464
 
@@ -1228,10 +1471,10 @@ smalltalk.method({
1228
1471
  selector: "accept:",
1229
1472
  fn: function (aVisitor){
1230
1473
  var self=this;
1231
- var $1;
1232
- $1=smalltalk.send(aVisitor,"_visitIRSequence_",[self]);
1474
+ return smalltalk.withContext(function($ctx1) {
1475
+ $1=_st(aVisitor)._visitIRSequence_(self);
1233
1476
  return $1;
1234
- }
1477
+ }, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRSequence)})}
1235
1478
  }),
1236
1479
  smalltalk.IRSequence);
1237
1480
 
@@ -1241,8 +1484,8 @@ smalltalk.method({
1241
1484
  selector: "isSequence",
1242
1485
  fn: function (){
1243
1486
  var self=this;
1244
- return true;
1245
- }
1487
+ return smalltalk.withContext(function($ctx1) {
1488
+ }, function($ctx1) {$ctx1.fill(self,"isSequence",{}, smalltalk.IRSequence)})}
1246
1489
  }),
1247
1490
  smalltalk.IRSequence);
1248
1491
 
@@ -1255,64 +1498,15 @@ smalltalk.method({
1255
1498
  selector: "accept:",
1256
1499
  fn: function (aVisitor){
1257
1500
  var self=this;
1258
- var $1;
1259
- $1=smalltalk.send(aVisitor,"_visitIRBlockSequence_",[self]);
1501
+ return smalltalk.withContext(function($ctx1) {
1502
+ $1=_st(aVisitor)._visitIRBlockSequence_(self);
1260
1503
  return $1;
1261
- }
1504
+ }, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRBlockSequence)})}
1262
1505
  }),
1263
1506
  smalltalk.IRBlockSequence);
1264
1507
 
1265
1508
 
1266
1509
 
1267
- smalltalk.addClass('IRTempDeclaration', smalltalk.IRInstruction, ['name'], 'Compiler-IR');
1268
- smalltalk.addMethod(
1269
- "_accept_",
1270
- smalltalk.method({
1271
- selector: "accept:",
1272
- fn: function (aVisitor){
1273
- var self=this;
1274
- var $1;
1275
- $1=smalltalk.send(aVisitor,"_visitIRTempDeclaration_",[self]);
1276
- return $1;
1277
- }
1278
- }),
1279
- smalltalk.IRTempDeclaration);
1280
-
1281
- smalltalk.addMethod(
1282
- "_isTempDeclaration",
1283
- smalltalk.method({
1284
- selector: "isTempDeclaration",
1285
- fn: function (){
1286
- var self=this;
1287
- return true;
1288
- }
1289
- }),
1290
- smalltalk.IRTempDeclaration);
1291
-
1292
- smalltalk.addMethod(
1293
- "_name",
1294
- smalltalk.method({
1295
- selector: "name",
1296
- fn: function (){
1297
- var self=this;
1298
- return self["@name"];
1299
- }
1300
- }),
1301
- smalltalk.IRTempDeclaration);
1302
-
1303
- smalltalk.addMethod(
1304
- "_name_",
1305
- smalltalk.method({
1306
- selector: "name:",
1307
- fn: function (aString){
1308
- var self=this;
1309
- self["@name"]=aString;
1310
- return self}
1311
- }),
1312
- smalltalk.IRTempDeclaration);
1313
-
1314
-
1315
-
1316
1510
  smalltalk.addClass('IRValue', smalltalk.IRInstruction, ['value'], 'Compiler-IR');
1317
1511
  smalltalk.addMethod(
1318
1512
  "_accept_",
@@ -1320,10 +1514,10 @@ smalltalk.method({
1320
1514
  selector: "accept:",
1321
1515
  fn: function (aVisitor){
1322
1516
  var self=this;
1323
- var $1;
1324
- $1=smalltalk.send(aVisitor,"_visitIRValue_",[self]);
1517
+ return smalltalk.withContext(function($ctx1) {
1518
+ $1=_st(aVisitor)._visitIRValue_(self);
1325
1519
  return $1;
1326
- }
1520
+ }, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRValue)})}
1327
1521
  }),
1328
1522
  smalltalk.IRValue);
1329
1523
 
@@ -1333,8 +1527,10 @@ smalltalk.method({
1333
1527
  selector: "value",
1334
1528
  fn: function (){
1335
1529
  var self=this;
1336
- return self["@value"];
1337
- }
1530
+ return smalltalk.withContext(function($ctx1) {
1531
+ $1=self["@value"];
1532
+ return $1;
1533
+ }, function($ctx1) {$ctx1.fill(self,"value",{}, smalltalk.IRValue)})}
1338
1534
  }),
1339
1535
  smalltalk.IRValue);
1340
1536
 
@@ -1344,8 +1540,8 @@ smalltalk.method({
1344
1540
  selector: "value:",
1345
1541
  fn: function (aString){
1346
1542
  var self=this;
1347
- self["@value"]=aString;
1348
- return self}
1543
+ return smalltalk.withContext(function($ctx1) {
1544
+ return self}, function($ctx1) {$ctx1.fill(self,"value:",{aString:aString}, smalltalk.IRValue)})}
1349
1545
  }),
1350
1546
  smalltalk.IRValue);
1351
1547
 
@@ -1358,10 +1554,10 @@ smalltalk.method({
1358
1554
  selector: "accept:",
1359
1555
  fn: function (aVisitor){
1360
1556
  var self=this;
1361
- var $1;
1362
- $1=smalltalk.send(aVisitor,"_visitIRVariable_",[self]);
1557
+ return smalltalk.withContext(function($ctx1) {
1558
+ $1=_st(aVisitor)._visitIRVariable_(self);
1363
1559
  return $1;
1364
- }
1560
+ }, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRVariable)})}
1365
1561
  }),
1366
1562
  smalltalk.IRVariable);
1367
1563
 
@@ -1371,8 +1567,8 @@ smalltalk.method({
1371
1567
  selector: "isVariable",
1372
1568
  fn: function (){
1373
1569
  var self=this;
1374
- return true;
1375
- }
1570
+ return smalltalk.withContext(function($ctx1) {
1571
+ }, function($ctx1) {$ctx1.fill(self,"isVariable",{}, smalltalk.IRVariable)})}
1376
1572
  }),
1377
1573
  smalltalk.IRVariable);
1378
1574
 
@@ -1382,8 +1578,10 @@ smalltalk.method({
1382
1578
  selector: "variable",
1383
1579
  fn: function (){
1384
1580
  var self=this;
1385
- return self["@variable"];
1386
- }
1581
+ return smalltalk.withContext(function($ctx1) {
1582
+ $1=self["@variable"];
1583
+ return $1;
1584
+ }, function($ctx1) {$ctx1.fill(self,"variable",{}, smalltalk.IRVariable)})}
1387
1585
  }),
1388
1586
  smalltalk.IRVariable);
1389
1587
 
@@ -1393,8 +1591,8 @@ smalltalk.method({
1393
1591
  selector: "variable:",
1394
1592
  fn: function (aScopeVariable){
1395
1593
  var self=this;
1396
- self["@variable"]=aScopeVariable;
1397
- return self}
1594
+ return smalltalk.withContext(function($ctx1) {
1595
+ return self}, function($ctx1) {$ctx1.fill(self,"variable:",{aScopeVariable:aScopeVariable}, smalltalk.IRVariable)})}
1398
1596
  }),
1399
1597
  smalltalk.IRVariable);
1400
1598
 
@@ -1407,10 +1605,10 @@ smalltalk.method({
1407
1605
  selector: "accept:",
1408
1606
  fn: function (aVisitor){
1409
1607
  var self=this;
1410
- var $1;
1411
- $1=smalltalk.send(aVisitor,"_visitIRVerbatim_",[self]);
1608
+ return smalltalk.withContext(function($ctx1) {
1609
+ $1=_st(aVisitor)._visitIRVerbatim_(self);
1412
1610
  return $1;
1413
- }
1611
+ }, function($ctx1) {$ctx1.fill(self,"accept:",{aVisitor:aVisitor}, smalltalk.IRVerbatim)})}
1414
1612
  }),
1415
1613
  smalltalk.IRVerbatim);
1416
1614
 
@@ -1420,8 +1618,10 @@ smalltalk.method({
1420
1618
  selector: "source",
1421
1619
  fn: function (){
1422
1620
  var self=this;
1423
- return self["@source"];
1424
- }
1621
+ return smalltalk.withContext(function($ctx1) {
1622
+ $1=self["@source"];
1623
+ return $1;
1624
+ }, function($ctx1) {$ctx1.fill(self,"source",{}, smalltalk.IRVerbatim)})}
1425
1625
  }),
1426
1626
  smalltalk.IRVerbatim);
1427
1627
 
@@ -1431,8 +1631,8 @@ smalltalk.method({
1431
1631
  selector: "source:",
1432
1632
  fn: function (aString){
1433
1633
  var self=this;
1434
- self["@source"]=aString;
1435
- return self}
1634
+ return smalltalk.withContext(function($ctx1) {
1635
+ return self}, function($ctx1) {$ctx1.fill(self,"source:",{aString:aString}, smalltalk.IRVerbatim)})}
1436
1636
  }),
1437
1637
  smalltalk.IRVerbatim);
1438
1638
 
@@ -1445,10 +1645,10 @@ smalltalk.method({
1445
1645
  selector: "visit:",
1446
1646
  fn: function (anIRInstruction){
1447
1647
  var self=this;
1448
- var $1;
1449
- $1=smalltalk.send(anIRInstruction,"_accept_",[self]);
1648
+ return smalltalk.withContext(function($ctx1) {
1649
+ $1=_st(anIRInstruction)._accept_(self);
1450
1650
  return $1;
1451
- }
1651
+ }, function($ctx1) {$ctx1.fill(self,"visit:",{anIRInstruction:anIRInstruction}, smalltalk.IRVisitor)})}
1452
1652
  }),
1453
1653
  smalltalk.IRVisitor);
1454
1654
 
@@ -1458,10 +1658,10 @@ smalltalk.method({
1458
1658
  selector: "visitIRAssignment:",
1459
1659
  fn: function (anIRAssignment){
1460
1660
  var self=this;
1461
- var $1;
1462
- $1=smalltalk.send(self,"_visitIRInstruction_",[anIRAssignment]);
1661
+ return smalltalk.withContext(function($ctx1) {
1662
+ $1=_st(self)._visitIRInstruction_(anIRAssignment);
1463
1663
  return $1;
1464
- }
1664
+ }, function($ctx1) {$ctx1.fill(self,"visitIRAssignment:",{anIRAssignment:anIRAssignment}, smalltalk.IRVisitor)})}
1465
1665
  }),
1466
1666
  smalltalk.IRVisitor);
1467
1667
 
@@ -1471,10 +1671,10 @@ smalltalk.method({
1471
1671
  selector: "visitIRBlockReturn:",
1472
1672
  fn: function (anIRBlockReturn){
1473
1673
  var self=this;
1474
- var $1;
1475
- $1=smalltalk.send(self,"_visitIRReturn_",[anIRBlockReturn]);
1674
+ return smalltalk.withContext(function($ctx1) {
1675
+ $1=_st(self)._visitIRReturn_(anIRBlockReturn);
1476
1676
  return $1;
1477
- }
1677
+ }, function($ctx1) {$ctx1.fill(self,"visitIRBlockReturn:",{anIRBlockReturn:anIRBlockReturn}, smalltalk.IRVisitor)})}
1478
1678
  }),
1479
1679
  smalltalk.IRVisitor);
1480
1680
 
@@ -1484,10 +1684,10 @@ smalltalk.method({
1484
1684
  selector: "visitIRBlockSequence:",
1485
1685
  fn: function (anIRBlockSequence){
1486
1686
  var self=this;
1487
- var $1;
1488
- $1=smalltalk.send(self,"_visitIRSequence_",[anIRBlockSequence]);
1687
+ return smalltalk.withContext(function($ctx1) {
1688
+ $1=_st(self)._visitIRSequence_(anIRBlockSequence);
1489
1689
  return $1;
1490
- }
1690
+ }, function($ctx1) {$ctx1.fill(self,"visitIRBlockSequence:",{anIRBlockSequence:anIRBlockSequence}, smalltalk.IRVisitor)})}
1491
1691
  }),
1492
1692
  smalltalk.IRVisitor);
1493
1693
 
@@ -1497,10 +1697,10 @@ smalltalk.method({
1497
1697
  selector: "visitIRClosure:",
1498
1698
  fn: function (anIRClosure){
1499
1699
  var self=this;
1500
- var $1;
1501
- $1=smalltalk.send(self,"_visitIRInstruction_",[anIRClosure]);
1700
+ return smalltalk.withContext(function($ctx1) {
1701
+ $1=_st(self)._visitIRInstruction_(anIRClosure);
1502
1702
  return $1;
1503
- }
1703
+ }, function($ctx1) {$ctx1.fill(self,"visitIRClosure:",{anIRClosure:anIRClosure}, smalltalk.IRVisitor)})}
1504
1704
  }),
1505
1705
  smalltalk.IRVisitor);
1506
1706
 
@@ -1510,10 +1710,10 @@ smalltalk.method({
1510
1710
  selector: "visitIRDynamicArray:",
1511
1711
  fn: function (anIRDynamicArray){
1512
1712
  var self=this;
1513
- var $1;
1514
- $1=smalltalk.send(self,"_visitIRInstruction_",[anIRDynamicArray]);
1713
+ return smalltalk.withContext(function($ctx1) {
1714
+ $1=_st(self)._visitIRInstruction_(anIRDynamicArray);
1515
1715
  return $1;
1516
- }
1716
+ }, function($ctx1) {$ctx1.fill(self,"visitIRDynamicArray:",{anIRDynamicArray:anIRDynamicArray}, smalltalk.IRVisitor)})}
1517
1717
  }),
1518
1718
  smalltalk.IRVisitor);
1519
1719
 
@@ -1523,10 +1723,10 @@ smalltalk.method({
1523
1723
  selector: "visitIRDynamicDictionary:",
1524
1724
  fn: function (anIRDynamicDictionary){
1525
1725
  var self=this;
1526
- var $1;
1527
- $1=smalltalk.send(self,"_visitIRInstruction_",[anIRDynamicDictionary]);
1726
+ return smalltalk.withContext(function($ctx1) {
1727
+ $1=_st(self)._visitIRInstruction_(anIRDynamicDictionary);
1528
1728
  return $1;
1529
- }
1729
+ }, function($ctx1) {$ctx1.fill(self,"visitIRDynamicDictionary:",{anIRDynamicDictionary:anIRDynamicDictionary}, smalltalk.IRVisitor)})}
1530
1730
  }),
1531
1731
  smalltalk.IRVisitor);
1532
1732
 
@@ -1536,10 +1736,10 @@ smalltalk.method({
1536
1736
  selector: "visitIRInlinedClosure:",
1537
1737
  fn: function (anIRInlinedClosure){
1538
1738
  var self=this;
1539
- var $1;
1540
- $1=smalltalk.send(self,"_visitIRClosure_",[anIRInlinedClosure]);
1739
+ return smalltalk.withContext(function($ctx1) {
1740
+ $1=_st(self)._visitIRClosure_(anIRInlinedClosure);
1541
1741
  return $1;
1542
- }
1742
+ }, function($ctx1) {$ctx1.fill(self,"visitIRInlinedClosure:",{anIRInlinedClosure:anIRInlinedClosure}, smalltalk.IRVisitor)})}
1543
1743
  }),
1544
1744
  smalltalk.IRVisitor);
1545
1745
 
@@ -1549,10 +1749,10 @@ smalltalk.method({
1549
1749
  selector: "visitIRInlinedSequence:",
1550
1750
  fn: function (anIRInlinedSequence){
1551
1751
  var self=this;
1552
- var $1;
1553
- $1=smalltalk.send(self,"_visitIRSequence_",[anIRInlinedSequence]);
1752
+ return smalltalk.withContext(function($ctx1) {
1753
+ $1=_st(self)._visitIRSequence_(anIRInlinedSequence);
1554
1754
  return $1;
1555
- }
1755
+ }, function($ctx1) {$ctx1.fill(self,"visitIRInlinedSequence:",{anIRInlinedSequence:anIRInlinedSequence}, smalltalk.IRVisitor)})}
1556
1756
  }),
1557
1757
  smalltalk.IRVisitor);
1558
1758
 
@@ -1562,11 +1762,13 @@ smalltalk.method({
1562
1762
  selector: "visitIRInstruction:",
1563
1763
  fn: function (anIRInstruction){
1564
1764
  var self=this;
1565
- smalltalk.send(smalltalk.send(anIRInstruction,"_instructions",[]),"_do_",[(function(each){
1566
- return smalltalk.send(self,"_visit_",[each]);
1567
- })]);
1568
- return anIRInstruction;
1569
- }
1765
+ return smalltalk.withContext(function($ctx1) {
1766
+ _st(_st(anIRInstruction)._instructions())._do_((function(each){
1767
+ return smalltalk.withContext(function($ctx2) {
1768
+ }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}));
1769
+ $1=anIRInstruction;
1770
+ return $1;
1771
+ }, function($ctx1) {$ctx1.fill(self,"visitIRInstruction:",{anIRInstruction:anIRInstruction}, smalltalk.IRVisitor)})}
1570
1772
  }),
1571
1773
  smalltalk.IRVisitor);
1572
1774
 
@@ -1576,10 +1778,10 @@ smalltalk.method({
1576
1778
  selector: "visitIRMethod:",
1577
1779
  fn: function (anIRMethod){
1578
1780
  var self=this;
1579
- var $1;
1580
- $1=smalltalk.send(self,"_visitIRInstruction_",[anIRMethod]);
1781
+ return smalltalk.withContext(function($ctx1) {
1782
+ $1=_st(self)._visitIRInstruction_(anIRMethod);
1581
1783
  return $1;
1582
- }
1784
+ }, function($ctx1) {$ctx1.fill(self,"visitIRMethod:",{anIRMethod:anIRMethod}, smalltalk.IRVisitor)})}
1583
1785
  }),
1584
1786
  smalltalk.IRVisitor);
1585
1787
 
@@ -1589,10 +1791,10 @@ smalltalk.method({
1589
1791
  selector: "visitIRNonLocalReturn:",
1590
1792
  fn: function (anIRNonLocalReturn){
1591
1793
  var self=this;
1592
- var $1;
1593
- $1=smalltalk.send(self,"_visitIRInstruction_",[anIRNonLocalReturn]);
1794
+ return smalltalk.withContext(function($ctx1) {
1795
+ $1=_st(self)._visitIRInstruction_(anIRNonLocalReturn);
1594
1796
  return $1;
1595
- }
1797
+ }, function($ctx1) {$ctx1.fill(self,"visitIRNonLocalReturn:",{anIRNonLocalReturn:anIRNonLocalReturn}, smalltalk.IRVisitor)})}
1596
1798
  }),
1597
1799
  smalltalk.IRVisitor);
1598
1800
 
@@ -1602,10 +1804,10 @@ smalltalk.method({
1602
1804
  selector: "visitIRNonLocalReturnHandling:",
1603
1805
  fn: function (anIRNonLocalReturnHandling){
1604
1806
  var self=this;
1605
- var $1;
1606
- $1=smalltalk.send(self,"_visitIRInstruction_",[anIRNonLocalReturnHandling]);
1807
+ return smalltalk.withContext(function($ctx1) {
1808
+ $1=_st(self)._visitIRInstruction_(anIRNonLocalReturnHandling);
1607
1809
  return $1;
1608
- }
1810
+ }, function($ctx1) {$ctx1.fill(self,"visitIRNonLocalReturnHandling:",{anIRNonLocalReturnHandling:anIRNonLocalReturnHandling}, smalltalk.IRVisitor)})}
1609
1811
  }),
1610
1812
  smalltalk.IRVisitor);
1611
1813
 
@@ -1615,10 +1817,10 @@ smalltalk.method({
1615
1817
  selector: "visitIRReturn:",
1616
1818
  fn: function (anIRReturn){
1617
1819
  var self=this;
1618
- var $1;
1619
- $1=smalltalk.send(self,"_visitIRInstruction_",[anIRReturn]);
1820
+ return smalltalk.withContext(function($ctx1) {
1821
+ $1=_st(self)._visitIRInstruction_(anIRReturn);
1620
1822
  return $1;
1621
- }
1823
+ }, function($ctx1) {$ctx1.fill(self,"visitIRReturn:",{anIRReturn:anIRReturn}, smalltalk.IRVisitor)})}
1622
1824
  }),
1623
1825
  smalltalk.IRVisitor);
1624
1826
 
@@ -1628,10 +1830,10 @@ smalltalk.method({
1628
1830
  selector: "visitIRSend:",
1629
1831
  fn: function (anIRSend){
1630
1832
  var self=this;
1631
- var $1;
1632
- $1=smalltalk.send(self,"_visitIRInstruction_",[anIRSend]);
1833
+ return smalltalk.withContext(function($ctx1) {
1834
+ $1=_st(self)._visitIRInstruction_(anIRSend);
1633
1835
  return $1;
1634
- }
1836
+ }, function($ctx1) {$ctx1.fill(self,"visitIRSend:",{anIRSend:anIRSend}, smalltalk.IRVisitor)})}
1635
1837
  }),
1636
1838
  smalltalk.IRVisitor);
1637
1839
 
@@ -1641,10 +1843,10 @@ smalltalk.method({
1641
1843
  selector: "visitIRSequence:",
1642
1844
  fn: function (anIRSequence){
1643
1845
  var self=this;
1644
- var $1;
1645
- $1=smalltalk.send(self,"_visitIRInstruction_",[anIRSequence]);
1846
+ return smalltalk.withContext(function($ctx1) {
1847
+ $1=_st(self)._visitIRInstruction_(anIRSequence);
1646
1848
  return $1;
1647
- }
1849
+ }, function($ctx1) {$ctx1.fill(self,"visitIRSequence:",{anIRSequence:anIRSequence}, smalltalk.IRVisitor)})}
1648
1850
  }),
1649
1851
  smalltalk.IRVisitor);
1650
1852
 
@@ -1654,10 +1856,10 @@ smalltalk.method({
1654
1856
  selector: "visitIRTempDeclaration:",
1655
1857
  fn: function (anIRTempDeclaration){
1656
1858
  var self=this;
1657
- var $1;
1658
- $1=smalltalk.send(self,"_visitIRInstruction_",[anIRTempDeclaration]);
1859
+ return smalltalk.withContext(function($ctx1) {
1860
+ $1=_st(self)._visitIRInstruction_(anIRTempDeclaration);
1659
1861
  return $1;
1660
- }
1862
+ }, function($ctx1) {$ctx1.fill(self,"visitIRTempDeclaration:",{anIRTempDeclaration:anIRTempDeclaration}, smalltalk.IRVisitor)})}
1661
1863
  }),
1662
1864
  smalltalk.IRVisitor);
1663
1865
 
@@ -1667,10 +1869,10 @@ smalltalk.method({
1667
1869
  selector: "visitIRValue:",
1668
1870
  fn: function (anIRValue){
1669
1871
  var self=this;
1670
- var $1;
1671
- $1=smalltalk.send(self,"_visitIRInstruction_",[anIRValue]);
1872
+ return smalltalk.withContext(function($ctx1) {
1873
+ $1=_st(self)._visitIRInstruction_(anIRValue);
1672
1874
  return $1;
1673
- }
1875
+ }, function($ctx1) {$ctx1.fill(self,"visitIRValue:",{anIRValue:anIRValue}, smalltalk.IRVisitor)})}
1674
1876
  }),
1675
1877
  smalltalk.IRVisitor);
1676
1878
 
@@ -1680,10 +1882,10 @@ smalltalk.method({
1680
1882
  selector: "visitIRVariable:",
1681
1883
  fn: function (anIRVariable){
1682
1884
  var self=this;
1683
- var $1;
1684
- $1=smalltalk.send(self,"_visitIRInstruction_",[anIRVariable]);
1885
+ return smalltalk.withContext(function($ctx1) {
1886
+ $1=_st(self)._visitIRInstruction_(anIRVariable);
1685
1887
  return $1;
1686
- }
1888
+ }, function($ctx1) {$ctx1.fill(self,"visitIRVariable:",{anIRVariable:anIRVariable}, smalltalk.IRVisitor)})}
1687
1889
  }),
1688
1890
  smalltalk.IRVisitor);
1689
1891
 
@@ -1693,10 +1895,10 @@ smalltalk.method({
1693
1895
  selector: "visitIRVerbatim:",
1694
1896
  fn: function (anIRVerbatim){
1695
1897
  var self=this;
1696
- var $1;
1697
- $1=smalltalk.send(self,"_visitIRInstruction_",[anIRVerbatim]);
1898
+ return smalltalk.withContext(function($ctx1) {
1899
+ $1=_st(self)._visitIRInstruction_(anIRVerbatim);
1698
1900
  return $1;
1699
- }
1901
+ }, function($ctx1) {$ctx1.fill(self,"visitIRVerbatim:",{anIRVerbatim:anIRVerbatim}, smalltalk.IRVisitor)})}
1700
1902
  }),
1701
1903
  smalltalk.IRVisitor);
1702
1904
 
@@ -1709,10 +1911,10 @@ smalltalk.method({
1709
1911
  selector: "contents",
1710
1912
  fn: function (){
1711
1913
  var self=this;
1712
- var $1;
1713
- $1=smalltalk.send(smalltalk.send(self,"_stream",[]),"_contents",[]);
1914
+ return smalltalk.withContext(function($ctx1) {
1915
+ $1=_st(_st(self)._stream())._contents();
1714
1916
  return $1;
1715
- }
1917
+ }, function($ctx1) {$ctx1.fill(self,"contents",{}, smalltalk.IRJSTranslator)})}
1716
1918
  }),
1717
1919
  smalltalk.IRJSTranslator);
1718
1920
 
@@ -1722,9 +1924,9 @@ smalltalk.method({
1722
1924
  selector: "initialize",
1723
1925
  fn: function (){
1724
1926
  var self=this;
1725
- smalltalk.send(self,"_initialize",[],smalltalk.IRVisitor);
1726
- self["@stream"]=smalltalk.send((smalltalk.JSStream || JSStream),"_new",[]);
1727
- return self}
1927
+ return smalltalk.withContext(function($ctx1) {
1928
+ self["@stream"]=_st((smalltalk.JSStream || JSStream))._new();
1929
+ return self}, function($ctx1) {$ctx1.fill(self,"initialize",{}, smalltalk.IRJSTranslator)})}
1728
1930
  }),
1729
1931
  smalltalk.IRJSTranslator);
1730
1932
 
@@ -1734,8 +1936,10 @@ smalltalk.method({
1734
1936
  selector: "stream",
1735
1937
  fn: function (){
1736
1938
  var self=this;
1737
- return self["@stream"];
1738
- }
1939
+ return smalltalk.withContext(function($ctx1) {
1940
+ $1=self["@stream"];
1941
+ return $1;
1942
+ }, function($ctx1) {$ctx1.fill(self,"stream",{}, smalltalk.IRJSTranslator)})}
1739
1943
  }),
1740
1944
  smalltalk.IRJSTranslator);
1741
1945
 
@@ -1745,8 +1949,8 @@ smalltalk.method({
1745
1949
  selector: "stream:",
1746
1950
  fn: function (aStream){
1747
1951
  var self=this;
1748
- self["@stream"]=aStream;
1749
- return self}
1952
+ return smalltalk.withContext(function($ctx1) {
1953
+ return self}, function($ctx1) {$ctx1.fill(self,"stream:",{aStream:aStream}, smalltalk.IRJSTranslator)})}
1750
1954
  }),
1751
1955
  smalltalk.IRJSTranslator);
1752
1956
 
@@ -1756,10 +1960,10 @@ smalltalk.method({
1756
1960
  selector: "visitIRAssignment:",
1757
1961
  fn: function (anIRAssignment){
1758
1962
  var self=this;
1759
- smalltalk.send(self,"_visit_",[smalltalk.send(smalltalk.send(anIRAssignment,"_instructions",[]),"_first",[])]);
1760
- smalltalk.send(smalltalk.send(self,"_stream",[]),"_nextPutAssignment",[]);
1761
- smalltalk.send(self,"_visit_",[smalltalk.send(smalltalk.send(anIRAssignment,"_instructions",[]),"_last",[])]);
1762
- return self}
1963
+ return smalltalk.withContext(function($ctx1) {
1964
+ _st(_st(self)._stream())._nextPutAssignment();
1965
+ _st(self)._visit_(_st(_st(anIRAssignment)._instructions())._last());
1966
+ return self}, function($ctx1) {$ctx1.fill(self,"visitIRAssignment:",{anIRAssignment:anIRAssignment}, smalltalk.IRJSTranslator)})}
1763
1967
  }),
1764
1968
  smalltalk.IRJSTranslator);
1765
1969
 
@@ -1769,10 +1973,15 @@ smalltalk.method({
1769
1973
  selector: "visitIRClosure:",
1770
1974
  fn: function (anIRClosure){
1771
1975
  var self=this;
1772
- smalltalk.send(smalltalk.send(self,"_stream",[]),"_nextPutClosureWith_arguments_",[(function(){
1773
- return smalltalk.send(self,"_visitIRClosure_",[anIRClosure],smalltalk.IRVisitor);
1774
- }),smalltalk.send(anIRClosure,"_arguments",[])]);
1775
- return self}
1976
+ return smalltalk.withContext(function($ctx1) {
1977
+ return smalltalk.withContext(function($ctx2) {
1978
+ return smalltalk.withContext(function($ctx3) {
1979
+ }, function($ctx3) {$ctx3.fillBlock({each:each},$ctx1)})})));
1980
+ return _st(_st(self)._stream())._nextPutBlockContextFor_during_(anIRClosure,(function(){
1981
+ return smalltalk.withContext(function($ctx3) {
1982
+ }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})}));
1983
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}),_st(anIRClosure)._arguments());
1984
+ return self}, function($ctx1) {$ctx1.fill(self,"visitIRClosure:",{anIRClosure:anIRClosure}, smalltalk.IRJSTranslator)})}
1776
1985
  }),
1777
1986
  smalltalk.IRJSTranslator);
1778
1987
 
@@ -1782,14 +1991,14 @@ smalltalk.method({
1782
1991
  selector: "visitIRDynamicArray:",
1783
1992
  fn: function (anIRDynamicArray){
1784
1993
  var self=this;
1785
- smalltalk.send(smalltalk.send(self,"_stream",[]),"_nextPutAll_",["["]);
1786
- smalltalk.send(smalltalk.send(anIRDynamicArray,"_instructions",[]),"_do_separatedBy_",[(function(each){
1787
- return smalltalk.send(self,"_visit_",[each]);
1788
- }),(function(){
1789
- return smalltalk.send(smalltalk.send(self,"_stream",[]),"_nextPutAll_",[","]);
1790
- })]);
1791
- smalltalk.send(self["@stream"],"_nextPutAll_",["]"]);
1792
- return self}
1994
+ return smalltalk.withContext(function($ctx1) {
1995
+ _st(_st(anIRDynamicArray)._instructions())._do_separatedBy_((function(each){
1996
+ return smalltalk.withContext(function($ctx2) {
1997
+ }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}),(function(){
1998
+ return smalltalk.withContext(function($ctx2) {
1999
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
2000
+ _st(self["@stream"])._nextPutAll_("]");
2001
+ return self}, function($ctx1) {$ctx1.fill(self,"visitIRDynamicArray:",{anIRDynamicArray:anIRDynamicArray}, smalltalk.IRJSTranslator)})}
1793
2002
  }),
1794
2003
  smalltalk.IRJSTranslator);
1795
2004
 
@@ -1799,14 +2008,14 @@ smalltalk.method({
1799
2008
  selector: "visitIRDynamicDictionary:",
1800
2009
  fn: function (anIRDynamicDictionary){
1801
2010
  var self=this;
1802
- smalltalk.send(smalltalk.send(self,"_stream",[]),"_nextPutAll_",["smalltalk.HashedCollection._fromPairs_(["]);
1803
- smalltalk.send(smalltalk.send(anIRDynamicDictionary,"_instructions",[]),"_do_separatedBy_",[(function(each){
1804
- return smalltalk.send(self,"_visit_",[each]);
1805
- }),(function(){
1806
- return smalltalk.send(smalltalk.send(self,"_stream",[]),"_nextPutAll_",[","]);
1807
- })]);
1808
- smalltalk.send(smalltalk.send(self,"_stream",[]),"_nextPutAll_",["])"]);
1809
- return self}
2011
+ return smalltalk.withContext(function($ctx1) {
2012
+ _st(_st(anIRDynamicDictionary)._instructions())._do_separatedBy_((function(each){
2013
+ return smalltalk.withContext(function($ctx2) {
2014
+ }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}),(function(){
2015
+ return smalltalk.withContext(function($ctx2) {
2016
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
2017
+ _st(_st(self)._stream())._nextPutAll_("])");
2018
+ return self}, function($ctx1) {$ctx1.fill(self,"visitIRDynamicDictionary:",{anIRDynamicDictionary:anIRDynamicDictionary}, smalltalk.IRJSTranslator)})}
1810
2019
  }),
1811
2020
  smalltalk.IRJSTranslator);
1812
2021
 
@@ -1816,26 +2025,39 @@ smalltalk.method({
1816
2025
  selector: "visitIRMethod:",
1817
2026
  fn: function (anIRMethod){
1818
2027
  var self=this;
1819
- var $1,$2;
1820
- smalltalk.send(smalltalk.send(self,"_stream",[]),"_nextPutMethodDeclaration_with_",[anIRMethod,(function(){
1821
- return smalltalk.send(smalltalk.send(self,"_stream",[]),"_nextPutFunctionWith_arguments_",[(function(){
1822
- $1=smalltalk.send(smalltalk.send(anIRMethod,"_internalVariables",[]),"_notEmpty",[]);
1823
- if(smalltalk.assert($1)){
1824
- smalltalk.send(smalltalk.send(self,"_stream",[]),"_nextPutVars_",[smalltalk.send(smalltalk.send(smalltalk.send(anIRMethod,"_internalVariables",[]),"_asArray",[]),"_collect_",[(function(each){
1825
- return smalltalk.send(smalltalk.send(each,"_variable",[]),"_alias",[]);
1826
- })])]);
2028
+ return smalltalk.withContext(function($ctx1) {
2029
+ $1=_st(self)._stream();
2030
+ $2=anIRMethod;
2031
+ $3=(function(){
2032
+ return smalltalk.withContext(function($ctx2) {
2033
+ $5=(function(){
2034
+ return smalltalk.withContext(function($ctx3) {
2035
+ return smalltalk.withContext(function($ctx4) {
2036
+ }, function($ctx4) {$ctx4.fillBlock({each:each},$ctx1)})})));
2037
+ $6=_st(self)._stream();
2038
+ $7=anIRMethod;
2039
+ $8=(function(){
2040
+ return smalltalk.withContext(function($ctx4) {
2041
+ if(smalltalk.assert($9)){
2042
+ _st(_st(self)._stream())._nextPutVars_(_st(_st(_st(anIRMethod)._internalVariables())._asArray())._collect_((function(each){
2043
+ return smalltalk.withContext(function($ctx5) {
2044
+ }, function($ctx5) {$ctx5.fillBlock({each:each},$ctx1)})})));
1827
2045
  };
1828
- $2=smalltalk.send(smalltalk.send(anIRMethod,"_scope",[]),"_hasNonLocalReturn",[]);
1829
- if(smalltalk.assert($2)){
1830
- return smalltalk.send(smalltalk.send(self,"_stream",[]),"_nextPutNonLocalReturnHandlingWith_",[(function(){
1831
- return smalltalk.send(self,"_visitIRMethod_",[anIRMethod],smalltalk.IRVisitor);
1832
- })]);
2046
+ $10=_st(_st(anIRMethod)._scope())._hasNonLocalReturn();
2047
+ if(smalltalk.assert($10)){
2048
+ return _st(_st(self)._stream())._nextPutNonLocalReturnHandlingWith_((function(){
2049
+ return smalltalk.withContext(function($ctx5) {
2050
+ }, function($ctx5) {$ctx5.fillBlock({},$ctx1)})}));
1833
2051
  } else {
1834
- return smalltalk.send(self,"_visitIRMethod_",[anIRMethod],smalltalk.IRVisitor);
2052
+ return smalltalk.IRVisitor.fn.prototype._visitIRMethod_.apply(_st(self), [anIRMethod]);
1835
2053
  };
1836
- }),smalltalk.send(anIRMethod,"_arguments",[])]);
1837
- })]);
1838
- return self}
2054
+ }, function($ctx4) {$ctx4.fillBlock({},$ctx1)})});
2055
+ return _st($6)._nextPutContextFor_during_($7,$8);
2056
+ }, function($ctx3) {$ctx3.fillBlock({},$ctx1)})});
2057
+ return _st($4)._nextPutFunctionWith_arguments_($5,_st(anIRMethod)._arguments());
2058
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})});
2059
+ _st($1)._nextPutMethodDeclaration_with_($2,$3);
2060
+ return self}, function($ctx1) {$ctx1.fill(self,"visitIRMethod:",{anIRMethod:anIRMethod}, smalltalk.IRJSTranslator)})}
1839
2061
  }),
1840
2062
  smalltalk.IRJSTranslator);
1841
2063
 
@@ -1845,10 +2067,10 @@ smalltalk.method({
1845
2067
  selector: "visitIRNonLocalReturn:",
1846
2068
  fn: function (anIRNonLocalReturn){
1847
2069
  var self=this;
1848
- smalltalk.send(smalltalk.send(self,"_stream",[]),"_nextPutNonLocalReturnWith_",[(function(){
1849
- return smalltalk.send(self,"_visitIRNonLocalReturn_",[anIRNonLocalReturn],smalltalk.IRVisitor);
1850
- })]);
1851
- return self}
2070
+ return smalltalk.withContext(function($ctx1) {
2071
+ return smalltalk.withContext(function($ctx2) {
2072
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
2073
+ return self}, function($ctx1) {$ctx1.fill(self,"visitIRNonLocalReturn:",{anIRNonLocalReturn:anIRNonLocalReturn}, smalltalk.IRJSTranslator)})}
1852
2074
  }),
1853
2075
  smalltalk.IRJSTranslator);
1854
2076
 
@@ -1858,10 +2080,10 @@ smalltalk.method({
1858
2080
  selector: "visitIRReturn:",
1859
2081
  fn: function (anIRReturn){
1860
2082
  var self=this;
1861
- smalltalk.send(smalltalk.send(self,"_stream",[]),"_nextPutReturnWith_",[(function(){
1862
- return smalltalk.send(self,"_visitIRReturn_",[anIRReturn],smalltalk.IRVisitor);
1863
- })]);
1864
- return self}
2083
+ return smalltalk.withContext(function($ctx1) {
2084
+ return smalltalk.withContext(function($ctx2) {
2085
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
2086
+ return self}, function($ctx1) {$ctx1.fill(self,"visitIRReturn:",{anIRReturn:anIRReturn}, smalltalk.IRJSTranslator)})}
1865
2087
  }),
1866
2088
  smalltalk.IRJSTranslator);
1867
2089
 
@@ -1871,24 +2093,34 @@ smalltalk.method({
1871
2093
  selector: "visitIRSend:",
1872
2094
  fn: function (anIRSend){
1873
2095
  var self=this;
1874
- var $1;
1875
- smalltalk.send(smalltalk.send(self,"_stream",[]),"_nextPutAll_",["smalltalk.send("]);
1876
- smalltalk.send(self,"_visit_",[smalltalk.send(smalltalk.send(anIRSend,"_instructions",[]),"_first",[])]);
1877
- smalltalk.send(smalltalk.send(self,"_stream",[]),"_nextPutAll_",[smalltalk.send(smalltalk.send(",\x22","__comma",[smalltalk.send(smalltalk.send(anIRSend,"_selector",[]),"_asSelector",[])]),"__comma",["\x22,["])]);
1878
- smalltalk.send(smalltalk.send(smalltalk.send(anIRSend,"_instructions",[]),"_allButFirst",[]),"_do_separatedBy_",[(function(each){
1879
- return smalltalk.send(self,"_visit_",[each]);
1880
- }),(function(){
1881
- return smalltalk.send(smalltalk.send(self,"_stream",[]),"_nextPutAll_",[","]);
1882
- })]);
1883
- smalltalk.send(smalltalk.send(self,"_stream",[]),"_nextPutAll_",["]"]);
1884
- $1=smalltalk.send(anIRSend,"_classSend",[]);
2096
+ return smalltalk.withContext(function($ctx1) {
2097
+ $1=_st(anIRSend)._classSend();
1885
2098
  if(($receiver = $1) == nil || $receiver == undefined){
1886
- $1;
2099
+ _st(_st(self)._stream())._nextPutAll_("_st(");
2100
+ _st(self)._visit_(_st(_st(anIRSend)._instructions())._first());
2101
+ _st(_st(self)._stream())._nextPutAll_(_st(_st(").").__comma(_st(_st(anIRSend)._selector())._asSelector())).__comma("("));
2102
+ _st(_st(_st(anIRSend)._instructions())._allButFirst())._do_separatedBy_((function(each){
2103
+ return smalltalk.withContext(function($ctx2) {
2104
+ }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}),(function(){
2105
+ return smalltalk.withContext(function($ctx2) {
2106
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
2107
+ _st(_st(self)._stream())._nextPutAll_(")");
1887
2108
  } else {
1888
- smalltalk.send(smalltalk.send(self,"_stream",[]),"_nextPutAll_",[smalltalk.send(",","__comma",[smalltalk.send(smalltalk.send(anIRSend,"_classSend",[]),"_asJavascript",[])])]);
2109
+ $2=_st(self)._stream();
2110
+ _st($2)._nextPutAll_(_st(_st(_st(anIRSend)._classSend())._asJavascript()).__comma(".fn.prototype."));
2111
+ _st($2)._nextPutAll_(_st(_st(_st(anIRSend)._selector())._asSelector()).__comma(".apply("));
2112
+ $3=_st($2)._nextPutAll_("_st(");
2113
+ $3;
2114
+ _st(self)._visit_(_st(_st(anIRSend)._instructions())._first());
2115
+ _st(_st(self)._stream())._nextPutAll_("), [");
2116
+ _st(_st(_st(anIRSend)._instructions())._allButFirst())._do_separatedBy_((function(each){
2117
+ return smalltalk.withContext(function($ctx2) {
2118
+ }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}),(function(){
2119
+ return smalltalk.withContext(function($ctx2) {
2120
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
2121
+ _st(_st(self)._stream())._nextPutAll_("])");
1889
2122
  };
1890
- smalltalk.send(smalltalk.send(self,"_stream",[]),"_nextPutAll_",[")"]);
1891
- return self}
2123
+ return self}, function($ctx1) {$ctx1.fill(self,"visitIRSend:",{anIRSend:anIRSend}, smalltalk.IRJSTranslator)})}
1892
2124
  }),
1893
2125
  smalltalk.IRJSTranslator);
1894
2126
 
@@ -1898,12 +2130,12 @@ smalltalk.method({
1898
2130
  selector: "visitIRSequence:",
1899
2131
  fn: function (anIRSequence){
1900
2132
  var self=this;
1901
- smalltalk.send(smalltalk.send(self,"_stream",[]),"_nextPutSequenceWith_",[(function(){
1902
- return smalltalk.send(smalltalk.send(anIRSequence,"_instructions",[]),"_do_",[(function(each){
1903
- return smalltalk.send(smalltalk.send(self,"_stream",[]),"_nextPutStatementWith_",[smalltalk.send(self,"_visit_",[each])]);
1904
- })]);
1905
- })]);
1906
- return self}
2133
+ return smalltalk.withContext(function($ctx1) {
2134
+ return smalltalk.withContext(function($ctx2) {
2135
+ return smalltalk.withContext(function($ctx3) {
2136
+ }, function($ctx3) {$ctx3.fillBlock({each:each},$ctx1)})}));
2137
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
2138
+ return self}, function($ctx1) {$ctx1.fill(self,"visitIRSequence:",{anIRSequence:anIRSequence}, smalltalk.IRJSTranslator)})}
1907
2139
  }),
1908
2140
  smalltalk.IRJSTranslator);
1909
2141
 
@@ -1913,8 +2145,7 @@ smalltalk.method({
1913
2145
  selector: "visitIRTempDeclaration:",
1914
2146
  fn: function (anIRTempDeclaration){
1915
2147
  var self=this;
1916
- smalltalk.send(smalltalk.send(self,"_stream",[]),"_nextPutVar_",[smalltalk.send(smalltalk.send(anIRTempDeclaration,"_name",[]),"_asVariableName",[])]);
1917
- return self}
2148
+ return smalltalk.withContext(function($ctx1) {
1918
2149
  }),
1919
2150
  smalltalk.IRJSTranslator);
1920
2151
 
@@ -1924,8 +2155,8 @@ smalltalk.method({
1924
2155
  selector: "visitIRValue:",
1925
2156
  fn: function (anIRValue){
1926
2157
  var self=this;
1927
- smalltalk.send(smalltalk.send(self,"_stream",[]),"_nextPutAll_",[smalltalk.send(smalltalk.send(anIRValue,"_value",[]),"_asJavascript",[])]);
1928
- return self}
2158
+ return smalltalk.withContext(function($ctx1) {
2159
+ return self}, function($ctx1) {$ctx1.fill(self,"visitIRValue:",{anIRValue:anIRValue}, smalltalk.IRJSTranslator)})}
1929
2160
  }),
1930
2161
  smalltalk.IRJSTranslator);
1931
2162
 
@@ -1935,14 +2166,14 @@ smalltalk.method({
1935
2166
  selector: "visitIRVariable:",
1936
2167
  fn: function (anIRVariable){
1937
2168
  var self=this;
1938
- var $1;
1939
- $1=smalltalk.send(smalltalk.send(smalltalk.send(anIRVariable,"_variable",[]),"_name",[]),"__eq",["thisContext"]);
2169
+ return smalltalk.withContext(function($ctx1) {
2170
+ $1=_st(_st(_st(anIRVariable)._variable())._name()).__eq("thisContext");
1940
2171
  if(smalltalk.assert($1)){
1941
- smalltalk.send(smalltalk.send(self,"_stream",[]),"_nextPutAll_",["smalltalk.getThisContext()"]);
2172
+ _st(_st(self)._stream())._nextPutAll_("smalltalk.getThisContext()");
1942
2173
  } else {
1943
- smalltalk.send(smalltalk.send(self,"_stream",[]),"_nextPutAll_",[smalltalk.send(smalltalk.send(anIRVariable,"_variable",[]),"_alias",[])]);
2174
+ _st(_st(self)._stream())._nextPutAll_(_st(_st(anIRVariable)._variable())._alias());
1944
2175
  };
1945
- return self}
2176
+ return self}, function($ctx1) {$ctx1.fill(self,"visitIRVariable:",{anIRVariable:anIRVariable}, smalltalk.IRJSTranslator)})}
1946
2177
  }),
1947
2178
  smalltalk.IRJSTranslator);
1948
2179
 
@@ -1952,10 +2183,10 @@ smalltalk.method({
1952
2183
  selector: "visitIRVerbatim:",
1953
2184
  fn: function (anIRVerbatim){
1954
2185
  var self=this;
1955
- smalltalk.send(smalltalk.send(self,"_stream",[]),"_nextPutStatementWith_",[(function(){
1956
- return smalltalk.send(smalltalk.send(self,"_stream",[]),"_nextPutAll_",[smalltalk.send(anIRVerbatim,"_source",[])]);
1957
- })]);
1958
- return self}
2186
+ return smalltalk.withContext(function($ctx1) {
2187
+ return smalltalk.withContext(function($ctx2) {
2188
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
2189
+ return self}, function($ctx1) {$ctx1.fill(self,"visitIRVerbatim:",{anIRVerbatim:anIRVerbatim}, smalltalk.IRJSTranslator)})}
1959
2190
  }),
1960
2191
  smalltalk.IRJSTranslator);
1961
2192
 
@@ -1968,10 +2199,10 @@ smalltalk.method({
1968
2199
  selector: "contents",
1969
2200
  fn: function (){
1970
2201
  var self=this;
1971
- var $1;
1972
- $1=smalltalk.send(self["@stream"],"_contents",[]);
2202
+ return smalltalk.withContext(function($ctx1) {
2203
+ $1=_st(self["@stream"])._contents();
1973
2204
  return $1;
1974
- }
2205
+ }, function($ctx1) {$ctx1.fill(self,"contents",{}, smalltalk.JSStream)})}
1975
2206
  }),
1976
2207
  smalltalk.JSStream);
1977
2208
 
@@ -1981,9 +2212,9 @@ smalltalk.method({
1981
2212
  selector: "initialize",
1982
2213
  fn: function (){
1983
2214
  var self=this;
1984
- smalltalk.send(self,"_initialize",[],smalltalk.Object);
1985
- self["@stream"]=smalltalk.send("","_writeStream",[]);
1986
- return self}
2215
+ return smalltalk.withContext(function($ctx1) {
2216
+ self["@stream"]=_st("")._writeStream();
2217
+ return self}, function($ctx1) {$ctx1.fill(self,"initialize",{}, smalltalk.JSStream)})}
1987
2218
  }),
1988
2219
  smalltalk.JSStream);
1989
2220
 
@@ -1993,8 +2224,8 @@ smalltalk.method({
1993
2224
  selector: "lf",
1994
2225
  fn: function (){
1995
2226
  var self=this;
1996
- smalltalk.send(self["@stream"],"_lf",[]);
1997
- return self}
2227
+ return smalltalk.withContext(function($ctx1) {
2228
+ return self}, function($ctx1) {$ctx1.fill(self,"lf",{}, smalltalk.JSStream)})}
1998
2229
  }),
1999
2230
  smalltalk.JSStream);
2000
2231
 
@@ -2004,8 +2235,8 @@ smalltalk.method({
2004
2235
  selector: "nextPut:",
2005
2236
  fn: function (aString){
2006
2237
  var self=this;
2007
- smalltalk.send(self["@stream"],"_nextPut_",[aString]);
2008
- return self}
2238
+ return smalltalk.withContext(function($ctx1) {
2239
+ return self}, function($ctx1) {$ctx1.fill(self,"nextPut:",{aString:aString}, smalltalk.JSStream)})}
2009
2240
  }),
2010
2241
  smalltalk.JSStream);
2011
2242
 
@@ -2015,8 +2246,8 @@ smalltalk.method({
2015
2246
  selector: "nextPutAll:",
2016
2247
  fn: function (aString){
2017
2248
  var self=this;
2018
- smalltalk.send(self["@stream"],"_nextPutAll_",[aString]);
2019
- return self}
2249
+ return smalltalk.withContext(function($ctx1) {
2250
+ return self}, function($ctx1) {$ctx1.fill(self,"nextPutAll:",{aString:aString}, smalltalk.JSStream)})}
2020
2251
  }),
2021
2252
  smalltalk.JSStream);
2022
2253
 
@@ -2026,8 +2257,38 @@ smalltalk.method({
2026
2257
  selector: "nextPutAssignment",
2027
2258
  fn: function (){
2028
2259
  var self=this;
2029
- smalltalk.send(self["@stream"],"_nextPutAll_",["="]);
2030
- return self}
2260
+ return smalltalk.withContext(function($ctx1) {
2261
+ return self}, function($ctx1) {$ctx1.fill(self,"nextPutAssignment",{}, smalltalk.JSStream)})}
2262
+ }),
2263
+ smalltalk.JSStream);
2264
+
2265
+ smalltalk.addMethod(
2266
+ "_nextPutBlockContextFor_during_",
2267
+ smalltalk.method({
2268
+ selector: "nextPutBlockContextFor:during:",
2269
+ fn: function (anIRClosure,aBlock){
2270
+ var self=this;
2271
+ return smalltalk.withContext(function($ctx1) {
2272
+ $1=self;
2273
+ _st($1)._nextPutAll_(_st(_st("return smalltalk.withContext(function(").__comma(_st(_st(anIRClosure)._scope())._alias())).__comma(") {"));
2274
+ $2=_st($1)._nextPutAll_(_st((smalltalk.String || String))._cr());
2275
+ _st(aBlock)._value();
2276
+ $3=self;
2277
+ _st($3)._nextPutAll_(_st(_st("}, function(").__comma(_st(_st(anIRClosure)._scope())._alias())).__comma(") {"));
2278
+ $4=_st($3)._nextPutAll_(_st(_st(_st(anIRClosure)._scope())._alias()).__comma(".fillBlock({"));
2279
+ _st(_st(anIRClosure)._locals())._do_separatedBy_((function(each){
2280
+ return smalltalk.withContext(function($ctx2) {
2281
+ _st($5)._nextPutAll_(_st(each)._asVariableName());
2282
+ _st($5)._nextPutAll_(":");
2283
+ $6=_st($5)._nextPutAll_(_st(each)._asVariableName());
2284
+ return $6;
2285
+ }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}),(function(){
2286
+ return smalltalk.withContext(function($ctx2) {
2287
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
2288
+ $7=self;
2289
+ _st($7)._nextPutAll_("},");
2290
+ $8=_st($7)._nextPutAll_(_st(_st(_st(_st(anIRClosure)._method())._scope())._alias()).__comma(")})"));
2291
+ return self}, function($ctx1) {$ctx1.fill(self,"nextPutBlockContextFor:during:",{anIRClosure:anIRClosure,aBlock:aBlock}, smalltalk.JSStream)})}
2031
2292
  }),
2032
2293
  smalltalk.JSStream);
2033
2294
 
@@ -2037,18 +2298,50 @@ smalltalk.method({
2037
2298
  selector: "nextPutClosureWith:arguments:",
2038
2299
  fn: function (aBlock,anArray){
2039
2300
  var self=this;
2040
- var $1;
2041
- smalltalk.send(self["@stream"],"_nextPutAll_",["(function("]);
2042
- smalltalk.send(anArray,"_do_separatedBy_",[(function(each){
2043
- return smalltalk.send(self["@stream"],"_nextPutAll_",[smalltalk.send(each,"_asVariableName",[])]);
2044
- }),(function(){
2045
- return smalltalk.send(self["@stream"],"_nextPut_",[","]);
2046
- })]);
2047
- smalltalk.send(self["@stream"],"_nextPutAll_",["){"]);
2048
- $1=smalltalk.send(self["@stream"],"_lf",[]);
2049
- smalltalk.send(aBlock,"_value",[]);
2050
- smalltalk.send(self["@stream"],"_nextPutAll_",["})"]);
2051
- return self}
2301
+ return smalltalk.withContext(function($ctx1) {
2302
+ _st(self["@stream"])._nextPutAll_("(function(");
2303
+ _st(anArray)._do_separatedBy_((function(each){
2304
+ return smalltalk.withContext(function($ctx2) {
2305
+ }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}),(function(){
2306
+ return smalltalk.withContext(function($ctx2) {
2307
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
2308
+ $1=self["@stream"];
2309
+ _st($1)._nextPutAll_("){");
2310
+ $2=_st($1)._lf();
2311
+ _st(aBlock)._value();
2312
+ _st(self["@stream"])._nextPutAll_("})");
2313
+ return self}, function($ctx1) {$ctx1.fill(self,"nextPutClosureWith:arguments:",{aBlock:aBlock,anArray:anArray}, smalltalk.JSStream)})}
2314
+ }),
2315
+ smalltalk.JSStream);
2316
+
2317
+ smalltalk.addMethod(
2318
+ "_nextPutContextFor_during_",
2319
+ smalltalk.method({
2320
+ selector: "nextPutContextFor:during:",
2321
+ fn: function (aMethod,aBlock){
2322
+ var self=this;
2323
+ return smalltalk.withContext(function($ctx1) {
2324
+ $1=self;
2325
+ _st($1)._nextPutAll_(_st(_st("return smalltalk.withContext(function(").__comma(_st(_st(aMethod)._scope())._alias())).__comma(") { "));
2326
+ $2=_st($1)._nextPutAll_(_st((smalltalk.String || String))._cr());
2327
+ _st(aBlock)._value();
2328
+ $3=self;
2329
+ _st($3)._nextPutAll_(_st(_st(_st("}, function(").__comma(_st(_st(aMethod)._scope())._alias())).__comma(") {")).__comma(_st(_st(aMethod)._scope())._alias()));
2330
+ $4=_st($3)._nextPutAll_(_st(_st(".fill(self,").__comma(_st(_st(aMethod)._selector())._asJavascript())).__comma(",{"));
2331
+ _st(_st(aMethod)._locals())._do_separatedBy_((function(each){
2332
+ return smalltalk.withContext(function($ctx2) {
2333
+ _st($5)._nextPutAll_(_st(each)._asVariableName());
2334
+ _st($5)._nextPutAll_(":");
2335
+ $6=_st($5)._nextPutAll_(_st(each)._asVariableName());
2336
+ return $6;
2337
+ }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}),(function(){
2338
+ return smalltalk.withContext(function($ctx2) {
2339
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
2340
+ $7=self;
2341
+ _st($7)._nextPutAll_("}, ");
2342
+ _st($7)._nextPutAll_(_st(_st(aMethod)._theClass())._asJavascript());
2343
+ $8=_st($7)._nextPutAll_(")})");
2344
+ return self}, function($ctx1) {$ctx1.fill(self,"nextPutContextFor:during:",{aMethod:aMethod,aBlock:aBlock}, smalltalk.JSStream)})}
2052
2345
  }),
2053
2346
  smalltalk.JSStream);
2054
2347
 
@@ -2058,20 +2351,22 @@ smalltalk.method({
2058
2351
  selector: "nextPutFunctionWith:arguments:",
2059
2352
  fn: function (aBlock,anArray){
2060
2353
  var self=this;
2061
- var $1,$2;
2062
- smalltalk.send(self["@stream"],"_nextPutAll_",["fn: function("]);
2063
- smalltalk.send(anArray,"_do_separatedBy_",[(function(each){
2064
- return smalltalk.send(self["@stream"],"_nextPutAll_",[smalltalk.send(each,"_asVariableName",[])]);
2065
- }),(function(){
2066
- return smalltalk.send(self["@stream"],"_nextPut_",[","]);
2067
- })]);
2068
- smalltalk.send(self["@stream"],"_nextPutAll_",["){"]);
2069
- $1=smalltalk.send(self["@stream"],"_lf",[]);
2070
- smalltalk.send(self["@stream"],"_nextPutAll_",["var self=this;"]);
2071
- $2=smalltalk.send(self["@stream"],"_lf",[]);
2072
- smalltalk.send(aBlock,"_value",[]);
2073
- smalltalk.send(self["@stream"],"_nextPutAll_",["}"]);
2074
- return self}
2354
+ return smalltalk.withContext(function($ctx1) {
2355
+ _st(self["@stream"])._nextPutAll_("fn: function(");
2356
+ _st(anArray)._do_separatedBy_((function(each){
2357
+ return smalltalk.withContext(function($ctx2) {
2358
+ }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}),(function(){
2359
+ return smalltalk.withContext(function($ctx2) {
2360
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
2361
+ $1=self["@stream"];
2362
+ _st($1)._nextPutAll_("){");
2363
+ $2=_st($1)._lf();
2364
+ $3=self["@stream"];
2365
+ _st($3)._nextPutAll_("var self=this;");
2366
+ $4=_st($3)._lf();
2367
+ _st(aBlock)._value();
2368
+ _st(self["@stream"])._nextPutAll_("}");
2369
+ return self}, function($ctx1) {$ctx1.fill(self,"nextPutFunctionWith:arguments:",{aBlock:aBlock,anArray:anArray}, smalltalk.JSStream)})}
2075
2370
  }),
2076
2371
  smalltalk.JSStream);
2077
2372
 
@@ -2081,14 +2376,15 @@ smalltalk.method({
2081
2376
  selector: "nextPutIf:with:",
2082
2377
  fn: function (aBlock,anotherBlock){
2083
2378
  var self=this;
2084
- var $1;
2085
- smalltalk.send(self["@stream"],"_nextPutAll_",["if("]);
2086
- smalltalk.send(aBlock,"_value",[]);
2087
- smalltalk.send(self["@stream"],"_nextPutAll_",["){"]);
2088
- $1=smalltalk.send(self["@stream"],"_lf",[]);
2089
- smalltalk.send(anotherBlock,"_value",[]);
2090
- smalltalk.send(self["@stream"],"_nextPutAll_",["}"]);
2091
- return self}
2379
+ return smalltalk.withContext(function($ctx1) {
2380
+ _st(self["@stream"])._nextPutAll_("if(");
2381
+ _st(aBlock)._value();
2382
+ $1=self["@stream"];
2383
+ _st($1)._nextPutAll_("){");
2384
+ $2=_st($1)._lf();
2385
+ _st(anotherBlock)._value();
2386
+ _st(self["@stream"])._nextPutAll_("}");
2387
+ return self}, function($ctx1) {$ctx1.fill(self,"nextPutIf:with:",{aBlock:aBlock,anotherBlock:anotherBlock}, smalltalk.JSStream)})}
2092
2388
  }),
2093
2389
  smalltalk.JSStream);
2094
2390
 
@@ -2098,17 +2394,19 @@ smalltalk.method({
2098
2394
  selector: "nextPutIfElse:with:with:",
2099
2395
  fn: function (aBlock,ifBlock,elseBlock){
2100
2396
  var self=this;
2101
- var $1,$2;
2102
- smalltalk.send(self["@stream"],"_nextPutAll_",["if("]);
2103
- smalltalk.send(aBlock,"_value",[]);
2104
- smalltalk.send(self["@stream"],"_nextPutAll_",["){"]);
2105
- $1=smalltalk.send(self["@stream"],"_lf",[]);
2106
- smalltalk.send(ifBlock,"_value",[]);
2107
- smalltalk.send(self["@stream"],"_nextPutAll_",["} else {"]);
2108
- $2=smalltalk.send(self["@stream"],"_lf",[]);
2109
- smalltalk.send(elseBlock,"_value",[]);
2110
- smalltalk.send(self["@stream"],"_nextPutAll_",["}"]);
2111
- return self}
2397
+ return smalltalk.withContext(function($ctx1) {
2398
+ _st(self["@stream"])._nextPutAll_("if(");
2399
+ _st(aBlock)._value();
2400
+ $1=self["@stream"];
2401
+ _st($1)._nextPutAll_("){");
2402
+ $2=_st($1)._lf();
2403
+ _st(ifBlock)._value();
2404
+ $3=self["@stream"];
2405
+ _st($3)._nextPutAll_("} else {");
2406
+ $4=_st($3)._lf();
2407
+ _st(elseBlock)._value();
2408
+ _st(self["@stream"])._nextPutAll_("}");
2409
+ return self}, function($ctx1) {$ctx1.fill(self,"nextPutIfElse:with:with:",{aBlock:aBlock,ifBlock:ifBlock,elseBlock:elseBlock}, smalltalk.JSStream)})}
2112
2410
  }),
2113
2411
  smalltalk.JSStream);
2114
2412
 
@@ -2118,30 +2416,33 @@ smalltalk.method({
2118
2416
  selector: "nextPutMethodDeclaration:with:",
2119
2417
  fn: function (aMethod,aBlock){
2120
2418
  var self=this;
2121
- var $1,$2,$3;
2122
- smalltalk.send(self["@stream"],"_nextPutAll_",["smalltalk.method({"]);
2123
- smalltalk.send(self["@stream"],"_lf",[]);
2124
- smalltalk.send(self["@stream"],"_nextPutAll_",[smalltalk.send(smalltalk.send("selector: \x22","__comma",[smalltalk.send(aMethod,"_selector",[])]),"__comma",["\x22,"])]);
2125
- smalltalk.send(self["@stream"],"_lf",[]);
2126
- smalltalk.send(self["@stream"],"_nextPutAll_",[smalltalk.send(smalltalk.send("source: ","__comma",[smalltalk.send(smalltalk.send(aMethod,"_source",[]),"_asJavascript",[])]),"__comma",[","])]);
2127
- $1=smalltalk.send(self["@stream"],"_lf",[]);
2128
- smalltalk.send(aBlock,"_value",[]);
2129
- smalltalk.send(self["@stream"],"_nextPutAll_",[smalltalk.send(smalltalk.send(",","__comma",[smalltalk.send((smalltalk.String || String),"_lf",[])]),"__comma",["messageSends: "])]);
2130
- smalltalk.send(self["@stream"],"_nextPutAll_",[smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(aMethod,"_messageSends",[]),"_asArray",[]),"_asJavascript",[]),"__comma",[","])]);
2131
- smalltalk.send(self["@stream"],"_lf",[]);
2132
- smalltalk.send(self["@stream"],"_nextPutAll_",[smalltalk.send(smalltalk.send("args: ","__comma",[smalltalk.send(smalltalk.send(smalltalk.send(smalltalk.send(aMethod,"_arguments",[]),"_collect_",[(function(each){
2133
- return smalltalk.send(each,"_value",[]);
2134
- })]),"_asArray",[]),"_asJavascript",[])]),"__comma",[","])]);
2135
- smalltalk.send(self["@stream"],"_lf",[]);
2136
- $2=smalltalk.send(self["@stream"],"_nextPutAll_",["referencedClasses: ["]);
2137
- smalltalk.send(smalltalk.send(aMethod,"_classReferences",[]),"_do_separatedBy_",[(function(each){
2138
- return smalltalk.send(self["@stream"],"_nextPutAll_",[smalltalk.send(each,"_asJavascript",[])]);
2139
- }),(function(){
2140
- return smalltalk.send(self["@stream"],"_nextPutAll_",[","]);
2141
- })]);
2142
- smalltalk.send(self["@stream"],"_nextPutAll_",["]"]);
2143
- $3=smalltalk.send(self["@stream"],"_nextPutAll_",["})"]);
2144
- return self}
2419
+ return smalltalk.withContext(function($ctx1) {
2420
+ $1=self["@stream"];
2421
+ _st($1)._nextPutAll_("smalltalk.method({");
2422
+ _st($1)._lf();
2423
+ _st($1)._nextPutAll_(_st(_st("selector: \x22").__comma(_st(aMethod)._selector())).__comma("\x22,"));
2424
+ _st($1)._lf();
2425
+ _st($1)._nextPutAll_(_st(_st("source: ").__comma(_st(_st(aMethod)._source())._asJavascript())).__comma(","));
2426
+ $2=_st($1)._lf();
2427
+ _st(aBlock)._value();
2428
+ $3=self["@stream"];
2429
+ _st($3)._nextPutAll_(_st(_st(",").__comma(_st((smalltalk.String || String))._lf())).__comma("messageSends: "));
2430
+ _st($3)._nextPutAll_(_st(_st(_st(_st(aMethod)._messageSends())._asArray())._asJavascript()).__comma(","));
2431
+ _st($3)._lf();
2432
+ _st($3)._nextPutAll_(_st(_st("args: ").__comma(_st(_st(_st(_st(aMethod)._arguments())._collect_((function(each){
2433
+ return smalltalk.withContext(function($ctx2) {
2434
+ }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})})))._asArray())._asJavascript())).__comma(","));
2435
+ _st($3)._lf();
2436
+ $4=_st($3)._nextPutAll_("referencedClasses: [");
2437
+ _st(_st(aMethod)._classReferences())._do_separatedBy_((function(each){
2438
+ return smalltalk.withContext(function($ctx2) {
2439
+ }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}),(function(){
2440
+ return smalltalk.withContext(function($ctx2) {
2441
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
2442
+ $5=self["@stream"];
2443
+ _st($5)._nextPutAll_("]");
2444
+ $6=_st($5)._nextPutAll_("})");
2445
+ return self}, function($ctx1) {$ctx1.fill(self,"nextPutMethodDeclaration:with:",{aMethod:aMethod,aBlock:aBlock}, smalltalk.JSStream)})}
2145
2446
  }),
2146
2447
  smalltalk.JSStream);
2147
2448
 
@@ -2151,17 +2452,19 @@ smalltalk.method({
2151
2452
  selector: "nextPutNonLocalReturnHandlingWith:",
2152
2453
  fn: function (aBlock){
2153
2454
  var self=this;
2154
- var $1,$2;
2155
- smalltalk.send(self["@stream"],"_nextPutAll_",["var $early={};"]);
2156
- smalltalk.send(self["@stream"],"_lf",[]);
2157
- smalltalk.send(self["@stream"],"_nextPutAll_",["try {"]);
2158
- $1=smalltalk.send(self["@stream"],"_lf",[]);
2159
- smalltalk.send(aBlock,"_value",[]);
2160
- smalltalk.send(self["@stream"],"_nextPutAll_",["}"]);
2161
- smalltalk.send(self["@stream"],"_lf",[]);
2162
- smalltalk.send(self["@stream"],"_nextPutAll_",["catch(e) {if(e===$early)return e[0]; throw e}"]);
2163
- $2=smalltalk.send(self["@stream"],"_lf",[]);
2164
- return self}
2455
+ return smalltalk.withContext(function($ctx1) {
2456
+ $1=self["@stream"];
2457
+ _st($1)._nextPutAll_("var $early={};");
2458
+ _st($1)._lf();
2459
+ _st($1)._nextPutAll_("try {");
2460
+ $2=_st($1)._lf();
2461
+ _st(aBlock)._value();
2462
+ $3=self["@stream"];
2463
+ _st($3)._nextPutAll_("}");
2464
+ _st($3)._lf();
2465
+ _st($3)._nextPutAll_("catch(e) {if(e===$early)return e[0]; throw e}");
2466
+ $4=_st($3)._lf();
2467
+ return self}, function($ctx1) {$ctx1.fill(self,"nextPutNonLocalReturnHandlingWith:",{aBlock:aBlock}, smalltalk.JSStream)})}
2165
2468
  }),
2166
2469
  smalltalk.JSStream);
2167
2470
 
@@ -2171,10 +2474,10 @@ smalltalk.method({
2171
2474
  selector: "nextPutNonLocalReturnWith:",
2172
2475
  fn: function (aBlock){
2173
2476
  var self=this;
2174
- smalltalk.send(self["@stream"],"_nextPutAll_",["throw $early=["]);
2175
- smalltalk.send(aBlock,"_value",[]);
2176
- smalltalk.send(self["@stream"],"_nextPutAll_",["]"]);
2177
- return self}
2477
+ return smalltalk.withContext(function($ctx1) {
2478
+ _st(aBlock)._value();
2479
+ _st(self["@stream"])._nextPutAll_("]");
2480
+ return self}, function($ctx1) {$ctx1.fill(self,"nextPutNonLocalReturnWith:",{aBlock:aBlock}, smalltalk.JSStream)})}
2178
2481
  }),
2179
2482
  smalltalk.JSStream);
2180
2483
 
@@ -2184,8 +2487,8 @@ smalltalk.method({
2184
2487
  selector: "nextPutReturn",
2185
2488
  fn: function (){
2186
2489
  var self=this;
2187
- smalltalk.send(self["@stream"],"_nextPutAll_",["return "]);
2188
- return self}
2490
+ return smalltalk.withContext(function($ctx1) {
2491
+ return self}, function($ctx1) {$ctx1.fill(self,"nextPutReturn",{}, smalltalk.JSStream)})}
2189
2492
  }),
2190
2493
  smalltalk.JSStream);
2191
2494
 
@@ -2195,28 +2498,9 @@ smalltalk.method({
2195
2498
  selector: "nextPutReturnWith:",
2196
2499
  fn: function (aBlock){
2197
2500
  var self=this;
2198
- smalltalk.send(self,"_nextPutReturn",[]);
2199
- smalltalk.send(aBlock,"_value",[]);
2200
- return self}
2201
- }),
2202
- smalltalk.JSStream);
2203
-
2204
- smalltalk.addMethod(
2205
- "_nextPutSendTo_selector_arguments_",
2206
- smalltalk.method({
2207
- selector: "nextPutSendTo:selector:arguments:",
2208
- fn: function (receiver,selector,arguments){
2209
- var self=this;
2210
- smalltalk.send(self["@stream"],"_nextPutAll_",["smalltalk.send("]);
2211
- smalltalk.send(receiver,"_emitOn_",[self]);
2212
- smalltalk.send(self["@stream"],"_nextPutAll_",[smalltalk.send(smalltalk.send(",\x22","__comma",[smalltalk.send(selector,"_asSelector",[])]),"__comma",["\x22,["])]);
2213
- smalltalk.send(arguments,"_do_separatedBy_",[(function(each){
2214
- return smalltalk.send(each,"_emitOn_",[self]);
2215
- }),(function(){
2216
- return smalltalk.send(self["@stream"],"_nextPutAll_",[","]);
2217
- })]);
2218
- smalltalk.send(self["@stream"],"_nextPutAll_",["])"]);
2219
- return self}
2501
+ return smalltalk.withContext(function($ctx1) {
2502
+ _st(aBlock)._value();
2503
+ return self}, function($ctx1) {$ctx1.fill(self,"nextPutReturnWith:",{aBlock:aBlock}, smalltalk.JSStream)})}
2220
2504
  }),
2221
2505
  smalltalk.JSStream);
2222
2506
 
@@ -2226,8 +2510,8 @@ smalltalk.method({
2226
2510
  selector: "nextPutSequenceWith:",
2227
2511
  fn: function (aBlock){
2228
2512
  var self=this;
2229
- smalltalk.send(aBlock,"_value",[]);
2230
- return self}
2513
+ return smalltalk.withContext(function($ctx1) {
2514
+ return self}, function($ctx1) {$ctx1.fill(self,"nextPutSequenceWith:",{aBlock:aBlock}, smalltalk.JSStream)})}
2231
2515
  }),
2232
2516
  smalltalk.JSStream);
2233
2517
 
@@ -2237,13 +2521,15 @@ smalltalk.method({
2237
2521
  selector: "nextPutStatement:with:",
2238
2522
  fn: function (anInteger,aBlock){
2239
2523
  var self=this;
2240
- var $1,$2;
2241
- smalltalk.send(self["@stream"],"_nextPutAll_",[smalltalk.send(smalltalk.send("case ","__comma",[smalltalk.send(anInteger,"_asString",[])]),"__comma",[":"])]);
2242
- $1=smalltalk.send(self["@stream"],"_lf",[]);
2243
- smalltalk.send(self,"_nextPutStatementWith_",[aBlock]);
2244
- smalltalk.send(self["@stream"],"_nextPutAll_",[smalltalk.send(smalltalk.send("smalltalk.thisContext.pc=","__comma",[smalltalk.send(smalltalk.send(anInteger,"__plus",[(1)]),"_asString",[])]),"__comma",[";"])]);
2245
- $2=smalltalk.send(self["@stream"],"_lf",[]);
2246
- return self}
2524
+ return smalltalk.withContext(function($ctx1) {
2525
+ $1=self["@stream"];
2526
+ _st($1)._nextPutAll_(_st(_st("case ").__comma(_st(anInteger)._asString())).__comma(":"));
2527
+ $2=_st($1)._lf();
2528
+ _st(self)._nextPutStatementWith_(aBlock);
2529
+ $3=self["@stream"];
2530
+ _st($3)._nextPutAll_(_st(_st("smalltalk.thisContext.pc=").__comma(_st(_st(anInteger).__plus((1)))._asString())).__comma(";"));
2531
+ $4=_st($3)._lf();
2532
+ return self}, function($ctx1) {$ctx1.fill(self,"nextPutStatement:with:",{anInteger:anInteger,aBlock:aBlock}, smalltalk.JSStream)})}
2247
2533
  }),
2248
2534
  smalltalk.JSStream);
2249
2535
 
@@ -2253,11 +2539,12 @@ smalltalk.method({
2253
2539
  selector: "nextPutStatementWith:",
2254
2540
  fn: function (aBlock){
2255
2541
  var self=this;
2256
- var $1;
2257
- smalltalk.send(aBlock,"_value",[]);
2258
- smalltalk.send(self["@stream"],"_nextPutAll_",[";"]);
2259
- $1=smalltalk.send(self["@stream"],"_lf",[]);
2260
- return self}
2542
+ return smalltalk.withContext(function($ctx1) {
2543
+ _st(aBlock)._value();
2544
+ $1=self["@stream"];
2545
+ _st($1)._nextPutAll_(";");
2546
+ $2=_st($1)._lf();
2547
+ return self}, function($ctx1) {$ctx1.fill(self,"nextPutStatementWith:",{aBlock:aBlock}, smalltalk.JSStream)})}
2261
2548
  }),
2262
2549
  smalltalk.JSStream);
2263
2550
 
@@ -2267,10 +2554,11 @@ smalltalk.method({
2267
2554
  selector: "nextPutVar:",
2268
2555
  fn: function (aString){
2269
2556
  var self=this;
2270
- var $1;
2271
- smalltalk.send(self["@stream"],"_nextPutAll_",[smalltalk.send(smalltalk.send("var ","__comma",[aString]),"__comma",[";"])]);
2272
- $1=smalltalk.send(self["@stream"],"_lf",[]);
2273
- return self}
2557
+ return smalltalk.withContext(function($ctx1) {
2558
+ $1=self["@stream"];
2559
+ _st($1)._nextPutAll_(_st(_st("var ").__comma(aString)).__comma(";"));
2560
+ $2=_st($1)._lf();
2561
+ return self}, function($ctx1) {$ctx1.fill(self,"nextPutVar:",{aString:aString}, smalltalk.JSStream)})}
2274
2562
  }),
2275
2563
  smalltalk.JSStream);
2276
2564
 
@@ -2280,16 +2568,25 @@ smalltalk.method({
2280
2568
  selector: "nextPutVars:",
2281
2569
  fn: function (aCollection){
2282
2570
  var self=this;
2283
- var $1;
2284
- smalltalk.send(self["@stream"],"_nextPutAll_",["var "]);
2285
- smalltalk.send(aCollection,"_do_separatedBy_",[(function(each){
2286
- return smalltalk.send(self["@stream"],"_nextPutAll_",[each]);
2287
- }),(function(){
2288
- return smalltalk.send(self["@stream"],"_nextPutAll_",[","]);
2289
- })]);
2290
- smalltalk.send(self["@stream"],"_nextPutAll_",[";"]);
2291
- $1=smalltalk.send(self["@stream"],"_lf",[]);
2571
+ return smalltalk.withContext(function($ctx1) {
2572
+ var $early={};
2573
+ try {
2574
+ _st(aCollection)._ifEmpty_((function(){
2575
+ return smalltalk.withContext(function($ctx2) {
2576
+ throw $early=[$1];
2577
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
2578
+ _st(self["@stream"])._nextPutAll_("var ");
2579
+ _st(aCollection)._do_separatedBy_((function(each){
2580
+ return smalltalk.withContext(function($ctx2) {
2581
+ }, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1)})}),(function(){
2582
+ return smalltalk.withContext(function($ctx2) {
2583
+ }, function($ctx2) {$ctx2.fillBlock({},$ctx1)})}));
2584
+ $2=self["@stream"];
2585
+ _st($2)._nextPutAll_(";");
2586
+ $3=_st($2)._lf();
2292
2587
  return self}
2588
+ catch(e) {if(e===$early)return e[0]; throw e}
2589
+ }, function($ctx1) {$ctx1.fill(self,"nextPutVars:",{aCollection:aCollection}, smalltalk.JSStream)})}
2293
2590
  }),
2294
2591
  smalltalk.JSStream);
2295
2592
 
@@ -2301,8 +2598,8 @@ smalltalk.method({
2301
2598
  selector: "appendToInstruction:",
2302
2599
  fn: function (anIRInstruction){
2303
2600
  var self=this;
2304
- smalltalk.send(anIRInstruction,"_appendBlock_",[self]);
2305
- return self}
2601
+ return smalltalk.withContext(function($ctx1) {
2602
+ return self}, function($ctx1) {$ctx1.fill(self,"appendToInstruction:",{anIRInstruction:anIRInstruction}, smalltalk.BlockClosure)})}
2306
2603
  }),
2307
2604
  smalltalk.BlockClosure);
2308
2605
 
@@ -2312,15 +2609,15 @@ smalltalk.method({
2312
2609
  selector: "asVariableName",
2313
2610
  fn: function (){
2314
2611
  var self=this;
2315
- var $2,$1;
2316
- $2=smalltalk.send(smalltalk.send(smalltalk.send((smalltalk.Smalltalk || Smalltalk),"_current",[]),"_reservedWords",[]),"_includes_",[self]);
2612
+ return smalltalk.withContext(function($ctx1) {
2613
+ $2=_st(_st(_st((smalltalk.Smalltalk || Smalltalk))._current())._reservedWords())._includes_(self);
2317
2614
  if(smalltalk.assert($2)){
2318
- $1=smalltalk.send(self,"__comma",["_"]);
2615
+ $1=_st(self).__comma("_");
2319
2616
  } else {
2320
2617
  $1=self;
2321
2618
  };
2322
2619
  return $1;
2323
- }
2620
+ }, function($ctx1) {$ctx1.fill(self,"asVariableName",{}, smalltalk.String)})}
2324
2621
  }),
2325
2622
  smalltalk.String);
2326
2623