Fixed. Thanks so much! I added % and = to the blacklist.
I'm searching for a fundamentally elegant solution. My current one is more of a kludge... though, if it fixes all cases and doesn't introduce problems, then maybe it's worth a few extra lines.
The last example demonstrated more than the % and = punctuators failing your lexer, and then it doesn't demonstrate still more that would remain, including but not limited to...
Currently hunting for more problems, and a more elegant solution...
Offtopic, the reason I did this JSMin fork was just to challenge myself, not to make a political statement or anything like that. My cat was just diagnosed with feline lukemia. I know this project is a little silly, but it's been fantastic for keeping my mind off of real-world stuff. You're awesome for providing all of these examples; thank you.
More usefully, this serves to prove that Mr. Crockford was likely correct in his assessment.
On the other hand, is "do" the only reserved keyword which matters? Then it might be okay to special case that one instance as well.
There is no doubt that my approach is the wrong approach; I'm just curious whether it's easier to handle each of the ~dozen special cases than to fundamentally rewrite JSMin (as a full ECMAScript parser).
EDIT: Amusingly, I've special-cased the 'do' keyword in a fairly straightforward way, so now the code handles every example thus far. I wonder if these are the only special cases required, and whether they add any adverse side-effects. Also, you're extremely talented and creative.
While the joke itself (hihi, we minified a semicolon!) is only slightly funny at best, the accompanying text in the pull request makes it all worth it.
Funny, but I came across the case when whil concatenating files the resulting script was broken, becaus of the missing semicolon at the end of some library. Dropping this script into the list would fix that ;)
Vapor.js is making fun of the trend of JavaScript frameworks. Most of the existing frameworks advertise their file size, since a small size is desirable for fast page loads. Vapor.js is an empty file.
Recently the authors of a popular JavaScript/CSS framework, Bootstrap, decided to remove the semicolons from their JavaScript (since they're technically optional).
Douglas Crockford is the author of a tool called JSMin that compresses JavaScript files. He is known ot have strong opinions on JavaScript coding style, as is evident in his book JavaScript: The Good Parts and his JavaScript formatting/checking tool, JSLint.
Someone pointed out that now that Bootstrap no longer has semicolons it no longer under JSMin. Douglas Crockford was pulled into the conversation, where he expressed his strong opinions on the use of semicolons in JavaScript
Semicolon.js is making fun of all of this by adding a semicolon to Vapor.js.
(Oh, darn. The person I was replying to deleted their post. Anyway, they said something along the lines of: "I know this is a joke, but I don't get it. Am I missing some subtle commentary?")