JSLint has some interesting messages, such as eval is evil. when you use an eval statement, and Weird relation. when comparing two literals, e.g. 1 == 2.
I was looking through a list of the JSLint messages, and noticed this one at the bottom of the list:
What the hell is this?
I looked through the JSLint source and found this code:
if (stack.length === 0) {
error("What the hell is this?", nexttoken);
}
I have been trying for a while, unsuccessfully, to write code that triggers this. Nothing I have read about JSLint talks about this error message, why it exists, or what causes it. I’ve briefly inspected the code, but I can’t really understand what the stack is, how it is populated or what could cause it to be empty.
Can somebody write a code sample that will cause JSLint to scream What the hell is this? or explain what prevents this from happening?
It looks a lot like a “can’t happen” check (a form of defensive programming). If so, there might not be any way to trigger it in practice.