123456789101112131415161718192021222324 |
- function Brikz(api) {
- var brikz = this, backup = {};
- function mixin(s, t, k) {
- for (k=k||Object.keys(s), l=k.length, i=0; i<l; ++i) t[k[i]]=s[k[i]];
- return t;
- }
- Object.defineProperties(this, {
- ensure: { value: null,
- enumerable: false, configurable: true, writable: true},
- rebuild: { value: function () {
- var oapi = mixin(api, {}), obrikz = mixin(backup, {});
- mixin({}, api, Object.keys(api)); backup = {};
- brikz.ensure = function (key) {
- var b = brikz[key], bak = [];
- while (typeof b === "function") b = new b(brikz, api, bak);
- if (b === bak) { b = obrikz[key]; mixin(oapi, api, bak); }
- return brikz[key] = backup[key] = b;
- }
- Object.keys(brikz).forEach(function (key) { brikz.ensure(key); });
- brikz.ensure = null;
- }, enumerable: false, configurable: true, writable: false }});
- }
|