|  | @@ -194,11 +194,9 @@ define("amber/boot", [ 'require', './browser-compatibility' ], function (require
 | 
	
		
			
				|  |  |  		this.selectors = [];
 | 
	
		
			
				|  |  |  		this.jsSelectors = [];
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -		this.get = function (stSelector) {
 | 
	
		
			
				|  |  | +		this.make = function (stSelector, targetClasses) {
 | 
	
		
			
				|  |  |  			var method = methodDict[stSelector];
 | 
	
		
			
				|  |  | -			if(method) {
 | 
	
		
			
				|  |  | -				return method;
 | 
	
		
			
				|  |  | -			}
 | 
	
		
			
				|  |  | +			if(method) return;
 | 
	
		
			
				|  |  |  			var jsSelector = st.st2js(stSelector);
 | 
	
		
			
				|  |  |  			this.selectors.push(stSelector);
 | 
	
		
			
				|  |  |  			this.jsSelectors.push(jsSelector);
 | 
	
	
		
			
				|  | @@ -206,6 +204,9 @@ define("amber/boot", [ 'require', './browser-compatibility' ], function (require
 | 
	
		
			
				|  |  |  			methodDict[stSelector] = method;
 | 
	
		
			
				|  |  |  			methods.push(method);
 | 
	
		
			
				|  |  |  			manip.installMethod(method, rootAsClass);
 | 
	
		
			
				|  |  | +            targetClasses.forEach(function (target) {
 | 
	
		
			
				|  |  | +                manip.installMethod(method, target);
 | 
	
		
			
				|  |  | +            });
 | 
	
		
			
				|  |  |  			return method;
 | 
	
		
			
				|  |  |  		};
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -261,20 +262,12 @@ define("amber/boot", [ 'require', './browser-compatibility' ], function (require
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	function ManipulationBrik(brikz, st) {
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -		this.installMethodIfAbsent = function (handler, klass) {
 | 
	
		
			
				|  |  | -			if(!klass.fn.prototype[handler.jsSelector]) {
 | 
	
		
			
				|  |  | -				installMethod(handler, klass);
 | 
	
		
			
				|  |  | -			}
 | 
	
		
			
				|  |  | -		};
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -		function installMethod (method, klass) {
 | 
	
		
			
				|  |  | +        this.installMethod = function (method, klass) {
 | 
	
		
			
				|  |  |  			Object.defineProperty(klass.fn.prototype, method.jsSelector, {
 | 
	
		
			
				|  |  |  				value: method.fn,
 | 
	
		
			
				|  |  |  				enumerable: false, configurable: true, writable: true
 | 
	
		
			
				|  |  |  			});
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  | -		this.installMethod = installMethod;
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -575,13 +568,6 @@ define("amber/boot", [ 'require', './browser-compatibility' ], function (require
 | 
	
		
			
				|  |  |  			return that;
 | 
	
		
			
				|  |  |  		};
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -		function installNewDnuHandler(newHandler) {
 | 
	
		
			
				|  |  | -			var wrappedClasses = st.wrappedClasses();
 | 
	
		
			
				|  |  | -			for(var i = 0; i < wrappedClasses.length; i++) {
 | 
	
		
			
				|  |  | -				manip.installMethodIfAbsent(newHandler, wrappedClasses[i]);
 | 
	
		
			
				|  |  | -			}
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |  		function ensureJsSelector(method) {
 | 
	
		
			
				|  |  |  			if (!(method.jsSelector)) {
 | 
	
		
			
				|  |  |  				method.jsSelector = st.st2js(method.selector);
 | 
	
	
		
			
				|  | @@ -602,19 +588,13 @@ define("amber/boot", [ 'require', './browser-compatibility' ], function (require
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  			propagateMethodChange(klass, method);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -			var usedSelectors = method.messageSends;
 | 
	
		
			
				|  |  | -			var dnuHandlers = [];
 | 
	
		
			
				|  |  | +			var usedSelectors = method.messageSends,
 | 
	
		
			
				|  |  | +                targetClasses = stInit.initialized() ? st.wrappedClasses() : [];
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -			dnuHandlers.push(dnu.get(method.selector));
 | 
	
		
			
				|  |  | +			dnu.make(method.selector, targetClasses);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  			for(var i=0; i<usedSelectors.length; i++) {
 | 
	
		
			
				|  |  | -				dnuHandlers.push(dnu.get(usedSelectors[i]));
 | 
	
		
			
				|  |  | -			}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -			if(stInit.initialized()) {
 | 
	
		
			
				|  |  | -				dnuHandlers.forEach(function(each) {
 | 
	
		
			
				|  |  | -					installNewDnuHandler(each);
 | 
	
		
			
				|  |  | -				});
 | 
	
		
			
				|  |  | +				dnu.make(usedSelectors[i], targetClasses);
 | 
	
		
			
				|  |  |  			}
 | 
	
		
			
				|  |  |  		};
 | 
	
		
			
				|  |  |  
 |