You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shindig.apache.org by dd...@apache.org on 2012/08/09 01:16:04 UTC
svn commit: r1371013 - in /shindig/trunk/features/src:
main/javascript/features/container/container.js
test/javascript/features/container/container_test.js
Author: ddumont
Date: Wed Aug 8 23:16:04 2012
New Revision: 1371013
URL: http://svn.apache.org/viewvc?rev=1371013&view=rev
Log:
Provide order of container mixin execution.
Modified:
shindig/trunk/features/src/main/javascript/features/container/container.js
shindig/trunk/features/src/test/javascript/features/container/container_test.js
Modified: shindig/trunk/features/src/main/javascript/features/container/container.js
URL: http://svn.apache.org/viewvc/shindig/trunk/features/src/main/javascript/features/container/container.js?rev=1371013&r1=1371012&r2=1371013&view=diff
==============================================================================
--- shindig/trunk/features/src/main/javascript/features/container/container.js (original)
+++ shindig/trunk/features/src/main/javascript/features/container/container.js Wed Aug 8 23:16:04 2012
@@ -403,6 +403,7 @@ osapi.container.Container.addMixin = fun
return func.call(this, container);
};
} else {
+ osapi.container.Container.prototype.mixinsOrder_.push(namespace);
mixins[namespace] = func;
}
};
@@ -421,14 +422,24 @@ osapi.container.Container.addMixin = fun
*/
osapi.container.Container.prototype.mixins_ = {};
+/**
+ * Order of addMixin calls.
+ * @type {Array<string>}
+ * @private
+ */
+osapi.container.Container.prototype.mixinsOrder_ = [];
+
/**
* Called from the constructor to add any namespace extensions.
* @private
*/
osapi.container.Container.prototype.initializeMixins_ = function() {
- for (var i in this.mixins_) {
- this[i] = new this.mixins_[i](this);
+ var mixins = osapi.container.Container.prototype.mixins_,
+ order = osapi.container.Container.prototype.mixinsOrder_;
+ for (var i = 0; i < order.length; i++) {
+ var namespace = order[i];
+ this[namespace] = new mixins[namespace](this);
}
};
Modified: shindig/trunk/features/src/test/javascript/features/container/container_test.js
URL: http://svn.apache.org/viewvc/shindig/trunk/features/src/test/javascript/features/container/container_test.js?rev=1371013&r1=1371012&r2=1371013&view=diff
==============================================================================
--- shindig/trunk/features/src/test/javascript/features/container/container_test.js (original)
+++ shindig/trunk/features/src/test/javascript/features/container/container_test.js Wed Aug 8 23:16:04 2012
@@ -142,6 +142,7 @@ ContainerTest.prototype.testMixinViaProt
}
};
};
+ osapi.container.Container.prototype.mixinsOrder_.push('test');
var container = new osapi.container.Container();
this.setupGadgetSite(1, {}, null);
container.newGadgetSite(null);