Hey everyone. Just deployed the fix for this. Please let us know if you run into any further issues.
A quick explanation of what happened here:
Because we continue provide browser support all the way back to IE6, we use a lot of wrappers to fill in pieces of JavaScript functionality (in this case, the quite rudimentary Array.indexOf function that was only introduced to IE in version 9.) The polyfills we write are completely self contained, and not exposed to your pages, but in this case another framework elsewhere in the page bled into our code, resulting in this wildly unexpected behaviour.
We recently updated widgets.js to make use of more modern browser’s native methods (since they’re faster.) The issue here was that another piece of code in the page added the prototype Array.indexOf—which we mistook for the native method—but not in a way that was fully compatible with the native behaviour (it returned undefined rather than -1 when failing to match an item in the array.) This caused some false positive matching in various pieces of our code, which in turn caused the bugs you see above. We’re confident this was a very fringe bug, due to it requiring a specific other modified prototype to be in the same page, but obviously it still sucks, and I’m sorry for that, and we’ll be more strongly validating the returns of wrapped, native functions when optimising our script in the future.
Thanks,
Ben