<?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>231935</bug_id>
          
          <creation_ts>2021-10-18 20:00:15 -0700</creation_ts>
          <short_desc>DFGSSALoweringPhase.cpp can create a GetTypedArrayLengthAsInt52 with the wrong return type</short_desc>
          <delta_ts>2021-10-21 12:04:38 -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>232059</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>
          <dependson>229353</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Robin Morisset">rmorisset</reporter>
          <assigned_to name="Robin Morisset">rmorisset</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1805850</commentid>
    <comment_count>0</comment_count>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2021-10-18 20:00:15 -0700</bug_when>
    <thetext>GetTypedArrayLengthAsInt52 is marked in DFGNodeTypes.h as NodeResultJS.
This is a complete lie: it actually returns an Int52.
The reason for this lie is that FixupPhase is the part responsible for making its users expect and Int52, and the ByteCodeParser can emit GetTypedArrayLengthAsInt52 before it runs, leading to validation failures.
It works because FixupPhase takes care to properly set the return type of every GetTypedArrayLengthAsInt52 it sees.. but DFGSSALoweringPhase.cpp runs after Fixup and can insert a GetTypedArrayLengthAsInt52, and so it must also take care to properly set its return type.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805851</commentid>
    <comment_count>1</comment_count>
      <attachid>441680</attachid>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2021-10-18 20:03:21 -0700</bug_when>
    <thetext>Created attachment 441680
Patch

I have not managed to find a test case for this yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807298</commentid>
    <comment_count>2</comment_count>
    <who name="Robin Morisset">rmorisset</who>
    <bug_when>2021-10-21 12:04:38 -0700</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 232059 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441680</attachid>
            <date>2021-10-18 20:03:21 -0700</date>
            <delta_ts>2021-10-18 20:03:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch231935</filename>
            <type>text/plain</type>
            <size>2000</size>
            <attacher name="Robin Morisset">rmorisset</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDE3NjRiYzk5Nzk0NS4uY2U1MDU3ZDFiNzYyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMS0xMC0xOCAgUm9i
aW4gTW9yaXNzZXQgIDxybW9yaXNzZXRAYXBwbGUuY29tPgorCisgICAgICAgIERGR1NTQUxvd2Vy
aW5nUGhhc2UuY3BwIGNhbiBjcmVhdGUgYSBHZXRUeXBlZEFycmF5TGVuZ3RoQXNJbnQ1MiB3aXRo
IHRoZSB3cm9uZyByZXR1cm4gdHlwZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjMxOTM1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgR2V0VHlwZWRBcnJheUxlbmd0aEFzSW50NTIgaXMgbWFya2VkIGluIERG
R05vZGVUeXBlcy5oIGFzIE5vZGVSZXN1bHRKUy4KKyAgICAgICAgVGhpcyBpcyBhIGNvbXBsZXRl
IGxpZTogaXQgYWN0dWFsbHkgcmV0dXJucyBhbiBJbnQ1Mi4KKyAgICAgICAgVGhlIHJlYXNvbiBm
b3IgdGhpcyBsaWUgaXMgdGhhdCBGaXh1cFBoYXNlIGlzIHRoZSBwYXJ0IHJlc3BvbnNpYmxlIGZv
ciBtYWtpbmcgaXRzIHVzZXJzIGV4cGVjdCBhbmQgSW50NTIsIGFuZCB0aGUgQnl0ZUNvZGVQYXJz
ZXIgY2FuIGVtaXQgR2V0VHlwZWRBcnJheUxlbmd0aEFzSW50NTIgYmVmb3JlIGl0IHJ1bnMsIGxl
YWRpbmcgdG8gdmFsaWRhdGlvbiBmYWlsdXJlcy4KKyAgICAgICAgSXQgd29ya3MgYmVjYXVzZSBG
aXh1cFBoYXNlIHRha2VzIGNhcmUgdG8gcHJvcGVybHkgc2V0IHRoZSByZXR1cm4gdHlwZSBvZiBl
dmVyeSBHZXRUeXBlZEFycmF5TGVuZ3RoQXNJbnQ1MiBpdCBzZWVzLi4gYnV0IERGR1NTQUxvd2Vy
aW5nUGhhc2UuY3BwIHJ1bnMgYWZ0ZXIgRml4dXAgYW5kIGNhbiBpbnNlcnQgYSBHZXRUeXBlZEFy
cmF5TGVuZ3RoQXNJbnQ1MiwgYW5kIHNvIGl0IG11c3QgYWxzbyB0YWtlIGNhcmUgdG8gcHJvcGVy
bHkgc2V0IGl0cyByZXR1cm4gdHlwZS4KKworICAgICAgICAqIGRmZy9ERkdTU0FMb3dlcmluZ1Bo
YXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTU0FMb3dlcmluZ1BoYXNlOjpoYW5kbGVOb2Rl
KToKKwogMjAyMS0xMC0xOCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAg
ICAgICAgIFtKU0NdIFVzZSBVU0UoTEFSR0VfVFlQRURfQVJSQVkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NTQUxvd2VyaW5nUGhhc2UuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTU0FMb3dlcmluZ1BoYXNlLmNwcAppbmRleCBkOWRhZTNhODMy
MjcuLjMyOGNhYzIxYzZkNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTU0FMb3dlcmluZ1BoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NTQUxvd2VyaW5nUGhhc2UuY3BwCkBAIC0xMDUsNiArMTA1LDcgQEAgcHJpdmF0ZToKICAgICAg
ICAgICAgICAgICAgICAgTm9kZSogbGVuZ3RoID0gbV9pbnNlcnRpb25TZXQuaW5zZXJ0Tm9kZSgK
ICAgICAgICAgICAgICAgICAgICAgICAgIG1fbm9kZUluZGV4LCBTcGVjSW50NTJBbnksIEdldFR5
cGVkQXJyYXlMZW5ndGhBc0ludDUyLCBtX25vZGUtPm9yaWdpbiwKICAgICAgICAgICAgICAgICAg
ICAgICAgIE9wSW5mbyhtX25vZGUtPmFycmF5TW9kZSgpLmFzV29yZCgpKSwgYmFzZSwgc3RvcmFn
ZSk7CisgICAgICAgICAgICAgICAgICAgIGxlbmd0aC0+c2V0UmVzdWx0KE5vZGVSZXN1bHRJbnQ1
Mik7CiAgICAgICAgICAgICAgICAgICAgIG1fZ3JhcGgudmFyQXJnQ2hpbGQobV9ub2RlLCA0KSA9
IEVkZ2UobGVuZ3RoLCBJbnQ1MlJlcFVzZSk7CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICNl
bmRpZgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>