3 ms·
JS is no different from HTML in this regard. HTML has (at least) several variants of 4.x, quirks mode, HTML5, new features, deprecated features, etc. which all
by web007 8y ago
JS is no different from HTML in this regard. HTML has (at least) several variants of 4.x, quirks mode, HTML5, new features, deprecated features, etc. which all demand separate rendering engines. At some point, the browser stops supporting those things because they don't have to.
I don't know what kind of backward compatibility is inherent in their designs, but just remember <marquee> if you think that browsers have to support all features ad infinitum.
- olavk 8y agoIn practice, browsers does not recognize HTML versions. All HTML is handled by the same engine. This is one of the reasons HTML has moved to a living standard - the versioning was purely an artifact of the standard document and did not correspond to versioning in the rendering engines. (XHTML did introduce branching front-end parsers, which was a lot of wasted work.) Adding new backward-compatible features does not require branching the engine, neither does removing older features. The quirks/standards-mode distinction did require branching engines, and it has lead to increased complexity and testing burden. It was necessary at the time to move forward so the cost was accepted, but it is a complexity burden all browser have to carry for the foreseeable future. There should be a very good reason to introduce such branching - wanting to write "flatten" rather than "flat" is not a good enough reason. Marquee was never supported by all browsers. But the article does mention some widely supported elements where support have been removed (<keygen>, <applet>) so it is not unheard of. But it requires that the element is almost never used on the web. Apparently this is not the case for MooTools library in question which still has some penetration.