<div dir="ltr"><div class="gmail_default" style="font-family:georgia,serif;font-size:small"><div class="gmail_default" style="color:rgb(80,0,80)">Like <span style="background-color:rgb(245,245,245);color:rgb(51,51,51);font-family:Menlo,Monaco,Consolas,"Courier New",monospace;white-space:pre-wrap">Symbol.hasInstance</span> but for the "in" operator.<br>This symbol would work for both native and user-defined objects.</div><div class="gmail_default" style="color:rgb(80,0,80)"><br></div><div class="gmail_default" style="color:rgb(80,0,80)"><b>*Example implementation*</b> prototyping native object:</div><div class="gmail_default" style="color:rgb(80,0,80)"><br></div><div class="gmail_default" style="color:rgb(80,0,80)"><pre style="white-space:pre-wrap;box-sizing:border-box;font-family:Menlo,Monaco,Consolas,"Courier New",monospace;padding:6.5px;margin-top:0px;margin-bottom:11px;line-height:20px;word-break:break-all;color:rgb(51,51,51);background-color:rgb(245,245,245);border:1px solid rgb(204,204,204);border-radius:4px">```js
String.prototype[Symbol.inObject] =
  function(searchString) {
    return this.includes(searchString)
}
```</pre></div><div class="gmail_default" style="color:rgb(80,0,80)"><br><b>*Example implementation* </b>for user-defined object:</div><div class="gmail_default" style="color:rgb(80,0,80)"><br></div><div class="gmail_default" style="color:rgb(80,0,80)"><pre style="white-space:pre-wrap;box-sizing:border-box;font-family:Menlo,Monaco,Consolas,"Courier New",monospace;padding:6.5px;margin-top:0px;margin-bottom:11px;line-height:20px;word-break:break-all;color:rgb(51,51,51);background-color:rgb(245,245,245);border:1px solid rgb(204,204,204);border-radius:4px">```js
function range(min, max) => ({
    [Symbol.inObject]: (prop) => {
        return (prop >= min && prop <= max)
    }
})
```</pre><br></div><div class="gmail_default" style="color:rgb(80,0,80)"><b>*Example usage*</b>:</div><div class="gmail_default" style="color:rgb(80,0,80)"><br><pre style="white-space:pre-wrap;box-sizing:border-box;font-family:Menlo,Monaco,Consolas,"Courier New",monospace;padding:6.5px;margin-top:0px;margin-bottom:11px;line-height:20px;word-break:break-all;color:rgb(51,51,51);background-color:rgb(245,245,245);border:1px solid rgb(204,204,204);border-radius:4px">```js
("foo" in "food")    // true
(14 in range(1, 25)) // true
```</pre></div></div></div>