Open maxwangry opened 6 years ago
+1 to this...
+1 to this. Perhaps make this a conditional polyfill if Array,from is supported natively. Google Maps v3.46 and above failed to load the satellite imagery due to this.
This site overrides Array.from() with an implementation that doesn't support iterables, which could cause Google Maps JavaScript API v3 to not work correctly.
+1 to this. Also having issues with Google Maps 3.46 and above (satellite images).
For a number of reasons, I view it as unlikely that there will ever be another release of Prototype, so I'd suggest working around this:
var _originalArrayFrom = Array.from;
) in an inline script
tagArray.from = _originalArrayFrom;
) in another inline script
tagSimilar approaches are possible if you bundle your dependencies.
Try executing this snippet before any other code to protect native implementation
const nativeArrayFrom = Array.from
Object.defineProperty(Array, 'from', {
get: function () {
return nativeArrayFrom
},
set: function () {
console.warn('Attempt to overwriting native `Array.from` prevented.')
},
})
In version 1.7.3, the native Array.from is overwritten by $A as below:
From the definition of these two functions: The Array.from() method creates a new Array instance from an array-like or iterable object. However, the $A function only accepts an array-like collection (anything with numeric indices). So $A is not able to handle other iterable objects without numeric indices such as MapIterator.
When $A try to create a new array by reading the
iterable.length
which does exist in some native iterable objects such as MapIterator, the result will be an array with length 0 returned back.Hope this will be fixed soon.
Thanks, Max