Only do parseInt when value is an string. 

OK, I test and also found for boolean(true), it is incorrect. So it will test string first.
Another Question, should we need to support string value "true" and "false" as boolean(true) and boolean(false) here?