quickjs-tart

quickjs-based runtime for wallet-core logic
Log | Files | Refs | README | LICENSE

assert.js (1084B)


      1 export function assert(actual, expected, message) {
      2     if (arguments.length === 1)
      3         expected = true;
      4 
      5     if (typeof actual === typeof expected) {
      6         if (Object.is(actual, expected))
      7             return;
      8         if (typeof actual === 'object') {
      9             if (actual !== null && expected !== null
     10             &&  actual.constructor === expected.constructor
     11             &&  actual.toString() === expected.toString())
     12                 return;
     13         }
     14     }
     15     throw Error("assertion failed: got |" + actual + "|" +
     16                 ", expected |" + expected + "|" +
     17                 (message ? " (" + message + ")" : ""));
     18 }
     19 
     20 export function assertThrows(err, func)
     21 {
     22     var ex;
     23     ex = false;
     24     try {
     25         func();
     26     } catch(e) {
     27         ex = true;
     28         assert(e instanceof err);
     29     }
     30     assert(ex, true, "exception expected");
     31 }
     32 
     33 export function assertArrayEquals(a, b)
     34 {
     35     if (!Array.isArray(a) || !Array.isArray(b))
     36         return assert(false);
     37 
     38     assert(a.length, b.length);
     39 
     40     a.forEach((value, idx) => {
     41         assert(b[idx], value);
     42     });
     43 }