corrade-nucleus-nucleons – Blame information for rev 20

Subversion Repositories:
Rev:
Rev Author Line No. Line
20 office 1 "use strict";
2 var es5 = require("./es5");
3 var Objectfreeze = es5.freeze;
4 var util = require("./util");
5 var inherits = util.inherits;
6 var notEnumerableProp = util.notEnumerableProp;
7  
8 function subError(nameProperty, defaultMessage) {
9 function SubError(message) {
10 if (!(this instanceof SubError)) return new SubError(message);
11 notEnumerableProp(this, "message",
12 typeof message === "string" ? message : defaultMessage);
13 notEnumerableProp(this, "name", nameProperty);
14 if (Error.captureStackTrace) {
15 Error.captureStackTrace(this, this.constructor);
16 } else {
17 Error.call(this);
18 }
19 }
20 inherits(SubError, Error);
21 return SubError;
22 }
23  
24 var _TypeError, _RangeError;
25 var Warning = subError("Warning", "warning");
26 var CancellationError = subError("CancellationError", "cancellation error");
27 var TimeoutError = subError("TimeoutError", "timeout error");
28 var AggregateError = subError("AggregateError", "aggregate error");
29 try {
30 _TypeError = TypeError;
31 _RangeError = RangeError;
32 } catch(e) {
33 _TypeError = subError("TypeError", "type error");
34 _RangeError = subError("RangeError", "range error");
35 }
36  
37 var methods = ("join pop push shift unshift slice filter forEach some " +
38 "every map indexOf lastIndexOf reduce reduceRight sort reverse").split(" ");
39  
40 for (var i = 0; i < methods.length; ++i) {
41 if (typeof Array.prototype[methods[i]] === "function") {
42 AggregateError.prototype[methods[i]] = Array.prototype[methods[i]];
43 }
44 }
45  
46 es5.defineProperty(AggregateError.prototype, "length", {
47 value: 0,
48 configurable: false,
49 writable: true,
50 enumerable: true
51 });
52 AggregateError.prototype["isOperational"] = true;
53 var level = 0;
54 AggregateError.prototype.toString = function() {
55 var indent = Array(level * 4 + 1).join(" ");
56 var ret = "\n" + indent + "AggregateError of:" + "\n";
57 level++;
58 indent = Array(level * 4 + 1).join(" ");
59 for (var i = 0; i < this.length; ++i) {
60 var str = this[i] === this ? "[Circular AggregateError]" : this[i] + "";
61 var lines = str.split("\n");
62 for (var j = 0; j < lines.length; ++j) {
63 lines[j] = indent + lines[j];
64 }
65 str = lines.join("\n");
66 ret += str + "\n";
67 }
68 level--;
69 return ret;
70 };
71  
72 function OperationalError(message) {
73 if (!(this instanceof OperationalError))
74 return new OperationalError(message);
75 notEnumerableProp(this, "name", "OperationalError");
76 notEnumerableProp(this, "message", message);
77 this.cause = message;
78 this["isOperational"] = true;
79  
80 if (message instanceof Error) {
81 notEnumerableProp(this, "message", message.message);
82 notEnumerableProp(this, "stack", message.stack);
83 } else if (Error.captureStackTrace) {
84 Error.captureStackTrace(this, this.constructor);
85 }
86  
87 }
88 inherits(OperationalError, Error);
89  
90 var errorTypes = Error["__BluebirdErrorTypes__"];
91 if (!errorTypes) {
92 errorTypes = Objectfreeze({
93 CancellationError: CancellationError,
94 TimeoutError: TimeoutError,
95 OperationalError: OperationalError,
96 RejectionError: OperationalError,
97 AggregateError: AggregateError
98 });
99 es5.defineProperty(Error, "__BluebirdErrorTypes__", {
100 value: errorTypes,
101 writable: false,
102 enumerable: false,
103 configurable: false
104 });
105 }
106  
107 module.exports = {
108 Error: Error,
109 TypeError: _TypeError,
110 RangeError: _RangeError,
111 CancellationError: errorTypes.CancellationError,
112 OperationalError: errorTypes.OperationalError,
113 TimeoutError: errorTypes.TimeoutError,
114 AggregateError: errorTypes.AggregateError,
115 Warning: Warning
116 };