Это связано с выражением Javascript a = b = c.
Я понимаю, что
foo = foo.x = {n: b}; // console.log(foo) => {n: b}
но
foo.x = foo = {n: b}; // console.log(foo) => {n: b}
Он должен быть равен:
foo = {n: b};
foo.x = foo; // console.log(foo) => {n: b, x:object}
Я что-то пропустил?