33 lines
		
	
	
		
			664 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			664 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| var bufferFill = require('buffer-fill')
 | |
| var allocUnsafe = require('buffer-alloc-unsafe')
 | |
| 
 | |
| module.exports = function alloc (size, fill, encoding) {
 | |
|   if (typeof size !== 'number') {
 | |
|     throw new TypeError('"size" argument must be a number')
 | |
|   }
 | |
| 
 | |
|   if (size < 0) {
 | |
|     throw new RangeError('"size" argument must not be negative')
 | |
|   }
 | |
| 
 | |
|   if (Buffer.alloc) {
 | |
|     return Buffer.alloc(size, fill, encoding)
 | |
|   }
 | |
| 
 | |
|   var buffer = allocUnsafe(size)
 | |
| 
 | |
|   if (size === 0) {
 | |
|     return buffer
 | |
|   }
 | |
| 
 | |
|   if (fill === undefined) {
 | |
|     return bufferFill(buffer, 0)
 | |
|   }
 | |
| 
 | |
|   if (typeof encoding !== 'string') {
 | |
|     encoding = undefined
 | |
|   }
 | |
| 
 | |
|   return bufferFill(buffer, fill, encoding)
 | |
| }
 |