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;
 | 
						|
};
 |