Inconsistent scope of “use strict” on different web browsers (concerning arguments.callee and caller)
Situation: I found something strange concerning strict mode in Javascript. I am using an external, third-party Javascript library which was minified, has over 4000 lines of code, is not using use strict at all, and is using arguments.callee . I am using use strict in my own code, scoped within a function. When I call one of the functions provided by the library, it throws an error. However, the error is thrown only if I am using use strict the error is thrown in all browsers except Chrome Code: I've removed all the unrelated stuff and reduced the code into this ( online demo on jsFiddle ): //