code: function getDependencies(fn) {
      // TODO Eval to use more advanced methods like https://github.com/rphansen91/es-arguments
      // or https://www.npmjs.com/package/recast (parse code to AST)
      const COMMENTS = /((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg;
      const code = Function.prototype.toString.call(fn)
          .replace(COMMENTS, "");
      let functionCode;
      if (isEs6Class(code)) {
          const constructorPosition = code.search(/\bconstructor\b/);
          functionCode = constructorPosition >= 0
              ? code.substring(constructorPosition)
              : "";
      }
      else {
          functionCode = code;
      }
      const parametersCode = functionCode.slice(functionCode.indexOf("(") + 1, functionCode.indexOf(")"));
      const result = parametersCode
          .replace(/\s/, "")
          .split(",")
          .filter((p) => p && p.length > 0)
          .map((p) => p.split("=")[0].trim()) // handle default values
          .filter((p) => p && p.length > 0);
      return result === null
          ? []
          : result;
  }
docs: Code based on https://github.com/goatslacker/get-parameter-names