var ErrorReporter,
  __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };

ErrorReporter = (function() {
  ErrorReporter.prototype._toString = Object.prototype.toString;

  ErrorReporter.prototype._sourceCode = null;

  function ErrorReporter(sourceCode) {
    this.reportError = __bind(this.reportError, this);
    if (sourceCode == null) {
      throw new Error('Source code not provided');
    }
    if (this._toString.call(sourceCode) !== '[object String]') {
      throw new TypeError('Source code must be a string');
    }
    this._sourceCode = sourceCode;
  }

  ErrorReporter.prototype.reportError = function(message, lineNumber, columnNumber) {
    var condition, context, currentLine, error, errorLocator, gutterValue, item, lastLineNumber, lineValue, lines, longestLineNumberLength, nextLineIndex, nextLineNumber, padding, previousLineIndex, previousLineNumber, _i, _len;
    if (message == null) {
      throw new Error('Message not provided');
    }
    if (this._toString.call(message) !== '[object String]') {
      throw new TypeError('Message must be a string');
    }
    if (message.length === 0) {
      throw new Error('Message must not be empty');
    }
    if (lineNumber == null) {
      throw new Error('Line number not provided');
    }
    if (this._toString.call(lineNumber) !== '[object Number]') {
      throw new TypeError('Line number must be a number');
    }
    if (lineNumber <= 0) {
      throw new RangeError('Line number is invalid');
    }
    if (columnNumber == null) {
      throw new Error('Column number not provided');
    }
    if (this._toString.call(columnNumber) !== '[object Number]') {
      throw new TypeError('Column number must be a number');
    }
    if (columnNumber <= 0) {
      throw new RangeError('Column number is invalid');
    }
    lines = this._sourceCode.split('\n');
    if (lineNumber > lines.length) {
      throw new RangeError('Line number is out of range');
    }
    currentLine = lines[lineNumber - 1];
    if (columnNumber > currentLine.length) {
      throw new RangeError('Column number is out of range');
    }
    error = [];
    error.push("Error on line " + lineNumber + ", column " + columnNumber + ": " + message);
    error.push('');
    previousLineNumber = lineNumber - 1;
    nextLineNumber = lineNumber + 1;
    if (previousLineNumber - 1 >= 0) {
      previousLineIndex = previousLineNumber - 1;
    }
    if (nextLineNumber - 1 <= lines.length - 1) {
      nextLineIndex = nextLineNumber - 1;
    }
    lastLineNumber = nextLineIndex != null ? nextLineNumber : lineNumber;
    longestLineNumberLength = ("" + lastLineNumber).length;
    errorLocator = "" + (Array(columnNumber).join('-')) + "^";
    context = [];
    context.push([previousLineNumber, lines[previousLineIndex], previousLineIndex != null]);
    context.push([lineNumber, currentLine, true]);
    context.push(['^', errorLocator, true]);
    context.push([nextLineNumber, lines[nextLineIndex], nextLineIndex != null]);
    for (_i = 0, _len = context.length; _i < _len; _i++) {
      item = context[_i];
      gutterValue = item[0];
      lineValue = item[1];
      condition = item[2];
      padding = Array(longestLineNumberLength - ("" + gutterValue).length + 1).join(' ');
      gutterValue = "" + padding + gutterValue;
      if (condition) {
        error.push("" + gutterValue + " : " + lineValue);
      }
    }
    console.error(error.join('\n'));
    throw new Error(message);
  };

  return ErrorReporter;

})();

module.exports = ErrorReporter;
@@ -133,74 +133,8 @@
 ) %7B%0A
-  ErrorReporter.prototype._toString = Object.prototype.toString;%0A%0A
   Er
@@ -175,16 +175,16 @@
 = null;%0A
+
 %0A  funct
@@ -357,38 +357,49 @@
 ;%0A    %7D%0A    if (
-this._
+Object.prototype.
 toString.call(so
@@ -933,38 +933,49 @@
 ;%0A    %7D%0A    if (
-this._
+Object.prototype.
 toString.call(me
@@ -1244,38 +1244,49 @@
 ;%0A    %7D%0A    if (
-this._
+Object.prototype.
 toString.call(li
@@ -1571,22 +1571,33 @@
     if (
-this._
+Object.prototype.
 toString
@@ -3506,20 +3506,21 @@
 rts = ErrorReporter;
+%0A

Add changes to lib.