20 lines
		
	
	
		
			404 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			20 lines
		
	
	
		
			404 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
'use strict';
 | 
						|
module.exports = (object, propertyName, fn) => {
 | 
						|
	const define = value => Object.defineProperty(object, propertyName, {value, enumerable: true, writable: true});
 | 
						|
 | 
						|
	Object.defineProperty(object, propertyName, {
 | 
						|
		configurable: true,
 | 
						|
		enumerable: true,
 | 
						|
		get() {
 | 
						|
			const result = fn();
 | 
						|
			define(result);
 | 
						|
			return result;
 | 
						|
		},
 | 
						|
		set(value) {
 | 
						|
			define(value);
 | 
						|
		}
 | 
						|
	});
 | 
						|
 | 
						|
	return object;
 | 
						|
};
 |