|
@@ -4214,46 +4214,60 @@ selector: "visitReceiver:",
|
|
|
protocol: "visiting",
|
|
|
fn: function (anIRInstruction){
|
|
|
var self=this,$self=this;
|
|
|
+var instr;
|
|
|
//>>excludeStart("ctx", pragmas.excludeDebugContexts);
|
|
|
return $core.withContext(function($ctx1) {
|
|
|
//>>excludeEnd("ctx");
|
|
|
-var $1,$3,$2,$4,$5,$6;
|
|
|
+var $1,$2,$4,$5,$3,$6,$7,$8;
|
|
|
$1=$recv(anIRInstruction)._isSelf();
|
|
|
if($core.assert($1)){
|
|
|
-$3=$recv($recv(anIRInstruction)._variable())._copy();
|
|
|
-$recv($3)._name_("$self");
|
|
|
-$2=$recv($3)._yourself();
|
|
|
-$recv(anIRInstruction)._variable_($2);
|
|
|
+$2=$recv(anIRInstruction)._copy();
|
|
|
+//>>excludeStart("ctx", pragmas.excludeDebugContexts);
|
|
|
+$ctx1.sendIdx["copy"]=1;
|
|
|
+//>>excludeEnd("ctx");
|
|
|
+$4=$recv($recv(anIRInstruction)._variable())._copy();
|
|
|
+$recv($4)._name_("$self");
|
|
|
+$5=$recv($4)._yourself();
|
|
|
+//>>excludeStart("ctx", pragmas.excludeDebugContexts);
|
|
|
+$ctx1.sendIdx["yourself"]=1;
|
|
|
+//>>excludeEnd("ctx");
|
|
|
+$3=$5;
|
|
|
+$recv($2)._variable_($3);
|
|
|
+instr=$recv($2)._yourself();
|
|
|
+instr;
|
|
|
+} else {
|
|
|
+instr=anIRInstruction;
|
|
|
+instr;
|
|
|
}
|
|
|
-$4=$recv(anIRInstruction)._needsBoxingAsReceiver();
|
|
|
-if(!$core.assert($4)){
|
|
|
-$5=$self._visit_(anIRInstruction);
|
|
|
+$6=$recv(instr)._needsBoxingAsReceiver();
|
|
|
+if(!$core.assert($6)){
|
|
|
+$7=$self._visit_(instr);
|
|
|
//>>excludeStart("ctx", pragmas.excludeDebugContexts);
|
|
|
$ctx1.sendIdx["visit:"]=1;
|
|
|
//>>excludeEnd("ctx");
|
|
|
-return $5;
|
|
|
+return $7;
|
|
|
}
|
|
|
-$6=$self._stream();
|
|
|
+$8=$self._stream();
|
|
|
//>>excludeStart("ctx", pragmas.excludeDebugContexts);
|
|
|
$ctx1.sendIdx["stream"]=1;
|
|
|
//>>excludeEnd("ctx");
|
|
|
-$recv($6)._nextPutAll_("$recv(");
|
|
|
+$recv($8)._nextPutAll_("$recv(");
|
|
|
//>>excludeStart("ctx", pragmas.excludeDebugContexts);
|
|
|
$ctx1.sendIdx["nextPutAll:"]=1;
|
|
|
//>>excludeEnd("ctx");
|
|
|
-$self._visit_(anIRInstruction);
|
|
|
+$self._visit_(instr);
|
|
|
$recv($self._stream())._nextPutAll_(")");
|
|
|
return self;
|
|
|
//>>excludeStart("ctx", pragmas.excludeDebugContexts);
|
|
|
-}, function($ctx1) {$ctx1.fill(self,"visitReceiver:",{anIRInstruction:anIRInstruction},$globals.IRJSTranslator)});
|
|
|
+}, function($ctx1) {$ctx1.fill(self,"visitReceiver:",{anIRInstruction:anIRInstruction,instr:instr},$globals.IRJSTranslator)});
|
|
|
//>>excludeEnd("ctx");
|
|
|
},
|
|
|
//>>excludeStart("ide", pragmas.excludeIdeData);
|
|
|
args: ["anIRInstruction"],
|
|
|
-source: "visitReceiver: anIRInstruction\x0a\x09\x22Ugly hack, mutation\x22\x0a\x09anIRInstruction isSelf ifTrue: [ anIRInstruction variable: (anIRInstruction variable copy name: '$self'; yourself) ].\x0a\x09\x0a\x09anIRInstruction needsBoxingAsReceiver ifFalse: [ ^ self visit: anIRInstruction ].\x0a\x09\x0a\x09self stream nextPutAll: '$recv('.\x0a\x09self visit: anIRInstruction.\x0a\x09self stream nextPutAll: ')'",
|
|
|
+source: "visitReceiver: anIRInstruction\x0a\x09| instr |\x0a\x0a\x09anIRInstruction isSelf\x0a\x09\x09ifTrue: [ instr := anIRInstruction copy\x0a\x09\x09\x09variable: (anIRInstruction variable copy name: '$self'; yourself);\x0a\x09\x09\x09yourself ]\x0a\x09\x09ifFalse: [ instr := anIRInstruction ].\x0a\x09\x0a\x09instr needsBoxingAsReceiver ifFalse: [ ^ self visit: instr ].\x0a\x09\x0a\x09self stream nextPutAll: '$recv('.\x0a\x09self visit: instr.\x0a\x09self stream nextPutAll: ')'",
|
|
|
referencedClasses: [],
|
|
|
//>>excludeEnd("ide");
|
|
|
-messageSends: ["ifTrue:", "isSelf", "variable:", "name:", "copy", "variable", "yourself", "ifFalse:", "needsBoxingAsReceiver", "visit:", "nextPutAll:", "stream"]
|
|
|
+messageSends: ["ifTrue:ifFalse:", "isSelf", "variable:", "copy", "name:", "variable", "yourself", "ifFalse:", "needsBoxingAsReceiver", "visit:", "nextPutAll:", "stream"]
|
|
|
}),
|
|
|
$globals.IRJSTranslator);
|
|
|
|