21 lines
		
	
	
		
			589 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			21 lines
		
	
	
		
			589 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| "use strict";
 | |
| 
 | |
| var assign            = require("../object/assign")
 | |
|   , isObject          = require("../object/is-object")
 | |
|   , isValue           = require("../object/is-value")
 | |
|   , captureStackTrace = Error.captureStackTrace;
 | |
| 
 | |
| module.exports = function (message/*, code, ext*/) {
 | |
| 	var err = new Error(message), code = arguments[1], ext = arguments[2];
 | |
| 	if (!isValue(ext)) {
 | |
| 		if (isObject(code)) {
 | |
| 			ext = code;
 | |
| 			code = null;
 | |
| 		}
 | |
| 	}
 | |
| 	if (isValue(ext)) assign(err, ext);
 | |
| 	if (isValue(code)) err.code = code;
 | |
| 	if (captureStackTrace) captureStackTrace(err, module.exports);
 | |
| 	return err;
 | |
| };
 |