/** * 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; }