caller
and callee
properties should not be accessed on arguments
object for strict mode function
- STRICT_MODE_ARGS_CALLER_CALLEE
- Error
- High
- No tags
This rule applies when caller
and callee
properties are accessed on arguments
object allocated for calling strict mode function.
Because arguments.caller
and arguments.callee
make several code optimizations impossible, they were deprecated and the use of both throws a TypeError
exception for strict mode function.
It also applies to the function's caller
and arguments
properties. (See 'STRICT_MODE_FUNC_PROPERTY' rule)
Noncompliant Code Example
View with compliant examples side by sidesetTimeout(function () {
'use strict';
setTimeout(arguments.callee, 100); // STRICT_MODE_ARGS_CALLER_CALLEE alarm
}, 100);
Compliant Code Example
View with noncompliant examples side by sidefunction callback() {
'use strict';
setTimeout(callback, 100);
}
setTimeout(callback, 100);
Version
This rule was introduced in DeepScan 1.0.0-alpha.