|
@@ -8,13 +8,19 @@ selector: "addCompiledMethod:",
|
|
category: 'compiling',
|
|
category: 'compiling',
|
|
fn: function (aMethod){
|
|
fn: function (aMethod){
|
|
var self=this;
|
|
var self=this;
|
|
|
|
+var $1,$2;
|
|
smalltalk.addMethod(aMethod.selector._asSelector(), aMethod, self);
|
|
smalltalk.addMethod(aMethod.selector._asSelector(), aMethod, self);
|
|
;
|
|
;
|
|
|
|
+$1=smalltalk.send((smalltalk.MethodAdded || MethodAdded),"_new",[]);
|
|
|
|
+smalltalk.send($1,"_theClass_",[self]);
|
|
|
|
+smalltalk.send($1,"_method_",[aMethod]);
|
|
|
|
+$2=smalltalk.send($1,"_yourself",[]);
|
|
|
|
+smalltalk.send(smalltalk.send((smalltalk.SystemAnnouncer || SystemAnnouncer),"_current",[]),"_announce_",[$2]);
|
|
return self},
|
|
return self},
|
|
args: ["aMethod"],
|
|
args: ["aMethod"],
|
|
-source: "addCompiledMethod: aMethod\x0a\x09<smalltalk.addMethod(aMethod.selector._asSelector(), aMethod, self)>",
|
|
+source: "addCompiledMethod: aMethod\x0a\x09<smalltalk.addMethod(aMethod.selector._asSelector(), aMethod, self)>.\x0a \x0a SystemAnnouncer current\x0a \x09\x09announce: (MethodAdded new\x0a \x09theClass: self;\x0a method: aMethod;\x0a yourself)",
|
|
-messageSends: [],
|
|
+messageSends: ["announce:", "theClass:", "new", "method:", "yourself", "current"],
|
|
-referencedClasses: []
|
|
+referencedClasses: ["MethodAdded", "SystemAnnouncer"]
|
|
}),
|
|
}),
|
|
smalltalk.Behavior);
|
|
smalltalk.Behavior);
|
|
|
|
|
|
@@ -133,12 +139,17 @@ selector: "comment:",
|
|
category: 'accessing',
|
|
category: 'accessing',
|
|
fn: function (aString){
|
|
fn: function (aString){
|
|
var self=this;
|
|
var self=this;
|
|
|
|
+var $1,$2;
|
|
smalltalk.send(self,"_basicAt_put_",["comment",aString]);
|
|
smalltalk.send(self,"_basicAt_put_",["comment",aString]);
|
|
|
|
+$1=smalltalk.send((smalltalk.ClassCommentChanged || ClassCommentChanged),"_new",[]);
|
|
|
|
+smalltalk.send($1,"_theClass_",[self]);
|
|
|
|
+$2=smalltalk.send($1,"_yourself",[]);
|
|
|
|
+smalltalk.send(smalltalk.send((smalltalk.SystemAnnouncer || SystemAnnouncer),"_new",[]),"_announce_",[$2]);
|
|
return self},
|
|
return self},
|
|
args: ["aString"],
|
|
args: ["aString"],
|
|
-source: "comment: aString\x0a self basicAt: 'comment' put: aString",
|
|
+source: "comment: aString\x0a self basicAt: 'comment' put: aString.\x0a SystemAnnouncer new\x0a \x09announce: (ClassCommentChanged new\x0a \x09theClass: self;\x0a yourself)",
|
|
-messageSends: ["basicAt:put:"],
|
|
+messageSends: ["basicAt:put:", "announce:", "theClass:", "new", "yourself"],
|
|
-referencedClasses: []
|
|
+referencedClasses: ["ClassCommentChanged", "SystemAnnouncer"]
|
|
}),
|
|
}),
|
|
smalltalk.Behavior);
|
|
smalltalk.Behavior);
|
|
|
|
|
|
@@ -204,14 +215,11 @@ selector: "compile:category:",
|
|
category: 'compiling',
|
|
category: 'compiling',
|
|
fn: function (aString,anotherString){
|
|
fn: function (aString,anotherString){
|
|
var self=this;
|
|
var self=this;
|
|
-var $1,$2;
|
|
+smalltalk.send(smalltalk.send((smalltalk.Compiler || Compiler),"_new",[]),"_install_forClass_category_",[aString,self,anotherString]);
|
|
-$1=smalltalk.send((smalltalk.Compiler || Compiler),"_new",[]);
|
|
|
|
-smalltalk.send($1,"_install_forClass_category_",[aString,self,anotherString]);
|
|
|
|
-$2=smalltalk.send($1,"_setupClass_",[self]);
|
|
|
|
return self},
|
|
return self},
|
|
args: ["aString", "anotherString"],
|
|
args: ["aString", "anotherString"],
|
|
-source: "compile: aString category: anotherString\x0a\x09Compiler new\x0a\x09\x09install: aString forClass: self category: anotherString;\x0a\x09\x09setupClass: self",
|
|
+source: "compile: aString category: anotherString\x0a\x09Compiler new\x0a\x09\x09install: aString \x0a forClass: self \x0a category: anotherString",
|
|
-messageSends: ["install:forClass:category:", "new", "setupClass:"],
|
|
+messageSends: ["install:forClass:category:", "new"],
|
|
referencedClasses: ["Compiler"]
|
|
referencedClasses: ["Compiler"]
|
|
}),
|
|
}),
|
|
smalltalk.Behavior);
|
|
smalltalk.Behavior);
|
|
@@ -441,15 +449,21 @@ selector: "removeCompiledMethod:",
|
|
category: 'compiling',
|
|
category: 'compiling',
|
|
fn: function (aMethod){
|
|
fn: function (aMethod){
|
|
var self=this;
|
|
var self=this;
|
|
|
|
+var $1,$2;
|
|
delete self.fn.prototype[aMethod.selector._asSelector()];
|
|
delete self.fn.prototype[aMethod.selector._asSelector()];
|
|
delete self.fn.prototype.methods[aMethod.selector];
|
|
delete self.fn.prototype.methods[aMethod.selector];
|
|
smalltalk.init(self);;
|
|
smalltalk.init(self);;
|
|
;
|
|
;
|
|
|
|
+$1=smalltalk.send((smalltalk.MethodRemoved || MethodRemoved),"_new",[]);
|
|
|
|
+smalltalk.send($1,"_theClass_",[self]);
|
|
|
|
+smalltalk.send($1,"_method_",[aMethod]);
|
|
|
|
+$2=smalltalk.send($1,"_yourself",[]);
|
|
|
|
+smalltalk.send(smalltalk.send((smalltalk.SystemAnnouncer || SystemAnnouncer),"_current",[]),"_announce_",[$2]);
|
|
return self},
|
|
return self},
|
|
args: ["aMethod"],
|
|
args: ["aMethod"],
|
|
-source: "removeCompiledMethod: aMethod\x0a\x09<delete self.fn.prototype[aMethod.selector._asSelector()];\x0a\x09delete self.fn.prototype.methods[aMethod.selector];\x0a\x09smalltalk.init(self);>",
|
|
+source: "removeCompiledMethod: aMethod\x0a\x09<delete self.fn.prototype[aMethod.selector._asSelector()];\x0a\x09delete self.fn.prototype.methods[aMethod.selector];\x0a\x09smalltalk.init(self);>.\x0a \x0a SystemAnnouncer current\x0a \x09\x09announce: (MethodRemoved new\x0a \x09theClass: self;\x0a method: aMethod;\x0a yourself)",
|
|
-messageSends: [],
|
|
+messageSends: ["announce:", "theClass:", "new", "method:", "yourself", "current"],
|
|
-referencedClasses: []
|
|
+referencedClasses: ["MethodRemoved", "SystemAnnouncer"]
|
|
}),
|
|
}),
|
|
smalltalk.Behavior);
|
|
smalltalk.Behavior);
|
|
|
|
|
|
@@ -628,17 +642,12 @@ selector: "rename:",
|
|
category: 'accessing',
|
|
category: 'accessing',
|
|
fn: function (aString){
|
|
fn: function (aString){
|
|
var self=this;
|
|
var self=this;
|
|
-
|
|
+smalltalk.send(smalltalk.send((smalltalk.ClassBuilder || ClassBuilder),"_new",[]),"_renameClass_to_",[self,aString]);
|
|
- smalltalk[aString] = self;
|
|
|
|
- delete smalltalk[self.className];
|
|
|
|
- self.className = aString;
|
|
|
|
- ;
|
|
|
|
-;
|
|
|
|
return self},
|
|
return self},
|
|
args: ["aString"],
|
|
args: ["aString"],
|
|
-source: "rename: aString\x0a\x09<\x0a\x09\x09smalltalk[aString] = self;\x0a\x09\x09delete smalltalk[self.className];\x0a\x09\x09self.className = aString;\x0a\x09>",
|
|
+source: "rename: aString\x0a\x09ClassBuilder new renameClass: self to: aString",
|
|
-messageSends: [],
|
|
+messageSends: ["renameClass:to:", "new"],
|
|
-referencedClasses: []
|
|
+referencedClasses: ["ClassBuilder"]
|
|
}),
|
|
}),
|
|
smalltalk.Class);
|
|
smalltalk.Class);
|
|
|
|
|
|
@@ -851,18 +860,22 @@ selector: "class:instanceVariableNames:",
|
|
category: 'class creation',
|
|
category: 'class creation',
|
|
fn: function (aClass,aString){
|
|
fn: function (aClass,aString){
|
|
var self=this;
|
|
var self=this;
|
|
-var $1;
|
|
+var $1,$2,$3;
|
|
$1=smalltalk.send(aClass,"_isMetaclass",[]);
|
|
$1=smalltalk.send(aClass,"_isMetaclass",[]);
|
|
if(! smalltalk.assert($1)){
|
|
if(! smalltalk.assert($1)){
|
|
smalltalk.send(self,"_error_",[smalltalk.send(smalltalk.send(aClass,"_name",[]),"__comma",[" is not a metaclass"])]);
|
|
smalltalk.send(self,"_error_",[smalltalk.send(smalltalk.send(aClass,"_name",[]),"__comma",[" is not a metaclass"])]);
|
|
};
|
|
};
|
|
smalltalk.send(aClass,"_basicAt_put_",["iVarNames",smalltalk.send(self,"_instanceVariableNamesFor_",[aString])]);
|
|
smalltalk.send(aClass,"_basicAt_put_",["iVarNames",smalltalk.send(self,"_instanceVariableNamesFor_",[aString])]);
|
|
|
|
+$2=smalltalk.send((smalltalk.ClassDefinitionChanged || ClassDefinitionChanged),"_new",[]);
|
|
|
|
+smalltalk.send($2,"_theClass_",[aClass]);
|
|
|
|
+$3=smalltalk.send($2,"_yourself",[]);
|
|
|
|
+smalltalk.send(smalltalk.send((smalltalk.SystemAnnouncer || SystemAnnouncer),"_new",[]),"_announce_",[$3]);
|
|
smalltalk.send(self,"_setupClass_",[aClass]);
|
|
smalltalk.send(self,"_setupClass_",[aClass]);
|
|
return self},
|
|
return self},
|
|
args: ["aClass", "aString"],
|
|
args: ["aClass", "aString"],
|
|
-source: "class: aClass instanceVariableNames: aString\x0a\x09aClass isMetaclass ifFalse: [self error: aClass name, ' is not a metaclass'].\x0a\x09aClass basicAt: 'iVarNames' put: (self instanceVariableNamesFor: aString).\x0a\x09self setupClass: aClass",
|
|
+source: "class: aClass instanceVariableNames: aString\x0a\x09aClass isMetaclass ifFalse: [self error: aClass name, ' is not a metaclass'].\x0a\x09aClass basicAt: 'iVarNames' put: (self instanceVariableNamesFor: aString).\x0a \x0a SystemAnnouncer new\x0a \x09announce: (ClassDefinitionChanged new\x0a \x09theClass: aClass;\x0a yourself).\x0a \x0a\x09self setupClass: aClass",
|
|
-messageSends: ["ifFalse:", "error:", ",", "name", "isMetaclass", "basicAt:put:", "instanceVariableNamesFor:", "setupClass:"],
|
|
+messageSends: ["ifFalse:", "error:", ",", "name", "isMetaclass", "basicAt:put:", "instanceVariableNamesFor:", "announce:", "theClass:", "new", "yourself", "setupClass:"],
|
|
-referencedClasses: []
|
|
+referencedClasses: ["ClassDefinitionChanged", "SystemAnnouncer"]
|
|
}),
|
|
}),
|
|
smalltalk.ClassBuilder);
|
|
smalltalk.ClassBuilder);
|
|
|
|
|
|
@@ -912,6 +925,32 @@ referencedClasses: []
|
|
}),
|
|
}),
|
|
smalltalk.ClassBuilder);
|
|
smalltalk.ClassBuilder);
|
|
|
|
|
|
|
|
+smalltalk.addMethod(
|
|
|
|
+"_renameClass_to_",
|
|
|
|
+smalltalk.method({
|
|
|
|
+selector: "renameClass:to:",
|
|
|
|
+category: 'class creation',
|
|
|
|
+fn: function (aClass,aString){
|
|
|
|
+var self=this;
|
|
|
|
+var $1,$2;
|
|
|
|
+
|
|
|
|
+ smalltalk[aString] = aClass;
|
|
|
|
+ delete smalltalk[aClass.className];
|
|
|
|
+ aClass.className = aString;
|
|
|
|
+ ;
|
|
|
|
+;
|
|
|
|
+$1=smalltalk.send((smalltalk.ClassRenamed || ClassRenamed),"_new",[]);
|
|
|
|
+smalltalk.send($1,"_theClass_",[aClass]);
|
|
|
|
+$2=smalltalk.send($1,"_yourself",[]);
|
|
|
|
+smalltalk.send(smalltalk.send((smalltalk.SystemAnnouncer || SystemAnnouncer),"_current",[]),"_announce_",[$2]);
|
|
|
|
+return self},
|
|
|
|
+args: ["aClass", "aString"],
|
|
|
|
+source: "renameClass: aClass to: aString\x0a\x09<\x0a\x09\x09smalltalk[aString] = aClass;\x0a\x09\x09delete smalltalk[aClass.className];\x0a\x09\x09aClass.className = aString;\x0a\x09>.\x0a \x0a SystemAnnouncer current\x0a \x09announce: (ClassRenamed new\x0a \x09theClass: aClass;\x0a yourself)\x0a \x09",
|
|
|
|
+messageSends: ["announce:", "theClass:", "new", "yourself", "current"],
|
|
|
|
+referencedClasses: ["ClassRenamed", "SystemAnnouncer"]
|
|
|
|
+}),
|
|
|
|
+smalltalk.ClassBuilder);
|
|
|
|
+
|
|
smalltalk.addMethod(
|
|
smalltalk.addMethod(
|
|
"_setupClass_",
|
|
"_setupClass_",
|
|
smalltalk.method({
|
|
smalltalk.method({
|
|
@@ -954,7 +993,7 @@ selector: "superclass:subclass:instanceVariableNames:package:",
|
|
category: 'class creation',
|
|
category: 'class creation',
|
|
fn: function (aClass,aString,aString2,aString3){
|
|
fn: function (aClass,aString,aString2,aString3){
|
|
var self=this;
|
|
var self=this;
|
|
-var $1;
|
|
+var $1,$2,$3;
|
|
var newClass;
|
|
var newClass;
|
|
if(($receiver = aString3) == nil || $receiver == undefined){
|
|
if(($receiver = aString3) == nil || $receiver == undefined){
|
|
$1="unclassified";
|
|
$1="unclassified";
|
|
@@ -963,12 +1002,16 @@ $1=aString3;
|
|
};
|
|
};
|
|
newClass=smalltalk.send(self,"_addSubclassOf_named_instanceVariableNames_package_",[aClass,aString,smalltalk.send(self,"_instanceVariableNamesFor_",[aString2]),$1]);
|
|
newClass=smalltalk.send(self,"_addSubclassOf_named_instanceVariableNames_package_",[aClass,aString,smalltalk.send(self,"_instanceVariableNamesFor_",[aString2]),$1]);
|
|
smalltalk.send(self,"_setupClass_",[newClass]);
|
|
smalltalk.send(self,"_setupClass_",[newClass]);
|
|
|
|
+$2=smalltalk.send((smalltalk.ClassAdded || ClassAdded),"_new",[]);
|
|
|
|
+smalltalk.send($2,"_theClass_",[newClass]);
|
|
|
|
+$3=smalltalk.send($2,"_yourself",[]);
|
|
|
|
+smalltalk.send(smalltalk.send((smalltalk.SystemAnnouncer || SystemAnnouncer),"_current",[]),"_announce_",[$3]);
|
|
return newClass;
|
|
return newClass;
|
|
},
|
|
},
|
|
args: ["aClass", "aString", "aString2", "aString3"],
|
|
args: ["aClass", "aString", "aString2", "aString3"],
|
|
-source: "superclass: aClass subclass: aString instanceVariableNames: aString2 package: aString3\x0a\x09| newClass |\x0a\x09newClass := self addSubclassOf: aClass\x0a\x09\x09\x09\x09named: aString instanceVariableNames: (self instanceVariableNamesFor: aString2)\x0a\x09\x09\x09\x09package: (aString3 ifNil: ['unclassified']).\x0a\x09self setupClass: newClass.\x0a\x09^newClass",
|
|
+source: "superclass: aClass subclass: aString instanceVariableNames: aString2 package: aString3\x0a\x09| newClass |\x0a\x09\x0a newClass := self addSubclassOf: aClass\x0a\x09\x09named: aString instanceVariableNames: (self instanceVariableNamesFor: aString2)\x0a\x09\x09package: (aString3 ifNil: ['unclassified']).\x0a\x09self setupClass: newClass.\x0a \x0a SystemAnnouncer current \x0a \x09announce: (ClassAdded new\x0a \x09theClass: newClass;\x0a yourself).\x0a \x0a\x09^newClass",
|
|
-messageSends: ["addSubclassOf:named:instanceVariableNames:package:", "instanceVariableNamesFor:", "ifNil:", "setupClass:"],
|
|
+messageSends: ["addSubclassOf:named:instanceVariableNames:package:", "instanceVariableNamesFor:", "ifNil:", "setupClass:", "announce:", "theClass:", "new", "yourself", "current"],
|
|
-referencedClasses: []
|
|
+referencedClasses: ["ClassAdded", "SystemAnnouncer"]
|
|
}),
|
|
}),
|
|
smalltalk.ClassBuilder);
|
|
smalltalk.ClassBuilder);
|
|
|
|
|