| 
					
				 | 
			
			
				@@ -49,9 +49,11 @@ define("amber/boot", [ 'require', './browser-compatibility' ], function (require 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		function mixin(src, target, what) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			for (var keys = Object.keys(what||src), l=keys.length, i=0; i<l; ++i) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				var value = src[keys[i]]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				if (typeof value !== "undefined") { target[keys[i]] = value; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (src == null) { target[keys[i]] = undefined; } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    var value = src[keys[i]]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (typeof value !== "undefined") { target[keys[i]] = value; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			return target; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -61,13 +63,13 @@ define("amber/boot", [ 'require', './browser-compatibility' ], function (require 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		this.rebuild = function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			Object.keys(backup).forEach(function (key) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				mixin({}, api, (backup[key]||0)[apiKey]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				mixin(null, api, (backup[key]||0)[apiKey]||{}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			var oapi = mixin(api, {}), order = [], chk = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			brikz.ensure = function(key) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				if (key in exclude) { return null; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				var b = brikz[key], bak = backup[key]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				mixin({}, api, api); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				mixin(null, api, api); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				while (typeof b === "function") { b = new b(brikz, api, bak); } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				if (b && !chk[key]) { chk[key]=true; order.push(b); } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				if (b && !b[apiKey]) { b[apiKey] = mixin(api, {}); } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -75,7 +77,7 @@ define("amber/boot", [ 'require', './browser-compatibility' ], function (require 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			Object.keys(brikz).forEach(function (key) { brikz.ensure(key); }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			brikz.ensure = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			mixin(oapi, mixin({}, api, api)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			mixin(oapi, mixin(null, api, api)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			order.forEach(function(brik) { mixin(brik[apiKey] || {}, api); }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			order.forEach(function(brik) { brik[initKey] && brik[initKey](); }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			backup = mixin(brikz, {}); 
			 |