title: Why is the ![] == {} and {} == ![] result is different
body: <p>I can understand <code>[] ==! []</code> is correct, <code>{} ==! {}</code> is wrong, because <code>toPrimitive([])</code> returns '' and <code>toPrimitive({})</code> returns <code>[object object]</code>, <code>''== 0</code>, and <code>[object object] != 0</code>. Same reason, I also can understand <code>![] == {}</code> returns false, but I wonder why <code>{} == ![]</code> report <code>Uncaught SyntaxError: Unexpected token ==</code>? Shouldn't the result also be false?</p>
  
  <p><a href="https://i.stack.imgur.com/RIQEq.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/RIQEq.png" alt="enter image description here"></a></p>