Каким бы ни было решение, оно не должно нарушать странные функции, чья toString()
выглядит так же странно:
function ( A, b
,c ,d
){}
Кроме того, зачем использовать сложные регулярные выражения? Это можно сделать так:
function getArguments(f) {
return f.toString().split(')',1)[0].replace(/\s/g,'').substr(9).split(',');
}
Это работает везде с каждой функцией, и единственным регулярным выражением является удаление пробелов, которое даже не обрабатывает всю строку из-за трюка .split
.