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