Example:
Result:
a.b || (a.b = []) = (a.b = []).concat([1, 2]);
Expected result:
a.b = (a.b || (a.b = [])).concat([1, 2]);
The current behavior produces a code, which gives a runtime error ReferenceError: Invalid left-hand side in assignment.
The "expected result" block is a result of compiling:
(after merging #1026)
which is a simplification of (currently uncompilable):
because the effects of semiautovivification are canceled by an assign.