<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>157136</bug_id>
          
          <creation_ts>2016-04-28 07:03:47 -0700</creation_ts>
          <short_desc>Byte codes for dot call and bracket call of super are different</short_desc>
          <delta_ts>2016-04-28 08:31:17 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>147064</dup_id>
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>140491</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="GSkachkov">gskachkov</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>darin</cc>
    
    <cc>gskachkov</cc>
    
    <cc>keith_miller</cc>
    
    <cc>rniwa</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1188235</commentid>
    <comment_count>0</comment_count>
    <who name="GSkachkov">gskachkov</who>
    <bug_when>2016-04-28 07:03:47 -0700</bug_when>
    <thetext>(new class D extends class { m() {}} { constructor() { super(); super[&apos;m&apos;]() } }())
[   0] enter             
[   1] get_scope         loc3
[   3] mov               loc4, loc3
[   6] mov               loc5, this
[   9] mov               this, &lt;JSValue()&gt;(const1)
[  12] get_by_id         loc6, head3, __proto__(@id0)    predicting None
[  21] mov               loc8, loc5
[  24] construct         loc6, loc6, 1, 14 status(Could Take Slow Path)    predicting None
[  33] is_empty          loc9, this
[  36] jtrue             loc9, 6(-&gt;42)
[  39] throw_static_error String (atomic) (identifier): &apos;super()&apos; can&apos;t be called more than once in a constructor., ID: 4(const2), true
[  42] mov               this, loc6
[  45] get_by_id         loc6, head3, PrivateSymbol.homeObject(@id1)    predicting None
[  54] get_by_id         loc7, loc6, __proto__(@id0)    predicting None
[  63] get_by_id         loc8, loc7, m(@id2)    predicting None
[  72] op_check_tdz      this
[  74] mov               loc10, this
[  77] call              loc8, loc8, 1, 16 status(Could Take Slow Path)    Original; predicting None
[  86] op_check_tdz      this
[  88] is_object         loc6, this
[  91] jtrue             loc6, 16(-&gt;107)
[  94] is_undefined      loc6, this
[  97] jtrue             loc6, 6(-&gt;103)
[ 100] throw_static_error String (atomic) (identifier): Cannot return a non-object type in the constructor of a derived class., ID: 4(const3), false
[ 103] op_check_tdz      this
[ 105] ret               this
[ 107] ret               this


(new class D extends class { m() {}} { constructor() { super(); super.m() } }())
[   0] enter             
[   1] get_scope         loc3
[   3] mov               loc4, loc3
[   6] mov               loc5, this
[   9] mov               this, &lt;JSValue()&gt;(const1)
[  12] get_by_id         loc6, head3, __proto__(@id0)    predicting None
[  21] mov               loc8, loc5
[  24] construct         loc6, loc6, 1, 14 status(Could Take Slow Path)    predicting None
[  33] is_empty          loc9, this
[  36] jtrue             loc9, 6(-&gt;42)
[  39] throw_static_error String (atomic) (identifier): &apos;super()&apos; can&apos;t be called more than once in a constructor., ID: 4(const2), true
[  42] mov               this, loc6
[  45] op_check_tdz      this
[  47] mov               loc8, this
[  50] get_by_id         loc9, head3, PrivateSymbol.homeObject(@id1)    predicting None
[  59] get_by_id         loc10, loc9, __proto__(@id0)    predicting None
[  68] get_by_id         loc6, loc10, m(@id2)    predicting None
[  77] call              loc6, loc6, 1, 14 status(Could Take Slow Path)    Original; predicting None
[  86] op_check_tdz      this
[  88] is_object         loc6, this
[  91] jtrue             loc6, 16(-&gt;107)
[  94] is_undefined      loc6, this
[  97] jtrue             loc6, 6(-&gt;103)
[ 100] throw_static_error String (atomic) (identifier): Cannot return a non-object type in the constructor of a derived class., ID: 4(const3), false
[ 103] op_check_tdz      this
[ 105] ret               this
[ 107] ret               this

For my prospective it should be the same byte code. lines 45 are diffrent</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1188247</commentid>
    <comment_count>1</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-04-28 08:31:17 -0700</bug_when>
    <thetext>I&apos;m fixing this in:
https://bugs.webkit.org/show_bug.cgi?id=147064

*** This bug has been marked as a duplicate of bug 147064 ***</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>