Details
-
Type:
Bug Detection
-
Status: Active
-
Resolution: Unresolved
-
Labels:None
-
Message:TypeError can be thrown as this operand might have primitive type.
-
Highlighting:
-
Default Severity:Critical
-
Impact:High
-
Likelihood:Low
-
Default Quality Profiles:Sonar way, Sonar way recommended
-
Covered Languages:JavaScript
-
Remediation Function:Constant/Issue
-
Constant Cost:5min
-
Analysis Scope:Main Sources, Test Sources
Description
The in operator tests whether the specified property is in the specified object.
If the right operand is a of primitive type (i.e., not an object) the in operator raises a TypeError.
Noncompliant Code Example
var x = "Foo"; "length" in x; // Noncompliant: TypeError 0 in x; // Noncompliant: TypeError
Compliant Solution
var x = new String("Foo"); "length" in x; // true 0 in x; // true "foobar" in x; // false