| 
					
				 | 
			
			
				@@ -277,6 +277,55 @@ define("amber/boot", [ 'require', './browser-compatibility' ], function (require 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		this.installMethod = installMethod; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	function PackagesBrik(brikz, st) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		var org = brikz.ensure("organize"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		var root = brikz.ensure("root"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		var nil = root.nil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		var SmalltalkObject = root.Object; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		function SmalltalkPackage() {} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		inherits(SmalltalkPackage, SmalltalkObject); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		this.__init__ = function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			st.addPackage("Kernel-Infrastructure"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			st.wrapClassName("Package", "Kernel-Infrastructure", SmalltalkPackage, globals.Object, false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		st.packages = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		/* Smalltalk package creation. To add a Package, use smalltalk.addPackage() */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		function pkg(spec) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			var that = new SmalltalkPackage(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			that.pkgName = spec.pkgName; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			org.setupPackageOrganization(that); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			that.properties = spec.properties || {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			return that; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		/* Add a package to the smalltalk.packages object, creating a new one if needed. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		 If pkgName is null or empty we return nil, which is an allowed package for a class. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		 If package already exists we still update the properties of it. */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		st.addPackage = function(pkgName, properties) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if(!pkgName) {return nil;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if(!(st.packages[pkgName])) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				st.packages[pkgName] = pkg({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					pkgName: pkgName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					properties: properties 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				if(properties) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					st.packages[pkgName].properties = properties; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			return st.packages[pkgName]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	function ClassesBrik(brikz, st) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		var org = brikz.ensure("organize"); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -287,12 +336,10 @@ define("amber/boot", [ 'require', './browser-compatibility' ], function (require 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		var SmalltalkObject = root.Object; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		rootAsClass.klass = {fn: SmalltalkClass}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		function SmalltalkPackage() {} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		function SmalltalkBehavior() {} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		function SmalltalkClass() {} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		function SmalltalkMetaclass() {} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		inherits(SmalltalkPackage, SmalltalkObject); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		inherits(SmalltalkBehavior, SmalltalkObject); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		inherits(SmalltalkClass, SmalltalkBehavior); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		inherits(SmalltalkMetaclass, SmalltalkBehavior); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -308,9 +355,6 @@ define("amber/boot", [ 'require', './browser-compatibility' ], function (require 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			// Manually bootstrap the metaclass hierarchy 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			globals.ProtoObject.klass.superclass = rootAsClass.klass = globals.Class; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			addSubclass(globals.ProtoObject.klass); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			st.addPackage("Kernel-Infrastructure"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			st.wrapClassName("Package", "Kernel-Infrastructure", SmalltalkPackage, globals.Object, false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		/* Smalltalk classes */ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -318,20 +362,6 @@ define("amber/boot", [ 'require', './browser-compatibility' ], function (require 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		var classes = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		var wrappedClasses = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		/* We hold all Packages in a separate Object */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		st.packages = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		/* Smalltalk package creation. To add a Package, use smalltalk.addPackage() */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		function pkg(spec) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			var that = new SmalltalkPackage(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			that.pkgName = spec.pkgName; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			org.setupPackageOrganization(that); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			that.properties = spec.properties || {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			return that; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		/* Smalltalk class creation. A class is an instance of an automatically 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		 created metaclass object. Newly created classes (not their metaclass) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		 should be added to the smalltalk object, see smalltalk.addClass(). 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -394,25 +424,6 @@ define("amber/boot", [ 'require', './browser-compatibility' ], function (require 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			wireKlass(klass); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		/* Add a package to the smalltalk.packages object, creating a new one if needed. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		 If pkgName is null or empty we return nil, which is an allowed package for a class. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		 If package already exists we still update the properties of it. */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		st.addPackage = function(pkgName, properties) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			if(!pkgName) {return nil;} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			if(!(st.packages[pkgName])) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				st.packages[pkgName] = pkg({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					pkgName: pkgName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					properties: properties 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				if(properties) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					st.packages[pkgName].properties = properties; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			return st.packages[pkgName]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		/* Add a class to the smalltalk object, creating a new one if needed. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		 A Package is lazily created if it does not exist with given name. */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1127,6 +1138,7 @@ define("amber/boot", [ 'require', './browser-compatibility' ], function (require 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	brikz.selectorConversion = SelectorConversionBrik; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	brikz.classInit = ClassInitBrik; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	brikz.manipulation = ManipulationBrik; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	brikz.packages = PackagesBrik; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	brikz.classes = ClassesBrik; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	brikz.methods = MethodsBrik; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	brikz.stInit = SmalltalkInitBrik; 
			 |