| (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);
 |