浏览代码

__init__ launched in dependency order

Herbert Vojčík 12 年之前
父节点
当前提交
fcd0451f59
共有 1 个文件被更改,包括 3 次插入2 次删除
  1. 3 2
      brikz.js

+ 3 - 2
brikz.js

@@ -19,7 +19,7 @@ function Brikz(api, apiKey, initKey) {
 		ensure: { value: null,
 			enumerable: false, configurable: true, writable: true},
 		rebuild: { value: function() {
-			var obrikz = mixin(backup, {});
+			var obrikz = mixin(backup, {}), inits = [], chk = {};
 			forEach(obrikz, function(brik) {
 				mixin({}, api, brik[apiKey] || Object.keys(brik));
 			});
@@ -30,6 +30,7 @@ function Brikz(api, apiKey, initKey) {
 				mixin({}, api, Object.keys(api));
 				while (typeof b === "function") b = new b(brikz, api, bak);
 				if (b && !b[apiKey]) b[apiKey] = mixin(api, {});
+				if (b && b[initKey] && !chk[key]) { chk[key]=1;inits.push(b); }
 				return brikz[key] = backup[key] = b;
 			}
 			forEach(brikz, function(brik, key) { brikz.ensure(key); });
@@ -37,6 +38,6 @@ function Brikz(api, apiKey, initKey) {
 			mixin({}, api, Object.keys(api));
 			mixin(oapi, api);
 			forEach(brikz, function(brik) { mixin(brik[apiKey] || {}, api); });
-			forEach(brikz, function(brik) {brik[initKey] && brik[initKey]();});
+			inits.forEach(function(brik) { brik[initKey](); });
 		}, enumerable: false, configurable: true, writable: false }});
 }