<?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>3965</bug_id>
          
          <creation_ts>2005-07-12 11:12:47 -0700</creation_ts>
          <short_desc>IndexToNameMap::IndexToNameMap has n-squared behavior</short_desc>
          <delta_ts>2008-09-21 23:15:58 -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>412</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="Geoffrey Garen">ggaren</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>darin</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>ian</cc>
    
    <cc>zwarich</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>14450</commentid>
    <comment_count>0</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2005-07-12 11:12:47 -0700</bug_when>
    <thetext>For each argument, it searches through each argument to check for duplicate parameter names.

A better solution would move FunctionImp::getParameterName into IndexToNameMap::IndexToNameMap, 
and use a hash table to keep track of already seen parameter names --&gt; better modularity and O(1) 
behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>75866</commentid>
    <comment_count>1</comment_count>
      <attachid>20224</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2008-03-30 15:36:52 -0700</bug_when>
    <thetext>Created attachment 20224
Sample SunSpider test

SunSpider-0.9 doesn&apos;t use the &quot;arguments&quot; object from within a function, so it can&apos;t be used to test the performance of the IndexToNameMap constructor code.

This is a test that may be dropped into the SunSpider directory to be run.  I&apos;m sure it doesn&apos;t mimic any real-world usage of arguments, but it does exercise the code in the IndexToNameMap constructor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>76432</commentid>
    <comment_count>2</comment_count>
      <attachid>20370</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2008-04-06 11:52:28 -0700</bug_when>
    <thetext>Created attachment 20370
Script to generate function args test suite

This script generates tests for use with SunSpider.  It tests passing 0 to 10 arguments to eleven different functions, each of which have 0 to 10 arguments, for a total of 121 tests.

The script should be run from the checked-out SunSpider directory, and generates files of the form:

function-args-M-N.js

where &quot;M&quot; is the number arguments the function is defined with and N is the number of arguments actually passed to that function.

Note that the script outputs a list of function names to stdout, which need to be added to tests/LIST before running SunSpider:

$ ./sunspider --shell ../WebKitBuild/Release/testkjs --tests function-args --run 25</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>92054</commentid>
    <comment_count>3</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2008-09-21 18:50:00 -0700</bug_when>
    <thetext>See Bug 20815 Comment #7.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>92064</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-09-21 19:32:30 -0700</bug_when>
    <thetext>I eliminated IndexToNameMap in http://trac.webkit.org/changeset/36743 and I believe this bug is fixed now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>92085</commentid>
    <comment_count>5</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2008-09-21 23:15:58 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; I eliminated IndexToNameMap in http://trac.webkit.org/changeset/36743 and I
&gt; believe this bug is fixed now.

See Bug 20972.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>20224</attachid>
            <date>2008-03-30 15:36:52 -0700</date>
            <delta_ts>2008-04-06 11:52:28 -0700</delta_ts>
            <desc>Sample SunSpider test</desc>
            <filename>function-args.js</filename>
            <type>text/javascript</type>
            <size>3374</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">dmFyIGFyZ3M7CnZhciBhcmdDb3VudDsKCmZ1bmN0aW9uIGYwKCkKewogICAgYXJnQ291bnQgPSBh
cmd1bWVudHMubGVuZ3RoOwogICAgYXJncyA9IGFyZ3VtZW50czsKfQoKZnVuY3Rpb24gZjEocSkK
ewogICAgYXJnQ291bnQgPSBhcmd1bWVudHMubGVuZ3RoOwogICAgYXJncyA9IGFyZ3VtZW50czsK
fQoKZnVuY3Rpb24gZjIocSwgcikKewogICAgYXJnQ291bnQgPSBhcmd1bWVudHMubGVuZ3RoOwog
ICAgYXJncyA9IGFyZ3VtZW50czsKfQoKZnVuY3Rpb24gZjMocSwgciwgcykKewogICAgYXJnQ291
bnQgPSBhcmd1bWVudHMubGVuZ3RoOwogICAgYXJncyA9IGFyZ3VtZW50czsKfQoKZnVuY3Rpb24g
ZjQocSwgciwgcywgdCkKewogICAgYXJnQ291bnQgPSBhcmd1bWVudHMubGVuZ3RoOwogICAgYXJn
cyA9IGFyZ3VtZW50czsKfQoKZnVuY3Rpb24gZjUocSwgciwgcywgdCwgdSkKewogICAgYXJnQ291
bnQgPSBhcmd1bWVudHMubGVuZ3RoOwogICAgYXJncyA9IGFyZ3VtZW50czsKfQoKZnVuY3Rpb24g
ZjYocSwgciwgcywgdCwgdSwgdikKewogICAgYXJnQ291bnQgPSBhcmd1bWVudHMubGVuZ3RoOwog
ICAgYXJncyA9IGFyZ3VtZW50czsKfQoKZnVuY3Rpb24gZjcocSwgciwgcywgdCwgdSwgdiwgdykK
ewogICAgYXJnQ291bnQgPSBhcmd1bWVudHMubGVuZ3RoOwogICAgYXJncyA9IGFyZ3VtZW50czsK
fQoKZnVuY3Rpb24gZjgocSwgciwgcywgdCwgdSwgdiwgdywgeCkKewogICAgYXJnQ291bnQgPSBh
cmd1bWVudHMubGVuZ3RoOwogICAgYXJncyA9IGFyZ3VtZW50czsKfQoKZnVuY3Rpb24gZjkocSwg
ciwgcywgdCwgdSwgdiwgdywgeCwgeSkKewogICAgYXJnQ291bnQgPSBhcmd1bWVudHMubGVuZ3Ro
OwogICAgYXJncyA9IGFyZ3VtZW50czsKfQoKZnVuY3Rpb24gZjEwKHEsIHIsIHMsIHQsIHUsIHYs
IHcsIHgsIHksIHopCnsKICAgIGFyZ0NvdW50ID0gYXJndW1lbnRzLmxlbmd0aDsKICAgIGFyZ3Mg
PSBhcmd1bWVudHM7Cn0KCmZvciAodmFyIGkgPSAwOyBpIDwgMzAwOyBpKyspIHsKCmYwKCk7CmYw
KDEpOwpmMCgxLCAyKTsKZjAoMSwgMiwgMyk7CmYwKDEsIDIsIDMsIDQpOwpmMCgxLCAyLCAzLCA0
LCA1KTsKZjAoMSwgMiwgMywgNCwgNSwgNik7CmYwKDEsIDIsIDMsIDQsIDUsIDYsIDcpOwpmMCgx
LCAyLCAzLCA0LCA1LCA2LCA3LCA4KTsKZjAoMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSk7CmYw
KDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwKTsKCmYxKCk7CmYxKDEpOwpmMSgxLCAyKTsK
ZjEoMSwgMiwgMyk7CmYxKDEsIDIsIDMsIDQpOwpmMSgxLCAyLCAzLCA0LCA1KTsKZjEoMSwgMiwg
MywgNCwgNSwgNik7CmYxKDEsIDIsIDMsIDQsIDUsIDYsIDcpOwpmMSgxLCAyLCAzLCA0LCA1LCA2
LCA3LCA4KTsKZjEoMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSk7CmYxKDEsIDIsIDMsIDQsIDUs
IDYsIDcsIDgsIDksIDEwKTsKCmYyKCk7CmYyKDEpOwpmMigxLCAyKTsKZjIoMSwgMiwgMyk7CmYy
KDEsIDIsIDMsIDQpOwpmMigxLCAyLCAzLCA0LCA1KTsKZjIoMSwgMiwgMywgNCwgNSwgNik7CmYy
KDEsIDIsIDMsIDQsIDUsIDYsIDcpOwpmMigxLCAyLCAzLCA0LCA1LCA2LCA3LCA4KTsKZjIoMSwg
MiwgMywgNCwgNSwgNiwgNywgOCwgOSk7CmYyKDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEw
KTsKCmYzKCk7CmYzKDEpOwpmMygxLCAyKTsKZjMoMSwgMiwgMyk7CmYzKDEsIDIsIDMsIDQpOwpm
MygxLCAyLCAzLCA0LCA1KTsKZjMoMSwgMiwgMywgNCwgNSwgNik7CmYzKDEsIDIsIDMsIDQsIDUs
IDYsIDcpOwpmMygxLCAyLCAzLCA0LCA1LCA2LCA3LCA4KTsKZjMoMSwgMiwgMywgNCwgNSwgNiwg
NywgOCwgOSk7CmYzKDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwKTsKCmY0KCk7CmY0KDEp
OwpmNCgxLCAyKTsKZjQoMSwgMiwgMyk7CmY0KDEsIDIsIDMsIDQpOwpmNCgxLCAyLCAzLCA0LCA1
KTsKZjQoMSwgMiwgMywgNCwgNSwgNik7CmY0KDEsIDIsIDMsIDQsIDUsIDYsIDcpOwpmNCgxLCAy
LCAzLCA0LCA1LCA2LCA3LCA4KTsKZjQoMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSk7CmY0KDEs
IDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwKTsKCmY1KCk7CmY1KDEpOwpmNSgxLCAyKTsKZjUo
MSwgMiwgMyk7CmY1KDEsIDIsIDMsIDQpOwpmNSgxLCAyLCAzLCA0LCA1KTsKZjUoMSwgMiwgMywg
NCwgNSwgNik7CmY1KDEsIDIsIDMsIDQsIDUsIDYsIDcpOwpmNSgxLCAyLCAzLCA0LCA1LCA2LCA3
LCA4KTsKZjUoMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSk7CmY1KDEsIDIsIDMsIDQsIDUsIDYs
IDcsIDgsIDksIDEwKTsKCmY2KCk7CmY2KDEpOwpmNigxLCAyKTsKZjYoMSwgMiwgMyk7CmY2KDEs
IDIsIDMsIDQpOwpmNigxLCAyLCAzLCA0LCA1KTsKZjYoMSwgMiwgMywgNCwgNSwgNik7CmY2KDEs
IDIsIDMsIDQsIDUsIDYsIDcpOwpmNigxLCAyLCAzLCA0LCA1LCA2LCA3LCA4KTsKZjYoMSwgMiwg
MywgNCwgNSwgNiwgNywgOCwgOSk7CmY2KDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwKTsK
CmY3KCk7CmY3KDEpOwpmNygxLCAyKTsKZjcoMSwgMiwgMyk7CmY3KDEsIDIsIDMsIDQpOwpmNygx
LCAyLCAzLCA0LCA1KTsKZjcoMSwgMiwgMywgNCwgNSwgNik7CmY3KDEsIDIsIDMsIDQsIDUsIDYs
IDcpOwpmNygxLCAyLCAzLCA0LCA1LCA2LCA3LCA4KTsKZjcoMSwgMiwgMywgNCwgNSwgNiwgNywg
OCwgOSk7CmY3KDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwKTsKCmY4KCk7CmY4KDEpOwpm
OCgxLCAyKTsKZjgoMSwgMiwgMyk7CmY4KDEsIDIsIDMsIDQpOwpmOCgxLCAyLCAzLCA0LCA1KTsK
ZjgoMSwgMiwgMywgNCwgNSwgNik7CmY4KDEsIDIsIDMsIDQsIDUsIDYsIDcpOwpmOCgxLCAyLCAz
LCA0LCA1LCA2LCA3LCA4KTsKZjgoMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSk7CmY4KDEsIDIs
IDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwKTsKCmY5KCk7CmY5KDEpOwpmOSgxLCAyKTsKZjkoMSwg
MiwgMyk7CmY5KDEsIDIsIDMsIDQpOwpmOSgxLCAyLCAzLCA0LCA1KTsKZjkoMSwgMiwgMywgNCwg
NSwgNik7CmY5KDEsIDIsIDMsIDQsIDUsIDYsIDcpOwpmOSgxLCAyLCAzLCA0LCA1LCA2LCA3LCA4
KTsKZjkoMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSk7CmY5KDEsIDIsIDMsIDQsIDUsIDYsIDcs
IDgsIDksIDEwKTsKCmYxMCgpOwpmMTAoMSk7CmYxMCgxLCAyKTsKZjEwKDEsIDIsIDMpOwpmMTAo
MSwgMiwgMywgNCk7CmYxMCgxLCAyLCAzLCA0LCA1KTsKZjEwKDEsIDIsIDMsIDQsIDUsIDYpOwpm
MTAoMSwgMiwgMywgNCwgNSwgNiwgNyk7CmYxMCgxLCAyLCAzLCA0LCA1LCA2LCA3LCA4KTsKZjEw
KDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDkpOwpmMTAoMSwgMiwgMywgNCwgNSwgNiwgNywgOCwg
OSwgMTApOwoKfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>20370</attachid>
            <date>2008-04-06 11:52:28 -0700</date>
            <delta_ts>2008-04-06 11:52:28 -0700</delta_ts>
            <desc>Script to generate function args test suite</desc>
            <filename>generate-function-args-tests.pl</filename>
            <type>text/plain</type>
            <size>568</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">IyEvdXNyL2Jpbi9wZXJsIC13Cgp1c2Ugc3RyaWN0OwoKJFsgPSAxOwoKZm9yIG15ICRpICgwLi4x
MCkgewogICAgZm9yIG15ICRqICgwLi4xMCkgewogICAgICAgIG9wZW4oRklMRSwgIj4iLCAidGVz
dHMvZnVuY3Rpb24tYXJncy0kaS0kai5qcyIpIG9yIGRpZSAiJCEiOwogICAgICAgIG15ICRhcmdz
ID0gJGkgPT0gMCA/ICIiIDogam9pbigiLCAiLCAoJ2EnLi4naicpWzEuLiRpXSk7CiAgICAgICAg
bXkgJHZhbHVlcyA9ICRqID09IDAgPyAiIiA6IGpvaW4oIiwgIiwgKDEuLjEwKVsxLi4kal0pOwog
ICAgICAgIHByaW50IEZJTEUgPDxFTkQ7CnZhciBhcmdzOwp2YXIgYXJnQ291bnQ7CgpmdW5jdGlv
biBmJHtpfSgke2FyZ3N9KQp7CiAgICBhcmdDb3VudCA9IGFyZ3VtZW50cy5sZW5ndGg7CiAgICBh
cmdzID0gYXJndW1lbnRzOwp9Cgpmb3IgKHZhciBpID0gMDsgaSA8IDMwMDAwOyBpKyspIHsKICAg
ZiR7aX0oJHt2YWx1ZXN9KTsKfQpFTkQKICAgICAgICBwcmludCBTVERPVVQgImZ1bmN0aW9uLWFy
Z3MtJGktJGpcbiI7CiAgICAgICAgY2xvc2UoRklMRSkgb3IgZGllICIkISI7CiAgICB9Cn0KCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>