Adjust "||" behavior to ECMAScript

"x || y" returns the first not false value. If x is not false value,
"x || y" returns "x" itself not "true". If x is false value and y is
not false value, "x || y" returns "y" itself not "true".

If both "x" and "y" are false value, "x || y" returns "false". It is
not changed.

Before:

    null || "string value" -> true
    null || null           -> false

After:

    null || "string value" -> "string value" (changed)
    null || null           -> false          (not changed)