# [JavaScript (Node.js)], 108 bytes, [Double](https://codegolf.stackexchange.com/questions/135365/will-it-halt-robbers/226107#226107) [Cracked](https://codegolf.stackexchange.com/questions/135365/will-it-halt-robbers/226106#226106)

<!-- language-all: lang-javascript -->

    f=y=>(x=>{for(;typeof y=='string'&&x===x;);})(f['constructor'](`return +[${y.replace(/[^W-`*-0]/g,'')}]`)())

[Try it online!][TIO-koytdei6]

[JavaScript (Node.js)]: https://nodejs.org
[TIO-koytdei6]: https://tio.run/##DclBDoIwEADAr3Aw7K6KeCfLNzw0NTS1JRjTkqUYGsLbq3Odt/maxco0pybElyvFc@YeN@53HwW7lGcXfZWZYUkyhRHqemPmraPuIPQKbAz/WW2KAhoHcWmVUF3Uac83cfPHWIetej6a4dzcdTteAejQAyFR8QgGqPwA "JavaScript (Node.js) – Try It Online"

Fixed a bug that allowed errors...

>! My intended solution was `[][+[]]+[]][+[]`. This evaluates to coercing undefined to an integer, which is NaN, and `NaN !== NaN`.