leaky.js
function LeakError (opts, src, file) {
  Error.call(this);

  this.message = 'global leak detected: ' + opts.variable;

  this.line = opts.line - 1;
  this.column = opts.column;

  this.annotated = '\n'
    + (file || '(anonymous file)')
    + ':' + this.line
    + '\n'
    + src.split('\n')[this.line]
    + '\n'
    + Array(this.column + 1).join(' ') + '^'
    + '\n'
    + 'LeakError: ' + this.message
  ;
}
function LeakError (opts, src, file) {
  Error.call(this);

  this.message = 'global leak detected: ' + opts.variable;

  this.line = opts.line - 1;
  this.column = opts.column;

  this.annotated = '\n'
    + (file || '(anonymous file)')
    + ':' + this.line
    + '\n'
    + src.split('\n')[this.line]
    + '\n'
    + Array(this.column + 1).join(' ') + '^'
    + '\n'
    + 'LeakError: ' + this.message
  ;
}
LeakError copied from https://github.com/substack/node-syntax-error