// It should always break the highest precedence operators first, and // break them all at the same time. const x = longVariable + longVariable + longVariable; const x1 = longVariable + longVariable + longVariable + longVariable - longVariable + longVariable; const x2 = longVariable + longVariable * longVariable + longVariable - longVariable + longVariable; const x3 = longVariable + (longVariable * longVariable * longVariable) / longVariable + longVariable; const x4 = longVariable && longVariable && longVariable && longVariable && longVariable && longVariable; const x5 = (longVariable && longVariable) || (longVariable && longVariable) || (longVariable && longVariable); const x6 = firstItemWithAVeryLongNameThatKeepsGoing || firstItemWithAVeryLongNameThatKeepsGoing || {}; const x7 = firstItemWithAVeryLongNameThatKeepsGoing || firstItemWithAVeryLongNameThatKeepsGoing || []; const x8 = call( firstItemWithAVeryLongNameThatKeepsGoing, firstItemWithAVeryLongNameThatKeepsGoing, ) || []; const x9 = longVariable * longint && longVariable >> 0 && longVariable + longVariable; const x10 = longVariable > longint && longVariable === 0 + longVariable * longVariable; foo( obj.property * new Class() && obj instanceof Class && longVariable ? number + 5 : false, );