Adjust "&&" behavior to ECMAScript

"x && y" returns false if "x" or "y" is false value, "y" if both "x"
and "y" is not false value.

Before:

    29 && "string value" -> 1
    null && true         -> 0

After:

    29 && "string value" -> 29    (changed)
    null && true         -> false (changed)

The commit message of
c007a6819aa3840054297b061b35066deaf173f1 (supports "x || y") is
wrong. "x || y" returns 1 or 0 not true or false.