<?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>144456</bug_id>
          
          <creation_ts>2015-04-30 10:31:02 -0700</creation_ts>
          <short_desc>TypeOfIsUndefined by-type folding should take advantage of the masquerades-as-undefined watchpoint</short_desc>
          <delta_ts>2021-08-04 15:10:39 -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>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>144409</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Alexey Shvayka">ashvayka</assigned_to>
          <cc>ashvayka</cc>
    
    <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>1090474</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-04-30 10:31:02 -0700</bug_when>
    <thetext>This would allow us to fold more things.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782061</commentid>
    <comment_count>1</comment_count>
      <attachid>434939</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-08-04 14:52:44 -0700</bug_when>
    <thetext>Created attachment 434939
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782063</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-08-04 14:53:30 -0700</bug_when>
    <thetext>(In reply to Alexey Shvayka from comment #1)
&gt; Created attachment 434939 [details]
&gt; Patch

                                                    r280626                    patch

is-undefined-fold-tricky-spec-object-other      30.6171+-0.7028     ^     21.8494+-0.6913        ^ definitely 1.4013x faster</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1782068</commentid>
    <comment_count>3</comment_count>
      <attachid>434939</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2021-08-04 15:10:39 -0700</bug_when>
    <thetext>Comment on attachment 434939
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=434939&amp;action=review

&gt; Source/JavaScriptCore/ChangeLog:12
&gt; +        TypeOfIsObject / TypeOfIsFunction by-type folding can&apos;t be improved in the same way:
&gt; +        even if SpecObjectOther is a proven non-masquerader, we don&apos;t know if it&apos;s callable.

Can you replace the FIXME&apos;s with comments to this effect?  This is an easy detail to forget.  I would say something like - we could use the masquerade watchpoint to prove it&apos;s not undefined, but we don&apos;t have a trick for callability.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434939</attachid>
            <date>2021-08-04 14:52:44 -0700</date>
            <delta_ts>2021-08-04 15:10:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-144456-20210805005243.patch</filename>
            <type>text/plain</type>
            <size>5357</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyODA2NjQpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDEzIEBACisyMDIxLTA4LTA0ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNo
QGdtYWlsLmNvbT4KKworICAgICAgICBUeXBlT2ZJc1VuZGVmaW5lZCBieS10eXBlIGZvbGRpbmcg
c2hvdWxkIHRha2UgYWR2YW50YWdlIG9mIHRoZSBtYXNxdWVyYWRlcy1hcy11bmRlZmluZWQgd2F0
Y2hwb2ludAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTQ0NDU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBtaWNyb2JlbmNobWFya3MvaXMtdW5kZWZpbmVkLWZvbGQtdHJpY2t5LXNwZWMtb2JqZWN0LW90
aGVyLmpzOiBBZGRlZC4KKyAgICAgICAgKiBzdHJlc3MvaXMtdW5kZWZpbmVkLWZvbGQtbWFzcXVl
cmFkZXIuanM6IEFkZGVkLgorCiAyMDIxLTA4LTAyICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBh
cHBsZS5jb20+CiAKICAgICAgICAgW0pTQ10gWWFyciBCb3llck1vb3JlIHNlYXJjaCBzaG91bGQg
c3VwcG9ydCBjaGFyYWN0ZXItY2xhc3MKSW5kZXg6IEpTVGVzdHMvbWljcm9iZW5jaG1hcmtzL2lz
LXVuZGVmaW5lZC1mb2xkLXRyaWNreS1zcGVjLW9iamVjdC1vdGhlci5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBKU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9pcy11bmRlZmluZWQtZm9sZC10cmlja3ktc3BlYy1v
YmplY3Qtb3RoZXIuanMJKG5vbmV4aXN0ZW50KQorKysgSlNUZXN0cy9taWNyb2JlbmNobWFya3Mv
aXMtdW5kZWZpbmVkLWZvbGQtdHJpY2t5LXNwZWMtb2JqZWN0LW90aGVyLmpzCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMTAgQEAKK3ZhciBudW1iZXJPYmogPSBuZXcgTnVtYmVyKDQyKTsKKyhm
dW5jdGlvbigpIHsKKyAgICB2YXIgcmVzdWx0ID0gMDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8
IDFlNzsgKytpKSB7CisgICAgICAgIHZhciB2YWx1ZSA9IChpICYgMSkgPyBudW1iZXJPYmogOiBN
YXRoOworICAgICAgICByZXN1bHQgKz0gdHlwZW9mIHZhbHVlID09PSAidW5kZWZpbmVkIjsKKyAg
ICB9CisgICAgaWYgKHJlc3VsdCAhPT0gMCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJCYWQg
YXNzZXJ0aW9uISIpOworfSkoKTsKSW5kZXg6IEpTVGVzdHMvc3RyZXNzL2lzLXVuZGVmaW5lZC1m
b2xkLW1hc3F1ZXJhZGVyLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvc3RyZXNzL2lzLXVuZGVm
aW5lZC1mb2xkLW1hc3F1ZXJhZGVyLmpzCShub25leGlzdGVudCkKKysrIEpTVGVzdHMvc3RyZXNz
L2lzLXVuZGVmaW5lZC1mb2xkLW1hc3F1ZXJhZGVyLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMTIgQEAKK3ZhciBzeW1ib2xPYmogPSBPYmplY3QoU3ltYm9sKCkpOworKGZ1bmN0aW9uKCkg
eworICAgIHZhciByZXN1bHQgPSAwOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMWU3OyArK2kp
IHsKKyAgICAgICAgdmFyIHZhbHVlID0gKGkgJiAxKSA/IHN5bWJvbE9iaiA6IFJlZmxlY3Q7Cisg
ICAgICAgIGlmIChpID09PSAxZTcgLyAyKQorICAgICAgICAgICAgdmFsdWUgPSBtYWtlTWFzcXVl
cmFkZXIoKTsKKyAgICAgICAgcmVzdWx0ICs9IHR5cGVvZiB2YWx1ZSA9PT0gInVuZGVmaW5lZCI7
CisgICAgfQorICAgIGlmIChyZXN1bHQgIT09IDEpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigi
QmFkIGFzc2VydGlvbiEiKTsKK30pKCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI4MDYyNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwyMiBAQAorMjAyMS0wOC0wNCAgQWxleGV5IFNodmF5a2EgIDxz
aHZhaWthbGVzaEBnbWFpbC5jb20+CisKKyAgICAgICAgVHlwZU9mSXNVbmRlZmluZWQgYnktdHlw
ZSBmb2xkaW5nIHNob3VsZCB0YWtlIGFkdmFudGFnZSBvZiB0aGUgbWFzcXVlcmFkZXMtYXMtdW5k
ZWZpbmVkIHdhdGNocG9pbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE0NDQ1NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRoaXMgY2hhbmdlIHV0aWxpemVzIG1hc3F1ZXJhZGVzQXNVbmRlZmluZWRXYXRj
aHBvaW50KCkgdG8gcmVmaW5lIFR5cGVPZklzVW5kZWZpbmVkIHR5cGUtYmFzZWQKKyAgICAgICAg
aW5saW5pbmc6IGlmIHRoZSB3YXRjaHBvaW50IHdhcyBub3QgZmlyZWQsIGl0J3Mga25vd24gdGhh
dCBTcGVjT2JqZWN0T3RoZXIgaXMgbm90IGEgbWFzcXVlcmFkZXIuCisKKyAgICAgICAgVHlwZU9m
SXNPYmplY3QgLyBUeXBlT2ZJc0Z1bmN0aW9uIGJ5LXR5cGUgZm9sZGluZyBjYW4ndCBiZSBpbXBy
b3ZlZCBpbiB0aGUgc2FtZSB3YXk6CisgICAgICAgIGV2ZW4gaWYgU3BlY09iamVjdE90aGVyIGlz
IGEgcHJvdmVuIG5vbi1tYXNxdWVyYWRlciwgd2UgZG9uJ3Qga25vdyBpZiBpdCdzIGNhbGxhYmxl
LgorCisgICAgICAgIFdpdGggRlRMIGRpc2FibGVkIChhcyBpdCBhbHJlYWR5IHJlbGllcyBvbiB0
aGUgd2F0Y2hwb2ludCksIHRoaXMgcGF0Y2ggYWR2YW5jZXMKKyAgICAgICAgcHJvdmlkZWQgbWlj
cm9iZW5jaG1hcmsgYnkgfjQwJS4KKworICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdEludGVycHJl
dGVySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpERkc6OkFic3RyYWN0SW50ZXJwcmV0ZXI8QWJz
dHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyk6CisKIDIwMjEtMDgtMDMgIFlpamlhIEh1
YW5nICA8eWlqaWFfaHVhbmdAYXBwbGUuY29tPgogCiAgICAgICAgIFtBUk02NF0gVXNlIGxpbmsg
cmVnaXN0ZXIgaW5zdGVhZCBvZiBwaW5uaW5nIGEgcmVnaXN0ZXIgZm9yIG1hdGVyaWFsaXppbmcg
YmlnIGxvYWQgY29uc3RhbnRzCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fi
c3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCShyZXZpc2lvbiAyODA2
MjYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJ
bmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTE1OTYsMjAgKzE1OTYsMjEgQEAgYm9vbCBBYnN0
cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeQogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KICAgICAgICAgY2FzZSBUeXBlT2ZJc1VuZGVmaW5lZDoKLSAgICAgICAgICAgIC8vIEZJ
WE1FOiBVc2UgdGhlIG1hc3F1ZXJhZGVzLWFzLXVuZGVmaW5lZCB3YXRjaHBvaW50IHRoaW5neS4K
LSAgICAgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NDQ0NTYKLSAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKCEoY2hpbGQubV90eXBlICYgKFNw
ZWNPdGhlciB8IFNwZWNPYmplY3RPdGhlcikpKSB7CiAgICAgICAgICAgICAgICAgc2V0Q29uc3Rh
bnQobm9kZSwganNCb29sZWFuKGZhbHNlKSk7CiAgICAgICAgICAgICAgICAgY29uc3RhbnRXYXNT
ZXQgPSB0cnVlOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAg
ICAgICAgCisgICAgICAgICAgICBpZiAoIShjaGlsZC5tX3R5cGUgJiBTcGVjT3RoZXIpICYmIG1f
Z3JhcGgubWFzcXVlcmFkZXNBc1VuZGVmaW5lZFdhdGNocG9pbnRJc1N0aWxsVmFsaWQobm9kZS0+
b3JpZ2luLnNlbWFudGljKSkgeworICAgICAgICAgICAgICAgIG1fZ3JhcGgud2F0Y2hwb2ludHMo
KS5hZGRMYXppbHkobV9ncmFwaC5nbG9iYWxPYmplY3RGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGlj
KS0+bWFzcXVlcmFkZXNBc1VuZGVmaW5lZFdhdGNocG9pbnQoKSk7CisgICAgICAgICAgICAgICAg
c2V0Q29uc3RhbnQobm9kZSwganNCb29sZWFuKGZhbHNlKSk7CisgICAgICAgICAgICAgICAgY29u
c3RhbnRXYXNTZXQgPSB0cnVlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
fQorCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBUeXBlT2ZJc09iamVjdDoKLSAg
ICAgICAgICAgIC8vIEZJWE1FOiBVc2UgdGhlIG1hc3F1ZXJhZGVzLWFzLXVuZGVmaW5lZCB3YXRj
aHBvaW50IHRoaW5neS4KLSAgICAgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNDQ0NTYKLSAgICAgICAgICAgIAogICAgICAgICAgICAgLy8gVGhlc2Ug
ZXhwcmVzc2lvbnMgYXJlIGNvbXBsaWNhdGVkIHRvIHBhcnNlLiBBIGhlbHBmdWwgd2F5IHRvIHBh
cnNlIHRoaXMgaXMgdGhhdAogICAgICAgICAgICAgLy8gIiEoVCAmIH5TKSIgbWVhbnMgIlQgaXMg
YSBzdWJzZXQgb2YgUyIuIENvbnZlcnNlbHksICIhKFQgJiBTKSIgbWVhbnMgIlQgaXMgYQogICAg
ICAgICAgICAgLy8gZGlzam9pbnQgc2V0IGZyb20gUyIuIFRoaW5ncyBsaWtlICJUIC0gUyIgbWVh
bnMgdGhhdCwgcHJvdmlkZWQgdGhhdCBTIGlzIGEKQEAgLTE4MDksOCArMTgxMCw2IEBAIGJvb2wg
QWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHkKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CiAKLSAgICAgICAgLy8gRklYTUU6IFdlIGNvdWxkIHVzZSB0aGUgbWFzcXVlcmFk
ZXMtYXMtdW5kZWZpbmVkIHdhdGNocG9pbnQgaGVyZS4KLSAgICAgICAgLy8gaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDQ1NgogICAgICAgICBpZiAoIShhYnN0cmFj
dENoaWxkLm1fdHlwZSAmIH4oU3BlY09iamVjdCAtIFNwZWNPYmplY3RPdGhlciAtIFNwZWNGdW5j
dGlvbikpKSB7CiAgICAgICAgICAgICBzZXRDb25zdGFudChub2RlLCAqbV9ncmFwaC5mcmVlemUo
bV92bS5zbWFsbFN0cmluZ3Mub2JqZWN0U3RyaW5nKCkpKTsKICAgICAgICAgICAgIGJyZWFrOwo=
</data>
<flag name="review"
          id="457603"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
      

    </bug>

</bugzilla>