The expression sameValue ? ++x, ++y : --x, --y is the same as (sameValue ? (++x, ++y) : --x), --y Then it will be easy to notice that whatever sameValue evaluated, --y will always be evaluated.