<?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>84804</bug_id>
          
          <creation_ts>2012-04-24 17:02:16 -0700</creation_ts>
          <short_desc>Closure in try {} with catch captures all locals from the enclosing function</short_desc>
          <delta_ts>2012-04-25 09:12:04 -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>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Saboff">msaboff</reporter>
          <assigned_to name="Michael Saboff">msaboff</assigned_to>
          <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>609271</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2012-04-24 17:02:16 -0700</bug_when>
    <thetext>Consider the function:

function addActivationWithTry()
{
    try {
    var someArgs = &apos;firstArg|secondArg|third&apos;,
        args = someArgs.split(&apos;|&apos;),
        varNotUsedInClosure = &apos;This is some string&apos;,
        anotherNonClosureVar = [ &apos;A&apos;, &apos;B&apos;, &apos;C&apos;, &apos;D&apos; ],
        lastNonClosureVar = {
            prop1: 22,
            prop2: &apos;Yo&apos;,
            prop3: someArgs + &apos;|fourth&apos;
        }

    pushFunction(function() {
         makeCall(args[0], args[1], args[2]);
     });
    } catch (err) {
    }
}

When the activation for the closure used as an argument for &quot;pushFunction()&quot; is created and torn off, all of the locals from &quot;addActivationWithTry()&quot; will be captured even though only the array &quot;args&quot; needs to be captured.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609307</commentid>
    <comment_count>1</comment_count>
      <attachid>138701</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2012-04-24 17:34:59 -0700</bug_when>
    <thetext>Created attachment 138701
Proposed Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609308</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-24 17:36:17 -0700</bug_when>
    <thetext>Attachment 138701 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source...&quot; exit_code: 1
Source/JavaScriptCore/runtime/JSActivation.h:95:  Please declare integral type bitfields with either signed or unsigned.  [runtime/bitfields] [5]
Total errors found: 1 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609821</commentid>
    <comment_count>3</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2012-04-25 09:12:04 -0700</bug_when>
    <thetext>Committed r115217: &lt;http://trac.webkit.org/changeset/115217&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138701</attachid>
            <date>2012-04-24 17:34:59 -0700</date>
            <delta_ts>2012-04-24 17:38:47 -0700</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>84804.patch</filename>
            <type>text/plain</type>
            <size>5001</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTE1MTQ1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBA
CisyMDEyLTA0LTI0ICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgorCisgICAg
ICAgIENsb3N1cmUgaW4gdHJ5IHt9IHdpdGggY2F0Y2ggY2FwdHVyZXMgYWxsIGxvY2FscyBmcm9t
IHRoZSBlbmNsb3NpbmcgZnVuY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTg0ODA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQ2hhbmdlZCB0aGUgY2FwdHVyaW5nIG9mIGxvY2FsIHZhcmlhYmxlcyBm
cm9tIGNhcHR1cmluZyB3aGVuIGV2YWwgaXMgdXNlZCwKKyAgICAgICAgd2l0aGluIGEgIndpdGgi
IG9yIHdpdGhpbiBhICJjYXRjaCIgdG8gYmUganVzdCB3aGVuIGFuIGV2YWwgaXMgdXNlZC4KKyAg
ICAgICAgUmVuYW1lZCB0aGUgZnVuY3Rpb24gcmV0dXJuaW5nIHRoYXQgd2Ugc2hvdWxkIGNhcHR1
cmUgZnJvbQorICAgICAgICBnZXRDYXB0dXJlZFZhcmlhYmxlcygpIHRvIHVzZXNFdmFsKCksIHNp
bmNlIHRoYXQgd2hhdCBpdCBub2V3IHJldHVybnMuCisgICAgICAgIE5lZWRlZCB0byBmaXggdGhl
ICJ3aXRoIiBjb2RlIHRvIG9ubHkgcmFuZ2UgY2hlY2sgd2hlbiB0aGUgYWN0aXZhdGlvbgorICAg
ICAgICBoYXMgYWN0dWFsbHkgYmVlbiB0b3JuIG9mZi4gIEFkZGVkIG1faXNUb3JuT2ZmIHRvIEpT
QWN0aXZhdGlvbiB0bworICAgICAgICB0cmFjayB0aGlzLgorCisgICAgICAgICogcGFyc2VyL1Bh
cnNlci5oOgorICAgICAgICAoSlNDOjpTY29wZTo6dXNlc0V2YWwpOgorICAgICAgICAoSlNDOjpT
Y29wZTo6Z2V0Q2FwdHVyZWRWYXJpYWJsZXMpOgorICAgICAgICAqIHJ1bnRpbWUvSlNBY3RpdmF0
aW9uLmNwcDoKKyAgICAgICAgKEpTQzo6SlNBY3RpdmF0aW9uOjpKU0FjdGl2YXRpb24pOgorICAg
ICAgICAoSlNDOjpKU0FjdGl2YXRpb246OnN5bWJvbFRhYmxlR2V0KToKKyAgICAgICAgKEpTQzo6
SlNBY3RpdmF0aW9uOjpzeW1ib2xUYWJsZVB1dCk6CisgICAgICAgICogcnVudGltZS9KU0FjdGl2
YXRpb24uaDoKKyAgICAgICAgKEpTQWN0aXZhdGlvbik6CisgICAgICAgIChKU0M6OkpTQWN0aXZh
dGlvbjo6dGVhck9mZik6CisKIDIwMTItMDQtMjQgIFRob3VyYXlhIEFORE9MU0kgIDx0aG91cmF5
YS5hbmRvbHNpQHN0LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBPbGl2ZXIgSHVudC4KSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuaAkocmV2aXNpb24gMTE1MTI4KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuaAkod29ya2luZyBjb3B5KQpA
QCAtMTYyLDcgKzE2Miw3IEBAIHN0cnVjdCBTY29wZSB7CiAgICAgQUxXQVlTX0lOTElORSBTY29w
ZUZsYWdzIHVzZXNGbGFncygpIGNvbnN0IHsgcmV0dXJuIG1fc2NvcGVGbGFncyAmIEFsbFNjb3Bl
VXNlc0ZsYWdzOyB9CiAgICAgQUxXQVlTX0lOTElORSB2b2lkIHNldEZsYWdzKFNjb3BlRmxhZ3Mg
c2NvcGVGbGFncykgeyBtX3Njb3BlRmxhZ3MgfD0gc2NvcGVGbGFnczsgfQogCi0gICAgQUxXQVlT
X0lOTElORSBib29sIG5lZWRzRnVsbEFjdGl2YXRpb24oKSBjb25zdCB7IHJldHVybiBtX3Njb3Bl
RmxhZ3MgJiAoVXNlc0V2YWxGbGFnIHwgVXNlc1dpdGhGbGFnIHwgVXNlc0NhdGNoRmxhZyk7IH0K
KyAgICBBTFdBWVNfSU5MSU5FIGJvb2wgdXNlc0V2YWwoKSBjb25zdCB7IHJldHVybiBtX3Njb3Bl
RmxhZ3MgJiBVc2VzRXZhbEZsYWc7IH0KICAgICBBTFdBWVNfSU5MSU5FIGJvb2wgc3RyaWN0TW9k
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2NvcGVGbGFncyAmIFN0cmljdE1vZGVGbGFnOyB9CiAgICAg
QUxXQVlTX0lOTElORSBib29sIHNoYWRvd3NBcmd1bWVudHMoKSBjb25zdCB7IHJldHVybiBtX3Nj
b3BlRmxhZ3MgJiBTaGFkb3dzQXJndW1lbnRzRmxhZzsgfQogICAgIEFMV0FZU19JTkxJTkUgYm9v
bCBpc0Z1bmN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zY29wZUZsYWdzICYgRnVuY3Rpb25Nb2Rl
RmxhZzsgfQpAQCAtMjY5LDcgKzI2OSw3IEBAIHN0cnVjdCBTY29wZSB7CiAKICAgICB2b2lkIGdl
dENhcHR1cmVkVmFyaWFibGVzKElkZW50aWZpZXJTZXQmIGNhcHR1cmVkVmFyaWFibGVzKQogICAg
IHsKLSAgICAgICAgaWYgKG5lZWRzRnVsbEFjdGl2YXRpb24oKSkgeworICAgICAgICBpZiAodXNl
c0V2YWwoKSkgewogICAgICAgICAgICAgY2FwdHVyZWRWYXJpYWJsZXMuc3dhcChtX2RlY2xhcmVk
VmFyaWFibGVzKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uY3BwCShyZXZpc2lvbiAx
MTUxMjgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC00NSw2ICs0NSw3IEBAIEpTQWN0aXZhdGlvbjo6SlNBY3RpdmF0
aW9uKENhbGxGcmFtZSogY2EKICAgICA6IEJhc2UoY2FsbEZyYW1lLT5nbG9iYWxEYXRhKCksIGNh
bGxGcmFtZS0+Z2xvYmFsRGF0YSgpLmFjdGl2YXRpb25TdHJ1Y3R1cmUuZ2V0KCksIGZ1bmN0aW9u
RXhlY3V0YWJsZS0+c3ltYm9sVGFibGUoKSwgY2FsbEZyYW1lLT5yZWdpc3RlcnMoKSkKICAgICAs
IG1fbnVtQ2FwdHVyZWRBcmdzKG1heChjYWxsRnJhbWUtPmFyZ3VtZW50Q291bnQoKSwgZnVuY3Rp
b25FeGVjdXRhYmxlLT5wYXJhbWV0ZXJDb3VudCgpKSkKICAgICAsIG1fbnVtQ2FwdHVyZWRWYXJz
KGZ1bmN0aW9uRXhlY3V0YWJsZS0+Y2FwdHVyZWRWYXJpYWJsZUNvdW50KCkpCisgICAgLCBtX2lz
VG9ybk9mZihmYWxzZSkKICAgICAsIG1fcmVxdWlyZXNEeW5hbWljQ2hlY2tzKGZ1bmN0aW9uRXhl
Y3V0YWJsZS0+dXNlc0V2YWwoKSAmJiAhZnVuY3Rpb25FeGVjdXRhYmxlLT5pc1N0cmljdE1vZGUo
KSkKICAgICAsIG1fYXJndW1lbnRzUmVnaXN0ZXIoZnVuY3Rpb25FeGVjdXRhYmxlLT5nZW5lcmF0
ZWRCeXRlY29kZSgpLmFyZ3VtZW50c1JlZ2lzdGVyKCkpCiB7CkBAIC05NCw3ICs5NSw3IEBAIGlu
bGluZSBib29sIEpTQWN0aXZhdGlvbjo6c3ltYm9sVGFibGVHZXQKICAgICBTeW1ib2xUYWJsZUVu
dHJ5IGVudHJ5ID0gc3ltYm9sVGFibGUoKS5pbmxpbmVHZXQocHJvcGVydHlOYW1lLmltcGwoKSk7
CiAgICAgaWYgKGVudHJ5LmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYg
KGVudHJ5LmdldEluZGV4KCkgPj0gbV9udW1DYXB0dXJlZFZhcnMpCisgICAgaWYgKG1faXNUb3Ju
T2ZmICYmIGVudHJ5LmdldEluZGV4KCkgPj0gbV9udW1DYXB0dXJlZFZhcnMpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAogICAgIHNsb3Quc2V0VmFsdWUocmVnaXN0ZXJBdChlbnRyeS5nZXRJbmRl
eCgpKS5nZXQoKSk7CkBAIC0xMTQsNyArMTE1LDcgQEAgaW5saW5lIGJvb2wgSlNBY3RpdmF0aW9u
OjpzeW1ib2xUYWJsZVB1dAogICAgICAgICAgICAgdGhyb3dUeXBlRXJyb3IoZXhlYywgU3RyaWN0
TW9kZVJlYWRvbmx5UHJvcGVydHlXcml0ZUVycm9yKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgfQotICAgIGlmIChlbnRyeS5nZXRJbmRleCgpID49IG1fbnVtQ2FwdHVyZWRWYXJzKQorICAg
IGlmIChtX2lzVG9ybk9mZiAmJiBlbnRyeS5nZXRJbmRleCgpID49IG1fbnVtQ2FwdHVyZWRWYXJz
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZWdpc3RlckF0KGVudHJ5LmdldEluZGV4
KCkpLnNldChnbG9iYWxEYXRhLCB0aGlzLCB2YWx1ZSk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0FjdGl2YXRpb24uaAkocmV2aXNpb24gMTE1MTI4KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBY3RpdmF0aW9uLmgJKHdvcmtpbmcgY29weSkK
QEAgLTkyLDcgKzkyLDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIE5FVkVSX0lOTElORSBQ
cm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYyBnZXRBcmd1bWVudHNHZXR0ZXIoKTsKIAogICAgICAg
ICBpbnQgbV9udW1DYXB0dXJlZEFyZ3M7Ci0gICAgICAgIGludCBtX251bUNhcHR1cmVkVmFycyA6
IDMxOworICAgICAgICBpbnQgbV9udW1DYXB0dXJlZFZhcnMgOiAzMDsKKyAgICAgICAgYm9vbCBt
X2lzVG9ybk9mZiA6IDE7CiAgICAgICAgIGJvb2wgbV9yZXF1aXJlc0R5bmFtaWNDaGVja3MgOiAx
OwogICAgICAgICBpbnQgbV9hcmd1bWVudHNSZWdpc3RlcjsKICAgICB9OwpAQCAtMTMzLDYgKzEz
NCw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgcmVnaXN0ZXJzW2ldLnNldChnbG9i
YWxEYXRhLCB0aGlzLCBtX3JlZ2lzdGVyc1tpXS5nZXQoKSk7CiAKICAgICAgICAgc2V0UmVnaXN0
ZXJzKHJlZ2lzdGVycywgcmVnaXN0ZXJBcnJheS5yZWxlYXNlKCkpOworICAgICAgICBtX2lzVG9y
bk9mZiA9IHRydWU7CiAgICAgfQogCiB9IC8vIG5hbWVzcGFjZSBKU0MK
</data>
<flag name="review"
          id="144123"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>