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 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

setTimeout(function () {
    'use strict';
    setTimeout(arguments.callee, 100); // STRICT_MODE_ARGS_CALLER_CALLEE alarm
}, 100);

Compliant Code Example

function callback() {
    'use strict';
    setTimeout(callback, 100);
}
setTimeout(callback, 100);

Version

This rule was introduced in DeepScan 1.0.0-alpha.

See