В chrome / node (в целом v8, я полагаю) следующее выдает сообщение об ошибке:
Uncaught TypeError: f не повторяется
function f(){}
f(...undefined);
Почему выдается такое неоднозначное сообщение об ошибке? Имхо, это не имеет ничего общего с f
?
Например, на firefox (spidermonkey), я понимаю, что "undefined не имеет свойств". Если я использую объект (let o = {}; f(...o.p);
), я получаю еще более точное выражение "op is undefined".
Возможно, об этом уже спрашивали раньше, но я понятия не имею, что искать - "функция не повторяется "дает массу несвязанных результатов.
PS: как забавный факт, очевидно, что ошибка не исчезнет go, если сделать f
повторяемым: f[Symbol.iterator] = function*() {};
. Кажется, сообщение об ошибке неверно.