aFarkas / html5shiv

This script is the defacto way to enable use of HTML5 sectioning elements in legacy Internet Explorer.
http://paulirish.com/2011/the-history-of-the-html5-shiv/
9.89k stars 2.56k forks source link

Prepare code base for a `shivMethods` opt-in. #49

Closed jdalton closed 12 years ago

jdalton commented 12 years ago

Prepare code base for a shivMethods opt-in.

paulirish commented 12 years ago

Wish this coulda been sans-whitespace cleanup.

Pretty messy diff for a large change to review

jdalton commented 12 years ago

Wish this coulda been sans-whitespace cleanup.

Pretty messy diff for a large change to review

Review the finished file instead: html5shiv.js html5shiv-printshiv.js

jdalton commented 12 years ago

Added patches to address @aFarkas test of existing stylesheets affecting the feature test while still offering a stronger feature test.

mathiasbynens commented 12 years ago

@paulirish Sans-whitespace diff: https://github.com/aFarkas/html5shiv/pull/49?w=1

aFarkas commented 12 years ago

We now additionally relay on ActiveX? And do a simple window.ActiveXObject test for this? If ActiveX is disabled, the object exists, but using it will throw an error. html5shiv is deeplinked from google code and is an important part of Modernizr. We have to be more carefully with our changes!!!

The last releases of html5shiv, also included in Modernizr, had some big blocker issues and we really need to stabilize, instead of adding new risky tricks, like this ActiveX thing.

In short, I want a stable, solid and lightweight html5shiv. I don't want to do all tricks, to fix each tiny, little problem.

In our last sprint for version 3.1 or 3.2 (don't know the exact version anymore). Paul pointed out, that our CSS selectors [hidden] and audio[controls] can not work in IE6. The hole team agreed, that this issue is not worth to fix. And now we are doing the exact opposite and become very emotional, because there is a tablet called Asus transformer with an old buggy webkit pre-installed. For all developers, there is an easy fix for Asus transformer, without using JS to fix styling issues:

[hidden] {display: none;}

The current PR code is uglified 2889 bytes, while the current code base is uglified 1790 bytes. Because of the fact, that this PR is addressing 2-3 issues, I really can not make a choice here.

So I will close this PR. But this does not mean, that I don't want the changes!!! Just let us do some coordinated baby steps.

jdalton commented 12 years ago

@aFarkas

Drat. I figured this might happen ;) No worries I will maintain a separate project smth like html5shim that opts-in to paving natives, focuses on better IE/older-browser support, unit tests and performance.

jdalton commented 12 years ago

A good place to reset to would probably be v3.1: https://github.com/aFarkas/html5shiv/commit/3e3692a92f55a9bc2c9ecaa3838045531b3bc5f0

This was before any major rewrite, has code primarily written by the project maintainers, still fixes the Highcharts issue and is a version bump to that of the code.google clone.