IE11 中的 require-object-coercible 抛出异常但未捕获异常
Exception thrown and not caught at require-object-coercible in IE11
我正在使用 Babel 来转换我的 ES7 代码。我的设置有点奇怪,因为我需要转译一些 node_modules。我不断收到此错误:
SCRIPT5022: Exception thrown and not caught
require-object-coercible.js (4,24)
我以为我的配置有误,我正在转译不正确的模块(因为你不应该转译 core-js
),但经过一番深入研究,我发现问题出在我的代码中。
我正在打电话 Array.from()
on ParentNode.children
。 from()
应该在可迭代输入上调用,在 Chrome 中,children
属性 总是 returns 一个可迭代的 HTMLCollection。然而,在 IE 中,SVG 元素的 children
是 undefined
,这会引发 require-object-coercible
中的错误。这使我的代码在 Chrome 上工作正常,但在 IE11 中却不行,即使在正确的 polyfills 之后也是如此。
解决方案是在调用 from()
之前简单地对 children
执行检查。
郑重声明,我遇到了同样的问题。直到调试了调用栈后,我才找到它的来源。对于遇到同样问题的人,去IE11调试器,将异常行为更改为“break on unhandled exceptions”,然后查看调用堆栈,它会帮助你找到根源。
对我来说,这是对 Object.keys(window.XXX)
的调用,其中 window.XXX 未定义。
我正在使用 Babel 来转换我的 ES7 代码。我的设置有点奇怪,因为我需要转译一些 node_modules。我不断收到此错误:
SCRIPT5022: Exception thrown and not caught
require-object-coercible.js (4,24)
我以为我的配置有误,我正在转译不正确的模块(因为你不应该转译 core-js
),但经过一番深入研究,我发现问题出在我的代码中。
我正在打电话 Array.from()
on ParentNode.children
。 from()
应该在可迭代输入上调用,在 Chrome 中,children
属性 总是 returns 一个可迭代的 HTMLCollection。然而,在 IE 中,SVG 元素的 children
是 undefined
,这会引发 require-object-coercible
中的错误。这使我的代码在 Chrome 上工作正常,但在 IE11 中却不行,即使在正确的 polyfills 之后也是如此。
解决方案是在调用 from()
之前简单地对 children
执行检查。
郑重声明,我遇到了同样的问题。直到调试了调用栈后,我才找到它的来源。对于遇到同样问题的人,去IE11调试器,将异常行为更改为“break on unhandled exceptions”,然后查看调用堆栈,它会帮助你找到根源。
对我来说,这是对 Object.keys(window.XXX)
的调用,其中 window.XXX 未定义。