Changeset 4639 in webkit for trunk/JavaScriptCore/kjs/array_object.cpp
- Timestamp:
- Jul 13, 2003, 2:40:45 PM (22 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/kjs/array_object.cpp
r4630 r4639 73 73 // Rule from ECMA 15.2 about what an array index is. 74 74 // Must exactly match string form of an unsigned integer, and be less than 2^32 - 1. 75 76 const unsigned maxUInt32 = 0xFFFFFFFFU; 77 const unsigned notArrayIndex = maxUInt32; 78 79 unsigned getArrayIndex(const Identifier &propertyName) 75 bool getArrayIndex(const Identifier &propertyName, unsigned &index) 80 76 { 81 77 bool ok; 82 unsigned index = propertyName.toStrictUInt32(&ok); 83 if (!ok || index >= maxUInt32) 84 return notArrayIndex; 85 return index; 78 unsigned i = propertyName.toStrictUInt32(&ok); 79 if (!ok || i >= 0xFFFFFFFFU) 80 return false; 81 index = i; 82 return true; 86 83 } 87 84 … … 91 88 return Number(length); 92 89 93 unsigned index = getArrayIndex(propertyName);94 if ( index != notArrayIndex) {90 unsigned index; 91 if (getArrayIndex(propertyName, index)) { 95 92 if (index >= length) 96 93 return Undefined(); … … 124 121 } 125 122 126 unsigned index = getArrayIndex(propertyName);127 if ( index != notArrayIndex) {123 unsigned index; 124 if (getArrayIndex(propertyName, index)) { 128 125 put(exec, index, value, attr); 129 126 return; … … 157 154 return true; 158 155 159 unsigned index = getArrayIndex(propertyName);160 if ( index != notArrayIndex) {156 unsigned index; 157 if (getArrayIndex(propertyName, index)) { 161 158 if (index >= length) 162 159 return false; … … 265 262 while (it != sparseProperties.end()) { 266 263 Reference ref = it++; 267 unsigned index = getArrayIndex(ref.getPropertyName(exec));268 if ( index != notArrayIndex&& index > newLength) {264 unsigned index; 265 if (getArrayIndex(ref.getPropertyName(exec), index) && index > newLength) { 269 266 ref.deleteValue(exec); 270 267 }
Note:
See TracChangeset
for help on using the changeset viewer.