I would debate whether or not this is actually Javascript. For something to be JS, surely it needs to actually call the JS interpreter when it's run. This doesn't. So it isn't.
Now, if you could override Function.prototype to just function(){}, then everything passed in would be ignored and you'd have a proper Nil interpreter in JS. But you can't[1], because that would be stupid.
[1] Or rather, I can't. I did just spend a few minutes trying.
> Now, if you could override Function.prototype to just function(){}
Function.prototype is already set to an empty function by default (evaluate Function.prototype() and you get 'undefined'), so I am not sure this has the consequences you think it does.
When you call a function object, let's say f, Javascript looks for an internal method on f called [[Call]] and calls it. If one doesn't exist, an error is thrown. The internal property [[Prototype]] of f is not ever considered, although you are right that it would be equal to Function.prototype.
EDIT: Despite what I think, executing phpnode's code in my node.js REPL instantly crashes it, so I guess there is more going on here.
I've considered doing JIT compilation to JavaScript and adding IntelliSense, but that'd require another 0 lines of code and I'm worried it might ruin the beautiful simplicty of it.
True, but he seems to have a moral conviction that proprietary software is wrong, and hence doesn't like JS much as it is a vector for automatically download and executing proprietary software. So I was exaggerating, but there is some truth to my words.
Nah, I think the fact you can easily try it in your browser and the additional explanation helped it. ;)
The submitted page actually well predates this "30 lines" fad, I just realised it might be an effective parody today. The joke works better in HTML form, as it takes longer to see it.
Now, if you could override Function.prototype to just function(){}, then everything passed in would be ignored and you'd have a proper Nil interpreter in JS. But you can't[1], because that would be stupid.
[1] Or rather, I can't. I did just spend a few minutes trying.