compare(lvalue, rvalue, options) {
    if (arguments.length < 3) {
      throw new Error('Template helper \'compare\' needs 2 parameters');
    }
    const operator = options.hash.operator || '==';
    const operators = {
        '=='(l,r) { return l === r; },
        '==='(l,r) { return l === r; },
        '!='(l,r) { return l !== r; },
        '<'(l,r) { return l < r; },
        '>'(l,r) { return l > r; },
        '<='(l,r) { return l <= r; },
        '>='(l,r) { return l >= r; },
        'typeof'(l,r) { return typeof l === r; }
      };
    if (!operators[operator]) {
      throw new Error(`Helper 'compare' doesn't know the operator ${operator}`);
    }
    const result = operators[operator]( lvalue, rvalue );
    if (result) { return options.fn(this); } else { return options.inverse(this); }
  }
Perform a generic comparison.
  See: http://doginthehat.com.au/2012/02/comparison-block-helper-for-handlebars-templates
  @method compare