Open marcoos opened 13 years ago
Two reasons offhand:
If you find actual performance differences/issues with the use of such a constant function, I'd be interested in seeing them.
1) Technically, in JS a "global function" is a global variable.
2) That depends on the JIT, but I've done a JSPerf test just a moment ago: http://jsperf.com/cassis-fun-vs-var
In Firefox the variable is almost three times faster than function call, in Safari and Opera - almost twenty times faster. Or am I doing the test wrong? :)
I just verified similar results with your test on my MacBook Air 11". That's quite the difference. Ok, will consider a change like this for v0.2 (working hard to wrap up last changes for v0.1). In particular I may use a slightly longer name (maybe $in_js) for the global variable to reduce likelihood of collision.
I don't think this will work as a variable, since in PHP, global variables must be declared at the beginning of the function. For example, in order for a function to be able to see the $in_js
variable, it would need to look like this:
function example() {
global $in_js;
if($in_js) {
// javascript
} else {
// php
}
}
The advantage of using the js()
function is that functions are available in the global scope.
Just switched to returning true or false depending on which comment-code path so that should be even faster (for any modern js jit / or PHP processors).
Shouldn't this:
be replaced with this:
This way, there would be less function calls and the "00"==false expression would only be evaluated once per script run.