Andrea Giammarchi (2013-04-14T07:53:48.000Z)
github at esdiscuss.org (2013-07-12T02:26:57.817Z)
I wonder if all of this is expected: ```js (function(){ "use strict"; function caller() { alert(caller.caller); } // error if invoked: caller(); // but showing up in properties var properties = Object.getOwnPropertyNames(caller); if (properties.indexOf('caller')) { console.log(JSON.stringify( Object.getOwnPropertyDescriptor(caller, 'caller') )); // will show // enumerable: false, configurable: false } }()); ``` same is for `arguments` ... so `fn.arguments` is there too Am I the only one thinking this is confusing ? I understand it's convenient for engines to simply put such descriptor there but shouldn't these properties be hidden under use strict? Just wondering, thanks for any clarification.