== Why is this an issue? The use of wrapper objects for primitive types is gratuitous, confusing and dangerous. If you use a wrapper object constructor for type conversion, just remove the ``++new++`` keyword, and you'll get a primitive value automatically. If you use a wrapper object as a way to add properties to a primitive, you should re-think the design. Such uses are considered bad practice, and should be refactored. === Noncompliant code example [source,javascript] ---- let x = new Number("0"); if (x) { alert('hi'); // Shows 'hi'. } ---- === Compliant solution [source,javascript] ---- let x = Number("0"); if (x) { alert('hi'); } ---- ifdef::env-github,rspecator-view[] ''' == Implementation Specification (visible only on this page) === Message Remove this use of 'xxx' constructor. ''' == Comments And Links (visible only on this page) === is related to: S2129 === on 16 Mar 2017, 11:05:10 Elena Vilchik wrote: \[~ann.campbell.2], I have changed description. Could you reword it in normal english? Please come back to me, if any questions about content. Thanks! === on 16 Mar 2017, 12:14:53 Ann Campbell wrote: Edited [~elena.vilchik]. Double-check me pls. === on 16 Mar 2017, 14:31:08 Elena Vilchik wrote: \[~ann.campbell.2] thanks! === on 29 Jan 2018, 10:43:26 Tibor Blenessy wrote: RSPEC-2129 seems to be very similar, if not duplicate of this. endif::env-github,rspecator-view[]