|
@@ -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;
|
|
|
|