In strict mode, read-only variables cannot be assigned
- STRICT_MODE_ASSIGN_TO_READONLY_VAR
- Error
- High
- No tags
This rule applies when a value is assigned to read-only variables in strict mode.
The read-only variables are as follows:
import
bindings- Predefined global variables such as
undefined
,NaN
,Infinity
Any assignment to the above variables that silently fails in normal code will throw a TypeError
exception in strict mode.
Note: Applied for module code without "use strict"
directive since module code is always strict mode code.
Noncompliant Code Example
// Example 1
import { A } from 'a';
A = 1; // STRICT_MODE_ASSIGN_TO_READONLY_VAR alarm because it is module code.
// Example 2
'use strict';
undefined = 1; // STRICT_MODE_ASSIGN_TO_READONLY_VAR alarm
NaN = 2; // STRICT_MODE_ASSIGN_TO_READONLY_VAR alarm
Infinity = 3; // STRICT_MODE_ASSIGN_TO_READONLY_VAR alarm
Version
This rule was introduced in DeepScan 1.0.0-alpha.