<?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>133182</bug_id>
          
          <creation_ts>2014-05-22 08:49:06 -0700</creation_ts>
          <short_desc>REGRESSION(r154797): Debugger crashes when stepping over an uncaught exception</short_desc>
          <delta_ts>2014-05-22 14:41:37 -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>528+ (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="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>ggaren</cc>
    
    <cc>joepeck</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1010991</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2014-05-22 08:49:06 -0700</bug_when>
    <thetext>Before r154797, we used to clear the VM exception before calling into the debugger.  After r154797, we don’t.  This patch will restore this clearing of the exception.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1010992</commentid>
    <comment_count>1</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2014-05-22 08:49:50 -0700</bug_when>
    <thetext>&lt;rdar://problem/16520770&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1011033</commentid>
    <comment_count>2</comment_count>
      <attachid>231902</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2014-05-22 12:11:23 -0700</bug_when>
    <thetext>Created attachment 231902
the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1011060</commentid>
    <comment_count>3</comment_count>
      <attachid>231902</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2014-05-22 14:30:13 -0700</bug_when>
    <thetext>Comment on attachment 231902
the patch.

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

&gt; Source/JavaScriptCore/interpreter/Interpreter.cpp:455
&gt; +        ASSERT(!callFrame-&gt;hadException());

Why will this assertion not fire?  Can&apos;t the debugger legitimately cause an unhanded exception?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1011061</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2014-05-22 14:32:32 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 231902 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=231902&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/interpreter/Interpreter.cpp:455
&gt; &gt; +        ASSERT(!callFrame-&gt;hadException());
&gt; 
&gt; Why will this assertion not fire?  Can&apos;t the debugger legitimately cause an unhanded exception?

The inspector is supposed to catch and handle any exceptions thrown in the debugging session.  I don’t think there’s currently a way to introduce an exception where there is none.  If this changes, we can change this assert in the future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1011062</commentid>
    <comment_count>5</comment_count>
      <attachid>231902</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2014-05-22 14:37:17 -0700</bug_when>
    <thetext>Comment on attachment 231902
the patch.

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

&gt;&gt;&gt; Source/JavaScriptCore/interpreter/Interpreter.cpp:455
&gt;&gt;&gt; +        ASSERT(!callFrame-&gt;hadException());
&gt;&gt; 
&gt;&gt; Why will this assertion not fire?  Can&apos;t the debugger legitimately cause an unhanded exception?
&gt; 
&gt; The inspector is supposed to catch and handle any exceptions thrown in the debugging session.  I don’t think there’s currently a way to introduce an exception where there is none.  If this changes, we can change this assert in the future.

If the Inspector executes anything on its own behalf (internal implementation details, breakpoint actions, probes, etc) we should be catching and clearing exception information. This assert sounds reasonable to me, and might bring to light a situation in the Inspector where we might not have been cleaning up after ourselves and probably should be.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1011065</commentid>
    <comment_count>6</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2014-05-22 14:41:37 -0700</bug_when>
    <thetext>Thanks for the review.  Landed in r169221: &lt;http://trac.webkit.org/r169221&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231902</attachid>
            <date>2014-05-22 12:11:23 -0700</date>
            <delta_ts>2014-05-22 14:37:17 -0700</delta_ts>
            <desc>the patch.</desc>
            <filename>bug-133182.patch</filename>
            <type>text/plain</type>
            <size>10525</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTY5MjA5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBA
CisyMDE0LTA1LTIyICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBS
RUdSRVNTSU9OKHIxNTQ3OTcpOiBEZWJ1Z2dlciBjcmFzaGVzIHdoZW4gc3RlcHBpbmcgb3ZlciBh
biB1bmNhdWdodCBleGNlcHRpb24uCisgICAgICAgIDxodHRwczovL3dlYmtpdC5vcmcvYi8xMzMx
ODI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQmVm
b3JlIHIxNTQ3OTcsIHdlIHVzZWQgdG8gY2xlYXIgdGhlIFZNIGV4Y2VwdGlvbiBiZWZvcmUgY2Fs
bGluZyBpbnRvIHRoZQorICAgICAgICBkZWJ1Z2dlci4gIEFmdGVyIHIxNTQ3OTcsIHdlIGRvbid0
LiAgVGhpcyBwYXRjaCB3aWxsIHJlc3RvcmUgdGhpcyBjbGVhcmluZworICAgICAgICBvZiB0aGUg
ZXhjZXB0aW9uIGJlZm9yZSBjYWxsaW5nIGludG8gdGhlIGRlYnVnZ2VyLgorCisgICAgICAgIEFs
c28gYWRkZWQgYXNzZXJ0aW9ucyBhZnRlciByZXR1cm5pbmcgZnJvbSBjYWxscyBpbnRvIHRoZSBk
ZWJ1Z2dlciB0bworICAgICAgICBlbnN1cmUgdGhhdCB0aGUgZGVidWdnZXIgZGlkIG5vdCBpbnRy
b2R1Y2UgYW55IGV4Y2VwdGlvbnMuCisKKyAgICAgICAgKiBpbnRlcnByZXRlci9JbnRlcnByZXRl
ci5jcHA6CisgICAgICAgIChKU0M6OnVud2luZENhbGxGcmFtZSk6CisgICAgICAgIChKU0M6Oklu
dGVycHJldGVyOjp1bndpbmQpOgorICAgICAgICAoSlNDOjpJbnRlcnByZXRlcjo6ZGVidWcpOgor
ICAgICAgICAtIEZpeGVkIHRoZSBhc3NlcnRpb24gaGVyZS4gIEludGVycHJldGVyOjpkZWJ1Zygp
IHNob3VsZCBuZXZlciBiZSBjYWxsZWQKKyAgICAgICAgICB3aXRoIGEgcGVuZGluZyBleGNlcHRp
b24uICBEZWJ1Z2dlciBjYWxsYmFja3MgZm9yIGV4Y2VwdGlvbnMgc2hvdWxkIGJlCisgICAgICAg
ICAgaGFuZGxlZCBieSBJbnRlcnByZXRlcjo6dW53aW5kKCkgYW5kIEludGVycHJldGVyOjp1bndp
bmRDYWxsRnJhbWUoKS4KKwogMjAxNC0wNS0yMSAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUu
Y29tPgogCiAgICAgICAgIFN0b3JlIGJhcnJpZXIgZWxpc2lvbiBzaG91bGQgcnVuIGFmdGVyIERD
RSBpbiBib3RoIHRoZSBERkcgcGF0aCBhbmQgdGhlIEZUTCBwYXRoCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAJKHJldmlzaW9u
IDE2OTEzOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRl
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0NywxMCArNDQ3LDEyIEBAIHN0YXRpYyBib29sIHVu
d2luZENhbGxGcmFtZShTdGFja1Zpc2l0b3IKICAgICBKU1Njb3BlKiBzY29wZSA9IGNhbGxGcmFt
ZS0+c2NvcGUoKTsKIAogICAgIGlmIChEZWJ1Z2dlciogZGVidWdnZXIgPSBjYWxsRnJhbWUtPnZt
RW50cnlHbG9iYWxPYmplY3QoKS0+ZGVidWdnZXIoKSkgeworICAgICAgICBDbGVhckV4Y2VwdGlv
blNjb3BlIHNjb3BlKCZjYWxsRnJhbWUtPnZtKCkpOwogICAgICAgICBpZiAoY2FsbEZyYW1lLT5j
YWxsZWUoKSkKICAgICAgICAgICAgIGRlYnVnZ2VyLT5yZXR1cm5FdmVudChjYWxsRnJhbWUpOwog
ICAgICAgICBlbHNlCiAgICAgICAgICAgICBkZWJ1Z2dlci0+ZGlkRXhlY3V0ZVByb2dyYW0oY2Fs
bEZyYW1lKTsKKyAgICAgICAgQVNTRVJUKCFjYWxsRnJhbWUtPmhhZEV4Y2VwdGlvbigpKTsKICAg
ICB9CiAKICAgICBKU1ZhbHVlIGFjdGl2YXRpb247CkBAIC03MDAsOSArNzAyLDggQEAgTkVWRVJf
SU5MSU5FIEhhbmRsZXJJbmZvKiBJbnRlcnByZXRlcjo6dQogICAgIGlmIChleGNlcHRpb25WYWx1
ZS5pc0VtcHR5KCkgfHwgKGV4Y2VwdGlvblZhbHVlLmlzQ2VsbCgpICYmICFleGNlcHRpb25WYWx1
ZS5hc0NlbGwoKSkpCiAgICAgICAgIGV4Y2VwdGlvblZhbHVlID0ganNOdWxsKCk7CiAKLSAgICBp
ZiAoZXhjZXB0aW9uVmFsdWUuaXNPYmplY3QoKSkgeworICAgIGlmIChleGNlcHRpb25WYWx1ZS5p
c09iamVjdCgpKQogICAgICAgICBpc1Rlcm1pbmF0aW9uID0gaXNUZXJtaW5hdGVkRXhlY3V0aW9u
RXhjZXB0aW9uKGFzT2JqZWN0KGV4Y2VwdGlvblZhbHVlKSk7Ci0gICAgfQogCiAgICAgQVNTRVJU
KGNhbGxGcmFtZS0+dm0oKS5leGNlcHRpb25TdGFjaygpLnNpemUoKSk7CiAKQEAgLTcyNiw2ICs3
MjcsNyBAQCBORVZFUl9JTkxJTkUgSGFuZGxlckluZm8qIEludGVycHJldGVyOjp1CiAgICAgICAg
IH0KIAogICAgICAgICBkZWJ1Z2dlci0+ZXhjZXB0aW9uKGNhbGxGcmFtZSwgZXhjZXB0aW9uVmFs
dWUsIGhhc0hhbmRsZXIpOworICAgICAgICBBU1NFUlQoIWNhbGxGcmFtZS0+aGFkRXhjZXB0aW9u
KCkpOwogICAgIH0KIAogICAgIC8vIENhbGN1bGF0ZSBhbiBleGNlcHRpb24gaGFuZGxlciB2UEMs
IHVud2luZGluZyBjYWxsIGZyYW1lcyBhcyBuZWNlc3NhcnkuCkBAIC0xMjI1LDI4ICsxMjI3LDMx
IEBAIE5FVkVSX0lOTElORSB2b2lkIEludGVycHJldGVyOjpkZWJ1ZyhDYWwKICAgICBEZWJ1Z2dl
ciogZGVidWdnZXIgPSBjYWxsRnJhbWUtPnZtRW50cnlHbG9iYWxPYmplY3QoKS0+ZGVidWdnZXIo
KTsKICAgICBpZiAoIWRlYnVnZ2VyKQogICAgICAgICByZXR1cm47Ci0gICAgQVNTRVJUKGNhbGxG
cmFtZS0+Y29kZUJsb2NrKCktPmhhc0RlYnVnZ2VyUmVxdWVzdHMoKSB8fCBjYWxsRnJhbWUtPmhh
ZEV4Y2VwdGlvbigpKTsKKworICAgIEFTU0VSVChjYWxsRnJhbWUtPmNvZGVCbG9jaygpLT5oYXNE
ZWJ1Z2dlclJlcXVlc3RzKCkpOworICAgIEFTU0VSVCghY2FsbEZyYW1lLT5oYWRFeGNlcHRpb24o
KSk7CiAKICAgICBzd2l0Y2ggKGRlYnVnSG9va0lEKSB7CiAgICAgICAgIGNhc2UgRGlkRW50ZXJD
YWxsRnJhbWU6CiAgICAgICAgICAgICBkZWJ1Z2dlci0+Y2FsbEV2ZW50KGNhbGxGcmFtZSk7Ci0g
ICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBXaWxs
TGVhdmVDYWxsRnJhbWU6CiAgICAgICAgICAgICBkZWJ1Z2dlci0+cmV0dXJuRXZlbnQoY2FsbEZy
YW1lKTsKLSAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBj
YXNlIFdpbGxFeGVjdXRlU3RhdGVtZW50OgogICAgICAgICAgICAgZGVidWdnZXItPmF0U3RhdGVt
ZW50KGNhbGxGcmFtZSk7Ci0gICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgY2FzZSBXaWxsRXhlY3V0ZVByb2dyYW06CiAgICAgICAgICAgICBkZWJ1Z2dlci0+
d2lsbEV4ZWN1dGVQcm9ncmFtKGNhbGxGcmFtZSk7Ci0gICAgICAgICAgICByZXR1cm47CisgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBEaWRFeGVjdXRlUHJvZ3JhbToKICAgICAgICAg
ICAgIGRlYnVnZ2VyLT5kaWRFeGVjdXRlUHJvZ3JhbShjYWxsRnJhbWUpOwotICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgRGlkUmVhY2hCcmVha3Bv
aW50OgogICAgICAgICAgICAgZGVidWdnZXItPmRpZFJlYWNoQnJlYWtwb2ludChjYWxsRnJhbWUp
OwotICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgYnJlYWs7CiAgICAgfQorICAgIEFT
U0VSVCghY2FsbEZyYW1lLT5oYWRFeGNlcHRpb24oKSk7CiB9ICAgIAogCiB2b2lkIEludGVycHJl
dGVyOjplbmFibGVTYW1wbGVyKCkKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2OTIwOSkKKysrIExheW91
dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDE0LTA1
LTIyICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9O
KHIxNTQ3OTcpOiBEZWJ1Z2dlciBjcmFzaGVzIHdoZW4gc3RlcHBpbmcgb3ZlciBhbiB1bmNhdWdo
dCBleGNlcHRpb24uCisgICAgICAgIDxodHRwczovL3dlYmtpdC5vcmcvYi8xMzMxODI+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3It
cHJvdG9jb2wvZGVidWdnZXIvcmVncmVzcy0xMzMxODItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvcmVncmVzcy0xMzMxODIuaHRtbDog
QWRkZWQuCisKIDIwMTQtMDUtMjIgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBha3Vs
YUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIEVGTCBnYXJkZW5pbmcKSW5kZXg6
IExheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9yZWdyZXNzLTEzMzE4Mi1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29s
L2RlYnVnZ2VyL3JlZ3Jlc3MtMTMzMTgyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExh
eW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9yZWdyZXNzLTEzMzE4Mi1leHBl
Y3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0OCBAQAorQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDQ4OiBbMV0gVGVzdGluZyBzdGF0ZW1lbnQgJyh7fSkuYS5iLmMuZDsnCitDT05TT0xF
IE1FU1NBR0U6IGxpbmUgNDk6IFsxXSBQYXVzZWQgYW5kIGFib3V0IHRvIHN0ZXAKK0NPTlNPTEUg
TUVTU0FHRTogbGluZSA2MTogWzFdIFJlc3VtZWQKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA1Mzog
WzFdIFBhdXNlZCBhZnRlciBzdGVwcGluZworQ09OU09MRSBNRVNTQUdFOiBsaW5lIDYxOiBbMV0g
UmVzdW1lZAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFR5cGVFcnJvcjogdW5kZWZpbmVkIGlz
IG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJyh7fSkuYS5iJykKK0NPTlNPTEUgTUVTU0FHRTog
bGluZSA0ODogWzJdIFRlc3Rpbmcgc3RhdGVtZW50ICdleGNlcHRpb25CYXNpYygpOycKK0NPTlNP
TEUgTUVTU0FHRTogbGluZSA0OTogWzJdIFBhdXNlZCBhbmQgYWJvdXQgdG8gc3RlcAorQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDYxOiBbMl0gUmVzdW1lZAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDUz
OiBbMl0gUGF1c2VkIGFmdGVyIHN0ZXBwaW5nCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNjE6IFsy
XSBSZXN1bWVkCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMzogVHlwZUVycm9yOiB1bmRlZmluZWQg
aXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnKHt9KS5hLmInKQorQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDQ4OiBbM10gVGVzdGluZyBzdGF0ZW1lbnQgJ2V4Y2VwdGlvbkRPTSgpOycKK0NPTlNP
TEUgTUVTU0FHRTogbGluZSA0OTogWzNdIFBhdXNlZCBhbmQgYWJvdXQgdG8gc3RlcAorQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDYxOiBbM10gUmVzdW1lZAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDUz
OiBbM10gUGF1c2VkIGFmdGVyIHN0ZXBwaW5nCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNjE6IFsz
XSBSZXN1bWVkCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgODogTm90Rm91bmRFcnJvcjogRE9NIEV4
Y2VwdGlvbiA4OiBBbiBhdHRlbXB0IHdhcyBtYWRlIHRvIHJlZmVyZW5jZSBhIE5vZGUgaW4gYSBj
b250ZXh0IHdoZXJlIGl0IGRvZXMgbm90IGV4aXN0LgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDQ4
OiBbNF0gVGVzdGluZyBzdGF0ZW1lbnQgJ2V4Y2VwdGlvbkluSG9zdEZ1bmN0aW9uKCk7JworQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDQ5OiBbNF0gUGF1c2VkIGFuZCBhYm91dCB0byBzdGVwCitDT05T
T0xFIE1FU1NBR0U6IGxpbmUgNjE6IFs0XSBSZXN1bWVkCitDT05TT0xFIE1FU1NBR0U6IGxpbmUg
NTM6IFs0XSBQYXVzZWQgYWZ0ZXIgc3RlcHBpbmcKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA2MTog
WzRdIFJlc3VtZWQKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAyNDogZXhjZXB0aW9uIGluIGhvc3Qg
ZnVuY3Rpb24KK0NPTlNPTEUgTUVTU0FHRTogbGluZSA0ODogWzVdIFRlc3Rpbmcgc3RhdGVtZW50
ICd0aHJvd1N0cmluZygpOycKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA0OTogWzVdIFBhdXNlZCBh
bmQgYWJvdXQgdG8gc3RlcAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDYxOiBbNV0gUmVzdW1lZAor
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDUzOiBbNV0gUGF1c2VkIGFmdGVyIHN0ZXBwaW5nCitDT05T
T0xFIE1FU1NBR0U6IGxpbmUgNjE6IFs1XSBSZXN1bWVkCitDT05TT0xFIE1FU1NBR0U6IGxpbmUg
MTM6IGV4Y2VwdGlvbiBzdHJpbmcKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA0ODogWzZdIFRlc3Rp
bmcgc3RhdGVtZW50ICd0aHJvd1BhcmFtKHt4OjF9KTsnCitDT05TT0xFIE1FU1NBR0U6IGxpbmUg
NDk6IFs2XSBQYXVzZWQgYW5kIGFib3V0IHRvIHN0ZXAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA2
MTogWzZdIFJlc3VtZWQKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA1MzogWzZdIFBhdXNlZCBhZnRl
ciBzdGVwcGluZworQ09OU09MRSBNRVNTQUdFOiBsaW5lIDYxOiBbNl0gUmVzdW1lZAorQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDE4OiBbb2JqZWN0IE9iamVjdF0KK0NPTlNPTEUgTUVTU0FHRTogbGlu
ZSA0ODogWzddIFRlc3Rpbmcgc3RhdGVtZW50ICd0aHJvd1BhcmFtKG5ldyBFcnJvcignZXJyb3Ig
bWVzc2FnZScpKTsnCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNDk6IFs3XSBQYXVzZWQgYW5kIGFi
b3V0IHRvIHN0ZXAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA2MTogWzddIFJlc3VtZWQKK0NPTlNP
TEUgTUVTU0FHRTogbGluZSA1MzogWzddIFBhdXNlZCBhZnRlciBzdGVwcGluZworQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDYxOiBbN10gUmVzdW1lZAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE4OiBF
cnJvcjogZXJyb3IgbWVzc2FnZQorUmVncmVzc2lvbiB0ZXN0IGZvciBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzMTgyCisKK1N0ZXBwaW5nIGFmdGVyIGJyZWFraW5n
IG9uIHVuY2F1Z2h0IGV4Y2VwdGlvbnMgc2hvdWxkIG5vdCBjcmFzaAorCitQQVNTIC0gcGF1c2Vk
IGZvciBlYWNoIHVuY2F1Z2h0IGV4Y2VwdGlvbgorCkluZGV4OiBMYXlvdXRUZXN0cy9pbnNwZWN0
b3ItcHJvdG9jb2wvZGVidWdnZXIvcmVncmVzcy0xMzMxODIuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvcmVncmVzcy0xMzMxODIuaHRt
bAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dl
ci9yZWdyZXNzLTEzMzE4Mi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzggQEAKKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvcmVzb3VyY2VzL3Byb3RvY29sLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
InJlc291cmNlcy9leGNlcHRpb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRl
c3QoKQoreworICAgIHZhciBleHBlY3RQYXVzZSA9IGZhbHNlOworICAgIHZhciBpc1N0ZXBwaW5n
ID0gZmFsc2U7CisKKyAgICB2YXIgdGVzdEluZGV4ID0gMDsKKyAgICB2YXIgc3RhdGVtZW50c1dp
dGhVbmNhdWdodEV4Y2VwdGlvbnMgPSBbCisgICAgICAgICIoe30pLmEuYi5jLmQ7IiwKKyAgICAg
ICAgImV4Y2VwdGlvbkJhc2ljKCk7IiwKKyAgICAgICAgImV4Y2VwdGlvbkRPTSgpOyIsCisgICAg
ICAgICJleGNlcHRpb25Jbkhvc3RGdW5jdGlvbigpOyIsCisgICAgICAgICJ0aHJvd1N0cmluZygp
OyIsCisgICAgICAgICJ0aHJvd1BhcmFtKHt4OjF9KTsiLAorICAgICAgICAidGhyb3dQYXJhbShu
ZXcgRXJyb3IoJ2Vycm9yIG1lc3NhZ2UnKSk7IgorICAgIF07CisKKyAgICBmdW5jdGlvbiB0cmln
Z2VyTmV4dFVuY2F1Z2h0RXhjZXB0aW9uKCkKKyAgICB7CisKKyAgICAgICAgLy8gRXZhbHVhdGUg
c3RhdGVtZW50IGFuZCBleHBlY3QgdG8gcGF1c2UuCisgICAgICAgIGlmICh0ZXN0SW5kZXggPCBz
dGF0ZW1lbnRzV2l0aFVuY2F1Z2h0RXhjZXB0aW9ucy5sZW5ndGgpIHsKKyAgICAgICAgICAgIHZh
ciBzdGF0ZW1lbnQgPSBzdGF0ZW1lbnRzV2l0aFVuY2F1Z2h0RXhjZXB0aW9uc1t0ZXN0SW5kZXgr
K107CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1
YXRlIiwge2V4cHJlc3Npb246ICJzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyAiICsgc3RhdGVtZW50
ICsgIiB9LCAwKTsifSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAg
ICAvLyBEb25lIGV2YWx1YXRpbmcgc3RhdGVtZW50cyB0byBwYXVzZS4gRXZhbHVhdGUgc29tZSBt
b3JlIHdlIGRvIG5vdCBleHBlY3QgdG8gcGF1c2UuCisgICAgICAgIEluc3BlY3RvclRlc3QubG9n
KCJQQVNTIC0gcGF1c2VkIGZvciBlYWNoIHVuY2F1Z2h0IGV4Y2VwdGlvbiIpOworICAgICAgICBJ
bnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgIH0KKworCisgICAgSW5zcGVjdG9yVGVz
dC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuZW5hYmxlIiwge30pOworICAgIEluc3BlY3RvclRlc3Qu
c2VuZENvbW1hbmQoIkRlYnVnZ2VyLnNldFBhdXNlT25FeGNlcHRpb25zIiwge3N0YXRlOiAidW5j
YXVnaHQifSwgZnVuY3Rpb24ocmVzcG9uc2VPYmplY3QpIHsKKyAgICAgICAgSW5zcGVjdG9yVGVz
dC5jaGVja0ZvckVycm9yKHJlc3BvbnNlT2JqZWN0KTsKKyAgICAgICAgZXhwZWN0UGF1c2UgPSB0
cnVlOworICAgICAgICB0cmlnZ2VyTmV4dFVuY2F1Z2h0RXhjZXB0aW9uKCk7CisgICAgfSk7CisK
KyAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiRGVidWdnZXIucGF1c2VkIl0gPSBmdW5j
dGlvbihtZXNzYWdlT2JqZWN0KQorICAgIHsKKyAgICAgICAgaWYgKCFleHBlY3RQYXVzZSkgewor
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkZBSUwgLSBkZWJ1Z2dlciBwYXVzZWQgd2hl
biB3ZSBkaWQgbm90IGV4cGVjdCB0byIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21w
bGV0ZVRlc3QoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlm
ICghaXNTdGVwcGluZykgeworICAgICAgICAgICAgY29uc29sZS5sb2coIlsiICsgdGVzdEluZGV4
ICsgIl0gVGVzdGluZyBzdGF0ZW1lbnQgJyIgKyBzdGF0ZW1lbnRzV2l0aFVuY2F1Z2h0RXhjZXB0
aW9uc1t0ZXN0SW5kZXggLSAxXSArICInIik7CisgICAgICAgICAgICBjb25zb2xlLmxvZygiWyIg
KyB0ZXN0SW5kZXggKyAiXSBQYXVzZWQgYW5kIGFib3V0IHRvIHN0ZXAiKTsKKyAgICAgICAgICAg
IGlzU3RlcHBpbmcgPSB0cnVlOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFu
ZCgiRGVidWdnZXIuc3RlcE92ZXIiLCB7fSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICBjb25zb2xlLmxvZygiWyIgKyB0ZXN0SW5kZXggKyAiXSBQYXVzZWQgYWZ0ZXIgc3RlcHBpbmci
KTsKKyAgICAgICAgICAgIGlzU3RlcHBpbmcgPSBmYWxzZTsKKyAgICAgICAgICAgIEluc3BlY3Rv
clRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLnJlc3VtZSIsIHt9KTsKKyAgICAgICAgfQorICAg
IH0KKworICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJEZWJ1Z2dlci5yZXN1bWVkIl0g
PSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQorICAgIHsKKyAgICAgICAgY29uc29sZS5sb2coIlsi
ICsgdGVzdEluZGV4ICsgIl0gUmVzdW1lZCIpOworICAgICAgICBpZiAoIWlzU3RlcHBpbmcpCisg
ICAgICAgICAgICB0cmlnZ2VyTmV4dFVuY2F1Z2h0RXhjZXB0aW9uKCk7CisgICAgfQorfQorPC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cD5SZWdyZXNzaW9u
IHRlc3QgZm9yIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzMxODI8
L3A+Cis8cD5TdGVwcGluZyBhZnRlciBicmVha2luZyBvbiB1bmNhdWdodCBleGNlcHRpb25zIHNo
b3VsZCBub3QgY3Jhc2g8L3A+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="review"
          id="256365"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>