You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							117 lines
						
					
					
						
							3.6 KiB
						
					
					
				
			
		
		
	
	
							117 lines
						
					
					
						
							3.6 KiB
						
					
					
				| "use strict";
 | |
| var es5 = require("./es5");
 | |
| var Objectfreeze = es5.freeze;
 | |
| var util = require("./util");
 | |
| var inherits = util.inherits;
 | |
| var notEnumerableProp = util.notEnumerableProp;
 | |
| 
 | |
| function subError(nameProperty, defaultMessage) {
 | |
|     function SubError(message) {
 | |
|         if (!(this instanceof SubError)) return new SubError(message);
 | |
|         notEnumerableProp(this, "message",
 | |
|             typeof message === "string" ? message : defaultMessage);
 | |
|         notEnumerableProp(this, "name", nameProperty);
 | |
|         if (Error.captureStackTrace) {
 | |
|             Error.captureStackTrace(this, this.constructor);
 | |
|         } else {
 | |
|             Error.call(this);
 | |
|         }
 | |
|     }
 | |
|     inherits(SubError, Error);
 | |
|     return SubError;
 | |
| }
 | |
| 
 | |
| var _TypeError, _RangeError;
 | |
| var Warning = subError("Warning", "warning");
 | |
| var CancellationError = subError("CancellationError", "cancellation error");
 | |
| var TimeoutError = subError("TimeoutError", "timeout error");
 | |
| var AggregateError = subError("AggregateError", "aggregate error");
 | |
| try {
 | |
|     _TypeError = TypeError;
 | |
|     _RangeError = RangeError;
 | |
| } catch(e) {
 | |
|     _TypeError = subError("TypeError", "type error");
 | |
|     _RangeError = subError("RangeError", "range error");
 | |
| }
 | |
| 
 | |
| var methods = ("join pop push shift unshift slice filter forEach some " +
 | |
|     "every map indexOf lastIndexOf reduce reduceRight sort reverse").split(" ");
 | |
| 
 | |
| for (var i = 0; i < methods.length; ++i) {
 | |
|     if (typeof Array.prototype[methods[i]] === "function") {
 | |
|         AggregateError.prototype[methods[i]] = Array.prototype[methods[i]];
 | |
|     }
 | |
| }
 | |
| 
 | |
| es5.defineProperty(AggregateError.prototype, "length", {
 | |
|     value: 0,
 | |
|     configurable: false,
 | |
|     writable: true,
 | |
|     enumerable: true
 | |
| });
 | |
| AggregateError.prototype["isOperational"] = true;
 | |
| var level = 0;
 | |
| AggregateError.prototype.toString = function() {
 | |
|     var indent = Array(level * 4 + 1).join(" ");
 | |
|     var ret = "\n" + indent + "AggregateError of:" + "\n";
 | |
|     level++;
 | |
|     indent = Array(level * 4 + 1).join(" ");
 | |
|     for (var i = 0; i < this.length; ++i) {
 | |
|         var str = this[i] === this ? "[Circular AggregateError]" : this[i] + "";
 | |
|         var lines = str.split("\n");
 | |
|         for (var j = 0; j < lines.length; ++j) {
 | |
|             lines[j] = indent + lines[j];
 | |
|         }
 | |
|         str = lines.join("\n");
 | |
|         ret += str + "\n";
 | |
|     }
 | |
|     level--;
 | |
|     return ret;
 | |
| };
 | |
| 
 | |
| function OperationalError(message) {
 | |
|     if (!(this instanceof OperationalError))
 | |
|         return new OperationalError(message);
 | |
|     notEnumerableProp(this, "name", "OperationalError");
 | |
|     notEnumerableProp(this, "message", message);
 | |
|     this.cause = message;
 | |
|     this["isOperational"] = true;
 | |
| 
 | |
|     if (message instanceof Error) {
 | |
|         notEnumerableProp(this, "message", message.message);
 | |
|         notEnumerableProp(this, "stack", message.stack);
 | |
|     } else if (Error.captureStackTrace) {
 | |
|         Error.captureStackTrace(this, this.constructor);
 | |
|     }
 | |
| 
 | |
| }
 | |
| inherits(OperationalError, Error);
 | |
| 
 | |
| var errorTypes = Error["__BluebirdErrorTypes__"];
 | |
| if (!errorTypes) {
 | |
|     errorTypes = Objectfreeze({
 | |
|         CancellationError: CancellationError,
 | |
|         TimeoutError: TimeoutError,
 | |
|         OperationalError: OperationalError,
 | |
|         RejectionError: OperationalError,
 | |
|         AggregateError: AggregateError
 | |
|     });
 | |
|     es5.defineProperty(Error, "__BluebirdErrorTypes__", {
 | |
|         value: errorTypes,
 | |
|         writable: false,
 | |
|         enumerable: false,
 | |
|         configurable: false
 | |
|     });
 | |
| }
 | |
| 
 | |
| module.exports = {
 | |
|     Error: Error,
 | |
|     TypeError: _TypeError,
 | |
|     RangeError: _RangeError,
 | |
|     CancellationError: errorTypes.CancellationError,
 | |
|     OperationalError: errorTypes.OperationalError,
 | |
|     TimeoutError: errorTypes.TimeoutError,
 | |
|     AggregateError: errorTypes.AggregateError,
 | |
|     Warning: Warning
 | |
| };
 |