# Legacy Browser Support
Cornerstone can be made to support legacy browsers by incorporating polyfills for some modern web browser features.
You may need to include polyfills for these features, depending on which browsers you target.
Promises (opens new window) represent the eventual result of an asynchronous operation. These are used by Image Loaders. You will need to polyfill Promises to use Internet Explorer 11. Here is a lightweight Promise polyfill (opens new window) which is MIT Licensed.
requestAnimationFrame (opens new window) is a method for efficiently running animations. We currently check for its availability ourselves within Cornerstone (opens new window), but may remove this in the future. There are many options for a requestAnimationFrame polyfill in this gist by Paul Irish (opens new window).
performance.now (opens new window) is used for high-resolution timing for performance monitoring within Cornerstone. We are currently avoiding errors ourselves within Cornerstone (opens new window), but may remove this in the future. Here is a performance.now polyfill (opens new window).
WebGL (opens new window) is used for hardware acceleration in our optional high-performance rendering path. WebGL 1.0 is well supported but may still have issues in some browsers, which is why it is not enabled by default. We currently provide a fallback pathway on WebGL failure (opens new window) so that rendering can continue via HTML5 Canvas APIs.
Note: There may be further tests which could be added to the core codebase to trigger automatic fallback to Canvas rendering. If you have any specific suggestions, feel free to open an issue to discuss this.