I'll use a link shortener to prevent spoilers. This link elaborates exactly which rules are abused:
https://goo.gl/mu5xtr
"These requirements are a willful violation of the JavaScript specification current at the time of writing. The JavaScript specification requires that ToBoolean return true for all objects, and does not have provisions for objects acting as if they were undefined for the purposes of certain operators. This violation is motivated by a desire for compatibility..." with old Internet Explorer.