title: Where in the ECMAScript specification can I find the reason about why {} !== {}?
body: <p>In JavaScript We all know that <code>{} !== {}</code> - they are different objects allocated on heap. But I was trying to find the reason at the language specification level.</p>
  <p>at <a href="https://tc39.es/ecma262/#sec-samevaluenonnumeric" rel="nofollow noreferrer">https://tc39.es/ecma262/#sec-samevaluenonnumeric</a> it says</p>
  <blockquote>
  <ol start="7">
  <li>If x and y are the same Object value, return true. Otherwise, return false.</li>
  </ol>
  </blockquote>
  <p>But it is unclear to me how the spec defines exactly when two objects are considered to have the same Object value. Like <code>{}</code> and <code>{}</code> clearly do not have the same value but how exactly is it defined in the spec?</p>