<?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>6234</bug_id>
          
          <creation_ts>2005-12-24 13:35:44 -0800</creation_ts>
          <short_desc>Can delete array index property incorrectly.</short_desc>
          <delta_ts>2005-12-27 03:05:09 -0800</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>Other</rep_platform>
          <op_sys>Linux</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="Maks Orlovich">maksim</reporter>
          <assigned_to name="Maciej Stachowiak">mjs</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>26493</commentid>
    <comment_count>0</comment_count>
    <who name="Maks Orlovich">maksim</who>
    <bug_when>2005-12-24 13:35:44 -0800</bug_when>
    <thetext>See the following testcase:  
var a = new Array();  
a[1]     = 4;  
a[&apos;1.0&apos;] = 5;  
delete a[&apos;1.0&apos;];  
alert(a[1]);  
  
here, the alert at the end should IMHO return 4 (which FFox, WinIE, and Konq 
3.5 all do), and not Undefined as JSC seems to produce, as the property 1.0 
being  removed is not an array index (toString(toUint32(&apos;1.0&apos;)) != &apos;1.0)  
  
I believe the following is the fix: 
--- array_object.cpp    (revision 489699)   
+++ array_object.cpp    (working copy)   
@@ -160,7 +160,7 @@ bool ArrayInstanceImp::deleteProperty(Ex   
     return false;   
   
   bool ok;   
-  uint32_t index = propertyName.toUInt32(&amp;ok);   
+  uint32_t index = propertyName.toArrayIndex(&amp;ok);   
   if (ok) {   
     if (index &gt;= length)   
       return true;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>26714</commentid>
    <comment_count>1</comment_count>
      <attachid>5297</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2005-12-27 03:04:09 -0800</bug_when>
    <thetext>Created attachment 5297
Maks&apos;s fix in patch form, with test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>26715</commentid>
    <comment_count>2</comment_count>
      <attachid>5297</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2005-12-27 03:04:46 -0800</bug_when>
    <thetext>Comment on attachment 5297
Maks&apos;s fix in patch form, with test case

r=me on Mak&apos;s fix</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>5297</attachid>
            <date>2005-12-27 03:04:09 -0800</date>
            <delta_ts>2005-12-27 03:04:46 -0800</delta_ts>
            <desc>Maks&apos;s fix in patch form, with test case</desc>
            <filename>array-float-delete.patch.txt</filename>
            <type>text/plain</type>
            <size>3383</size>
            <attacher name="Maciej Stachowiak">mjs</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zz
L3Jvb3QvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjkz
MQpkaWZmIC1wIC11IC1yMS45MzEgSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCi0tLSBKYXZhU2Ny
aXB0Q29yZS9DaGFuZ2VMb2cJMjcgRGVjIDIwMDUgMTA6MzU6NTQgLTAwMDAJMS45MzEKKysrIEph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkyNyBEZWMgMjAwNSAxMDo1MDoyMyAtMDAwMApAQCAtMSwz
ICsxLDE0IEBACisyMDA1LTEyLTI3ICBNYWtzIE9ybG92aWNoIDxtYWtzaW1Aa2RlLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBhbmQgbGFuZGVkIGJ5IE1hY2llai4KKworCS0gZml4ZWQgNjIzNDog
Q2FuIGRlbGV0ZSBhcnJheSBpbmRleCBwcm9wZXJ0eSBpbmNvcnJlY3RseS4KKwlodHRwOi8vYnVn
emlsbGEub3BlbmRhcndpbi5vcmcvc2hvd19idWcuY2dpP2lkPTYyMzQKKworICAgICAgICAqIGtq
cy9hcnJheV9vYmplY3QuY3BwOgorICAgICAgICAoQXJyYXlJbnN0YW5jZTo6ZGVsZXRlUHJvcGVy
dHkpOiB1c2UgdG9BcnJheUluZGV4IGluc3RlYWQgb2YgdG9VSW50MzIgd2hlbgorCWxvb2tpbmcg
Zm9yIGFycmF5IHByb3BlcnRpZXMuCisKIDIwMDUtMTItMjcgIEFuZGVycyBDYXJsc3NvbiAgPGFu
ZGVyc2NhQG1hYy5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFjaWVqLgpJbmRleDogSmF2
YVNjcmlwdENvcmUva2pzL2FycmF5X29iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2
cy9yb290L0phdmFTY3JpcHRDb3JlL2tqcy9hcnJheV9vYmplY3QuY3BwLHYKcmV0cmlldmluZyBy
ZXZpc2lvbiAxLjYwCmRpZmYgLXAgLXUgLXIxLjYwIEphdmFTY3JpcHRDb3JlL2tqcy9hcnJheV9v
YmplY3QuY3BwCi0tLSBKYXZhU2NyaXB0Q29yZS9ranMvYXJyYXlfb2JqZWN0LmNwcAkyMyBEZWMg
MjAwNSAwMTo1Mjo0MiAtMDAwMAkxLjYwCisrKyBKYXZhU2NyaXB0Q29yZS9ranMvYXJyYXlfb2Jq
ZWN0LmNwcAkyNyBEZWMgMjAwNSAxMDo1MDo0NyAtMDAwMApAQCAtMTYxLDcgKzE2MSw3IEBAIGJv
b2wgQXJyYXlJbnN0YW5jZTo6ZGVsZXRlUHJvcGVydHkoRXhlY1MKICAgICByZXR1cm4gZmFsc2U7
CiAgIAogICBib29sIG9rOwotICB1aW50MzJfdCBpbmRleCA9IHByb3BlcnR5TmFtZS50b1VJbnQz
Migmb2spOworICB1aW50MzJfdCBpbmRleCA9IHByb3BlcnR5TmFtZS50b0FycmF5SW5kZXgoJm9r
KTsKICAgaWYgKG9rKSB7CiAgICAgaWYgKGluZGV4ID49IGxlbmd0aCkKICAgICAgIHJldHVybiB0
cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9j
dnMvcm9vdC9MYXlvdXRUZXN0cy9DaGFuZ2VMb2csdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTg2
CmRpZmYgLXAgLXUgLXIxLjE4NiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKLS0tIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkyNiBEZWMgMjAwNSAyMzowNzowNCAtMDAwMAkxLjE4NgorKysgTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCTI3IERlYyAyMDA1IDEwOjUyOjM0IC0wMDAwCkBAIC0xLDMgKzEsMTIgQEAK
KzIwMDUtMTItMjcgIE1ha3MgT3Jsb3ZpY2ggPG1ha3NpbUBrZGUub3JnPgorCisgICAgICAgIFJl
dmlld2VkLCB0d2Vha2VkIGFuZCBsYW5kZWQgYnkgTWFjaWVqLgorCisJLSB0ZXN0IGNhc2UgZm9y
IDYyMzQ6IENhbiBkZWxldGUgYXJyYXkgaW5kZXggcHJvcGVydHkgaW5jb3JyZWN0bHkuCisJaHR0
cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9pZD02MjM0CisKKyAgICAg
ICAgKiBmYXN0L2pzL2FycmF5LWZsb2F0LWRlbGV0ZS5odG1sOiBBZGRlZC4KKwogMjAwNS0xMi0y
NiAgTWFjaWVqIFN0YWNob3dpYWsgIDxtanNAYXBwbGUuY29tPgogCiAgICAgICAgIFJ1YmJlciBz
dGFtcGVkIGJ5IEdlb2ZmLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9hcnJheS1mbG9hdC1k
ZWxldGUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiBmYXN0L2pzL2FycmF5LWZsb2F0LWRlbGV0
ZS5odG1sCmRpZmYgLU4gTGF5b3V0VGVzdHMvZmFzdC9qcy9hcnJheS1mbG9hdC1kZWxldGUuaHRt
bAotLS0gTGF5b3V0VGVzdHMvZmFzdC9qcy9hcnJheS1mbG9hdC1kZWxldGUuaHRtbAkxIEphbiAx
OTcwIDAwOjAwOjAwIC0wMDAwCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL2FycmF5LWZsb2F0LWRl
bGV0ZS5odG1sCTI3IERlYyAyMDA1IDEwOjU3OjU5IC0wMDAwCkBAIC0wLDAgKzEsMzcgQEAKKzxo
dG1sPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgY2hlY2tzIGZvciByZWdyZXNzaW9uIGFnYWluc3Qg
PGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9pZD02
MjM0Ij42MjM0OiBDYW4gZGVsZXRlIGFycmF5IGluZGV4IHByb3BlcnR5IGluY29ycmVjdGx5Ljwv
YT48L3A+Cis8cD5PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLjwvcD4KKworPHNjcmlwdCBzcmM9ImtkZS9yZXNvdXJjZXMvYmFzZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKK2Z1bmN0aW9uIHRlc3RQYXNzZWQobXNn
KQoreworICAgIGRvY3VtZW50LndyaXRlKCI8Yj48Zm9udCBjb2xvcj1ncmVlbj5QQVNTPC9mb250
PjwvYj4gIiArIG1zZyArICI8YnI+Iik7Cit9CisKK2Z1bmN0aW9uIHRlc3RGYWlsZWQobXNnKQor
eworICAgIGRvY3VtZW50LndyaXRlKCI8Yj48Zm9udCBjb2xvcj1yZWQ+RkFJTDwvZm9udD48L2I+
ICIgKyBtc2cgKyAiPGJyPiIpOworfQorCitmdW5jdGlvbiBkZWJ1ZyhhKSAKK3sgCisgICAgZG9j
dW1lbnQud3JpdGUoIjxwPiAiICsgYSArICI8L3A+Iik7IAorfQorPC9zY3JpcHQ+CisKKzxwcmU+
Cis8c2NyaXB0PgordmFyIGEgPSBuZXcgQXJyYXkoKTsgIAorYVsxXSAgICAgPSAiYmVmb3JlIjsg
IAorYVsnMS4wJ10gPSAiYWZ0ZXIiOyAgCitkZWxldGUgYVsnMS4wJ107ICAKK3Nob3VsZEJlKCJh
WzFdIiwgJyJiZWZvcmUiJyk7Cis8L3NjcmlwdD4KKzwvcHJlPgorCis8L2JvZHk+ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>
<flag name="review"
          id="1108"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
      

    </bug>

</bugzilla>