<html>
    <head>
      <base href="https://bugs.webkit.org/" />
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Regression(r197648): JSObject::setPrototypeWithCycleCheck() allows for cycles but the rest of the code base does not"
   href="https://bugs.webkit.org/show_bug.cgi?id=161534#c4">Comment # 4</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Regression(r197648): JSObject::setPrototypeWithCycleCheck() allows for cycles but the rest of the code base does not"
   href="https://bugs.webkit.org/show_bug.cgi?id=161534">bug 161534</a>
              from <span class="vcard"><a class="email" href="mailto:sbarati&#64;apple.com" title="Saam Barati &lt;sbarati&#64;apple.com&gt;"> <span class="fn">Saam Barati</span></a>
</span></b>
        <pre>(In reply to <a href="show_bug.cgi?id=161534#c3">comment #3</a>)
<span class="quote">&gt; (In reply to <a href="show_bug.cgi?id=161534#c2">comment #2</a>)
&gt; &gt; &gt; Yeah, we should teach the rest of the engine that it's OK to have cycles
&gt; &gt; &gt; in the &quot;getPrototypeDirect&quot; chain.
&gt; &gt; &gt; Currently, inside JSC itself, this will never happen. However, I guess we
&gt; &gt; &gt; need to
&gt; &gt; &gt; teach it this w.r.t the HTML spec.
&gt; &gt; 
&gt; &gt; That's a pretty big change. Are we sure we need to allow cycles? What's the
&gt; &gt; expected behavior if you find a cycle? Is it specified?
&gt; 
&gt; Note that even without my patch, it is fairly trivial to end up with an
&gt; infinite loop since r197648 allows for cycles:
&gt; 
&gt; &lt;script&gt;
&gt; var target = {
&gt;   __proto__: null
&gt; };
&gt; var proxy = new Proxy(target, {});
&gt; Object.prototype.__proto__ = {
&gt;    __proto__: proxy,
&gt; };
&gt; 
&gt; var a = {};
&gt; a.test;
&gt; &lt;/script&gt;
&gt; 
&gt; This seems to infinite loop for me on ToT, no DOM involved.</span >

I believe the bug here is having ProxyObject's structure's prototype field
be Object.prototype. That's wrong.</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>