Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Some changes to help with minification #201

Open
wants to merge 9 commits into
base: master
Choose a base branch
from

Conversation

mina86
Copy link

@mina86 mina86 commented Jul 30, 2016

No description provided.

‘typeof foo == "undefined"’ is identical to ‘foo === void 0’ yet the
latter is shorter so prefer it over the former.
Strictly speaking, ‘!foo’ is superset of ‘foo === void 0’, but in all
of the cases it actually doesn’t matter and simple negation produces
shorter code.
Creating an annonymous scope requires creation of a function which can
only be done with a rather long ‘function’ keyword.  This isn’t helping
with minification so it’s better avoidid in possible.

Wrapping try-catch blocks in a function helps with engine’s optimisation
but HTML5 Shiv is hardly a piece of code which needs to be super-fast.
Furthermore, browsers which don’t support HTML5 are likely to not
benefit from the optimisation either.

Get rid of the anonymous function.
document.createElement(a) is already called few statements above so
if it was supposed to throw an exception, it wolud have already done
that.
Some minifiers aren’t smart enough to notice they can safely inline
a function call when supportsUnknownElements was checked so go ahead
and do that for them.
@mina86 mina86 force-pushed the master branch 2 times, most recently from a273372 to 9ffc7aa Compare July 30, 2016 15:44
This helps some minifiers which aren’t smart enough to inline the
function in the first place.
Make the code shorter by testing whether elements is a string or an
arary by presence of a join method rather than using typeof.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant