V8为什么会给出此令人困惑的错误消息?

问题描述 投票:2回答:1

在chrome / node上(我一般应该是v8),以下给出了错误消息:

未捕获的TypeError:f不可迭代

function f(){}
f(...undefined);

为什么会生成这样的模棱两可的错误消息?恕我直言,这与f没有关系?

例如在Firefox(spidermonkey)上,我得到一个可以理解的“未定义没有属性”。如果我使用对象(let o = {}; f(...o.p);),则会得到更准确的“ o.p未定义”。

这可能以前曾被问过,但是我不知道要搜索什么-“函数不可迭代”给出了很多无关的结果。

PS:显然,作为一个有趣的事实,如果将f设为可迭代,则错误不会消失:f[Symbol.iterator] = function*() {};。该错误消息似乎是完全错误的。

javascript node.js google-chrome v8
1个回答
1
投票

V8开发人员在这里。这看起来像个错误。请在crbug.com/v8/new处提交错误。

© www.soinside.com 2019 - 2024. All rights reserved.