var a = 0, b = 0; b = a++, a; // lower precedence (like separate expressions) assert(a == 1); assert(b == 0); a++, b = a; assert(a == 2); assert(b == 2); a = b = 0; b = (a++, a); // higher precedence assert(a == 1); assert(b == 1); a = (a++, b = a); assert(a == 2); assert(b == 2); for (var c = 0; c < a; a--, c++); assert(c == 1); 1, 2, 3; // tsc doesn't allow this