Почему V8 выдает это сбивающее с толку сообщение об ошибке? - PullRequest
2 голосов
/ 31 января 2020

В 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*() {};. Кажется, сообщение об ошибке неверно.

1 Ответ

1 голос
/ 31 января 2020

V8 разработчик здесь. Это похоже на ошибку. Пожалуйста, отправьте сообщение об ошибке на crbug.com / v8 / new .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...