define("dojo/errors/create", ["../_base/lang"], function(lang){ return function(name, ctor, base, props){ base = base || Error; var ErrorCtor = function(message){ if(base === Error){ if(Error.captureStackTrace){ Error.captureStackTrace(this, ErrorCtor); } // Error.call() operates on the returned error // object rather than operating on |this| var err = Error.call(this, message), prop; // Copy own properties from err to |this| for(prop in err){ if(err.hasOwnProperty(prop)){ this[prop] = err[prop]; } } // messsage is non-enumerable in ES5 this.message = message; // stack is non-enumerable in at least Firefox this.stack = err.stack; }else{ base.apply(this, arguments); } if(ctor){ ctor.apply(this, arguments); } }; ErrorCtor.prototype = lang.delegate(base.prototype, props); ErrorCtor.prototype.name = name; ErrorCtor.prototype.constructor = ErrorCtor; return ErrorCtor; }; });