|
@@ -993,76 +993,33 @@ selector: "pseudoVars",
|
|
|
protocol: "accessing",
|
|
|
//>>excludeStart("ide", pragmas.excludeIdeData);
|
|
|
args: [],
|
|
|
-source: "pseudoVars\x0a\x09pseudoVars ifNil: [\x0a\x09\x09pseudoVars := Dictionary new.\x0a\x09\x09Smalltalk pseudoVariableNames do: [ :each |\x0a\x09\x09\x09pseudoVars at: each put: ((PseudoVar on: each)\x0a\x09\x09\x09\x09scope: self methodScope;\x0a\x09\x09\x09\x09yourself) ].\x0a\x09\x09pseudoVars\x0a\x09\x09\x09at: #super put: ((SuperVar on: #super) scope: self methodScope; yourself);\x0a\x09\x09\x09at: #thisContext put: ((ThisContextVar on: #thisContext) scope: self methodScope; yourself) ].\x0a\x09^ pseudoVars",
|
|
|
-referencedClasses: ["Dictionary", "Smalltalk", "PseudoVar", "SuperVar", "ThisContextVar"],
|
|
|
+source: "pseudoVars\x0a\x09pseudoVars ifNil: [\x0a\x09\x09pseudoVars := Dictionary new.\x0a\x09\x09PseudoVar dictionary keysAndValuesDo: [ :each :impl |\x0a\x09\x09\x09pseudoVars at: each put: ((impl on: each)\x0a\x09\x09\x09\x09scope: self methodScope;\x0a\x09\x09\x09\x09yourself) ] ].\x0a\x09^ pseudoVars",
|
|
|
+referencedClasses: ["Dictionary", "PseudoVar"],
|
|
|
//>>excludeEnd("ide");
|
|
|
pragmas: [],
|
|
|
-messageSends: ["ifNil:", "new", "do:", "pseudoVariableNames", "at:put:", "scope:", "on:", "methodScope", "yourself"]
|
|
|
+messageSends: ["ifNil:", "new", "keysAndValuesDo:", "dictionary", "at:put:", "scope:", "on:", "methodScope", "yourself"]
|
|
|
}, function ($methodClass){ return function (){
|
|
|
var self=this,$self=this;
|
|
|
//>>excludeStart("ctx", pragmas.excludeDebugContexts);
|
|
|
return $core.withContext(function($ctx1) {
|
|
|
//>>excludeEnd("ctx");
|
|
|
-var $1,$2,$4,$5,$6,$3,$7,$9,$10,$11,$8,$13,$12,$receiver;
|
|
|
+var $1,$2,$4,$3,$receiver;
|
|
|
$1=$self.pseudoVars;
|
|
|
if(($receiver = $1) == null || $receiver.a$nil){
|
|
|
$self.pseudoVars=$recv($globals.Dictionary)._new();
|
|
|
-$recv($recv($globals.Smalltalk)._pseudoVariableNames())._do_((function(each){
|
|
|
+$recv($recv($globals.PseudoVar)._dictionary())._keysAndValuesDo_((function(each,impl){
|
|
|
//>>excludeStart("ctx", pragmas.excludeDebugContexts);
|
|
|
return $core.withContext(function($ctx2) {
|
|
|
//>>excludeEnd("ctx");
|
|
|
$2=$self.pseudoVars;
|
|
|
-$4=$recv($globals.PseudoVar)._on_(each);
|
|
|
-//>>excludeStart("ctx", pragmas.excludeDebugContexts);
|
|
|
-$ctx2.sendIdx["on:"]=1;
|
|
|
-//>>excludeEnd("ctx");
|
|
|
-$5=$self._methodScope();
|
|
|
-//>>excludeStart("ctx", pragmas.excludeDebugContexts);
|
|
|
-$ctx2.sendIdx["methodScope"]=1;
|
|
|
-//>>excludeEnd("ctx");
|
|
|
-$recv($4)._scope_($5);
|
|
|
-//>>excludeStart("ctx", pragmas.excludeDebugContexts);
|
|
|
-$ctx2.sendIdx["scope:"]=1;
|
|
|
-//>>excludeEnd("ctx");
|
|
|
-$6=$recv($4)._yourself();
|
|
|
-//>>excludeStart("ctx", pragmas.excludeDebugContexts);
|
|
|
-$ctx2.sendIdx["yourself"]=1;
|
|
|
-//>>excludeEnd("ctx");
|
|
|
-$3=$6;
|
|
|
+$4=$recv(impl)._on_(each);
|
|
|
+$recv($4)._scope_($self._methodScope());
|
|
|
+$3=$recv($4)._yourself();
|
|
|
return $recv($2)._at_put_(each,$3);
|
|
|
//>>excludeStart("ctx", pragmas.excludeDebugContexts);
|
|
|
-$ctx2.sendIdx["at:put:"]=1;
|
|
|
-//>>excludeEnd("ctx");
|
|
|
-//>>excludeStart("ctx", pragmas.excludeDebugContexts);
|
|
|
-}, function($ctx2) {$ctx2.fillBlock({each:each},$ctx1,2)});
|
|
|
+}, function($ctx2) {$ctx2.fillBlock({each:each,impl:impl},$ctx1,2)});
|
|
|
//>>excludeEnd("ctx");
|
|
|
}));
|
|
|
-$7=$self.pseudoVars;
|
|
|
-$9=$recv($globals.SuperVar)._on_("super");
|
|
|
-//>>excludeStart("ctx", pragmas.excludeDebugContexts);
|
|
|
-$ctx1.sendIdx["on:"]=2;
|
|
|
-//>>excludeEnd("ctx");
|
|
|
-$10=$self._methodScope();
|
|
|
-//>>excludeStart("ctx", pragmas.excludeDebugContexts);
|
|
|
-$ctx1.sendIdx["methodScope"]=2;
|
|
|
-//>>excludeEnd("ctx");
|
|
|
-$recv($9)._scope_($10);
|
|
|
-//>>excludeStart("ctx", pragmas.excludeDebugContexts);
|
|
|
-$ctx1.sendIdx["scope:"]=2;
|
|
|
-//>>excludeEnd("ctx");
|
|
|
-$11=$recv($9)._yourself();
|
|
|
-//>>excludeStart("ctx", pragmas.excludeDebugContexts);
|
|
|
-$ctx1.sendIdx["yourself"]=2;
|
|
|
-//>>excludeEnd("ctx");
|
|
|
-$8=$11;
|
|
|
-$recv($7)._at_put_("super",$8);
|
|
|
-//>>excludeStart("ctx", pragmas.excludeDebugContexts);
|
|
|
-$ctx1.sendIdx["at:put:"]=2;
|
|
|
-//>>excludeEnd("ctx");
|
|
|
-$13=$recv($globals.ThisContextVar)._on_("thisContext");
|
|
|
-$recv($13)._scope_($self._methodScope());
|
|
|
-$12=$recv($13)._yourself();
|
|
|
-$recv($7)._at_put_("thisContext",$12);
|
|
|
} else {
|
|
|
$1;
|
|
|
}
|
|
@@ -1762,6 +1719,59 @@ return $recv($self.name).__eq("self");
|
|
|
$globals.PseudoVar);
|
|
|
|
|
|
|
|
|
+$core.setSlots($globals.PseudoVar.a$cls, ["dictionary"]);
|
|
|
+$core.addMethod(
|
|
|
+$core.method({
|
|
|
+selector: "dictionary",
|
|
|
+protocol: "accessing",
|
|
|
+//>>excludeStart("ide", pragmas.excludeIdeData);
|
|
|
+args: [],
|
|
|
+source: "dictionary\x0a\x09^ dictionary ifNil: [ dictionary := Dictionary new\x0a\x09\x09at: #self put: PseudoVar;\x0a\x09\x09at: #super put: SuperVar;\x0a\x09\x09at: #nil put: PseudoVar;\x0a\x09\x09at: #false put: PseudoVar;\x0a\x09\x09at: #true put: PseudoVar;\x0a\x09\x09at: #thisContext put: ThisContextVar;\x0a\x09\x09yourself ]",
|
|
|
+referencedClasses: ["Dictionary", "PseudoVar", "SuperVar", "ThisContextVar"],
|
|
|
+//>>excludeEnd("ide");
|
|
|
+pragmas: [],
|
|
|
+messageSends: ["ifNil:", "at:put:", "new", "yourself"]
|
|
|
+}, function ($methodClass){ return function (){
|
|
|
+var self=this,$self=this;
|
|
|
+//>>excludeStart("ctx", pragmas.excludeDebugContexts);
|
|
|
+return $core.withContext(function($ctx1) {
|
|
|
+//>>excludeEnd("ctx");
|
|
|
+var $1,$2,$receiver;
|
|
|
+$1=$self.dictionary;
|
|
|
+if(($receiver = $1) == null || $receiver.a$nil){
|
|
|
+$2=$recv($globals.Dictionary)._new();
|
|
|
+$recv($2)._at_put_("self",$globals.PseudoVar);
|
|
|
+//>>excludeStart("ctx", pragmas.excludeDebugContexts);
|
|
|
+$ctx1.sendIdx["at:put:"]=1;
|
|
|
+//>>excludeEnd("ctx");
|
|
|
+$recv($2)._at_put_("super",$globals.SuperVar);
|
|
|
+//>>excludeStart("ctx", pragmas.excludeDebugContexts);
|
|
|
+$ctx1.sendIdx["at:put:"]=2;
|
|
|
+//>>excludeEnd("ctx");
|
|
|
+$recv($2)._at_put_("nil",$globals.PseudoVar);
|
|
|
+//>>excludeStart("ctx", pragmas.excludeDebugContexts);
|
|
|
+$ctx1.sendIdx["at:put:"]=3;
|
|
|
+//>>excludeEnd("ctx");
|
|
|
+$recv($2)._at_put_("false",$globals.PseudoVar);
|
|
|
+//>>excludeStart("ctx", pragmas.excludeDebugContexts);
|
|
|
+$ctx1.sendIdx["at:put:"]=4;
|
|
|
+//>>excludeEnd("ctx");
|
|
|
+$recv($2)._at_put_("true",$globals.PseudoVar);
|
|
|
+//>>excludeStart("ctx", pragmas.excludeDebugContexts);
|
|
|
+$ctx1.sendIdx["at:put:"]=5;
|
|
|
+//>>excludeEnd("ctx");
|
|
|
+$recv($2)._at_put_("thisContext",$globals.ThisContextVar);
|
|
|
+$self.dictionary=$recv($2)._yourself();
|
|
|
+return $self.dictionary;
|
|
|
+} else {
|
|
|
+return $1;
|
|
|
+}
|
|
|
+//>>excludeStart("ctx", pragmas.excludeDebugContexts);
|
|
|
+}, function($ctx1) {$ctx1.fill(self,"dictionary",{})});
|
|
|
+//>>excludeEnd("ctx");
|
|
|
+}; }),
|
|
|
+$globals.PseudoVar.a$cls);
|
|
|
+
|
|
|
|
|
|
$core.addClass("SuperVar", $globals.PseudoVar, [], "Compiler-Semantic");
|
|
|
//>>excludeStart("ide", pragmas.excludeIdeData);
|