<?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>212104</bug_id>
          
          <creation_ts>2020-05-19 13:24:33 -0700</creation_ts>
          <short_desc>Checkpoint inlined call return handler needs an exception check when dispatching</short_desc>
          <delta_ts>2020-05-22 11:01:26 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <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="Keith Miller">keith_miller</reporter>
          <assigned_to name="Keith Miller">keith_miller</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1654155</commentid>
    <comment_count>0</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-05-19 13:24:33 -0700</bug_when>
    <thetext>Checkpoint inlined call return handler needs an exception check when dispatching</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654156</commentid>
    <comment_count>1</comment_count>
      <attachid>399765</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-05-19 13:25:05 -0700</bug_when>
    <thetext>Created attachment 399765
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654160</commentid>
    <comment_count>2</comment_count>
      <attachid>399765</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-05-19 13:29:46 -0700</bug_when>
    <thetext>Comment on attachment 399765
Patch

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

&gt; Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:2093
&gt; +    if (scope.exception())
&gt; +        return encodeResult(returnToThrow(scope.vm()), nullptr);
&gt; +

Can we insert exception check just after the operation which throws an exception? Maybe, handleIteratorNextCheckpoint?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654161</commentid>
    <comment_count>3</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-05-19 13:31:06 -0700</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #2)
&gt; Comment on attachment 399765 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=399765&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:2093
&gt; &gt; +    if (scope.exception())
&gt; &gt; +        return encodeResult(returnToThrow(scope.vm()), nullptr);
&gt; &gt; +
&gt; 
&gt; Can we insert exception check just after the operation which throws an
&gt; exception? Maybe, handleIteratorNextCheckpoint?

No, because the LLInt code we&apos;re returning to dispatches to whatever pc we return. It&apos;s easier to handle it all here. This also means that other new bytecodes &quot;just work&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654162</commentid>
    <comment_count>4</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-05-19 13:31:15 -0700</bug_when>
    <thetext>rdar://problem/63268700</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654163</commentid>
    <comment_count>5</comment_count>
      <attachid>399765</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-05-19 13:34:35 -0700</bug_when>
    <thetext>Comment on attachment 399765
Patch

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

&gt;&gt;&gt; Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:2093
&gt;&gt;&gt; +
&gt;&gt; 
&gt;&gt; Can we insert exception check just after the operation which throws an exception? Maybe, handleIteratorNextCheckpoint?
&gt; 
&gt; No, because the LLInt code we&apos;re returning to dispatches to whatever pc we return. It&apos;s easier to handle it all here. This also means that other new bytecodes &quot;just work&quot;.

OK, make sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1655365</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-05-22 11:01:25 -0700</bug_when>
    <thetext>Committed r262064: &lt;https://trac.webkit.org/changeset/262064&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 399765.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399765</attachid>
            <date>2020-05-19 13:25:05 -0700</date>
            <delta_ts>2020-05-22 11:01:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212104-20200519132504.patch</filename>
            <type>text/plain</type>
            <size>5136</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxODMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
MTU1NzNjMTU5ODdiZTRiMTA1ZGU4NDEwNWVhN2E4ZWMwNzJhNWQ4Li43M2FjMDBjZGFhNWYwNzcx
OWFiOWZhMzEyYmUyMzEwYzViNzI3ZmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAyMC0wNS0xOSAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KKworICAgICAgICBDaGVja3BvaW50IGlubGluZWQgY2FsbCByZXR1cm4gaGFuZGxlciBu
ZWVkcyBhbiBleGNlcHRpb24gY2hlY2sgd2hlbiBkaXNwYXRjaGluZworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyMTA0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBsbGludC9MTEludFNsb3dQYXRocy5j
cHA6CisgICAgICAgIChKU0M6OkxMSW50OjpkaXNwYXRjaFRvTmV4dEluc3RydWN0aW9uKToKKyAg
ICAgICAgKEpTQzo6TExJbnQ6OnNsb3dfcGF0aF9jaGVja3BvaW50X29zcl9leGl0X2Zyb21faW5s
aW5lZF9jYWxsKToKKyAgICAgICAgKEpTQzo6TExJbnQ6OnNsb3dfcGF0aF9jaGVja3BvaW50X29z
cl9leGl0KToKKwogMjAyMC0wNS0xOCAgS2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxl
LmNvbT4KIAogICAgICAgICBPU1IgbG9vcCBlbnRyeSB0byBpdGVyYXRvcl9uZXh0IGdlbmVyaWMg
bmVlZHMgdG8gQ2hlY2tOb3RFbXB0eSBvbiBtX25leHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTExJbnRTbG93UGF0aHMuY3BwCmluZGV4IDc0MDJjMGQzNDYzMDBiZTQxZTA1MjA4
ODM5NmJjODY5OTNkODMyNzUuLjFkMDYxNWM3MDJmNjIxYTMxMzI2YWRkMTJiNjU1M2VmNDBmOWQ2
M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRo
cy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNw
cApAQCAtMjA4Niw5ICsyMDg2LDExIEBAIHN0YXRpYyB2b2lkIGhhbmRsZUl0ZXJhdG9yTmV4dENo
ZWNrcG9pbnQoVk0mIHZtLCBDYWxsRnJhbWUqIGNhbGxGcmFtZSwgSlNHbG9iYWxPCiAgICAgICAg
IHZhbHVlUmVnaXN0ZXIgPSBpdGVyYXRvclJlc3VsdE9iamVjdC5nZXQoZ2xvYmFsT2JqZWN0LCB2
bS5wcm9wZXJ0eU5hbWVzLT52YWx1ZSk7CiB9CiAKLWlubGluZSBTbG93UGF0aFJldHVyblR5cGUg
ZGlzcGF0Y2hUb05leHRJbnN0cnVjdGlvbihDb2RlQmxvY2sqIGNvZGVCbG9jaywgSW5zdHJ1Y3Rp
b25TdHJlYW06OlJlZiBwYykKK2lubGluZSBTbG93UGF0aFJldHVyblR5cGUgZGlzcGF0Y2hUb05l
eHRJbnN0cnVjdGlvbihUaHJvd1Njb3BlJiBzY29wZSwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIElu
c3RydWN0aW9uU3RyZWFtOjpSZWYgcGMpCiB7Ci0gICAgUkVMRUFTRV9BU1NFUlQoIWNvZGVCbG9j
ay0+dm0oKS5leGNlcHRpb25Gb3JJbnNwZWN0aW9uKCkpOworICAgIGlmIChzY29wZS5leGNlcHRp
b24oKSkKKyAgICAgICAgcmV0dXJuIGVuY29kZVJlc3VsdChyZXR1cm5Ub1Rocm93KHNjb3BlLnZt
KCkpLCBudWxscHRyKTsKKwogICAgIGlmIChPcHRpb25zOjpmb3JjZU9TUkV4aXRUb0xMSW50KCkg
fHwgY29kZUJsb2NrLT5qaXRUeXBlKCkgPT0gSklUVHlwZTo6SW50ZXJwcmV0ZXJUaHVuaykgewog
ICAgICAgICBjb25zdCBJbnN0cnVjdGlvbiogbmV4dFBDID0gcGMubmV4dCgpLnB0cigpOwogICAg
ICAgICBhdXRvIG5leHRCeXRlY29kZSA9IExMSW50OjpnZXRDb2RlUHRyPEpTRW50cnlQdHJUYWc+
KCpwYy5uZXh0KCkucHRyKCkpOwpAQCAtMjExMCw2ICsyMTEyLDcgQEAgZXh0ZXJuICJDIiBTbG93
UGF0aFJldHVyblR5cGUgc2xvd19wYXRoX2NoZWNrcG9pbnRfb3NyX2V4aXRfZnJvbV9pbmxpbmVk
X2NhbGwoQ2EKICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGNhbGxGcmFtZS0+Y29kZUJsb2Nr
KCk7CiAgICAgVk0mIHZtID0gY29kZUJsb2NrLT52bSgpOwogICAgIFNsb3dQYXRoRnJhbWVUcmFj
ZXIgdHJhY2VyKHZtLCBjYWxsRnJhbWUpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxDaGVja3BvaW50T1NSRXhpdFNpZGVT
dGF0ZT4gc2lkZVN0YXRlID0gdm0uZmluZENoZWNrcG9pbnRPU1JTaWRlU3RhdGUoY2FsbEZyYW1l
KTsKICAgICBCeXRlY29kZUluZGV4IGJ5dGVjb2RlSW5kZXggPSBzaWRlU3RhdGUtPmJ5dGVjb2Rl
SW5kZXg7CkBAIC0yMTUwLDcgKzIxNTMsNyBAQCBleHRlcm4gIkMiIFNsb3dQYXRoUmV0dXJuVHlw
ZSBzbG93X3BhdGhfY2hlY2twb2ludF9vc3JfZXhpdF9mcm9tX2lubGluZWRfY2FsbChDYQogICAg
ICAgICBicmVhazsKICAgICB9CiAKLSAgICByZXR1cm4gZGlzcGF0Y2hUb05leHRJbnN0cnVjdGlv
bihjb2RlQmxvY2ssIHBjKTsKKyAgICByZXR1cm4gZGlzcGF0Y2hUb05leHRJbnN0cnVjdGlvbihz
Y29wZSwgY29kZUJsb2NrLCBwYyk7CiB9CiAKIGV4dGVybiAiQyIgU2xvd1BhdGhSZXR1cm5UeXBl
IHNsb3dfcGF0aF9jaGVja3BvaW50X29zcl9leGl0KENhbGxGcmFtZSogY2FsbEZyYW1lLCBFbmNv
ZGVkSlNWYWx1ZSAvKiBuZWVkZWQgZm9yIGNDYWxsMiBpbiBDTG9vcCAqLykKQEAgLTIxOTQsMTAg
KzIxOTcsOCBAQCBleHRlcm4gIkMiIFNsb3dQYXRoUmV0dXJuVHlwZSBzbG93X3BhdGhfY2hlY2tw
b2ludF9vc3JfZXhpdChDYWxsRnJhbWUqIGNhbGxGcmFtZQogICAgICAgICBSRUxFQVNFX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICBicmVhazsKICAgICB9Ci0gICAgaWYgKFVOTElLRUxZ
KHNjb3BlLmV4Y2VwdGlvbigpKSkKLSAgICAgICAgcmV0dXJuIGVuY29kZVJlc3VsdChyZXR1cm5U
b1Rocm93KHZtKSwgbnVsbHB0cik7CiAKLSAgICByZXR1cm4gZGlzcGF0Y2hUb05leHRJbnN0cnVj
dGlvbihjb2RlQmxvY2ssIHBjKTsKKyAgICByZXR1cm4gZGlzcGF0Y2hUb05leHRJbnN0cnVjdGlv
bihzY29wZSwgY29kZUJsb2NrLCBwYyk7CiB9CiAKIGV4dGVybiAiQyIgU2xvd1BhdGhSZXR1cm5U
eXBlIGxsaW50X3Rocm93X3N0YWNrX292ZXJmbG93X2Vycm9yKFZNKiB2bSwgUHJvdG9DYWxsRnJh
bWUqIHByb3RvRnJhbWUpCmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMv
Q2hhbmdlTG9nCmluZGV4IGYyZmE0MTljMWJjYjkwODk3OGI0MGUwNWI5MTgwZTFjNGU0M2U3YzYu
LjQ0OTllNWM3MDViNTBkNDQyZjllZDA4MzVmNWIwOTFmMTVhNTkyMzUgMTAwNjQ0Ci0tLSBhL0pT
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMjAtMDUtMTkgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+CisKKyAg
ICAgICAgQ2hlY2twb2ludCBpbmxpbmVkIGNhbGwgcmV0dXJuIGhhbmRsZXIgbmVlZHMgYW4gZXhj
ZXB0aW9uIGNoZWNrIHdoZW4gZGlzcGF0Y2hpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjEwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogc3RyZXNzL2Zvci1vZi1kb25lLWdldHRlci1vc3ItZXhp
dHMtaW5saW5lZC10by12YWx1ZS1nZXR0ZXItd2l0aC1leGNlcHRpb24uanM6IEFkZGVkLgorICAg
ICAgICAobGV0LmQuZ2V0IGRvbmUpOgorICAgICAgICAobGV0LmQuZ2V0IHZhbHVlKToKKyAgICAg
ICAgKGZvbyk6CisgICAgICAgIChjYXRjaCk6CisKIDIwMjAtMDUtMTggIEtlaXRoIE1pbGxlciAg
PGtlaXRoX21pbGxlckBhcHBsZS5jb20+CiAKICAgICAgICAgT1NSIGxvb3AgZW50cnkgdG8gaXRl
cmF0b3JfbmV4dCBnZW5lcmljIG5lZWRzIHRvIENoZWNrTm90RW1wdHkgb24gbV9uZXh0CmRpZmYg
LS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9mb3Itb2YtZG9uZS1nZXR0ZXItb3NyLWV4aXRzLWlubGlu
ZWQtdG8tdmFsdWUtZ2V0dGVyLXdpdGgtZXhjZXB0aW9uLmpzIGIvSlNUZXN0cy9zdHJlc3MvZm9y
LW9mLWRvbmUtZ2V0dGVyLW9zci1leGl0cy1pbmxpbmVkLXRvLXZhbHVlLWdldHRlci13aXRoLWV4
Y2VwdGlvbi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNjZiYmIxYjViNWZiMjEzODkwZTgyNjQ3NjA2NDQ2MzZk
MThlYTEyCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0cy9zdHJlc3MvZm9yLW9mLWRvbmUtZ2V0
dGVyLW9zci1leGl0cy1pbmxpbmVkLXRvLXZhbHVlLWdldHRlci13aXRoLWV4Y2VwdGlvbi5qcwpA
QCAtMCwwICsxLDQxIEBACitsZXQgaSA9IDEwMDAwOworbGV0IGU7CitsZXQgZCA9IHsKKyAgICBn
ZXQgZG9uZSgpIHsKKyAgICAgICAgbGV0IHJlc3VsdCA9ICEoLS1pKTsKKyAgICAgICAgaWYgKGkg
JSA1MDAwID09IDApCisgICAgICAgICAgICBPU1JFeGl0KCk7CisgICAgICAgIHJldHVybiByZXN1
bHQ7CisgICAgfSwKKworICAgIGdldCB2YWx1ZSgpIHsKKyAgICAgICAgaWYgKGkgJSA1MDAwID09
IDApCisgICAgICAgICAgICB0aHJvdyBlID0gbmV3IEVycm9yKCk7CisgICAgICAgIHJldHVybiBp
OworICAgIH0KK307CisKK2xldCB4ID0geworICAgIG5leHQ6ICgpPT5kCit9CisKK2xldCBpdGVy
ID0ge307CitpdGVyW1N5bWJvbC5pdGVyYXRvcl0gPSAoKT0+eDsKKworZnVuY3Rpb24gZm9vKCkg
eworICAgIGZvciAobGV0IHggb2YgaXRlcikgeworICAgICAgICBpZiAoeCAhPT0gLS1vbGRJKQor
ICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCk7CisgICAgfQorfQorCitsZXQgb2xkSSA9IGk7
Cit0cnkgeworICAgIGZvbygpOworfSBjYXRjaCAoZXJyb3IpIHsKKyAgICBpZiAoZSAhPT0gZXJy
b3IpCisgICAgICAgIHRocm93IGVycm9yCit9CisKK2lmICghZSkKKyAgICB0aHJvdyBuZXcgRXJy
b3IoKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>