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
IE11: Enumerating Object properties has Symbol
polyfill keys in them
#2825
Comments
I assume this is the commit which caused the regression? 83857a5#diff-d22d8209fc94aff372133012210c694c thoughts @shicks @blickly? I guess this can be worked around by checking if the symbol is polyfilled with |
See also related issue #3052 There the problem is that libraries are using |
Just left a suggested workaround on #3052. This will ensure that the closure-compiler polyfill code sees an already-polyfilled |
Generally, polyfilling "WeakMap" or "symbol" is going to be problematic regardless of how you do it. I think the best solution would be to ask the Maps team to be careful not to use these in their API library. Using any polyfill on a page you don't own is generally problematic. |
Sorry in advance if this actually has nothing to do with Closure Compiler directly. I'd assume that it's done on purpose (or not?) and mostly looking for alternative ways to prevent the issue.
We have been debugging some issues caused by
Google Maps version >3.29
on Internet Explorer 11 for a while now and finally most likely found a root cause inapollographql/apollo-client#3043 (comment)
TL;DR: Recursively enumerating Object properties causes endless loops (or at least really really deep recursion) on IE11 because Google Maps now uses a version of
Symbol
polyfill that adds the keys to object. Maybe related to #2448 or similar?Steps to reproduce:
Option 1:
Option 2:
deepFreeze
It's hard to say what happened between the versions v3.29 and v3.30 that caused the breakage (versions updated, compiler flags changed) but hopefully you Googlers can check the menorepo or ask across the table or something (😂) to find out more.
The text was updated successfully, but these errors were encountered: