<?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>4698</bug_id>
          
          <creation_ts>2005-08-27 16:20:57 -0700</creation_ts>
          <short_desc>kjs does not allow named functions in function expressions</short_desc>
          <delta_ts>2006-06-18 10:19:57 -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>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</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="Arthur Langereis">arthur_webkit</reporter>
          <assigned_to name="Geoffrey Garen">ggaren</assigned_to>
          <cc>fick_el</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>17755</commentid>
    <comment_count>0</comment_count>
    <who name="Arthur Langereis">arthur_webkit</who>
    <bug_when>2005-08-27 16:20:57 -0700</bug_when>
    <thetext>kjs doesn&apos;t allow named functions used for Function expressions, even though the ECMA-262 
specification states:

FunctionExpression : 
function Identifier opt ( FormalParameterList opt ) { FunctionBody }

(Page 71 of ECMA-262 spec: http://www.ecma-international.org/publications/files/ECMA-ST/
Ecma-262.pdf)

The identifier is optional, not forbidden. FF and IE also support named functions in function expressions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>17781</commentid>
    <comment_count>1</comment_count>
      <attachid>3615</attachid>
    <who name="Arthur Langereis">arthur_webkit</who>
    <bug_when>2005-08-28 01:21:47 -0700</bug_when>
    <thetext>Created attachment 3615
preliminary patch for allowing named functions

Now added to the right bug *cough*.

In any case, this patch adds support for optionally named function expressions.
It, however, causes a kjs test to fail: js1_5/Regress/regress-114491.js

The test is supposed to fail because it does the following:
if(true) function f(){}();

The test caused a crash in an early version of mozilla, but it should fail
because the function expression should be parenthesized for the call syntax to
be correct. Safari, however, failed the test because they used a named function
expression, which it did not support.

Safari 2.0 will accept and run this:
function(){}();

which generates an error in Moz and IE. It should be
(function(){})();

I&apos;m still working on how to fix this requirement in grammar.y.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>17806</commentid>
    <comment_count>2</comment_count>
      <attachid>3625</attachid>
    <who name="Arthur Langereis">arthur_webkit</who>
    <bug_when>2005-08-28 09:41:14 -0700</bug_when>
    <thetext>Created attachment 3625
expanded patch implementing full ecma behavior for named FunctionExpr

This patch puts a named function expression inside a new anonymous object so it
can call itself recursively, but it won&apos;t register with the current scope, per
ECMA spec. Unnamed function expressions are handled as before.

A fix for the regression is not in this patch. However, after some more
investigation it seems that there is a more fundamental flaw at work here. KJS
allows unnamed function declarations and calls them at the end of the script
block. An unnamed function declaration is a syntax error. KJS may not properly
differentiate between func decls and exprs. This may have to be handled in a
different bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>17815</commentid>
    <comment_count>3</comment_count>
      <attachid>3625</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2005-08-28 14:38:09 -0700</bug_when>
    <thetext>Comment on attachment 3625
expanded patch implementing full ecma behavior for named FunctionExpr

This patch looks great. Here are my comments:

A) There&apos;s no test case attached to this bug. We can&apos;t land this change without
a test.

B) Formatting-wise, the longer line in the yacc source file should follow the
approach used elsewhere -- putting the C code on a separate line so that the
left braces line up.

C) In FuncExprNode::evaluate:

+  bool named = (ident != Identifier::null());

should be:

    bool named = !ident.isNull();

D) For null pointers in new code, I prefer NULL over 0, and 0 over 0L. So we
definitely shouldn&apos;t initialize namedContainer to 0L.

E) I slightly prefer just plain &quot;new ObjectImp&quot; to &quot;new ObjectImp()&quot;.

F) I think perhaps the member of FuncExprNode shoudl be named &quot;name&quot; rather
than &quot;ident&quot;. Would we refer to this as the name of the function in the
expression or the identifier of the function?

G) The code that makes the property DontDelete unless the codeType is EvalCode
is confusing to me. Perhaps we could include a comment explaining that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>17823</commentid>
    <comment_count>4</comment_count>
      <attachid>3630</attachid>
    <who name="Arthur Langereis">arthur_webkit</who>
    <bug_when>2005-08-28 17:36:56 -0700</bug_when>
    <thetext>Created attachment 3630
updated patch + testcase

I applied changes B-E, added a /fast/js testcase that validates and runs
successfully in the webkit tests and we agreed upon keeping the name &quot;ident&quot;.

Only thing remaining is an explanation of why DontDelete is turned off for eval
code. It&apos;s not really important in this case as the anonymous container in
which the function is stored is completely inaccessible and expires immediately
after the function exits, but knowing the rationale behind it would be nice,
then the comment in FunctionDeclaration can also be updated. (it now points
simply to ECMA 10.2.2)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>17826</commentid>
    <comment_count>5</comment_count>
      <attachid>3630</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2005-08-28 20:52:29 -0700</bug_when>
    <thetext>Comment on attachment 3630
updated patch + testcase

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>17866</commentid>
    <comment_count>6</comment_count>
      <attachid>3645</attachid>
    <who name="Arthur Langereis">arthur_webkit</who>
    <bug_when>2005-08-29 15:05:23 -0700</bug_when>
    <thetext>Created attachment 3645
previous patch + fix for func decl/expr mixup + updated testcase

This patch takes the previous patch and adds a fix for a bug in kjs where it
would treat an unnamed function declaration as a function expression. The
updated testcase adds a test for this behavior.

It was decided to add this fix to this bug as these two problems are dependent
on eachother. KJS&apos;s grammar defined a FunctionDeclaration simply as a function
with an identifier and a FunctionExpr as a function without one. The second
rule was incomplete and fixed with my previous patch, this in turn allowed this
other behavior to be fixed by explicitly defining an unnamed separate function
definition as illegal in the syntax and then checking for a function
declaration before other SourceElement types.

This works well, causes no regressions and puts KJS&apos;s function parsing on par
with FF&apos;s engine and the ECMA spec.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>17867</commentid>
    <comment_count>7</comment_count>
      <attachid>3645</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2005-08-29 15:09:20 -0700</bug_when>
    <thetext>Comment on attachment 3645
previous patch + fix for func decl/expr mixup + updated testcase

r=me

(note, you shouldn&apos;t put yourself as the requestee -- you&apos;re the requester)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>46173</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-06-18 10:19:57 -0700</bug_when>
    <thetext>*** Bug 9495 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>3615</attachid>
            <date>2005-08-28 01:21:47 -0700</date>
            <delta_ts>2005-08-28 09:41:14 -0700</delta_ts>
            <desc>preliminary patch for allowing named functions</desc>
            <filename>NamedFuncExpr.txt</filename>
            <type>text/plain</type>
            <size>3293</size>
            <attacher name="Arthur Langereis">arthur_webkit</attacher>
            
              <data encoding="base64">SW5kZXg6IGtqcy9ncmFtbWFyLnkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L0phdmFT
Y3JpcHRDb3JlL2tqcy9ncmFtbWFyLnksdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMjYKZGlmZiAt
cCAtdSAtcjEuMjYga2pzL2dyYW1tYXIueQotLS0ga2pzL2dyYW1tYXIueQkyNiBBdWcgMjAwNSAy
Mzo0MjoxNyAtMDAwMAkxLjI2CisrKyBranMvZ3JhbW1hci55CTI4IEF1ZyAyMDA1IDA4OjEyOjI4
IC0wMDAwCkBAIC0xLDQgKzEsNCBAQAotJXsKKyAgICAlewogCiAvKgogICogIFRoaXMgZmlsZSBp
cyBwYXJ0IG9mIHRoZSBLREUgbGlicmFyaWVzCkBAIC0zOCw3ICszOCw3IEBACiAjZGVmaW5lIHl5
bGxvYyBranN5eWxsb2MKIAogLyogZGVmYXVsdCB2YWx1ZXMgZm9yIGJpc29uICovCi0jZGVmaW5l
IFlZREVCVUcgMAorI2RlZmluZSBZWURFQlVHIDEKICNpZiAhQVBQTEVfQ0hBTkdFUwogI2RlZmlu
ZSBZWUVSUk9SX1ZFUkJPU0UKICNlbmRpZgpAQCAtNjcwLDEyICs2NzAsMTUgQEAgRnVuY3Rpb25E
ZWNsYXJhdGlvbjoKICAgICBGVU5DVElPTiBJREVOVCAnKCcgJyknIEZ1bmN0aW9uQm9keSAgICB7
ICQkID0gbmV3IEZ1bmNEZWNsTm9kZSgqJDIsICQ1KTsgfQogICB8IEZVTkNUSU9OIElERU5UICco
JyBGb3JtYWxQYXJhbWV0ZXJMaXN0ICcpJyBGdW5jdGlvbkJvZHkKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgeyAkJCA9IG5ldyBGdW5jRGVjbE5vZGUoKiQyLCAkNCwgJDYpOyB9
Cis7CiAKIEZ1bmN0aW9uRXhwcjoKLSAgICBGVU5DVElPTiAnKCcgJyknIEZ1bmN0aW9uQm9keSAg
eyAkJCA9IG5ldyBGdW5jRXhwck5vZGUoJDQpOyB9CisgICAgRlVOQ1RJT04gJygnICcpJyBGdW5j
dGlvbkJvZHkgIHsgJCQgPSBuZXcgRnVuY0V4cHJOb2RlKElkZW50aWZpZXI6Om51bGwoKSwgJDQp
OyB9CiAgIHwgRlVOQ1RJT04gJygnIEZvcm1hbFBhcmFtZXRlckxpc3QgJyknIEZ1bmN0aW9uQm9k
eQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0gbmV3IEZ1bmNFeHBy
Tm9kZSgkMywgJDUpOyB9Ci0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAk
JCA9IG5ldyBGdW5jRXhwck5vZGUoSWRlbnRpZmllcjo6bnVsbCgpLCAkMywgJDUpOyB9CisgIHwg
RlVOQ1RJT04gSURFTlQgJygnICcpJyBGdW5jdGlvbkJvZHkgICAgeyAkJCA9IG5ldyBGdW5jRXhw
ck5vZGUoKiQyLCAkNSk7IH0KKyAgfCBGVU5DVElPTiBJREVOVCAnKCcgRm9ybWFsUGFyYW1ldGVy
TGlzdCAnKScgRnVuY3Rpb25Cb2R5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHsgJCQgPSBuZXcgRnVuY0V4cHJOb2RlKCokMiwgJDQsICQ2KTsgfQogOwogCiBGb3JtYWxQYXJh
bWV0ZXJMaXN0OgpJbmRleDoga2pzL25vZGVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zz
L3Jvb3QvSmF2YVNjcmlwdENvcmUva2pzL25vZGVzLmNwcCx2CnJldHJpZXZpbmcgcmV2aXNpb24g
MS43OApkaWZmIC1wIC11IC1yMS43OCBranMvbm9kZXMuY3BwCi0tLSBranMvbm9kZXMuY3BwCTI2
IEF1ZyAyMDA1IDIzOjQ2OjI3IC0wMDAwCTEuNzgKKysrIGtqcy9ub2Rlcy5jcHAJMjggQXVnIDIw
MDUgMDg6MTI6MjkgLTAwMDAKQEAgLTIxMTcsNyArMjExNyw3IEBAIHZvaWQgRnVuY0RlY2xOb2Rl
Ojpwcm9jZXNzRnVuY0RlY2woRXhlY1MKIC8vIEVDTUEgMTMKIFZhbHVlSW1wICpGdW5jRXhwck5v
ZGU6OmV2YWx1YXRlKEV4ZWNTdGF0ZSAqZXhlYykKIHsKLSAgRnVuY3Rpb25JbXAgKmZpbXAgPSBu
ZXcgRGVjbGFyZWRGdW5jdGlvbkltcChleGVjLCBJZGVudGlmaWVyOjpudWxsKCksIGJvZHkuZ2V0
KCksIGV4ZWMtPmNvbnRleHQoKS5pbXAoKS0+c2NvcGVDaGFpbigpKTsKKyAgRnVuY3Rpb25JbXAg
KmZpbXAgPSBuZXcgRGVjbGFyZWRGdW5jdGlvbkltcChleGVjLCBpZGVudCwgYm9keS5nZXQoKSwg
ZXhlYy0+Y29udGV4dCgpLmltcCgpLT5zY29wZUNoYWluKCkpOwogICBWYWx1ZUltcCAqcmV0KGZp
bXApOwogICBWYWx1ZUltcCAqcHJvdG8gPSBleGVjLT5sZXhpY2FsSW50ZXJwcmV0ZXIoKS0+YnVp
bHRpbk9iamVjdCgpLT5jb25zdHJ1Y3QoZXhlYywgTGlzdDo6ZW1wdHkoKSk7CiAgIGZpbXAtPnB1
dChleGVjLCBwcm90b3R5cGVQcm9wZXJ0eU5hbWUsIHByb3RvLCBJbnRlcm5hbHxEb250RGVsZXRl
KTsKSW5kZXg6IGtqcy9ub2Rlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9KYXZh
U2NyaXB0Q29yZS9ranMvbm9kZXMuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yOQpkaWZmIC1w
IC11IC1yMS4yOSBranMvbm9kZXMuaAotLS0ga2pzL25vZGVzLmgJMjYgQXVnIDIwMDUgMjM6NDY6
MjcgLTAwMDAJMS4yOQorKysga2pzL25vZGVzLmgJMjggQXVnIDIwMDUgMDg6MTI6MjkgLTAwMDAK
QEAgLTk3MCwxMiArOTcwLDE0IEBAIG5hbWVzcGFjZSBLSlMgewogCiAgIGNsYXNzIEZ1bmNFeHBy
Tm9kZSA6IHB1YmxpYyBOb2RlIHsKICAgcHVibGljOgotICAgIEZ1bmNFeHByTm9kZShGdW5jdGlv
bkJvZHlOb2RlICpiKSA6IHBhcmFtKDApLCBib2R5KGIpIHsgfQotICAgIEZ1bmNFeHByTm9kZShQ
YXJhbWV0ZXJOb2RlICpwLCBGdW5jdGlvbkJvZHlOb2RlICpiKQotICAgICAgOiBwYXJhbShwLT5u
ZXh0KSwgYm9keShiKSB7IHAtPm5leHQgPSAwOyB9CisgICAgRnVuY0V4cHJOb2RlKGNvbnN0IElk
ZW50aWZpZXIgJmksIEZ1bmN0aW9uQm9keU5vZGUgKmIpCisgICAgICA6IGlkZW50KGkpLCBwYXJh
bSgwKSwgYm9keShiKSB7IH0KKyAgICBGdW5jRXhwck5vZGUoY29uc3QgSWRlbnRpZmllciAmaSwg
UGFyYW1ldGVyTm9kZSAqcCwgRnVuY3Rpb25Cb2R5Tm9kZSAqYikKKyAgICAgIDogaWRlbnQoaSks
IHBhcmFtKHAtPm5leHQpLCBib2R5KGIpIHsgcC0+bmV4dCA9IDA7IH0KICAgICBWYWx1ZUltcCAq
ZXZhbHVhdGUoRXhlY1N0YXRlICpleGVjKTsKICAgICB2aXJ0dWFsIHZvaWQgc3RyZWFtVG8oU291
cmNlU3RyZWFtICZzKSBjb25zdDsKICAgcHJpdmF0ZToKKyAgICBJZGVudGlmaWVyIGlkZW50Owog
ICAgIGt4bWxjb3JlOjpTaGFyZWRQdHI8UGFyYW1ldGVyTm9kZT4gcGFyYW07CiAgICAga3htbGNv
cmU6OlNoYXJlZFB0cjxGdW5jdGlvbkJvZHlOb2RlPiBib2R5OwogICB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>3625</attachid>
            <date>2005-08-28 09:41:14 -0700</date>
            <delta_ts>2005-08-28 17:36:56 -0700</delta_ts>
            <desc>expanded patch implementing full ecma behavior for named FunctionExpr</desc>
            <filename>NamedFuncExpr.txt</filename>
            <type>text/plain</type>
            <size>3837</size>
            <attacher name="Arthur Langereis">arthur_webkit</attacher>
            
              <data encoding="base64">SW5kZXg6IGtqcy9ncmFtbWFyLnkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L0phdmFT
Y3JpcHRDb3JlL2tqcy9ncmFtbWFyLnksdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMjYKZGlmZiAt
cCAtdSAtcjEuMjYga2pzL2dyYW1tYXIueQotLS0ga2pzL2dyYW1tYXIueQkyNiBBdWcgMjAwNSAy
Mzo0MjoxNyAtMDAwMAkxLjI2CisrKyBranMvZ3JhbW1hci55CTI4IEF1ZyAyMDA1IDE2OjI1OjA4
IC0wMDAwCkBAIC02NzAsMTIgKzY3MCwxNSBAQCBGdW5jdGlvbkRlY2xhcmF0aW9uOgogICAgIEZV
TkNUSU9OIElERU5UICcoJyAnKScgRnVuY3Rpb25Cb2R5ICAgIHsgJCQgPSBuZXcgRnVuY0RlY2xO
b2RlKCokMiwgJDUpOyB9CiAgIHwgRlVOQ1RJT04gSURFTlQgJygnIEZvcm1hbFBhcmFtZXRlckxp
c3QgJyknIEZ1bmN0aW9uQm9keQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7
ICQkID0gbmV3IEZ1bmNEZWNsTm9kZSgqJDIsICQ0LCAkNik7IH0KKzsKIAogRnVuY3Rpb25FeHBy
OgotICAgIEZVTkNUSU9OICcoJyAnKScgRnVuY3Rpb25Cb2R5ICB7ICQkID0gbmV3IEZ1bmNFeHBy
Tm9kZSgkNCk7IH0KKyAgICBGVU5DVElPTiAnKCcgJyknIEZ1bmN0aW9uQm9keSAgeyAkJCA9IG5l
dyBGdW5jRXhwck5vZGUoSWRlbnRpZmllcjo6bnVsbCgpLCAkNCk7IH0KICAgfCBGVU5DVElPTiAn
KCcgRm9ybWFsUGFyYW1ldGVyTGlzdCAnKScgRnVuY3Rpb25Cb2R5Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHsgJCQgPSBuZXcgRnVuY0V4cHJOb2RlKCQzLCAkNSk7IH0KLQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0gbmV3IEZ1bmNFeHByTm9k
ZShJZGVudGlmaWVyOjpudWxsKCksICQzLCAkNSk7IH0KKyAgfCBGVU5DVElPTiBJREVOVCAnKCcg
JyknIEZ1bmN0aW9uQm9keSAgICB7ICQkID0gbmV3IEZ1bmNFeHByTm9kZSgqJDIsICQ1KTsgfQor
ICB8IEZVTkNUSU9OIElERU5UICcoJyBGb3JtYWxQYXJhbWV0ZXJMaXN0ICcpJyBGdW5jdGlvbkJv
ZHkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IG5ldyBGdW5jRXhw
ck5vZGUoKiQyLCAkNCwgJDYpOyB9CiA7CiAKIEZvcm1hbFBhcmFtZXRlckxpc3Q6CkluZGV4OiBr
anMvbm9kZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9KYXZhU2NyaXB0Q29y
ZS9ranMvbm9kZXMuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjc4CmRpZmYgLXAgLXUgLXIx
Ljc4IGtqcy9ub2Rlcy5jcHAKLS0tIGtqcy9ub2Rlcy5jcHAJMjYgQXVnIDIwMDUgMjM6NDY6Mjcg
LTAwMDAJMS43OAorKysga2pzL25vZGVzLmNwcAkyOCBBdWcgMjAwNSAxNjoyNTowOSAtMDAwMApA
QCAtMjExNyw3ICsyMTE3LDE5IEBAIHZvaWQgRnVuY0RlY2xOb2RlOjpwcm9jZXNzRnVuY0RlY2wo
RXhlY1MKIC8vIEVDTUEgMTMKIFZhbHVlSW1wICpGdW5jRXhwck5vZGU6OmV2YWx1YXRlKEV4ZWNT
dGF0ZSAqZXhlYykKIHsKLSAgRnVuY3Rpb25JbXAgKmZpbXAgPSBuZXcgRGVjbGFyZWRGdW5jdGlv
bkltcChleGVjLCBJZGVudGlmaWVyOjpudWxsKCksIGJvZHkuZ2V0KCksIGV4ZWMtPmNvbnRleHQo
KS5pbXAoKS0+c2NvcGVDaGFpbigpKTsKKyAgQ29udGV4dEltcCAqY29udGV4dCA9IGV4ZWMtPmNv
bnRleHQoKS5pbXAoKTsKKyAgYm9vbCBuYW1lZCA9IChpZGVudCAhPSBJZGVudGlmaWVyOjpudWxs
KCkpOworICBPYmplY3RJbXAgKm5hbWVkQ29udGFpbmVyID0gMEw7CisKKyAgaWYgKG5hbWVkKSB7
CisgICAgLy8gbmFtZWQgRnVuY3Rpb25FeHByZXNzaW9ucyBjYW4gcmVjdXJzaXZlbHkgY2FsbCB0
aGVtc2VsdmVzLAorICAgIC8vIGJ1dCB0aGV5IHdvbid0IHJlZ2lzdGVyIHdpdGggdGhlIGN1cnJl
bnQgc2NvcGUgY2hhaW4gYW5kIHNob3VsZAorICAgIC8vIGJlIGNvbnRhaW5lZCBhcyBzaW5nbGUg
cHJvcGVydHkgaW4gYW4gYW5vbnltb3VzIG9iamVjdC4KKyAgICBuYW1lZENvbnRhaW5lciA9IG5l
dyBPYmplY3RJbXAoKTsKKyAgICBjb250ZXh0LT5wdXNoU2NvcGUobmFtZWRDb250YWluZXIpOwor
ICB9CisKKyAgRnVuY3Rpb25JbXAgKmZpbXAgPSBuZXcgRGVjbGFyZWRGdW5jdGlvbkltcChleGVj
LCBpZGVudCwgYm9keS5nZXQoKSwgY29udGV4dC0+c2NvcGVDaGFpbigpKTsKICAgVmFsdWVJbXAg
KnJldChmaW1wKTsKICAgVmFsdWVJbXAgKnByb3RvID0gZXhlYy0+bGV4aWNhbEludGVycHJldGVy
KCktPmJ1aWx0aW5PYmplY3QoKS0+Y29uc3RydWN0KGV4ZWMsIExpc3Q6OmVtcHR5KCkpOwogICBm
aW1wLT5wdXQoZXhlYywgcHJvdG90eXBlUHJvcGVydHlOYW1lLCBwcm90bywgSW50ZXJuYWx8RG9u
dERlbGV0ZSk7CkBAIC0yMTI2LDYgKzIxMzgsMTEgQEAgVmFsdWVJbXAgKkZ1bmNFeHByTm9kZTo6
ZXZhbHVhdGUoRXhlY1N0YQogICBmb3IoUGFyYW1ldGVyTm9kZSAqcCA9IHBhcmFtLmdldCgpOyBw
ICE9IDBMOyBwID0gcC0+bmV4dFBhcmFtKCksIHBsZW4rKykKICAgICBmaW1wLT5hZGRQYXJhbWV0
ZXIocC0+aWRlbnQoKSk7CiAKKyAgaWYgKG5hbWVkKSB7CisgICAgbmFtZWRDb250YWluZXItPnB1
dChleGVjLCBpZGVudCwgcmV0LCBJbnRlcm5hbCB8IFJlYWRPbmx5IHwgKGNvbnRleHQtPmNvZGVU
eXBlKCkgPT0gRXZhbENvZGUgPyAwIDogRG9udERlbGV0ZSkpOworICAgIGNvbnRleHQtPnBvcFNj
b3BlKCk7CisgIH0KKwogICByZXR1cm4gcmV0OwogfQogCkluZGV4OiBranMvbm9kZXMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvSmF2YVNjcmlwdENvcmUva2pzL25vZGVzLmgsdgpy
ZXRyaWV2aW5nIHJldmlzaW9uIDEuMjkKZGlmZiAtcCAtdSAtcjEuMjkga2pzL25vZGVzLmgKLS0t
IGtqcy9ub2Rlcy5oCTI2IEF1ZyAyMDA1IDIzOjQ2OjI3IC0wMDAwCTEuMjkKKysrIGtqcy9ub2Rl
cy5oCTI4IEF1ZyAyMDA1IDE2OjI1OjA5IC0wMDAwCkBAIC05NzAsMTIgKzk3MCwxNCBAQCBuYW1l
c3BhY2UgS0pTIHsKIAogICBjbGFzcyBGdW5jRXhwck5vZGUgOiBwdWJsaWMgTm9kZSB7CiAgIHB1
YmxpYzoKLSAgICBGdW5jRXhwck5vZGUoRnVuY3Rpb25Cb2R5Tm9kZSAqYikgOiBwYXJhbSgwKSwg
Ym9keShiKSB7IH0KLSAgICBGdW5jRXhwck5vZGUoUGFyYW1ldGVyTm9kZSAqcCwgRnVuY3Rpb25C
b2R5Tm9kZSAqYikKLSAgICAgIDogcGFyYW0ocC0+bmV4dCksIGJvZHkoYikgeyBwLT5uZXh0ID0g
MDsgfQorICAgIEZ1bmNFeHByTm9kZShjb25zdCBJZGVudGlmaWVyICZpLCBGdW5jdGlvbkJvZHlO
b2RlICpiKQorICAgICAgOiBpZGVudChpKSwgcGFyYW0oMCksIGJvZHkoYikgeyB9CisgICAgRnVu
Y0V4cHJOb2RlKGNvbnN0IElkZW50aWZpZXIgJmksIFBhcmFtZXRlck5vZGUgKnAsIEZ1bmN0aW9u
Qm9keU5vZGUgKmIpCisgICAgICA6IGlkZW50KGkpLCBwYXJhbShwLT5uZXh0KSwgYm9keShiKSB7
IHAtPm5leHQgPSAwOyB9CiAgICAgVmFsdWVJbXAgKmV2YWx1YXRlKEV4ZWNTdGF0ZSAqZXhlYyk7
CiAgICAgdmlydHVhbCB2b2lkIHN0cmVhbVRvKFNvdXJjZVN0cmVhbSAmcykgY29uc3Q7CiAgIHBy
aXZhdGU6CisgICAgSWRlbnRpZmllciBpZGVudDsKICAgICBreG1sY29yZTo6U2hhcmVkUHRyPFBh
cmFtZXRlck5vZGU+IHBhcmFtOwogICAgIGt4bWxjb3JlOjpTaGFyZWRQdHI8RnVuY3Rpb25Cb2R5
Tm9kZT4gYm9keTsKICAgfTsK
</data>
<flag name="review"
          id="461"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>3630</attachid>
            <date>2005-08-28 17:36:56 -0700</date>
            <delta_ts>2005-08-29 15:05:23 -0700</delta_ts>
            <desc>updated patch + testcase</desc>
            <filename>NamedFuncExpr3.txt</filename>
            <type>text/plain</type>
            <size>6563</size>
            <attacher name="Arthur Langereis">arthur_webkit</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL2tqcy9ncmFtbWFyLnkKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTog
L2N2cy9yb290L0phdmFTY3JpcHRDb3JlL2tqcy9ncmFtbWFyLnksdgpyZXRyaWV2aW5nIHJldmlz
aW9uIDEuMjYKZGlmZiAtcCAtdSAtcjEuMjYgSmF2YVNjcmlwdENvcmUva2pzL2dyYW1tYXIueQot
LS0gSmF2YVNjcmlwdENvcmUva2pzL2dyYW1tYXIueQkyNiBBdWcgMjAwNSAyMzo0MjoxNyAtMDAw
MAkxLjI2CisrKyBKYXZhU2NyaXB0Q29yZS9ranMvZ3JhbW1hci55CTI5IEF1ZyAyMDA1IDAwOjMw
OjI1IC0wMDAwCkBAIC02NjcsMTUgKzY2NywyMCBAQCBGaW5hbGx5OgogOwogCiBGdW5jdGlvbkRl
Y2xhcmF0aW9uOgotICAgIEZVTkNUSU9OIElERU5UICcoJyAnKScgRnVuY3Rpb25Cb2R5ICAgIHsg
JCQgPSBuZXcgRnVuY0RlY2xOb2RlKCokMiwgJDUpOyB9CisgICAgRlVOQ1RJT04gSURFTlQgJygn
ICcpJyBGdW5jdGlvbkJvZHkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAk
JCA9IG5ldyBGdW5jRGVjbE5vZGUoKiQyLCAkNSk7IH0KICAgfCBGVU5DVElPTiBJREVOVCAnKCcg
Rm9ybWFsUGFyYW1ldGVyTGlzdCAnKScgRnVuY3Rpb25Cb2R5CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHsgJCQgPSBuZXcgRnVuY0RlY2xOb2RlKCokMiwgJDQsICQ2KTsgfQor
OwogCiBGdW5jdGlvbkV4cHI6Ci0gICAgRlVOQ1RJT04gJygnICcpJyBGdW5jdGlvbkJvZHkgIHsg
JCQgPSBuZXcgRnVuY0V4cHJOb2RlKCQ0KTsgfQorICAgIEZVTkNUSU9OICcoJyAnKScgRnVuY3Rp
b25Cb2R5ICB7ICQkID0gbmV3IEZ1bmNFeHByTm9kZShJZGVudGlmaWVyOjpudWxsKCksICQ0KTsg
fQogICB8IEZVTkNUSU9OICcoJyBGb3JtYWxQYXJhbWV0ZXJMaXN0ICcpJyBGdW5jdGlvbkJvZHkK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IG5ldyBGdW5jRXhwck5v
ZGUoJDMsICQ1KTsgfQotCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQg
PSBuZXcgRnVuY0V4cHJOb2RlKElkZW50aWZpZXI6Om51bGwoKSwgJDMsICQ1KTsgfQorICB8IEZV
TkNUSU9OIElERU5UICcoJyAnKScgRnVuY3Rpb25Cb2R5CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHsgJCQgPSBuZXcgRnVuY0V4cHJOb2RlKCokMiwgJDUpOyB9CisgIHwgRlVO
Q1RJT04gSURFTlQgJygnIEZvcm1hbFBhcmFtZXRlckxpc3QgJyknIEZ1bmN0aW9uQm9keQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICQkID0gbmV3IEZ1bmNFeHByTm9kZSgq
JDIsICQ0LCAkNik7IH0KIDsKIAogRm9ybWFsUGFyYW1ldGVyTGlzdDoKSW5kZXg6IEphdmFTY3Jp
cHRDb3JlL2tqcy9ub2Rlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L0phdmFT
Y3JpcHRDb3JlL2tqcy9ub2Rlcy5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNzgKZGlmZiAt
cCAtdSAtcjEuNzggSmF2YVNjcmlwdENvcmUva2pzL25vZGVzLmNwcAotLS0gSmF2YVNjcmlwdENv
cmUva2pzL25vZGVzLmNwcAkyNiBBdWcgMjAwNSAyMzo0NjoyNyAtMDAwMAkxLjc4CisrKyBKYXZh
U2NyaXB0Q29yZS9ranMvbm9kZXMuY3BwCTI5IEF1ZyAyMDA1IDAwOjMwOjI2IC0wMDAwCkBAIC0y
MTE3LDcgKzIxMTcsMTkgQEAgdm9pZCBGdW5jRGVjbE5vZGU6OnByb2Nlc3NGdW5jRGVjbChFeGVj
UwogLy8gRUNNQSAxMwogVmFsdWVJbXAgKkZ1bmNFeHByTm9kZTo6ZXZhbHVhdGUoRXhlY1N0YXRl
ICpleGVjKQogewotICBGdW5jdGlvbkltcCAqZmltcCA9IG5ldyBEZWNsYXJlZEZ1bmN0aW9uSW1w
KGV4ZWMsIElkZW50aWZpZXI6Om51bGwoKSwgYm9keS5nZXQoKSwgZXhlYy0+Y29udGV4dCgpLmlt
cCgpLT5zY29wZUNoYWluKCkpOworICBDb250ZXh0SW1wICpjb250ZXh0ID0gZXhlYy0+Y29udGV4
dCgpLmltcCgpOworICBib29sIG5hbWVkID0gIWlkZW50LmlzTnVsbCgpOworICBPYmplY3RJbXAg
Km5hbWVkQ29udGFpbmVyID0gTlVMTDsKKworICBpZiAobmFtZWQpIHsKKyAgICAvLyBuYW1lZCBG
dW5jdGlvbkV4cHJlc3Npb25zIGNhbiByZWN1cnNpdmVseSBjYWxsIHRoZW1zZWx2ZXMsCisgICAg
Ly8gYnV0IHRoZXkgd29uJ3QgcmVnaXN0ZXIgd2l0aCB0aGUgY3VycmVudCBzY29wZSBjaGFpbiBh
bmQgc2hvdWxkCisgICAgLy8gYmUgY29udGFpbmVkIGFzIHNpbmdsZSBwcm9wZXJ0eSBpbiBhbiBh
bm9ueW1vdXMgb2JqZWN0LgorICAgIG5hbWVkQ29udGFpbmVyID0gbmV3IE9iamVjdEltcDsKKyAg
ICBjb250ZXh0LT5wdXNoU2NvcGUobmFtZWRDb250YWluZXIpOworICB9CisKKyAgRnVuY3Rpb25J
bXAgKmZpbXAgPSBuZXcgRGVjbGFyZWRGdW5jdGlvbkltcChleGVjLCBpZGVudCwgYm9keS5nZXQo
KSwgY29udGV4dC0+c2NvcGVDaGFpbigpKTsKICAgVmFsdWVJbXAgKnJldChmaW1wKTsKICAgVmFs
dWVJbXAgKnByb3RvID0gZXhlYy0+bGV4aWNhbEludGVycHJldGVyKCktPmJ1aWx0aW5PYmplY3Qo
KS0+Y29uc3RydWN0KGV4ZWMsIExpc3Q6OmVtcHR5KCkpOwogICBmaW1wLT5wdXQoZXhlYywgcHJv
dG90eXBlUHJvcGVydHlOYW1lLCBwcm90bywgSW50ZXJuYWx8RG9udERlbGV0ZSk7CkBAIC0yMTI2
LDYgKzIxMzgsMTEgQEAgVmFsdWVJbXAgKkZ1bmNFeHByTm9kZTo6ZXZhbHVhdGUoRXhlY1N0YQog
ICBmb3IoUGFyYW1ldGVyTm9kZSAqcCA9IHBhcmFtLmdldCgpOyBwICE9IDBMOyBwID0gcC0+bmV4
dFBhcmFtKCksIHBsZW4rKykKICAgICBmaW1wLT5hZGRQYXJhbWV0ZXIocC0+aWRlbnQoKSk7CiAK
KyAgaWYgKG5hbWVkKSB7CisgICAgbmFtZWRDb250YWluZXItPnB1dChleGVjLCBpZGVudCwgcmV0
LCBJbnRlcm5hbCB8IFJlYWRPbmx5IHwgKGNvbnRleHQtPmNvZGVUeXBlKCkgPT0gRXZhbENvZGUg
PyAwIDogRG9udERlbGV0ZSkpOworICAgIGNvbnRleHQtPnBvcFNjb3BlKCk7CisgIH0KKwogICBy
ZXR1cm4gcmV0OwogfQogCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9ranMvbm9kZXMuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvSmF2YVNjcmlwdENvcmUva2pzL25vZGVzLmgsdgpyZXRy
aWV2aW5nIHJldmlzaW9uIDEuMjkKZGlmZiAtcCAtdSAtcjEuMjkgSmF2YVNjcmlwdENvcmUva2pz
L25vZGVzLmgKLS0tIEphdmFTY3JpcHRDb3JlL2tqcy9ub2Rlcy5oCTI2IEF1ZyAyMDA1IDIzOjQ2
OjI3IC0wMDAwCTEuMjkKKysrIEphdmFTY3JpcHRDb3JlL2tqcy9ub2Rlcy5oCTI5IEF1ZyAyMDA1
IDAwOjMwOjI2IC0wMDAwCkBAIC05NzAsMTIgKzk3MCwxNCBAQCBuYW1lc3BhY2UgS0pTIHsKIAog
ICBjbGFzcyBGdW5jRXhwck5vZGUgOiBwdWJsaWMgTm9kZSB7CiAgIHB1YmxpYzoKLSAgICBGdW5j
RXhwck5vZGUoRnVuY3Rpb25Cb2R5Tm9kZSAqYikgOiBwYXJhbSgwKSwgYm9keShiKSB7IH0KLSAg
ICBGdW5jRXhwck5vZGUoUGFyYW1ldGVyTm9kZSAqcCwgRnVuY3Rpb25Cb2R5Tm9kZSAqYikKLSAg
ICAgIDogcGFyYW0ocC0+bmV4dCksIGJvZHkoYikgeyBwLT5uZXh0ID0gMDsgfQorICAgIEZ1bmNF
eHByTm9kZShjb25zdCBJZGVudGlmaWVyICZpLCBGdW5jdGlvbkJvZHlOb2RlICpiKQorICAgICAg
OiBpZGVudChpKSwgcGFyYW0oMCksIGJvZHkoYikgeyB9CisgICAgRnVuY0V4cHJOb2RlKGNvbnN0
IElkZW50aWZpZXIgJmksIFBhcmFtZXRlck5vZGUgKnAsIEZ1bmN0aW9uQm9keU5vZGUgKmIpCisg
ICAgICA6IGlkZW50KGkpLCBwYXJhbShwLT5uZXh0KSwgYm9keShiKSB7IHAtPm5leHQgPSAwOyB9
CiAgICAgVmFsdWVJbXAgKmV2YWx1YXRlKEV4ZWNTdGF0ZSAqZXhlYyk7CiAgICAgdmlydHVhbCB2
b2lkIHN0cmVhbVRvKFNvdXJjZVN0cmVhbSAmcykgY29uc3Q7CiAgIHByaXZhdGU6CisgICAgSWRl
bnRpZmllciBpZGVudDsKICAgICBreG1sY29yZTo6U2hhcmVkUHRyPFBhcmFtZXRlck5vZGU+IHBh
cmFtOwogICAgIGt4bWxjb3JlOjpTaGFyZWRQdHI8RnVuY3Rpb25Cb2R5Tm9kZT4gYm9keTsKICAg
fTsKSW5kZXg6IG5hbWVkLWZ1bmN0aW9uLWV4cHJlc3Npb24tZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KZGlmZiAtTnB1IG5hbWVkLWZ1bmN0aW9uLWV4cHJlc3Npb24tZXhwZWN0ZWQudHh0Ci0tLSBu
YW1lZC1mdW5jdGlvbi1leHByZXNzaW9uLWV4cGVjdGVkLnR4dAkxIEphbiAxOTcwIDAwOjAwOjAw
IC0wMDAwCisrKyBuYW1lZC1mdW5jdGlvbi1leHByZXNzaW9uLWV4cGVjdGVkLnR4dAkyOSBBdWcg
MjAwNSAwMDowNDoxNCAtMDAwMApAQCAtMCwwICsxLDkgQEAKK0J1ZyA0Njk4IC0ga2pzIGRvZXMg
bm90IGFsbG93IG5hbWVkIGZ1bmN0aW9ucyBpbiBmdW5jdGlvbiBleHByZXNzaW9ucworWW91IHNo
b3VsZCBzZWUgNiBsaW5lcyB3aXRoIE9LIGluIHRoZW0gYmVsb3cgdGhpcyBsaW5lLgorT0sKK09L
CitPSworT0sKK09LCitPSworCkluZGV4OiBuYW1lZC1mdW5jdGlvbi1leHByZXNzaW9uLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQpkaWZmIC1OcHUgbmFtZWQtZnVuY3Rpb24tZXhwcmVzc2lvbi5odG1sCi0tLSBu
YW1lZC1mdW5jdGlvbi1leHByZXNzaW9uLmh0bWwJMSBKYW4gMTk3MCAwMDowMDowMCAtMDAwMAor
KysgbmFtZWQtZnVuY3Rpb24tZXhwcmVzc2lvbi5odG1sCTI5IEF1ZyAyMDA1IDAwOjA0OjQwIC0w
MDAwCkBAIC0wLDAgKzEsNjIgQEAKKzxodG1sPg0KKzxib2R5Pg0KK0J1ZyA0Njk4IC0ga2pzIGRv
ZXMgbm90IGFsbG93IG5hbWVkIGZ1bmN0aW9ucyBpbiBmdW5jdGlvbiBleHByZXNzaW9uczxicj4N
CitZb3Ugc2hvdWxkIHNlZSA2IGxpbmVzIHdpdGggT0sgaW4gdGhlbSBiZWxvdyB0aGlzIGxpbmUu
PGJyPg0KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NCitpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKSB7DQorCWxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsN
Cit9DQorDQorZnVuY3Rpb24gVGVzdChsYW1iZGEsIGV4cGVjdCkgew0KKwl0cnkgew0KKwkJdmFy
IHYgPSBsYW1iZGEoKTsNCisJCWlmKHYgPT0gZXhwZWN0KQ0KKwkJCWRvY3VtZW50LndyaXRlKCJP
Szxicj4iKTsNCisJCWVsc2UNCisJCQlkb2N1bWVudC53cml0ZSgiTk9UIE9LOiAiICsgdiArICIg
IT0gIiArIGV4cGVjdCArICI8YnI+Iik7DQorCX0NCisJY2F0Y2goZSkgeyBkb2N1bWVudC53cml0
ZSgiRVJST1I6ICIgKyBlICsgIjxicj4iKTsgfQ0KK30NCisNCitUZXN0KGZ1bmN0aW9uKCl7DQor
CS8vIGFub255bW91cyBmdW5jdGlvbiBleHByZXNzaW9uDQorCXZhciB4ID0gKGZ1bmN0aW9uKGEs
Yil7IHJldHVybiBhICsgYjsgfSk7DQorCXJldHVybiB4KDEsMik7DQorfSwgMyk7DQorDQorVGVz
dChmdW5jdGlvbigpew0KKwkvLyBuYW1lZCBmdW5jdGlvbiBleHByZXNzaW9uDQorCXZhciB4ID0g
KGZ1bmN0aW9uIE5hbWVkKGEsYil7IHJldHVybiBhICsgYjsgfSk7DQorCXJldHVybiB4KDIsMyk7
DQorfSwgNSk7DQorDQorVGVzdChmdW5jdGlvbigpew0KKwkvLyBldmFsJ2QgY29kZSBzaG91bGQg
YmUgYWJsZSB0byBhY2Nlc3Mgc2NvcGVkIHZhcmlhYmxlcw0KKwl2YXIgeiA9IDY7DQorCXZhciB4
ID0gZXZhbCgiKGZ1bmN0aW9uKGEsYil7IHJldHVybiBhICsgYiArIHo7IH0pIik7DQorCXJldHVy
biB4KDMsNCk7DQorfSwgMTMpOw0KKw0KK1Rlc3QoZnVuY3Rpb24oKXsNCisJLy8gZXZhbCdkIGNv
ZGUgKyBzZWxmLWNoZWNrDQorCXZhciB6ID0gMTA7DQorCXZhciB4ID0gZXZhbCgiKGZ1bmN0aW9u
IE5hbWVkKGEsYil7IHJldHVybiAoISFOYW1lZCkgPyAoYSArIGIgKyB6KSA6IC05OTk7IH0pIik7
DQorCXJldHVybiB4KDQsNSk7DQorfSwgMTkpOw0KKw0KK1Rlc3QoZnVuY3Rpb24oKXsNCisJLy8g
bmFtZWQgZnVuY3Rpb24gZXhwcmVzc2lvbnMgYXJlIG5vdCBzYXZlZCBpbiB0aGUgY3VycmVudCBj
b250ZXh0DQorCShmdW5jdGlvbiBGb28oKXsgcmV0dXJuIDE7IH0pOw0KKwl0cnkgeyBGb28oKTsg
dGhyb3cgIkZ1bmNFeHByIHdhcyBzdG9yZWQiOyB9IGNhdGNoKGUpIHsgaWYodHlwZW9mKGUpPT0i
c3RyaW5nIikgdGhyb3cgZTsgfQ0KKwlyZXR1cm4gMTsNCit9LCAxKTsNCisNCitUZXN0KGZ1bmN0
aW9uKCl7DQorCS8vIHJlY3Vyc2lvbiBpcyBwb3NzaWJsZSwgdGhvdWdoDQorCXZhciBjdHIgPSAz
Ow0KKwl2YXIgeCA9IChmdW5jdGlvbiBOYW1lZChhLGIpeyBpZigtLWN0cikgcmV0dXJuIDIgKiBO
YW1lZChhLGIpOyBlbHNlIHJldHVybiBhICsgYjsgfSk7DQorCXJldHVybiB4KDUsNik7DQorfSwg
NDQpOw0KKzwvc2NyaXB0Pg0KKzwvYm9keT4NCis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQo=
</data>
<flag name="review"
          id="464"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>3645</attachid>
            <date>2005-08-29 15:05:23 -0700</date>
            <delta_ts>2005-08-29 15:09:20 -0700</delta_ts>
            <desc>previous patch + fix for func decl/expr mixup + updated testcase</desc>
            <filename>FuncFix.txt</filename>
            <type>text/plain</type>
            <size>7259</size>
            <attacher name="Arthur Langereis">arthur_webkit</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL2tqcy9ncmFtbWFyLnkKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTog
L2N2cy9yb290L0phdmFTY3JpcHRDb3JlL2tqcy9ncmFtbWFyLnksdgpyZXRyaWV2aW5nIHJldmlz
aW9uIDEuMjYKZGlmZiAtcCAtdSAtcjEuMjYgSmF2YVNjcmlwdENvcmUva2pzL2dyYW1tYXIueQot
LS0gSmF2YVNjcmlwdENvcmUva2pzL2dyYW1tYXIueQkyNiBBdWcgMjAwNSAyMzo0MjoxNyAtMDAw
MAkxLjI2CisrKyBKYXZhU2NyaXB0Q29yZS9ranMvZ3JhbW1hci55CTI5IEF1ZyAyMDA1IDIxOjU3
OjEzIC0wMDAwCkBAIC02NjcsMTUgKzY2NywyMyBAQCBGaW5hbGx5OgogOwogCiBGdW5jdGlvbkRl
Y2xhcmF0aW9uOgotICAgIEZVTkNUSU9OIElERU5UICcoJyAnKScgRnVuY3Rpb25Cb2R5ICAgIHsg
JCQgPSBuZXcgRnVuY0RlY2xOb2RlKCokMiwgJDUpOyB9CisgICAgRlVOQ1RJT04gJygnICcpJyBG
dW5jdGlvbkJvZHkgIHsgWVlBQk9SVDsgfQorICB8IEZVTkNUSU9OICcoJyBGb3JtYWxQYXJhbWV0
ZXJMaXN0ICcpJyBGdW5jdGlvbkJvZHkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgeyBZWUFCT1JUOyB9CisgIHwgRlVOQ1RJT04gSURFTlQgJygnICcpJyBGdW5jdGlvbkJvZHkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9IG5ldyBGdW5jRGVjbE5v
ZGUoKiQyLCAkNSk7IH0KICAgfCBGVU5DVElPTiBJREVOVCAnKCcgRm9ybWFsUGFyYW1ldGVyTGlz
dCAnKScgRnVuY3Rpb25Cb2R5CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsg
JCQgPSBuZXcgRnVuY0RlY2xOb2RlKCokMiwgJDQsICQ2KTsgfQorOwogCiBGdW5jdGlvbkV4cHI6
Ci0gICAgRlVOQ1RJT04gJygnICcpJyBGdW5jdGlvbkJvZHkgIHsgJCQgPSBuZXcgRnVuY0V4cHJO
b2RlKCQ0KTsgfQorICAgIEZVTkNUSU9OICcoJyAnKScgRnVuY3Rpb25Cb2R5ICB7ICQkID0gbmV3
IEZ1bmNFeHByTm9kZShJZGVudGlmaWVyOjpudWxsKCksICQ0KTsgfQogICB8IEZVTkNUSU9OICco
JyBGb3JtYWxQYXJhbWV0ZXJMaXN0ICcpJyBGdW5jdGlvbkJvZHkKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgeyAkJCA9IG5ldyBGdW5jRXhwck5vZGUoJDMsICQ1KTsgfQotCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQgPSBuZXcgRnVuY0V4cHJOb2Rl
KElkZW50aWZpZXI6Om51bGwoKSwgJDMsICQ1KTsgfQorICB8IEZVTkNUSU9OIElERU5UICcoJyAn
KScgRnVuY3Rpb25Cb2R5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJCQg
PSBuZXcgRnVuY0V4cHJOb2RlKCokMiwgJDUpOyB9CisgIHwgRlVOQ1RJT04gSURFTlQgJygnIEZv
cm1hbFBhcmFtZXRlckxpc3QgJyknIEZ1bmN0aW9uQm9keQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB7ICQkID0gbmV3IEZ1bmNFeHByTm9kZSgqJDIsICQ0LCAkNik7IH0KIDsK
IAogRm9ybWFsUGFyYW1ldGVyTGlzdDoKQEAgLTcwMyw4ICs3MTEsOCBAQCBTb3VyY2VFbGVtZW50
czoKIDsKIAogU291cmNlRWxlbWVudDoKLSAgICBTdGF0ZW1lbnQgICAgICAgICAgICAgICAgICAg
ICAgeyAkJCA9ICQxOyB9Ci0gIHwgRnVuY3Rpb25EZWNsYXJhdGlvbiAgICAgICAgICAgIHsgJCQg
PSAkMTsgfQorICAgIEZ1bmN0aW9uRGVjbGFyYXRpb24gICAgICAgICAgICB7ICQkID0gJDE7IH0K
KyAgfCBTdGF0ZW1lbnQgICAgICAgICAgICAgICAgICAgICAgeyAkJCA9ICQxOyB9CiA7CiAKICUl
CkluZGV4OiBKYXZhU2NyaXB0Q29yZS9ranMvbm9kZXMuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6
IC9jdnMvcm9vdC9KYXZhU2NyaXB0Q29yZS9ranMvbm9kZXMuY3BwLHYKcmV0cmlldmluZyByZXZp
c2lvbiAxLjc4CmRpZmYgLXAgLXUgLXIxLjc4IEphdmFTY3JpcHRDb3JlL2tqcy9ub2Rlcy5jcHAK
LS0tIEphdmFTY3JpcHRDb3JlL2tqcy9ub2Rlcy5jcHAJMjYgQXVnIDIwMDUgMjM6NDY6MjcgLTAw
MDAJMS43OAorKysgSmF2YVNjcmlwdENvcmUva2pzL25vZGVzLmNwcAkyOSBBdWcgMjAwNSAyMTo1
NzoxNCAtMDAwMApAQCAtMjExNyw3ICsyMTE3LDE5IEBAIHZvaWQgRnVuY0RlY2xOb2RlOjpwcm9j
ZXNzRnVuY0RlY2woRXhlY1MKIC8vIEVDTUEgMTMKIFZhbHVlSW1wICpGdW5jRXhwck5vZGU6OmV2
YWx1YXRlKEV4ZWNTdGF0ZSAqZXhlYykKIHsKLSAgRnVuY3Rpb25JbXAgKmZpbXAgPSBuZXcgRGVj
bGFyZWRGdW5jdGlvbkltcChleGVjLCBJZGVudGlmaWVyOjpudWxsKCksIGJvZHkuZ2V0KCksIGV4
ZWMtPmNvbnRleHQoKS5pbXAoKS0+c2NvcGVDaGFpbigpKTsKKyAgQ29udGV4dEltcCAqY29udGV4
dCA9IGV4ZWMtPmNvbnRleHQoKS5pbXAoKTsKKyAgYm9vbCBuYW1lZCA9ICFpZGVudC5pc051bGwo
KTsKKyAgT2JqZWN0SW1wICpmdW5jdGlvblNjb3BlT2JqZWN0ID0gTlVMTDsKKworICBpZiAobmFt
ZWQpIHsKKyAgICAvLyBuYW1lZCBGdW5jdGlvbkV4cHJlc3Npb25zIGNhbiByZWN1cnNpdmVseSBj
YWxsIHRoZW1zZWx2ZXMsCisgICAgLy8gYnV0IHRoZXkgd29uJ3QgcmVnaXN0ZXIgd2l0aCB0aGUg
Y3VycmVudCBzY29wZSBjaGFpbiBhbmQgc2hvdWxkCisgICAgLy8gYmUgY29udGFpbmVkIGFzIHNp
bmdsZSBwcm9wZXJ0eSBpbiBhbiBhbm9ueW1vdXMgb2JqZWN0LgorICAgIGZ1bmN0aW9uU2NvcGVP
YmplY3QgPSBuZXcgT2JqZWN0SW1wOworICAgIGNvbnRleHQtPnB1c2hTY29wZShmdW5jdGlvblNj
b3BlT2JqZWN0KTsKKyAgfQorCisgIEZ1bmN0aW9uSW1wICpmaW1wID0gbmV3IERlY2xhcmVkRnVu
Y3Rpb25JbXAoZXhlYywgaWRlbnQsIGJvZHkuZ2V0KCksIGNvbnRleHQtPnNjb3BlQ2hhaW4oKSk7
CiAgIFZhbHVlSW1wICpyZXQoZmltcCk7CiAgIFZhbHVlSW1wICpwcm90byA9IGV4ZWMtPmxleGlj
YWxJbnRlcnByZXRlcigpLT5idWlsdGluT2JqZWN0KCktPmNvbnN0cnVjdChleGVjLCBMaXN0Ojpl
bXB0eSgpKTsKICAgZmltcC0+cHV0KGV4ZWMsIHByb3RvdHlwZVByb3BlcnR5TmFtZSwgcHJvdG8s
IEludGVybmFsfERvbnREZWxldGUpOwpAQCAtMjEyNiw2ICsyMTM4LDExIEBAIFZhbHVlSW1wICpG
dW5jRXhwck5vZGU6OmV2YWx1YXRlKEV4ZWNTdGEKICAgZm9yKFBhcmFtZXRlck5vZGUgKnAgPSBw
YXJhbS5nZXQoKTsgcCAhPSAwTDsgcCA9IHAtPm5leHRQYXJhbSgpLCBwbGVuKyspCiAgICAgZmlt
cC0+YWRkUGFyYW1ldGVyKHAtPmlkZW50KCkpOwogCisgIGlmIChuYW1lZCkgeworICAgIGZ1bmN0
aW9uU2NvcGVPYmplY3QtPnB1dChleGVjLCBpZGVudCwgcmV0LCBJbnRlcm5hbCB8IFJlYWRPbmx5
IHwgKGNvbnRleHQtPmNvZGVUeXBlKCkgPT0gRXZhbENvZGUgPyAwIDogRG9udERlbGV0ZSkpOwor
ICAgIGNvbnRleHQtPnBvcFNjb3BlKCk7CisgIH0KKwogICByZXR1cm4gcmV0OwogfQogCkluZGV4
OiBKYXZhU2NyaXB0Q29yZS9ranMvbm9kZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jv
b3QvSmF2YVNjcmlwdENvcmUva2pzL25vZGVzLmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMjkK
ZGlmZiAtcCAtdSAtcjEuMjkgSmF2YVNjcmlwdENvcmUva2pzL25vZGVzLmgKLS0tIEphdmFTY3Jp
cHRDb3JlL2tqcy9ub2Rlcy5oCTI2IEF1ZyAyMDA1IDIzOjQ2OjI3IC0wMDAwCTEuMjkKKysrIEph
dmFTY3JpcHRDb3JlL2tqcy9ub2Rlcy5oCTI5IEF1ZyAyMDA1IDIxOjU3OjE1IC0wMDAwCkBAIC05
NzAsMTIgKzk3MCwxNCBAQCBuYW1lc3BhY2UgS0pTIHsKIAogICBjbGFzcyBGdW5jRXhwck5vZGUg
OiBwdWJsaWMgTm9kZSB7CiAgIHB1YmxpYzoKLSAgICBGdW5jRXhwck5vZGUoRnVuY3Rpb25Cb2R5
Tm9kZSAqYikgOiBwYXJhbSgwKSwgYm9keShiKSB7IH0KLSAgICBGdW5jRXhwck5vZGUoUGFyYW1l
dGVyTm9kZSAqcCwgRnVuY3Rpb25Cb2R5Tm9kZSAqYikKLSAgICAgIDogcGFyYW0ocC0+bmV4dCks
IGJvZHkoYikgeyBwLT5uZXh0ID0gMDsgfQorICAgIEZ1bmNFeHByTm9kZShjb25zdCBJZGVudGlm
aWVyICZpLCBGdW5jdGlvbkJvZHlOb2RlICpiKQorICAgICAgOiBpZGVudChpKSwgcGFyYW0oMCks
IGJvZHkoYikgeyB9CisgICAgRnVuY0V4cHJOb2RlKGNvbnN0IElkZW50aWZpZXIgJmksIFBhcmFt
ZXRlck5vZGUgKnAsIEZ1bmN0aW9uQm9keU5vZGUgKmIpCisgICAgICA6IGlkZW50KGkpLCBwYXJh
bShwLT5uZXh0KSwgYm9keShiKSB7IHAtPm5leHQgPSAwOyB9CiAgICAgVmFsdWVJbXAgKmV2YWx1
YXRlKEV4ZWNTdGF0ZSAqZXhlYyk7CiAgICAgdmlydHVhbCB2b2lkIHN0cmVhbVRvKFNvdXJjZVN0
cmVhbSAmcykgY29uc3Q7CiAgIHByaXZhdGU6CisgICAgSWRlbnRpZmllciBpZGVudDsKICAgICBr
eG1sY29yZTo6U2hhcmVkUHRyPFBhcmFtZXRlck5vZGU+IHBhcmFtOwogICAgIGt4bWxjb3JlOjpT
aGFyZWRQdHI8RnVuY3Rpb25Cb2R5Tm9kZT4gYm9keTsKICAgfTsKSW5kZXg6IG5hbWVkLWZ1bmN0
aW9uLWV4cHJlc3Npb24tZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KZGlmZiAtTnB1IG5hbWVkLWZ1
bmN0aW9uLWV4cHJlc3Npb24tZXhwZWN0ZWQudHh0Ci0tLSBuYW1lZC1mdW5jdGlvbi1leHByZXNz
aW9uLWV4cGVjdGVkLnR4dAkxIEphbiAxOTcwIDAwOjAwOjAwIC0wMDAwCisrKyBuYW1lZC1mdW5j
dGlvbi1leHByZXNzaW9uLWV4cGVjdGVkLnR4dAkyOSBBdWcgMjAwNSAyMToyNjo1OCAtMDAwMApA
QCAtMCwwICsxLDEwIEBACitCdWcgNDY5OCAtIGtqcyBkb2VzIG5vdCBhbGxvdyBuYW1lZCBmdW5j
dGlvbnMgaW4gZnVuY3Rpb24gZXhwcmVzc2lvbnMKK1lvdSBzaG91bGQgc2VlIDcgbGluZXMgd2l0
aCBPSyBpbiB0aGVtIGJlbG93IHRoaXMgbGluZS4KK09LCitPSworT0sKK09LCitPSworT0sKK09L
CisKSW5kZXg6IG5hbWVkLWZ1bmN0aW9uLWV4cHJlc3Npb24uaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CmRpZmYg
LU5wdSBuYW1lZC1mdW5jdGlvbi1leHByZXNzaW9uLmh0bWwKLS0tIG5hbWVkLWZ1bmN0aW9uLWV4
cHJlc3Npb24uaHRtbAkxIEphbiAxOTcwIDAwOjAwOjAwIC0wMDAwCisrKyBuYW1lZC1mdW5jdGlv
bi1leHByZXNzaW9uLmh0bWwJMjkgQXVnIDIwMDUgMjE6MTg6MjQgLTAwMDAKQEAgLTAsMCArMSw3
MSBAQAorPGh0bWw+DQorPGJvZHk+DQorQnVnIDQ2OTggLSBranMgZG9lcyBub3QgYWxsb3cgbmFt
ZWQgZnVuY3Rpb25zIGluIGZ1bmN0aW9uIGV4cHJlc3Npb25zPGJyPg0KK1lvdSBzaG91bGQgc2Vl
IDcgbGluZXMgd2l0aCBPSyBpbiB0aGVtIGJlbG93IHRoaXMgbGluZS48YnI+DQorPHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
IHsNCisJbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOw0KK30NCisNCitmdW5jdGlv
biBUZXN0KGxhbWJkYSwgZXhwZWN0KSB7DQorCXRyeSB7DQorCQl2YXIgdiA9IGxhbWJkYSgpOw0K
KwkJaWYodiA9PSBleHBlY3QpDQorCQkJZG9jdW1lbnQud3JpdGUoIk9LPGJyPiIpOw0KKwkJZWxz
ZQ0KKwkJCWRvY3VtZW50LndyaXRlKCJOT1QgT0s6ICIgKyB2ICsgIiAhPSAiICsgZXhwZWN0ICsg
Ijxicj4iKTsNCisJfQ0KKwljYXRjaChlKSB7IGRvY3VtZW50LndyaXRlKCJFUlJPUjogIiArIGUg
KyAiPGJyPiIpOyB9DQorfQ0KKw0KK1Rlc3QoZnVuY3Rpb24oKXsNCisJLy8gYW5vbnltb3VzIGZ1
bmN0aW9uIGV4cHJlc3Npb24NCisJdmFyIHggPSAoZnVuY3Rpb24oYSxiKXsgcmV0dXJuIGEgKyBi
OyB9KTsNCisJcmV0dXJuIHgoMSwyKTsNCit9LCAzKTsNCisNCitUZXN0KGZ1bmN0aW9uKCl7DQor
CS8vIG5hbWVkIGZ1bmN0aW9uIGV4cHJlc3Npb24NCisJdmFyIHggPSAoZnVuY3Rpb24gTmFtZWQo
YSxiKXsgcmV0dXJuIGEgKyBiOyB9KTsNCisJcmV0dXJuIHgoMiwzKTsNCit9LCA1KTsNCisNCitU
ZXN0KGZ1bmN0aW9uKCl7DQorCS8vIGV2YWwnZCBjb2RlIHNob3VsZCBiZSBhYmxlIHRvIGFjY2Vz
cyBzY29wZWQgdmFyaWFibGVzDQorCXZhciB6ID0gNjsNCisJdmFyIHggPSBldmFsKCIoZnVuY3Rp
b24oYSxiKXsgcmV0dXJuIGEgKyBiICsgejsgfSkiKTsNCisJcmV0dXJuIHgoMyw0KTsNCit9LCAx
Myk7DQorDQorVGVzdChmdW5jdGlvbigpew0KKwkvLyBldmFsJ2QgY29kZSArIHNlbGYtY2hlY2sN
CisJdmFyIHogPSAxMDsNCisJdmFyIHggPSBldmFsKCIoZnVuY3Rpb24gTmFtZWQoYSxiKXsgcmV0
dXJuICghIU5hbWVkKSA/IChhICsgYiArIHopIDogLTk5OTsgfSkiKTsNCisJcmV0dXJuIHgoNCw1
KTsNCit9LCAxOSk7DQorDQorVGVzdChmdW5jdGlvbigpew0KKwkvLyBuYW1lZCBmdW5jdGlvbiBl
eHByZXNzaW9ucyBhcmUgbm90IHNhdmVkIGluIHRoZSBjdXJyZW50IGNvbnRleHQNCisJKGZ1bmN0
aW9uIEZvbygpeyByZXR1cm4gMTsgfSk7DQorCXRyeSB7IEZvbygpOyB0aHJvdyAiRnVuY0V4cHIg
d2FzIHN0b3JlZCI7IH0gY2F0Y2goZSkgeyBpZih0eXBlb2YoZSk9PSJzdHJpbmciKSB0aHJvdyBl
OyB9DQorCXJldHVybiAxOw0KK30sIDEpOw0KKw0KK1Rlc3QoZnVuY3Rpb24oKXsNCisJLy8gcmVj
dXJzaW9uIGlzIHBvc3NpYmxlLCB0aG91Z2gNCisJdmFyIGN0ciA9IDM7DQorCXZhciB4ID0gKGZ1
bmN0aW9uIE5hbWVkKGEsYil7IGlmKC0tY3RyKSByZXR1cm4gMiAqIE5hbWVkKGEsYik7IGVsc2Ug
cmV0dXJuIGEgKyBiOyB9KTsNCisJcmV0dXJuIHgoNSw2KTsNCit9LCA0NCk7DQorDQorVGVzdChm
dW5jdGlvbigpew0KKwkvLyByZWdyZXNzaW9uIHRlc3Qgd2hlcmUga2pzIHJlZ2FyZGVkIGFuIGFu
b255bW91cyBmdW5jdGlvbiBkZWNsYXJhdGlvbiAod2hpY2ggaXMgaWxsZWdhbCkNCisJLy8gYXMg
YSBGdW5jdGlvbkV4cHINCisJdHJ5IHsNCisJCWV2YWwoImZ1bmN0aW9uKCl7IHJldHVybiAyOyB9
OyIpOw0KKwkJcmV0dXJuIDA7DQorCX0gY2F0Y2goZSkgeyByZXR1cm4gMTsgLyogc2hvdWxkIGJv
bWIgKi8gfQ0KK30sIDEpOw0KKzwvc2NyaXB0Pg0KKzwvYm9keT4NCis8L2h0bWw+ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>
<flag name="review"
          id="469"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>