|
|
/** * Module dependencies. */
var AssertionError = require('assert').AssertionError , callsite = require('callsite') , fs = require('fs')
/** * Expose `assert`. */
module.exports = process.env.NO_ASSERT ? function(){} : assert;
/** * Assert the given `expr`. */
function assert(expr) { if (expr) return;
var stack = callsite(); var call = stack[1]; var file = call.getFileName(); var lineno = call.getLineNumber(); var src = fs.readFileSync(file, 'utf8'); var line = src.split('\n')[lineno-1]; var src = line.match(/assert\((.*)\)/)[1];
var err = new AssertionError({ message: src, stackStartFunction: stack[0].getFunction() });
throw err; }
|