Changeset 4792 in webkit for trunk/JavaScriptCore/kjs/array_object.cpp
- Timestamp:
- Aug 8, 2003, 8:21:12 AM (22 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/kjs/array_object.cpp
r4639 r4792 71 71 } 72 72 73 // Rule from ECMA 15.2 about what an array index is.74 // Must exactly match string form of an unsigned integer, and be less than 2^32 - 1.75 bool getArrayIndex(const Identifier &propertyName, unsigned &index)76 {77 bool ok;78 unsigned i = propertyName.toStrictUInt32(&ok);79 if (!ok || i >= 0xFFFFFFFFU)80 return false;81 index = i;82 return true;83 }84 85 73 Value ArrayInstanceImp::get(ExecState *exec, const Identifier &propertyName) const 86 74 { … … 88 76 return Number(length); 89 77 90 unsigned index; 91 if (getArrayIndex(propertyName, index)) { 78 bool ok; 79 unsigned index = propertyName.toArrayIndex(&ok); 80 if (ok) { 92 81 if (index >= length) 93 82 return Undefined(); … … 121 110 } 122 111 123 unsigned index; 124 if (getArrayIndex(propertyName, index)) { 112 bool ok; 113 unsigned index = propertyName.toArrayIndex(&ok); 114 if (ok) { 125 115 put(exec, index, value, attr); 126 116 return; … … 154 144 return true; 155 145 156 unsigned index; 157 if (getArrayIndex(propertyName, index)) { 146 bool ok; 147 unsigned index = propertyName.toArrayIndex(&ok); 148 if (ok) { 158 149 if (index >= length) 159 150 return false; … … 262 253 while (it != sparseProperties.end()) { 263 254 Reference ref = it++; 264 unsigned index; 265 if (getArrayIndex(ref.getPropertyName(exec), index) && index > newLength) { 255 bool ok; 256 unsigned index = ref.getPropertyName(exec).toArrayIndex(&ok); 257 if (ok && index > newLength) { 266 258 ref.deleteValue(exec); 267 259 }
Note:
See TracChangeset
for help on using the changeset viewer.