Out of curiosity, I opened Internet Explorer (IE) 11, which still exists in Windows 10, and checked if my blog posts render correctly. Compared with older IE versions, IE 11 should be much better (insert jokes and bad memories on IE 6 quirks here) and render my blog posts without major problem. It turned out to be so. However, when I checked my recent two posts (this one and this one) about running DOA estimation algorithms in the browser, the plots failed to show up. Because there are still many Windows 7/8/8.1 users, it is still worth the time fixing this problem.
Bringing up the developer console, it turns out that the error was caused by
lack of native support for promises in IE 11.
I wrote the matrix library in TypeScript and used
SystemJS as the module loader when
transpiling the client js file. Somehow the latest version of SystemJS does
not comes with a polyfill for promises so it fails on IE 11.
This comes with a easy fix: just load a promise library such as bluebird. Another issue is caused by the missing of
in IE 11, which can be fixed by a simple polyfill.
After applying the above fixes, the figures showed up again in IE 11.
Unfortunately, for even older versions of IE, the above fixes will not be enough, because my matrix library and the plot libraries I am using uses typed arrays and some ES5 features. With the evolution of modern web technology, sometimes you must leave the old IE browsers behind.