Ваш код не работает, потому что toLowerCase () является методом String, но не Number. Поэтому, когда вы пытаетесь вызвать toLowerCase () с номером 1, это не работает. Решением было бы просто преобразовать число в строку сначала:
Object.prototype.toBool = function ()
{
switch(String(this).toLowerCase())
{
case "true": case "yes": case "1": return true;
case "false": case "no": case "0": case null: return false;
default: return Boolean(string);
}
}