<?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>220610</bug_id>
          
          <creation_ts>2021-01-13 16:50:43 -0800</creation_ts>
          <short_desc>REGRESSION(r271119) Check for nullness of preamble.caller</short_desc>
          <delta_ts>2021-01-28 12:37:51 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=220216</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Lauro Moura">lmoura</reporter>
          <assigned_to name="Lauro Moura">lmoura</assigned_to>
          <cc>alecflett</cc>
    
    <cc>ashvayka</cc>
    
    <cc>beidson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jsbell</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1719493</commentid>
    <comment_count>0</comment_count>
    <who name="Lauro Moura">lmoura</who>
    <bug_when>2021-01-13 16:50:43 -0800</bug_when>
    <thetext>REGRESSION(r271119) Check for nullness of preamble.caller</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1719500</commentid>
    <comment_count>1</comment_count>
      <attachid>417586</attachid>
    <who name="Lauro Moura">lmoura</who>
    <bug_when>2021-01-13 17:18:11 -0800</bug_when>
    <thetext>Created attachment 417586
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1719535</commentid>
    <comment_count>2</comment_count>
      <attachid>417586</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-01-13 22:49:00 -0800</bug_when>
    <thetext>Comment on attachment 417586
Patch

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

Thank you for tracking this down!

&gt; LayoutTests/ChangeLog:8
&gt; +        r271119 changed some kinds of functions to return null when trying to

What if partly revert r271119 by removing

    if (!function-&gt;jsExecutable()-&gt;hasCallerAndArgumentsProperties())
        return JSValue::encode(jsNull());

from `caller` getter to completely align us with the other runtimes?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1719783</commentid>
    <comment_count>3</comment_count>
    <who name="Lauro Moura">lmoura</who>
    <bug_when>2021-01-14 22:01:36 -0800</bug_when>
    <thetext>(In reply to Alexey Shvayka from comment #2)
&gt; 
&gt; What if partly revert r271119 by removing
&gt; 
&gt;     if (!function-&gt;jsExecutable()-&gt;hasCallerAndArgumentsProperties())
&gt;         return JSValue::encode(jsNull());
&gt; 
&gt; from `caller` getter to completely align us with the other runtimes?

I tried it and most tests work, except function-hidden-as-caller.js, caller-property.js, and tail-call-recognize.js, as they would need to be updated to reflect the previous behavior.

But wouldn&apos;t it go against the spec linked in the original revision[1]? Or, as there is still an open issue[2] about in TC39 github, should we try to mimic other runtimes while it&apos;s discussed there? (although no updates in the github issue since early last year)

[1] https://tc39.es/ecma262/#sec-forbidden-extensions
[2] https://github.com/tc39/ecma262/issues/562</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721043</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-01-20 16:51:12 -0800</bug_when>
    <thetext>&lt;rdar://problem/73427042&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1723450</commentid>
    <comment_count>5</comment_count>
      <attachid>417586</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-01-28 12:22:12 -0800</bug_when>
    <thetext>Comment on attachment 417586
Patch

I think this is OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1723453</commentid>
    <comment_count>6</comment_count>
      <attachid>417586</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-01-28 12:28:52 -0800</bug_when>
    <thetext>Comment on attachment 417586
Patch

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

&gt;&gt; LayoutTests/ChangeLog:8
&gt;&gt; +        r271119 changed some kinds of functions to return null when trying to
&gt; 
&gt; What if partly revert r271119 by removing
&gt; 
&gt;     if (!function-&gt;jsExecutable()-&gt;hasCallerAndArgumentsProperties())
&gt;         return JSValue::encode(jsNull());
&gt; 
&gt; from `caller` getter to completely align us with the other runtimes?

Removing that part breaks the intent of https://trac.webkit.org/changeset/271119/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1723454</commentid>
    <comment_count>7</comment_count>
      <attachid>417586</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-01-28 12:29:13 -0800</bug_when>
    <thetext>Comment on attachment 417586
Patch

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

&gt;&gt;&gt; LayoutTests/ChangeLog:8
&gt;&gt;&gt; +        r271119 changed some kinds of functions to return null when trying to
&gt;&gt; 
&gt;&gt; What if partly revert r271119 by removing
&gt;&gt; 
&gt;&gt;     if (!function-&gt;jsExecutable()-&gt;hasCallerAndArgumentsProperties())
&gt;&gt;         return JSValue::encode(jsNull());
&gt;&gt; 
&gt;&gt; from `caller` getter to completely align us with the other runtimes?
&gt; 
&gt; Removing that part breaks the intent of https://trac.webkit.org/changeset/271119/webkit

Ah, no https://trac.webkit.org/changeset/230662/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1723457</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-01-28 12:37:49 -0800</bug_when>
    <thetext>Committed r272030: &lt;https://trac.webkit.org/changeset/272030&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 417586.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417586</attachid>
            <date>2021-01-13 17:18:11 -0800</date>
            <delta_ts>2021-01-28 12:37:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220610-20210113221809.patch</filename>
            <type>text/plain</type>
            <size>2951</size>
            <attacher name="Lauro Moura">lmoura</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxNDczCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggODA5MDBmZDI5Nzg4MWJmMTIxZTg2
NzZlMmRiYWJkYzM5N2JlZjY0Mi4uYWE4YzAxOTFhMTI0MWZmMWEzYmRlYjcwODU3YzRiMmI3NTAw
NmM1NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIxLTAxLTEzICBMYXVybyBNb3VyYSAgPGxt
b3VyYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04ocjI3MTExOSkgQ2hlY2sgZm9y
IG51bGxuZXNzIG9mIHByZWFtYmxlLmNhbGxlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwNjEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgcjI3MTExOSBjaGFuZ2VkIHNvbWUga2luZHMgb2YgZnVuY3Rp
b25zIHRvIHJldHVybiBudWxsIHdoZW4gdHJ5aW5nIHRvCisgICAgICAgIGFjY2VzcyBpdHMgY2Fs
bGVyIHByb3BlcnR5LgorCisgICAgICAgIFRoaXMgbWFkZSB0aGUgcHJlYW1ibGUgaGVscGVyIGZy
b20gaW5kZXhlZGRiIHRlc3RzIHRvIGZhaWwgd2hlbiB1c2VkCisgICAgICAgIGluIHBsYWNlcyBs
aWtlIGFycm93IGZ1bmN0aW9ucywgbGlrZSBpbgorICAgICAgICBzdG9yYWdlL2luZGV4ZWRkYi9y
ZXN1bHQtcmVxdWVzdC1jeWNsZS5odG1sLgorCisgICAgICAgIFRoaXMgY29tbWl0IG1ha2VzIHBy
ZWFtYmxlIGRlZmF1bHQgdG8gYW4gZW1wdHkgbmFtZSBpZiB0aGUgY2FsbGVyIGlzCisgICAgICAg
IG51bGwuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL0luZGV4ZWREQi9yZXNvdXJjZXMvc2hhcmVk
LmpzOgorICAgICAgICAocHJlYW1ibGUpOgorICAgICAgICAqIGltcG9ydGVkL2JsaW5rL3N0b3Jh
Z2UvaW5kZXhlZGRiL3Jlc291cmNlcy9zaGFyZWQuanM6CisgICAgICAgIChwcmVhbWJsZSk6Cisg
ICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3NoYXJlZC5qczoKKyAgICAgICAg
KHByZWFtYmxlKToKKwogMjAyMS0wMS0xMyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNv
bT4KIAogICAgICAgICBbQ29jb2FdIFN1cHBvcnQga2V5IHJvdGF0aW9uIHdpdGggSExTLWJhY2tl
ZCBlbmNyeXB0ZWQgbWVkaWEgc3RyZWFtcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9JbmRleGVkREIvcmVzb3VyY2VzL3NoYXJlZC5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvSW5kZXhlZERCL3Jlc291cmNlcy9zaGFyZWQuanMKaW5kZXggZmM5YzFlODkzMDIyZWMyODI5
MGFlNDk4YjFlOTU0NzAyMjBkYmYxNS4uYzc1MmMyNmQ0OWJhZWRkZmRmZmMxNWFmODdkNjU3Y2E1
ZTFkODAyNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9JbmRleGVkREIvcmVz
b3VyY2VzL3NoYXJlZC5qcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL0luZGV4ZWREQi9y
ZXNvdXJjZXMvc2hhcmVkLmpzCkBAIC0xNDYsNyArMTQ2LDggQEAgZnVuY3Rpb24gcHJlYW1ibGUo
ZXZ0KQogICAgIGlmIChldnQpCiAgICAgICAgIGV2ZW50ID0gZXZ0OwogICAgIGRlYnVnKCIiKTsK
LSAgICBkZWJ1ZyhwcmVhbWJsZS5jYWxsZXIubmFtZSArICIoKToiKTsKKyAgICB2YXIgbmFtZSA9
IHByZWFtYmxlLmNhbGxlcj8ubmFtZSA/PyAnJzsKKyAgICBkZWJ1ZyhuYW1lICsgIigpOiIpOwog
fQogCiAvLyBGb3IgV29ya2VycwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvYmxp
bmsvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3NoYXJlZC5qcyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL2JsaW5rL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9zaGFyZWQuanMKaW5kZXgg
OTQwMTBiYjZiNTAwNWU4NDUwNDJmM2VjODE3MTMyMGFjNmU5OTUzYi4uYjIwYTM2Y2M5NDgyMWQ2
YmUzODA2NzUxNGY3NWI4YTQyNzlmNjkzZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvYmxpbmsvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3NoYXJlZC5qcworKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC9ibGluay9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvc2hhcmVk
LmpzCkBAIC0xMzAsNyArMTMwLDggQEAgZnVuY3Rpb24gcHJlYW1ibGUoZXZ0KQogICAgIGlmIChl
dnQpCiAgICAgICAgIGV2ZW50ID0gZXZ0OwogICAgIGRlYnVnKCIiKTsKLSAgICBkZWJ1ZyhwcmVh
bWJsZS5jYWxsZXIubmFtZSArICIoKToiKTsKKyAgICB2YXIgbmFtZSA9IHByZWFtYmxlLmNhbGxl
cj8ubmFtZSA/PyAnJzsKKyAgICBkZWJ1ZyhuYW1lICsgIigpOiIpOwogfQogCiAvLyBGb3IgV29y
a2VycwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2Vz
L3NoYXJlZC5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9zaGFy
ZWQuanMKaW5kZXggZmM5YzFlODkzMDIyZWMyODI5MGFlNDk4YjFlOTU0NzAyMjBkYmYxNS4uYzc1
MmMyNmQ0OWJhZWRkZmRmZmMxNWFmODdkNjU3Y2E1ZTFkODAyNyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3NoYXJlZC5qcworKysgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvc2hhcmVkLmpzCkBAIC0xNDYsNyArMTQ2
LDggQEAgZnVuY3Rpb24gcHJlYW1ibGUoZXZ0KQogICAgIGlmIChldnQpCiAgICAgICAgIGV2ZW50
ID0gZXZ0OwogICAgIGRlYnVnKCIiKTsKLSAgICBkZWJ1ZyhwcmVhbWJsZS5jYWxsZXIubmFtZSAr
ICIoKToiKTsKKyAgICB2YXIgbmFtZSA9IHByZWFtYmxlLmNhbGxlcj8ubmFtZSA/PyAnJzsKKyAg
ICBkZWJ1ZyhuYW1lICsgIigpOiIpOwogfQogCiAvLyBGb3IgV29ya2Vycwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>