<html>
<head>
<base href="https://bugs.webkit.org/" />
</head>
<body><table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Bug ID</th>
<td><a class="bz_bug_link
bz_status_NEW "
title="NEW - Byte codes for dot call and bracket call of super are different"
href="https://bugs.webkit.org/show_bug.cgi?id=157136">157136</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>Byte codes for dot call and bracket call of super are different
</td>
</tr>
<tr>
<th>Classification</th>
<td>Unclassified
</td>
</tr>
<tr>
<th>Product</th>
<td>WebKit
</td>
</tr>
<tr>
<th>Version</th>
<td>WebKit Nightly Build
</td>
</tr>
<tr>
<th>Hardware</th>
<td>Unspecified
</td>
</tr>
<tr>
<th>OS</th>
<td>Unspecified
</td>
</tr>
<tr>
<th>Status</th>
<td>NEW
</td>
</tr>
<tr>
<th>Severity</th>
<td>Normal
</td>
</tr>
<tr>
<th>Priority</th>
<td>P2
</td>
</tr>
<tr>
<th>Component</th>
<td>JavaScriptCore
</td>
</tr>
<tr>
<th>Assignee</th>
<td>webkit-unassigned@lists.webkit.org
</td>
</tr>
<tr>
<th>Reporter</th>
<td>gskachkov@gmail.com
</td>
</tr></table>
<p>
<div>
<pre>(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, <JSValue()>(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(->42)
[ 39] throw_static_error String (atomic) (identifier): 'super()' can'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(->107)
[ 94] is_undefined loc6, this
[ 97] jtrue loc6, 6(->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, <JSValue()>(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(->42)
[ 39] throw_static_error String (atomic) (identifier): 'super()' can'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(->107)
[ 94] is_undefined loc6, this
[ 97] jtrue loc6, 6(->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</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>