> function foo(){"use strict"} > Object.getOwnPropertyNames(foo) ["arguments", "callee", "caller", "length", "name", "prototype"] > Object.getOwnPropertyDescriptor(foo, 'callee') undefined > 'callee' in foo false > foo.hasOwnProperty('callee') false I suspect this may be due to a partial misreading of the ES5/strict poisoning rules, where we poison "callee" and "caller" on arguments, but poison "arguments" and "caller" on strict functions.
Actually, this is a bug in all functions, not just strict ones. Looks like a copy/paste typo. Updating the bug name to reflect this.
Fixed in r88315