| 
					
				 | 
			
			
				@@ -369,7 +369,6 @@ define(['require', './brikz.umd', './compatibility'], function (require, Brikz) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         /* Smalltalk classes */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         var classes = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        var detachedRootClasses = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         /* Smalltalk class creation. A class is an instance of an automatically 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				          created metaclass object. Newly created classes (not their metaclass) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -394,7 +393,6 @@ define(['require', './brikz.umd', './compatibility'], function (require, Brikz) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             setupClass(that, spec); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             that.className = spec.className; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            that.detachedRoot = spec.detachedRoot || false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             meta.className = spec.className + ' class'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             meta.superclass = spec.superclass.klass; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return that; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -432,10 +430,10 @@ define(['require', './brikz.umd', './compatibility'], function (require, Brikz) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (typeof superclass == 'undefined' || superclass && superclass.isNil) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 console.warn('Compiling ' + className + ' as a subclass of `nil`. A dependency might be missing.'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return rawAddClass(pkgName, className, superclass, iVarNames, null, false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return rawAddClass(pkgName, className, superclass, iVarNames, null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        function rawAddClass(pkgName, className, superclass, iVarNames, fn, detachedRoot) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        function rawAddClass(pkgName, className, superclass, iVarNames, fn) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             var pkg = st.packages[pkgName]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (!pkg) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -464,8 +462,7 @@ define(['require', './brikz.umd', './compatibility'], function (require, Brikz) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     superclass: superclass, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     pkg: pkg, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     iVarNames: iVarNames, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    fn: fn, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    detachedRoot: detachedRoot 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    fn: fn 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 addSubclass(theClass); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -495,24 +492,30 @@ define(['require', './brikz.umd', './compatibility'], function (require, Brikz) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        var detachedRootClasses = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         /* Create a new class coupling with a JavaScript constructor, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				          optionally detached root, and add it to the global smalltalk object.*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         st.addDetachedRootClass = function (className, superclass, pkgName, fn) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            var klass = rawAddClass(pkgName, className, superclass, null, fn, true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            detachedRootClasses.addElement(klass); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var klass = rawAddClass(pkgName, className, superclass, null, fn); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            markClassDetachedRoot(klass); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return klass; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        function markClassDetachedRoot(klass) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            detachedRootClasses.addElement(klass); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            klass.detachedRoot = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         st.addCoupledClass = function (className, superclass, pkgName, fn) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return rawAddClass(pkgName, className, superclass, null, fn, false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return rawAddClass(pkgName, className, superclass, null, fn); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         /* Manually set the constructor of an existing Smalltalk klass, making it a detached root class. */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         st.setClassConstructor = function (klass, constructor) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            detachedRootClasses.addElement(klass); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            klass.detachedRoot = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            markClassDetachedRoot(klass); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             klass.fn = constructor; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             initClass(klass); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }; 
			 |