【发布时间】:2015-10-02 22:11:49
【问题描述】:
我们正在使用 webpack 和 babel-core 5.8.25 编写一个应用程序。
有时会发生这种情况:
someArray.map(item => {
const updatedItem = Object.assign({}, item); // silently fails here... doesn't even continue the code
updatedItem.prop = 'something cool';
});
这显然是在点击浏览器之前编译的。它可以在最新版本的 Chrome 和最新版本的 iOS Safari 中运行,但在 Safari 8.0.7 中,它会静默失败(没有抛出错误......只是没有越过那条线)。
但是,这可以按预期工作(使用 lodash):
someArray.map(item => {
const updatedItem = _.extend({}, item); // the important part
updatedItem.prop = 'something cool';
});
有什么想法吗?我尝试在互联网上搜索这件事,但无济于事。
【问题讨论】:
-
你在加载 Babel 的 polyfill 吗?
require('babel-core/polyfill'); -
@loganfsmyth,没有明确说明。我将 babel-loader 与 webpack 结合使用(我相信 babel-loader 只是利用了 babel-core)。这可以解释浏览器之间的功能差异吗?在 iOS 9 的移动版 Safari 和 OSX 桌面版 Chrome 中,编译后的
Object.assign工作正常。
标签: safari ecmascript-6