Согласно спецификации ECMA Script , которая, как я полагаю, должен соответствовать javascript, в выражениях умножения и сложения он оценивает левую часть перед оценкой правой части. (см. 11.5 и 11.6). Я думаю, это означает, что код должен быть эквивалентен
t = t - 1;
int a = t * (t - 2);
t = t / a;
int b = t + t;
Однако не всегда следует полагать, что спецификация совпадает с реализацией!
Ваша лучшая ставка в таких запутанных случаях - экспериментировать с различными входными данными для неоднозначных строк кода в исходной операционной среде и пытаться определить, что он делает. Обязательно проверяйте случаи, которые могут подтвердить гипотезу, а также тесты, которые могут ее опровергнуть.
Редактировать: Очевидно, что большинство JavaScript реализует 3-е издание ECMAScript, поэтому вместо этого я изменил ссылку на эту спецификацию.