supported support latest es7 ecmascript browsers safari ecmascript-6

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.