code: function getCaller3Info(limit) {
      if (this === undefined) {
          // Cannot access caller info in 'strict' mode.
          return;
      }
      limit = limit || options.callee;
      var obj = {};
      var saveLimit = Error.stackTraceLimit;
      var savePrepare = Error.prepareStackTrace;
      Error.stackTraceLimit = limit;
  
      Error.prepareStackTrace = function(_, stack) {
          var caller = stack[limit - 1];
          obj.file = caller.getFileName().replace(options.root + "/", '');
          obj.line = caller.getLineNumber();
          var func = caller.getFunctionName();
          if (func)
              obj.func = func;
      };
      Error.captureStackTrace(this, getCaller3Info);
      this.stack;
  
      Error.stackTraceLimit = saveLimit;
      Error.prepareStackTrace = savePrepare;
      return obj;
  }
docs: Gather some caller info 3 stack levels up.
  See <http://code.google.com/p/v8/wiki/JavaScriptStackTraceApi>.