var x = 1;
x = ++x + x++ * x
++x : x is now 2
++x + : 2 +
++x + x : 2 + 2
++x + x++ : 2 + 2 and x is now 3
++x + x++ * : 2 + 2 *
++x + x++ * x : 2 + 2 * 3
++x = x is now 2
x++ = x is now 3 but the showed value remains 2
x = is 3
x = 2 + (2 * 3)
x = 8