Actively de-support IE9 #40

Closed
kitsonk opened this Issue Apr 19, 2016 · 3 comments

Projects

None yet

2 participants

@kitsonk
Member
kitsonk commented Apr 19, 2016

Originally, Dojo 2 planned to support IE9. There are several challenges though to continue to support it:

  • Flexbox is non existent, affecting planned widget layout
  • Pushstate isn't supported, affecting the features of routing
  • Lack of classList support (though dojo/dom doesn't depend on that anyways)

Therefore we should consider actively de-supporting it, meaning we stop testing against it and we try to remove code/feature tests we know are only working around IE9.

@kitsonk kitsonk added the discussion label Apr 19, 2016
@kitsonk kitsonk added this to the 2016.04 milestone Apr 19, 2016
@kfranqueiro
Member
kfranqueiro commented Apr 19, 2016 edited

More on classList:

IIRC, we ultimately didn't rely on classList in dojo/dom in order to accommodate using addClass/etc. in SVG elements as well, but according to @jason0x43, IE is the only browser that doesn't seem to support that in that context. Unfortunately this extends even to IE11, and IE11 also doesn't support multi-parameter add and remove or sending a boolean to toggle, so there is still a case for dojo/dom to have addClass/etc. functions that do not rely on classList.

I suppose we could perhaps consider separating them to their own module for the benefit of people who don't need to target browsers that don't support it, but I dunno if the eventual tree-shaking build aspect makes that moot anyway.

FWIW but perhaps irrelevant, I had also thought I originally saw that TS's SVGElement type didn't include classList, but it seems as if now classList is part of Element, which SVGElement extends. (Ref: https://github.com/Microsoft/TypeScript/blob/v1.8.10/lib/lib.dom.d.ts#L2955-L2956)

Meanwhile, one of the first headaches I had with IE9 was the lack of Float32Array for a simple fround shim in core. The "else" part of the ternary in https://github.com/dojo/core/blob/c5f70a6/src/math.ts#L92-L110 exists solely for IE9, so we could remove some code in that area (and the accompanying has test, since this is all it's used for).

@kitsonk
Member
kitsonk commented Apr 19, 2016

FWIW but perhaps irrelevant, I had also thought I originally saw that TS's SVGElement type didn't include classList, but it seems as if now classList is part of Element, which SVGElement extends. (Ref: https://github.com/Microsoft/TypeScript/blob/v1.8.10/lib/lib.dom.d.ts#L2955-L2956)

I think they have started adopting the "living standard" when requested for these things, which defines it on Element instead of relying on what came out of ChakraCore. That does mean there are still going to be large holes when dealing with some parts of the DOM across browsers (and ergo the need for a toolkit or library to plaster over the cracks!)

@kitsonk
Member
kitsonk commented Apr 26, 2016

Ok, we have had this open long enough. Will resolve this. We will actively desupport IE9 for Dojo 2. I will try to get issues open for the things we need to remove.

@kitsonk kitsonk closed this Apr 26, 2016
@kitsonk kitsonk referenced this issue in dojo/dojo2-package-template Apr 27, 2016
Closed

Remove IE9 from testing configuration #37

10 of 11 tasks complete
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment