| 
					
				 | 
			
			
				@@ -245,9 +245,6 @@ define(['require', './brikz', './compatibility'], function (require, Brikz) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         function SmalltalkBehavior () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        function SmalltalkTrait () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         function SmalltalkClass () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -255,7 +252,6 @@ define(['require', './brikz', './compatibility'], function (require, Brikz) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         inherits(SmalltalkBehavior, SmalltalkObject); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        inherits(SmalltalkTrait, SmalltalkBehavior); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         inherits(SmalltalkClass, SmalltalkBehavior); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         inherits(SmalltalkMetaclass, SmalltalkBehavior); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -263,22 +259,8 @@ define(['require', './brikz', './compatibility'], function (require, Brikz) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return 'Smalltalk ' + this.className; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        SmalltalkTrait.prototype.trait = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         SmalltalkMetaclass.prototype.meta = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        SmalltalkTrait.prototype.added = function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (st._traitAdded) st._traitAdded(this); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        SmalltalkTrait.prototype.methodAdded = function (method) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (st._traitMethodAdded) st._traitMethodAdded(method, this); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        SmalltalkTrait.prototype.methodRemoved = function (method) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (st._traitMethodRemoved) st._traitMethodRemoved(method, this); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         SmalltalkClass.prototype.added = function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (st._classAdded) st._classAdded(this); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -291,6 +273,8 @@ define(['require', './brikz', './compatibility'], function (require, Brikz) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (st._methodRemoved) st._methodRemoved(method, this); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.Behavior = SmalltalkBehavior; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.__init__ = function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             var globals = brikz.smalltalkGlobals.globals; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             var addCoupledClass = brikz.classes.addCoupledClass; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -298,7 +282,6 @@ define(['require', './brikz', './compatibility'], function (require, Brikz) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             addCoupledClass("Behavior", globals.Object, "Kernel-Classes", SmalltalkBehavior); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             addCoupledClass("Metaclass", globals.Behavior, "Kernel-Classes", SmalltalkMetaclass); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             addCoupledClass("Class", globals.Behavior, "Kernel-Classes", SmalltalkClass); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            addCoupledClass("Trait", globals.Behavior, "Kernel-Classes", SmalltalkTrait); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // Manually bootstrap the metaclass hierarchy 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             globals.ProtoObject.klass.superclass = nilAsClass.klass = globals.Class; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -315,13 +298,6 @@ define(['require', './brikz', './compatibility'], function (require, Brikz) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				          should be added to the system, see smalltalk.addClass(). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				          Superclass linking is *not* handled here, see api.initialize()  */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        function trait (spec) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            var that = new SmalltalkTrait(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            that.className = spec.className; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            setupClass(that, spec); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return that; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         function klass (spec) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             var setSuperClass = spec.superclass; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (!spec.superclass) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -368,6 +344,8 @@ define(['require', './brikz', './compatibility'], function (require, Brikz) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.setupClass = setupClass; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         function wireKlass (klass) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             Object.defineProperty(klass.fn.prototype, "klass", { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 value: klass, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -393,11 +371,6 @@ define(['require', './brikz', './compatibility'], function (require, Brikz) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             "class": klass 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        st.addTrait = function (className, pkgName) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return rawAddClass(pkgName, "trait", {className: className}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        classFactories.trait = trait; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         function rawAddClass (pkgName, type, spec) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             spec.pkg = st.packages[pkgName]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -429,6 +402,8 @@ define(['require', './brikz', './compatibility'], function (require, Brikz) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return theClass; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.rawAddClass = rawAddClass; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         st.removeClass = function (klass) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             removeOrganizationElement(klass.pkg, klass); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             classes.removeElement(klass); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -565,6 +540,54 @@ define(['require', './brikz', './compatibility'], function (require, Brikz) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    TraitsBrik.deps = ["classes"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    function TraitsBrik (brikz, st) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        var SmalltalkBehavior = brikz.classes.Behavior; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        var setupClass = brikz.classes.setupClass; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        var rawAddClass = brikz.classes.rawAddClass; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        var classFactories = brikz.classes.classFactories; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        function SmalltalkTrait () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        inherits(SmalltalkTrait, SmalltalkBehavior); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SmalltalkTrait.prototype.trait = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SmalltalkTrait.prototype.added = function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (st._traitAdded) st._traitAdded(this); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SmalltalkTrait.prototype.methodAdded = function (method) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (st._traitMethodAdded) st._traitMethodAdded(method, this); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SmalltalkTrait.prototype.methodRemoved = function (method) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (st._traitMethodRemoved) st._traitMethodRemoved(method, this); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.__init__ = function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var globals = brikz.smalltalkGlobals.globals; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var addCoupledClass = brikz.classes.addCoupledClass; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            st.addPackage("Kernel-Classes"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            addCoupledClass("Trait", globals.Behavior, "Kernel-Classes", SmalltalkTrait); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.__init__.once = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        function trait (spec) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var that = new SmalltalkTrait(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            that.className = spec.className; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            setupClass(that, spec); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return that; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        classFactories.trait = trait; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        st.addTrait = function (className, pkgName) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return rawAddClass(pkgName, "trait", {className: className}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     function AugmentsBrik (brikz, st) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         /* Array extensions */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -719,6 +742,7 @@ define(['require', './brikz', './compatibility'], function (require, Brikz) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     brikz.packages = PackagesBrik; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     brikz.classes = ClassesBrik; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     brikz.methods = MethodsBrik; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    brikz.traits = TraitsBrik; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     brikz.stInit = SmalltalkInitBrik; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     brikz.augments = AugmentsBrik; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     brikz.asReceiver = AsReceiverBrik; 
			 |