Added Entity and Entity Reference Revisions which got dropped somewhere along the...
[yaffs-website] / node_modules / bluebird / js / release / assert.js
1 "use strict";
2 module.exports = (function(){
3 var AssertionError = (function() {
4     function AssertionError(a) {
5         this.constructor$(a);
6         this.message = a;
7         this.name = "AssertionError";
8     }
9     AssertionError.prototype = new Error();
10     AssertionError.prototype.constructor = AssertionError;
11     AssertionError.prototype.constructor$ = Error;
12     return AssertionError;
13 })();
14
15 function getParams(args) {
16     var params = [];
17     for (var i = 0; i < args.length; ++i) params.push("arg" + i);
18     return params;
19 }
20
21 function nativeAssert(callName, args, expect) {
22     try {
23         var params = getParams(args);
24         var constructorArgs = params;
25         constructorArgs.push("return " +
26                 callName + "("+ params.join(",") + ");");
27         var fn = Function.apply(null, constructorArgs);
28         return fn.apply(null, args);
29     } catch (e) {
30         if (!(e instanceof SyntaxError)) {
31             throw e;
32         } else {
33             return expect;
34         }
35     }
36 }
37
38 return function assert(boolExpr, message) {
39     if (boolExpr === true) return;
40
41     if (typeof boolExpr === "string" &&
42         boolExpr.charAt(0) === "%") {
43         var nativeCallName = boolExpr;
44         var $_len = arguments.length;var args = new Array($_len - 2); for(var $_i = 2; $_i < $_len; ++$_i) {args[$_i - 2] = arguments[$_i];};
45         if (nativeAssert(nativeCallName, args, message) === message) return;
46         message = (nativeCallName + " !== " + message);
47     }
48
49     var ret = new AssertionError(message);
50     if (Error.captureStackTrace) {
51         Error.captureStackTrace(ret, assert);
52     }
53     throw ret;
54 };
55 })();