| /** Used for built-in method references. */ | |
| var funcProto = Function.prototype; | |
| 
 | |
| /** Used to resolve the decompiled source of functions. */ | |
| var funcToString = funcProto.toString; | |
| 
 | |
| /** | |
|  * Converts `func` to its source code. | |
|  * | |
|  * @private | |
|  * @param {Function} func The function to convert. | |
|  * @returns {string} Returns the source code. | |
|  */ | |
| function toSource(func) { | |
|   if (func != null) { | |
|     try { | |
|       return funcToString.call(func); | |
|     } catch (e) {} | |
|     try { | |
|       return (func + ''); | |
|     } catch (e) {} | |
|   } | |
|   return ''; | |
| } | |
| 
 | |
| module.exports = toSource;
 |