safari - support - javascript latest
¿Por qué Object.assign no parece funcionar en Safari 8.0.7? (1)
Object.assign
funciona en Chrome porque Chrome lo admite de forma nativa. babel-loader
solo convierte la sintaxis ES6 en sintaxis ES5, no hace nada para que la funcionalidad de la biblioteca ES6 esté disponible. La forma más fácil de hacerlo con Webpack es cambiar su configuración de algo así como
entry: ''app.js''
a
entry: [''babel-core/polyfill'', ''app.js'']
// Or with Babel 6:
entry: [''babel-polyfill'', ''app.js'']
para que Webpack también agrupe y ejecute el polyfill antes de ejecutar su aplicación. Babel proporciona /polyfill
como una manera fácil de cargar el relleno, pero es opcional porque no todos quieren usarlo, y debido a que hay muchos rellenos disponibles y el que usa Babel, core-js
es solo uno de muchos.
Estamos escribiendo una aplicación usando webpack y babel-core 5.8.25
.
En un punto en el tiempo, esto sucede:
someArray.map(item => {
const updatedItem = Object.assign({}, item); // silently fails here... doesn''t even continue the code
updatedItem.prop = ''something cool'';
});
Obviamente, esto se compila antes de presionar el navegador. Funciona en la última versión de Chrome y en la última versión de iOS Safari, pero en Safari 8.0.7
falla silenciosamente (no se produce ningún error ... simplemente no pasa esa línea).
Esto, sin embargo, funciona como se esperaba (usando lodash):
someArray.map(item => {
const updatedItem = _.extend({}, item); // the important part
updatedItem.prop = ''something cool'';
});
¿Alguna idea? Intenté hurgar en Internet con respecto a esto, pero fue en vano.