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