google / google/closure-compiler
IE11: Enumerating Object properties has `Symbol` polyfill keys in them
- Dominant language
- JavaScript
- Stars
- 7.7k
- Forks
- 1.2k
- Avg merge
- 2d 12h
- Merged PRs (30d)
- 6
Description
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 in
https://github.com/apollographql/apollo-client/issues/3043#issuecomment-367455085
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 https://github.com/google/closure-compiler/issues/2448 or similar?
Steps to reproduce:
Option 1:
- Use the Apollo repo linked in the issue
Option 2:
- Add a blank page with Google Maps v3.30 embedded
- Inline some large-ish object
- [`deepFreeze`](https://github.com/substack/deep-freeze/blob/master/index.js)
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.
Contributor guide
Assessment
This issue has not been assessed yet.