This is because x is evaluated as a+b and then a++ and b++ are evaluated.
No, the sequence is as follows:
1) evaluate a++, and push the value onto the stack
vars: {x, 6, 7} stack: {6}
2) increment a
vars: {x, 7, 7} stack: {6}
3) evaluate b++ and push the value onto the stack
vars: {x, 7, 7} stack: {6, 7}
4) increment b
vars: {x, 7, 8} stack: {6, 7}
5) add the values
from the stack, and store the result in x
vars: {13, 7, 8} stack: {}
Hope this helps...