| 
					
				 | 
			
			
				@@ -202,10 +202,10 @@ define(['./compatibility' /* TODO remove */], function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    MethodsBrik.deps = ["composition", "selectors", "root", "selectorConversion"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    MethodsBrik.deps = ["behaviorProviders", "selectors", "root", "selectorConversion"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     function MethodsBrik (brikz, st) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         var registerSelector = brikz.selectors.registerSelector; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        var updateMethod = brikz.composition.updateMethod; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        var updateMethod = brikz.behaviorProviders.updateMethod; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         var SmalltalkObject = brikz.root.Object; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         var coreFns = brikz.root.coreFns; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -266,8 +266,8 @@ define(['./compatibility' /* TODO remove */], function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    MethodCompositionBrik.deps = ["organize"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    function MethodCompositionBrik (brikz, st) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    BehaviorProvidersBrik.deps = ["organize"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    function BehaviorProvidersBrik (brikz, st) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         var setupClassOrganization = brikz.organize.setupClassOrganization; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         var addOrganizationElement = brikz.organize.addOrganizationElement; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -297,6 +297,25 @@ define(['./compatibility' /* TODO remove */], function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // This is handled by #removeCompiledMethod 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        function updateMethod (selector, traitOrBehavior) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var oldMethod = traitOrBehavior.methods[selector], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                newMethod = traitOrBehavior.localMethods[selector]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (oldMethod == null && newMethod == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                console.warn("Removal of nonexistent method " + traitOrBehavior + " >> " + selector); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (newMethod === oldMethod) return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (newMethod != null) addMethod(newMethod, traitOrBehavior); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            else removeMethod(oldMethod, traitOrBehavior); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.updateMethod = updateMethod; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    MethodCompositionBrik.deps = ["behaviorProviders"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    function MethodCompositionBrik (brikz, st) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        var updateMethod = brikz.behaviorProviders.updateMethod; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         function aliased (selector, method) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (method.selector === selector) return method; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             var result = st.method({ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -369,21 +388,6 @@ define(['./compatibility' /* TODO remove */], function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // TODO move to MethodBrik once organization is fully on st side 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        function updateMethod (selector, traitOrBehavior) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            var oldMethod = traitOrBehavior.methods[selector], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                newMethod = traitOrBehavior.localMethods[selector]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (oldMethod == null && newMethod == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                console.warn("Removal of nonexistent method " + traitOrBehavior + " >> " + selector); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (newMethod === oldMethod) return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (newMethod != null) addMethod(newMethod, traitOrBehavior); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            else removeMethod(oldMethod, traitOrBehavior); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.updateMethod = updateMethod; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         function aliasesOfSelector (selector, traitAliases) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (!traitAliases) return [selector]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             var result = Object.keys(traitAliases).filter(function (aliasSelector) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -522,6 +526,7 @@ define(['./compatibility' /* TODO remove */], function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         brikz.selectors = SelectorsBrik; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         brikz.packages = PackagesBrik; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         brikz.composition = MethodCompositionBrik; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        brikz.behaviorProviders = BehaviorProvidersBrik; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         brikz.behaviors = BehaviorsBrik; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         brikz.methods = MethodsBrik; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |