text: // Generated by CoffeeScript 1.12.5
  (function() {
    var CoffeeScript, Module, binary, child_process, ext, findExtension, fork, helpers, i, len, loadFile, path, ref;
  
    CoffeeScript = require('./coffee-script');
  
    child_process = require('child_process');
  
    helpers = require('./helpers');
  
    path = require('path');
  
    loadFile = function(module, filename) {
      var answer;
      answer = CoffeeScript._compileFile(filename, false, true);
      return module._compile(answer, filename);
    };
  
    if (require.extensions) {
      ref = CoffeeScript.FILE_EXTENSIONS;
      for (i = 0, len = ref.length; i < len; i++) {
        ext = ref[i];
        require.extensions[ext] = loadFile;
      }
      Module = require('module');
      findExtension = function(filename) {
        var curExtension, extensions;
        extensions = path.basename(filename).split('.');
        if (extensions[0] === '') {
          extensions.shift();
        }
        while (extensions.shift()) {
          curExtension = '.' + extensions.join('.');
          if (Module._extensions[curExtension]) {
            return curExtension;
          }
        }
        return '.js';
      };
      Module.prototype.load = function(filename) {
        var extension;
        this.filename = filename;
        this.paths = Module._nodeModulePaths(path.dirname(filename));
        extension = findExtension(filename);
        Module._extensions[extension](this, filename);
        return this.loaded = true;
      };
    }
  
    if (child_process) {
      fork = child_process.fork;
      binary = require.resolve('../../bin/coffee');
      child_process.fork = function(path, args, options) {
        if (helpers.isCoffee(path)) {
          if (!Array.isArray(args)) {
            options = args || {};
            args = [];
          }
          args = [path].concat(args);
          path = binary;
        }
        return fork(path, args, options);
      };
    }
  
  }).call(this);
  