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