-
Notifications
You must be signed in to change notification settings - Fork 641
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Native Array.from is overwritten by $A which is not able to handle all cases used by the native function #338
Comments
+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:
Similar 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
The text was updated successfully, but these errors were encountered: