19 lines
		
	
	
		
			506 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			19 lines
		
	
	
		
			506 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
								 | 
							
								'use strict';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var Mixin = module.exports = function (host) {
							 | 
						||
| 
								 | 
							
								    var originalMethods = {},
							 | 
						||
| 
								 | 
							
								        overriddenMethods = this._getOverriddenMethods(this, originalMethods);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    Object.keys(overriddenMethods).forEach(function (key) {
							 | 
						||
| 
								 | 
							
								        if (typeof overriddenMethods[key] === 'function') {
							 | 
						||
| 
								 | 
							
								            originalMethods[key] = host[key];
							 | 
						||
| 
								 | 
							
								            host[key] = overriddenMethods[key];
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    });
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Mixin.prototype._getOverriddenMethods = function () {
							 | 
						||
| 
								 | 
							
								    throw new Error('Not implemented');
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 |