text: (function(root) {
    var toString = Function.prototype.toString;
  
    function fnBody(fn) {
      return toString.call(fn).replace(/^[^{]*{\s*/,'').replace(/\s*}[^}]*$/,'');
    }
  
    function isClass(fn) {
      return (typeof fn === 'function' &&
              (/^class(?:\s|{)/.test(toString.call(fn)) ||
                (/^.*classCallCheck\(/.test(fnBody(fn)))) // babel.js
              );
    }
  
    if (typeof exports !== 'undefined') {
      if (typeof module !== 'undefined' && module.exports) {
        exports = module.exports = isClass;
      }
      exports.isClass = isClass;
    } else if (typeof define === 'function' && define.amd) {
      define([], function() {
        return isClass;
      });
    } else {
      root.isClass = isClass;
    }
  
  })(this);
  