mirror of https://github.com/webpack/webpack.git
				
				
				
			
		
			
	
	
		
			34 lines
		
	
	
		
			589 B
		
	
	
	
		
			JavaScript
		
	
	
	
		
		
			
		
	
	
			34 lines
		
	
	
		
			589 B
		
	
	
	
		
			JavaScript
		
	
	
	
|  | /* | ||
|  | 	MIT License http://www.opensource.org/licenses/mit-license.php
 | ||
|  | */ | ||
|  | 
 | ||
|  | "use strict"; | ||
|  | 
 | ||
|  | class NullPrototypeObjectSerializer { | ||
|  | 	serialize(obj, { write }) { | ||
|  | 		const keys = Object.keys(obj); | ||
|  | 		for (const key of keys) { | ||
|  | 			write(key); | ||
|  | 		} | ||
|  | 		write(null); | ||
|  | 		for (const key of keys) { | ||
|  | 			write(obj[key]); | ||
|  | 		} | ||
|  | 	} | ||
|  | 	deserialize({ read }) { | ||
|  | 		const obj = Object.create(null); | ||
|  | 		const keys = []; | ||
|  | 		let key = read(); | ||
|  | 		while (key !== null) { | ||
|  | 			keys.push(key); | ||
|  | 			key = read(); | ||
|  | 		} | ||
|  | 		for (const key of keys) { | ||
|  | 			obj[key] = read(); | ||
|  | 		} | ||
|  | 		return obj; | ||
|  | 	} | ||
|  | } | ||
|  | 
 | ||
|  | module.exports = NullPrototypeObjectSerializer; |