var toSrc = require('./toSrc'); var stripCmt = require('./stripCmt'); var startWith = require('./startWith'); var isStr = require('./isStr'); exports = function(fn) { var fnStr = stripCmt(isStr(fn) ? fn : toSrc(fn)); var open; var close; if ( !startWith(fnStr, 'async') && !startWith(fnStr, 'function') && !startWith(fnStr, '(') ) { open = 0; close = fnStr.indexOf('=>'); } else { open = fnStr.indexOf('(') + 1; close = fnStr.indexOf(')'); } var ret = fnStr.slice(open, close); ret = ret.match(regArgNames); return ret === null ? [] : ret; }; var regArgNames = /[^\s,]+/g; module.exports = exports;