resin 0.3.1 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. data/amber/bin/amberc +10 -350
  2. data/amber/js/Benchfib.deploy.js +80 -89
  3. data/amber/js/Benchfib.js +80 -89
  4. data/amber/js/Canvas.deploy.js +558 -545
  5. data/amber/js/Canvas.js +563 -545
  6. data/amber/js/Compiler-AST.deploy.js +431 -243
  7. data/amber/js/Compiler-AST.js +487 -244
  8. data/amber/js/Compiler-Core.deploy.js +201 -1045
  9. data/amber/js/Compiler-Core.js +208 -1207
  10. data/amber/js/Compiler-Exceptions.deploy.js +37 -18
  11. data/amber/js/Compiler-Exceptions.js +42 -18
  12. data/amber/js/Compiler-IR.deploy.js +1071 -774
  13. data/amber/js/Compiler-IR.js +1194 -848
  14. data/amber/js/Compiler-Inlining.deploy.js +395 -373
  15. data/amber/js/Compiler-Inlining.js +395 -373
  16. data/amber/js/Compiler-Interpreter.deploy.js +1202 -0
  17. data/amber/js/Compiler-Interpreter.js +1631 -0
  18. data/amber/js/Compiler-Semantic.deploy.js +695 -600
  19. data/amber/js/Compiler-Semantic.js +721 -611
  20. data/amber/js/Compiler-Tests.deploy.js +699 -376
  21. data/amber/js/Compiler-Tests.js +834 -381
  22. data/amber/js/Compiler.deploy.js +8563 -1805
  23. data/amber/js/Compiler.js +11476 -2633
  24. data/amber/js/Examples.deploy.js +29 -29
  25. data/amber/js/Examples.js +29 -29
  26. data/amber/js/IDE.deploy.js +3292 -2649
  27. data/amber/js/IDE.js +3318 -2710
  28. data/amber/js/Importer-Exporter.deploy.js +393 -349
  29. data/amber/js/Importer-Exporter.js +398 -354
  30. data/amber/js/Kernel-Announcements.deploy.js +53 -44
  31. data/amber/js/Kernel-Announcements.js +55 -44
  32. data/amber/js/Kernel-Classes.deploy.js +566 -368
  33. data/amber/js/Kernel-Classes.js +660 -402
  34. data/amber/js/Kernel-Collections.deploy.js +1149 -1098
  35. data/amber/js/Kernel-Collections.js +1183 -1116
  36. data/amber/js/Kernel-Exceptions.deploy.js +173 -75
  37. data/amber/js/Kernel-Exceptions.js +215 -77
  38. data/amber/js/Kernel-Methods.deploy.js +530 -313
  39. data/amber/js/Kernel-Methods.js +632 -338
  40. data/amber/js/Kernel-Objects.deploy.js +1734 -1577
  41. data/amber/js/Kernel-Objects.js +1867 -1654
  42. data/amber/js/Kernel-Tests.deploy.js +1416 -973
  43. data/amber/js/Kernel-Tests.js +1495 -981
  44. data/amber/js/Kernel-Transcript.deploy.js +23 -24
  45. data/amber/js/Kernel-Transcript.js +25 -26
  46. data/amber/js/SUnit-Tests.deploy.js +402 -0
  47. data/amber/js/SUnit-Tests.js +518 -0
  48. data/amber/js/SUnit.deploy.js +535 -237
  49. data/amber/js/SUnit.js +634 -246
  50. data/amber/js/amber.js +90 -53
  51. data/amber/js/boot.js +441 -255
  52. data/amber/js/init.js +1 -3
  53. data/amber/js/lib/CodeMirror/codemirror.css +3 -0
  54. data/amber/js/lib/CodeMirror/codemirror.js +104 -55
  55. data/amber/js/lib/peg-0.7.0.min.js +9 -0
  56. data/amber/js/parser.js +1504 -802
  57. data/amber/js/parser.pegjs +170 -165
  58. data/amber/st/Canvas.st +6 -0
  59. data/amber/st/Compiler-AST.st +54 -3
  60. data/amber/st/Compiler-Core.st +6 -551
  61. data/amber/st/Compiler-Exceptions.st +4 -0
  62. data/amber/st/Compiler-IR.st +205 -87
  63. data/amber/st/Compiler-Interpreter.st +597 -0
  64. data/amber/st/Compiler-Semantic.st +46 -21
  65. data/amber/st/Compiler-Tests.st +254 -7
  66. data/amber/st/Compiler.st +3172 -1541
  67. data/amber/st/IDE.st +57 -93
  68. data/amber/st/Importer-Exporter.st +4 -7
  69. data/amber/st/Kernel-Announcements.st +8 -0
  70. data/amber/st/Kernel-Classes.st +149 -40
  71. data/amber/st/Kernel-Collections.st +43 -32
  72. data/amber/st/Kernel-Exceptions.st +70 -1
  73. data/amber/st/Kernel-Methods.st +165 -27
  74. data/amber/st/Kernel-Objects.st +215 -140
  75. data/amber/st/Kernel-Tests.st +195 -10
  76. data/amber/st/Kernel-Transcript.st +1 -3
  77. data/amber/st/SUnit-Tests.st +186 -0
  78. data/amber/st/SUnit.st +186 -14
  79. data/bin/resin +6 -0
  80. data/lib/resin/cli.rb +19 -0
  81. metadata +41 -25
  82. data/amber/js/lib/peg-0.6.2.min.js +0 -2
  83. data/bin/resin-compile +0 -6
  84. data/bin/runresin +0 -12
@@ -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