1/** Used for built-in method references. */
2var funcProto = Function.prototype;
3
4/** Used to resolve the decompiled source of functions. */
5var funcToString = funcProto.toString;
6
7/**
8 * Converts `func` to its source code.
9 *
10 * @private
11 * @param {Function} func The function to convert.
12 * @returns {string} Returns the source code.
13 */
14function toSource(func) {
15  if (func != null) {
16    try {
17      return funcToString.call(func);
18    } catch (e) {}
19    try {
20      return (func + '');
21    } catch (e) {}
22  }
23  return '';
24}
25
26module.exports = toSource;
27