For example:
> function a() { console.log(a.arguments); }
undefined
> a(1)
Uncaught exception:
[TypeError] Restricted function properties like 'callee', 'caller' and 'arguments' may not be accessed in strict mode
-> <unknown>
-> a
-> <unknown>
-> (global execution context)
>
Seen on: https://www.smashbros.com/wii/en_us/gamemode/wi-fi/wi-fi06.html
Also required by Closure library, which takes an arbitrary function as a parameter and extracts the arguments from it: https://github.com/google/closure-library/blob/1d34579ab3e18825017bd21f5b3a0e7636f5f4c1/closure/goog/debug/debug.js#L582
This is a non-standard feature that every major engine has and the web depends on. This would pretty much require removing the m_might_needs_argument_object
optimization, for example in this extreme case:
> const blah = eval; function a() { console.log(blah("function d(smfn) { console.log(smfn['arg' + 'u' + 'ments']) } const c = a; d(c)")); }
undefined
> a(1)
Uncaught exception:
[TypeError] Restricted function properties like 'callee', 'caller' and 'arguments' may not be accessed in strict mode
-> <unknown>
-> <unknown>
-> a
-> <unknown>
-> (global execution context)
Pay now to fund the work behind this issue.
Get updates on progress being made.
Maintainer is rewarded once the issue is completed.
You're funding impactful open source efforts
You want to contribute to this effort
You want to get funding like this too