| (function(){"use strict";echo("hasOwnProperty(caller): ", arguments.hasOwnProperty("caller"));})(); |
| hasOwnProperty(caller): true |
| |
| var foo = function(){"use strict";};(function(){echo("hasOwnProperty(caller): ", foo.hasOwnProperty("caller"));})(); |
| hasOwnProperty(caller): false |
| |
| var foo = function(){"use strict";};(function(){"use strict";echo("hasOwnProperty(caller): ", foo.hasOwnProperty("caller"));})(); |
| hasOwnProperty(caller): false |
| |
| (function(){"use strict";echo("hasOwnProperty(callee): ", arguments.hasOwnProperty("callee"));})(); |
| hasOwnProperty(callee): true |
| |
| var foo = function(){"use strict";};(function(){echo("hasOwnProperty(arguments): ", foo.hasOwnProperty("arguments"));})(); |
| hasOwnProperty(arguments): false |
| |
| var foo = function(){"use strict";};(function(){"use strict";echo("hasOwnProperty(arguments): ", foo.hasOwnProperty("arguments"));})(); |
| hasOwnProperty(arguments): false |
| |
| (function(){"use strict";arguments.caller;})(); |
| TypeError: 'arguments', 'callee' and 'caller' are restricted function properties and cannot be accessed in this context |
| |
| var foo = function(){"use strict";};(function(){foo.caller;})(); |
| TypeError: 'arguments', 'callee' and 'caller' are restricted function properties and cannot be accessed in this context |
| |
| var foo = function(){"use strict";};(function(){"use strict";foo.caller;})(); |
| TypeError: 'arguments', 'callee' and 'caller' are restricted function properties and cannot be accessed in this context |
| |
| (function(){"use strict";arguments.callee;})(); |
| TypeError: 'arguments', 'callee' and 'caller' are restricted function properties and cannot be accessed in this context |
| |
| var foo = function(){"use strict";};(function(){foo.arguments;})(); |
| TypeError: 'arguments', 'callee' and 'caller' are restricted function properties and cannot be accessed in this context |
| |
| var foo = function(){"use strict";};(function(){"use strict";foo.arguments;})(); |
| TypeError: 'arguments', 'callee' and 'caller' are restricted function properties and cannot be accessed in this context |
| |
| (function(){"use strict";arguments.caller = 0;})(); |
| TypeError: 'arguments', 'callee' and 'caller' are restricted function properties and cannot be accessed in this context |
| |
| var foo = function(){"use strict";};(function(){foo.caller = 0;})(); |
| TypeError: 'arguments', 'callee' and 'caller' are restricted function properties and cannot be accessed in this context |
| |
| var foo = function(){"use strict";};(function(){"use strict";foo.caller = 0;})(); |
| TypeError: 'arguments', 'callee' and 'caller' are restricted function properties and cannot be accessed in this context |
| |
| (function(){"use strict";arguments.callee = 0;})(); |
| TypeError: 'arguments', 'callee' and 'caller' are restricted function properties and cannot be accessed in this context |
| |
| var foo = function(){"use strict";};(function(){foo.arguments = 0;})(); |
| TypeError: 'arguments', 'callee' and 'caller' are restricted function properties and cannot be accessed in this context |
| |
| var foo = function(){"use strict";};(function(){"use strict";foo.arguments = 0;})(); |
| TypeError: 'arguments', 'callee' and 'caller' are restricted function properties and cannot be accessed in this context |
| |
| (function(){"use strict";Object.defineProperty(arguments, "caller", {value: 0});})(); |
| TypeError: Cannot redefine non-configurable property 'caller' |
| |
| var foo = function(){"use strict";};(function(){Object.defineProperty(foo, "caller", {value: 0});})(); |
| |
| var foo = function(){"use strict";};(function(){"use strict";Object.defineProperty(foo, "caller", {value: 0});})(); |
| |
| (function(){"use strict";Object.defineProperty(arguments, "callee", {value: 0});})(); |
| TypeError: Cannot redefine non-configurable property 'callee' |
| |
| var foo = function(){"use strict";};(function(){Object.defineProperty(foo, "arguments", {value: 0});})(); |
| |
| var foo = function(){"use strict";};(function(){"use strict";Object.defineProperty(foo, "arguments", {value: 0});})(); |
| |
| (function(){"use strict";var descriptor = Object.getOwnPropertyDescriptor(arguments, "caller");if(descriptor.hasOwnProperty("get")) safeCall(descriptor.get);if(descriptor.hasOwnProperty("set")) safeCall(descriptor.set);})(); |
| TypeError: 'arguments', 'callee' and 'caller' are restricted function properties and cannot be accessed in this context |
| TypeError: 'arguments', 'callee' and 'caller' are restricted function properties and cannot be accessed in this context |
| |
| var foo = function(){"use strict";};(function(){var descriptor = Object.getOwnPropertyDescriptor(foo, "caller");if(descriptor.hasOwnProperty("get")) safeCall(descriptor.get);if(descriptor.hasOwnProperty("set")) safeCall(descriptor.set);})(); |
| TypeError: Unable to get property 'hasOwnProperty' of undefined or null reference |
| |
| var foo = function(){"use strict";};(function(){"use strict";var descriptor = Object.getOwnPropertyDescriptor(foo, "caller");if(descriptor.hasOwnProperty("get")) safeCall(descriptor.get);if(descriptor.hasOwnProperty("set")) safeCall(descriptor.set);})(); |
| TypeError: Unable to get property 'hasOwnProperty' of undefined or null reference |
| |
| (function(){"use strict";var descriptor = Object.getOwnPropertyDescriptor(arguments, "callee");if(descriptor.hasOwnProperty("get")) safeCall(descriptor.get);if(descriptor.hasOwnProperty("set")) safeCall(descriptor.set);})(); |
| TypeError: 'arguments', 'callee' and 'caller' are restricted function properties and cannot be accessed in this context |
| TypeError: 'arguments', 'callee' and 'caller' are restricted function properties and cannot be accessed in this context |
| |
| var foo = function(){"use strict";};(function(){var descriptor = Object.getOwnPropertyDescriptor(foo, "arguments");if(descriptor.hasOwnProperty("get")) safeCall(descriptor.get);if(descriptor.hasOwnProperty("set")) safeCall(descriptor.set);})(); |
| TypeError: Unable to get property 'hasOwnProperty' of undefined or null reference |
| |
| var foo = function(){"use strict";};(function(){"use strict";var descriptor = Object.getOwnPropertyDescriptor(foo, "arguments");if(descriptor.hasOwnProperty("get")) safeCall(descriptor.get);if(descriptor.hasOwnProperty("set")) safeCall(descriptor.set);})(); |
| TypeError: Unable to get property 'hasOwnProperty' of undefined or null reference |
| |