|  | @@ -859,7 +859,7 @@ smalltalk.addMethod(
 | 
	
		
			
				|  |  |  '_removeClass_',
 | 
	
		
			
				|  |  |  smalltalk.method({
 | 
	
		
			
				|  |  |  selector: 'removeClass:',
 | 
	
		
			
				|  |  | -category: 'accessing',
 | 
	
		
			
				|  |  | +category: 'classes',
 | 
	
		
			
				|  |  |  fn: function (aClass){
 | 
	
		
			
				|  |  |  var self=this;
 | 
	
		
			
				|  |  |  (($receiver = smalltalk.send(aClass, "_isMetaclass", [])).klass === smalltalk.Boolean) ? ($receiver ? (function(){return smalltalk.send(self, "_error_", [smalltalk.send(smalltalk.send(aClass, "_asString", []), "__comma", [unescape("%20is%20a%20Metaclass%20and%20cannot%20be%20removed%21")])]);})() : nil) : smalltalk.send($receiver, "_ifTrue_", [(function(){return smalltalk.send(self, "_error_", [smalltalk.send(smalltalk.send(aClass, "_asString", []), "__comma", [unescape("%20is%20a%20Metaclass%20and%20cannot%20be%20removed%21")])]);})]);
 | 
	
	
		
			
				|  | @@ -948,7 +948,7 @@ var self=this;
 | 
	
		
			
				|  |  |  return self.packages.all();
 | 
	
		
			
				|  |  |  return self;},
 | 
	
		
			
				|  |  |  args: [],
 | 
	
		
			
				|  |  | -source: unescape('packages%0A%09%3Creturn%20self.packages.all%28%29%3E'),
 | 
	
		
			
				|  |  | +source: unescape('packages%0A%09%22Return%20all%20Package%20instances%20in%20the%20system.%22%0A%0A%09%3Creturn%20self.packages.all%28%29%3E'),
 | 
	
		
			
				|  |  |  messageSends: [],
 | 
	
		
			
				|  |  |  referencedClasses: []
 | 
	
		
			
				|  |  |  }),
 | 
	
	
		
			
				|  | @@ -990,13 +990,13 @@ smalltalk.addMethod(
 | 
	
		
			
				|  |  |  '_createPackage_',
 | 
	
		
			
				|  |  |  smalltalk.method({
 | 
	
		
			
				|  |  |  selector: 'createPackage:',
 | 
	
		
			
				|  |  | -category: 'packages',
 | 
	
		
			
				|  |  | +category: 'private',
 | 
	
		
			
				|  |  |  fn: function (packageName){
 | 
	
		
			
				|  |  |  var self=this;
 | 
	
		
			
				|  |  |  return smalltalk.addPackage(packageName);
 | 
	
		
			
				|  |  |  return self;},
 | 
	
		
			
				|  |  |  args: ["packageName"],
 | 
	
		
			
				|  |  | -source: unescape('createPackage%3A%20packageName%0A%20%20%20%20%20%20%20%3Creturn%20smalltalk.addPackage%28packageName%29%3E'),
 | 
	
		
			
				|  |  | +source: unescape('createPackage%3A%20packageName%0A%09%22Create%20and%20bind%20a%20new%20package%20with%20given%20name%20and%20return%20it.%22%0A%0A%20%20%20%20%20%20%20%3Creturn%20smalltalk.addPackage%28packageName%29%3E'),
 | 
	
		
			
				|  |  |  messageSends: [],
 | 
	
		
			
				|  |  |  referencedClasses: []
 | 
	
		
			
				|  |  |  }),
 | 
	
	
		
			
				|  | @@ -1006,18 +1006,58 @@ smalltalk.addMethod(
 | 
	
		
			
				|  |  |  '_deletePackage_',
 | 
	
		
			
				|  |  |  smalltalk.method({
 | 
	
		
			
				|  |  |  selector: 'deletePackage:',
 | 
	
		
			
				|  |  | -category: 'packages',
 | 
	
		
			
				|  |  | +category: 'private',
 | 
	
		
			
				|  |  |  fn: function (packageName){
 | 
	
		
			
				|  |  |  var self=this;
 | 
	
		
			
				|  |  |  delete smalltalk.packages[packageName];
 | 
	
		
			
				|  |  |  return self;},
 | 
	
		
			
				|  |  |  args: ["packageName"],
 | 
	
		
			
				|  |  | -source: unescape('deletePackage%3A%20packageName%0A%20%20%20%20%20%20%20%3Cdelete%20smalltalk.packages%5BpackageName%5D%3E'),
 | 
	
		
			
				|  |  | +source: unescape('deletePackage%3A%20packageName%0A%09%22Deletes%20a%20package%20by%20deleting%20its%20binding%2C%20but%20does%20not%20check%20if%20it%20contains%20classes%20etc.%0A%09To%20remove%20a%20package%2C%20use%20%23removePackage%20instead.%22%0A%0A%20%20%20%20%20%20%20%3Cdelete%20smalltalk.packages%5BpackageName%5D%3E'),
 | 
	
		
			
				|  |  |  messageSends: [],
 | 
	
		
			
				|  |  |  referencedClasses: []
 | 
	
		
			
				|  |  |  }),
 | 
	
		
			
				|  |  |  smalltalk.Smalltalk);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +smalltalk.addMethod(
 | 
	
		
			
				|  |  | +'_removePackage_',
 | 
	
		
			
				|  |  | +smalltalk.method({
 | 
	
		
			
				|  |  | +selector: 'removePackage:',
 | 
	
		
			
				|  |  | +category: 'packages',
 | 
	
		
			
				|  |  | +fn: function (packageName){
 | 
	
		
			
				|  |  | +var self=this;
 | 
	
		
			
				|  |  | +var package=nil;
 | 
	
		
			
				|  |  | +package=smalltalk.send(self, "_packageAt_ifAbsent_", [packageName, (function(){return smalltalk.send(self, "_error_", [smalltalk.send("Missing package: ", "__comma", [packageName])]);})]);
 | 
	
		
			
				|  |  | +smalltalk.send(smalltalk.send(package, "_classes", []), "_do_", [(function(each){return smalltalk.send(self, "_removeClass_", [each]);})]);
 | 
	
		
			
				|  |  | +smalltalk.send(self, "_deletePackage_", [packageName]);
 | 
	
		
			
				|  |  | +return self;},
 | 
	
		
			
				|  |  | +args: ["packageName"],
 | 
	
		
			
				|  |  | +source: unescape('removePackage%3A%20packageName%0A%09%22Removes%20a%20package%20and%20all%20its%20classes.%22%0A%0A%09%7C%20package%20%7C%0A%09package%20%3A%3D%20self%20packageAt%3A%20packageName%20ifAbsent%3A%20%5Bself%20error%3A%20%27Missing%20package%3A%20%27%2C%20packageName%5D.%0A%09package%20classes%20do%3A%20%5B%3Aeach%20%7C%0A%20%20%20%20%20%20%20%20%09self%20removeClass%3A%20each%5D.%0A%09self%20deletePackage%3A%20packageName'),
 | 
	
		
			
				|  |  | +messageSends: ["packageAt:ifAbsent:", "error:", unescape("%2C"), "do:", "classes", "removeClass:", "deletePackage:"],
 | 
	
		
			
				|  |  | +referencedClasses: []
 | 
	
		
			
				|  |  | +}),
 | 
	
		
			
				|  |  | +smalltalk.Smalltalk);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +smalltalk.addMethod(
 | 
	
		
			
				|  |  | +'_renamePackage_to_',
 | 
	
		
			
				|  |  | +smalltalk.method({
 | 
	
		
			
				|  |  | +selector: 'renamePackage:to:',
 | 
	
		
			
				|  |  | +category: 'packages',
 | 
	
		
			
				|  |  | +fn: function (packageName, newName){
 | 
	
		
			
				|  |  | +var self=this;
 | 
	
		
			
				|  |  | +var package=nil;
 | 
	
		
			
				|  |  | +package=smalltalk.send(self, "_packageAt_ifAbsent_", [packageName, (function(){return smalltalk.send(self, "_error_", [smalltalk.send("Missing package: ", "__comma", [packageName])]);})]);
 | 
	
		
			
				|  |  | +(($receiver = smalltalk.send(self, "_packageAt_", [newName])) != nil && $receiver != undefined) ? (function(){return smalltalk.send(self, "_error_", [smalltalk.send("Already exists a package called: ", "__comma", [newName])]);})() : nil;
 | 
	
		
			
				|  |  | +smalltalk.packages[newName] = smalltalk.packages[packageName];
 | 
	
		
			
				|  |  | +smalltalk.send(package, "_name_", [newName]);
 | 
	
		
			
				|  |  | +smalltalk.send(self, "_deletePackage_", [packageName]);
 | 
	
		
			
				|  |  | +return self;},
 | 
	
		
			
				|  |  | +args: ["packageName", "newName"],
 | 
	
		
			
				|  |  | +source: unescape('renamePackage%3A%20packageName%20to%3A%20newName%0A%09%22Rename%20a%20package.%22%0A%0A%09%7C%20package%20%7C%0A%09package%20%3A%3D%20self%20packageAt%3A%20packageName%20ifAbsent%3A%20%5Bself%20error%3A%20%27Missing%20package%3A%20%27%2C%20packageName%5D.%0A%09%28self%20packageAt%3A%20newName%29%20ifNotNil%3A%20%5Bself%20error%3A%20%27Already%20exists%20a%20package%20called%3A%20%27%2C%20newName%5D.%0A%09%3Csmalltalk.packages%5BnewName%5D%20%3D%20smalltalk.packages%5BpackageName%5D%3E.%0A%09package%20name%3A%20newName.%0A%09self%20deletePackage%3A%20packageName.%0A'),
 | 
	
		
			
				|  |  | +messageSends: ["packageAt:ifAbsent:", "error:", unescape("%2C"), "ifNotNil:", "packageAt:", "name:", "deletePackage:"],
 | 
	
		
			
				|  |  | +referencedClasses: []
 | 
	
		
			
				|  |  | +}),
 | 
	
		
			
				|  |  | +smalltalk.Smalltalk);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  smalltalk.Smalltalk.klass.iVarNames = ['current'];
 | 
	
		
			
				|  |  |  smalltalk.addMethod(
 |