commit は自重

function stringToBoolean(str, defaultValue) {
return !str                          ? (defaultValue ? true : false)
     : str.toLowerCase() === 'false' ? false
     : /^\d+$/.test(str)             ? (parseInt(str) ? true : false)
     :                                 true;
}

true とか false がいっぱい出てくるのは好きじゃないなぁとか思っていじってたら

function anks2b (s, d) (!/^(\d+|false)$/i.test(s)|parseInt(s)|!!d*2)&1<<!s;

いつの間にかこうなってた。
(?:)を使わない方針。