Certain functions do not change the state of the calling object. If these functions' return values are unused, then the function call could be removed without any effects, indicating a likely bug.
Currently checking the following APIs:
Array.concat()
Array.filter()
Array.map()
Array.slice()
Function.bind()
Object.create()
string.concat()
string.normalize()
string.padStart()
string.padEnd()
string.repeat()
string.replace()
(Check only if the second parameter is non-function.)string.slice()
string.split()
string.substr()
string.substring()
string.toLocaleLowerCase()
string.toLocaleUpperCase()
string.toLowerCase()
string.toUpperCase()
string.trim()
For user defined functions, add a @checkReturnValue
JSDoc to mark functions whose return values should be checked. See this example.