index.js
function helper(app, file, key, re) {
  var h = get(app._.asyncHelpers, key);
  var a = get(app._.helpers, key);

  if (!h && !a) {
    set(file.data, key, function () {
      return comment(key, 'helper');
    });

    if (re.test(file.content)) {
      var message = 'MISSING helper: "' + key + '".\n';
      // rethrow (or actually throw) the error
      var err = new SyntaxError(message);
      if (app.disabled('silent')) {
        rethrow(err, file.path, file.content, re);
      }
    }
  }
}
function helper(app, file, key, re) {
  var h = get(app._.asyncHelpers, key);
  var a = get(app._.helpers, key);

  if (!h && !a) {
    set(file.data, key, function () {
      return comment(key, 'helper');
    });

    if (re.test(file.content)) {
      var message = 'MISSING helper: "' + key + '".\n';
      // rethrow (or actually throw) the error
      var err = new SyntaxError(message);
      if (app.disabled('silent')) {
        rethrow(err, file.path, file.content, re);
      }
    }
  }
}
function helper ( app , file , key , re ) { var h = get ( app . _ . asyncHelpers , key ) ; var a = get ( app . _ . helpers , key ) ; if ( ! h && ! a ) { set ( file . data , key , function ( ) { return comment ( key , 'helper' ) ; } ) ; if ( re . test ( file . content ) ) { var message = 'MISSING helper: "' + key + '".\n' ; // rethrow (or actually throw) the error var err = new SyntaxError ( message ) ; if ( app . disabled ( 'silent' ) ) { rethrow ( err , file . path , file . content , re ) ; } } } }
Find missing helpers.

@param  {Object} `app`
@param  {Object} `file`
@param  {String} `key`
@return {Object}
Find missing helpers .