setImmediate and MessageChannel are broken in IE10 - by Sampo N

Status : 

  Won't Fix<br /><br />
		Due to several factors the product team decided to focus its efforts on other items.<br /><br />
		A more detailed explanation for the resolution of this particular item may have been provided in the comments section.


ID 801823 Comments
Status Closed Workarounds
Type Bug Repros 0
Opened 9/21/2013 1:02:32 PM
Access Restriction Public

Description

We discovered a serious flaw in how IE10 handles timing in setImmediate and MessageChannel.  It renders these APIs practically useless on IE10 Mobile and somewhat unreliable on IE10 Desktop.

On IE10 Mobile, setImmediate callbacks are called only when there is nothing else that could be run at the time.  If there are setTimeout(fn, 0) functions being called that (in total) take all the CPU time, the setImmediate callback will never be called.

The same bug occurs also when trying to achieve the effect of setImmediate through the use of MessageChannel.

Simply adding a spin.js spinner on our login page caused all Q promises to stop working on IE10 Mobile.  The Q promises use setImmediate, and MessageChannel as a fallback.

On IE10 Desktop the same bug occurs, though in more specific conditions (see reproduction instructions).

A more thorough explanation of the bug is on my blog:  http://codeforhire.com/2013/09/21/setimmediate-and-messagechannel-broken-on-internet-explorer-10/
Sign in to post a comment.
Posted by Microsoft on 1/20/2015 at 8:32 AM
Thank you very much for your feedback. The team is continually working to improve the experience of Internet Explorer and value user feedback to raise issues and help measure our progress. We have looked at the issue you reported very closely and found it closely resembles similar reported issues. None of our usual resolutions (“BY DESIGN”, “DUPLICATE”, “FIXED”, etc.) exactly match this situation therefore we are marking it as “WON’T FIX” for lack of anything better but what we really mean is we’ll be dealing with it in an aggregated kind of way rather than looking at this exact incident in this exact situation. PLEASE continue to report others issues you find as these reports are super-helpful for prioritization. Also we would appreciate as much detail about the issue as you can provide (e.g., repro steps, stack calls, traces).

Best regards,
The IE Team