== Why is this an issue? In JavaScript, a setter is a special type of function that is used to set the value of a property on an object. Setters are defined using the ``++set++`` keyword followed by the name of the property that the setter is associated with. To set the property, we simply assign a value to it as if it were a regular property. The setter function is automatically called with the value that we assign to the property. Functions declared with the ``++set++`` keyword will automatically return the values they were passed. Thus any value explicitly returned from a setter will be ignored, and explicitly returning a value is a mistake. [source,javascript,diff-id=1,diff-type=noncompliant] ---- let person = { // ... set firstname(first) { this.first = first; return 42; // Noncompliant: The return value 42 will be ignored } }; console.log(person.firstname = 'bob'); // Prints 'bob' ---- Since return values in setters are ignored, you should remove return statements altogether. [source,javascript,diff-id=1,diff-type=compliant] ---- let person = { // ... set firstname(first) { this.first = first; } }; console.log(person.firstname = 'bob'); // Prints 'bob' ---- == Resources === Documentation * MDN web docs - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/set[set] ifdef::env-github,rspecator-view[] ''' == Implementation Specification (visible only on this page) === Message Consider removing this return statement; it will be ignored. ''' == Comments And Links (visible only on this page) === on 21 Apr 2017, 14:41:26 Elena Vilchik wrote: \[~jeanchristophe.collet] Could you please update message of this rule so that it is a bit softer and gives some details of the problem? (issue \https://github.com/SonarSource/sonar-javascript/issues/572) endif::env-github,rspecator-view[]