<html>
    <head>
      <base href="https://bugs.webkit.org/" />
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - calling super() a second time in a constructor should throw"
   href="https://bugs.webkit.org/show_bug.cgi?id=151113#c22">Comment # 22</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - calling super() a second time in a constructor should throw"
   href="https://bugs.webkit.org/show_bug.cgi?id=151113">bug 151113</a>
              from <span class="vcard"><a class="email" href="mailto:gskachkov&#64;gmail.com" title="GSkachkov &lt;gskachkov&#64;gmail.com&gt;"> <span class="fn">GSkachkov</span></a>
</span></b>
        <pre>Comment on <span class="bz_obsolete"><a href="attachment.cgi?id=276169&amp;action=diff" name="attach_276169" title="Patch">attachment 276169</a> <a href="attachment.cgi?id=276169&amp;action=edit" title="Patch">[details]</a></span>
Patch

View in context: <a href="https://bugs.webkit.org/attachment.cgi?id=276169&amp;action=review">https://bugs.webkit.org/attachment.cgi?id=276169&amp;action=review</a>

<span class="quote">&gt;&gt; Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:967
&gt;&gt; +    case IsEmpty:
&gt; 
&gt; I think we can more aggressively constant fold this based on type information as well.
&gt; We can fold to false if the speculated type for child1 doesn't have SpecEmpty in it.
&gt; We can fold to true if the speculated type is equal to SpecEmpty.</span >

I'll try to play, hope in with next patch will be fixed this comment

<span class="quote">&gt;&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:4405
&gt;&gt; +    case IsEmpty: {        
&gt; 
&gt; This code is more easily written as a compare instruction.</span >

Hope I did in way that you mean, but I don't know if it correct work in 32bit

<span class="quote">&gt;&gt; Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:4410
&gt;&gt; +    case IsEmpty: {
&gt; 
&gt; I think the below code is subtly wrong because you just or the ValueTrue/False disregarding junk old
&gt; values in the register. But, regardless of that, this code is better written as a compare instruction 
&gt; + &quot;or ValueFalse&quot;. I believe we use this paradigm in other code in the DFG.</span >

Refactored

<span class="quote">&gt;&gt; Source/JavaScriptCore/jit/JITOpcodes.cpp:179
&gt;&gt; +void JIT::emit_op_is_empty(Instruction* currentInstruction)
&gt; 
&gt; Ditto with compare instruction.</span >

Refactored

<span class="quote">&gt;&gt; Source/JavaScriptCore/jit/JITOpcodes32_64.cpp:294
&gt;&gt; +void JIT::emit_op_is_empty(Instruction* currentInstruction)
&gt; 
&gt; Ditto with compare instruction.</span >

Refactored

<span class="quote">&gt;&gt; Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm:1214
&gt;&gt; +_llint_op_is_empty:
&gt; 
&gt; Ditto</span >

Refactored

<span class="quote">&gt;&gt; Source/JavaScriptCore/llint/LowLevelInterpreter64.asm:1102
&gt;&gt; +_llint_op_is_empty:
&gt; 
&gt; Ditto.</span >

Refactored</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>