I was looking through some compiled coffee-script code, and I noticed something like the following, which I thought was really strange:
var current, x = 8;
current = this._head || (this._head = x);
after running this, current has a value of 8. Judging by the way that the || logical operator works, I would have expected it to evaluate the left side first. After getting an 'undefined' on the left hand side, it moves onto the right, where it assigns this._head to 8. Afterwards it returns a true, but this part isn't that important? I don't see how it could go back and affect the "current" variable? Any help would be appreciated, thanks!