uint idx = index.asArrayIndex();
if (idx < UINT_MAX) {
- PropertyDescriptor *p = o->nonSparseArrayAtRef(idx);
+ PropertyDescriptor *p = o->nonSparseArrayAt(idx);
if (p && p->type == PropertyDescriptor::Data && p->isWritable()) {
p->value = value;
return;
return true;
}
- PropertyDescriptor *arrayAt(uint index) {
+ PropertyDescriptor *arrayAt(uint index) const {
if (!sparseArray) {
if (index >= arrayDataLen)
return 0;
}
}
- const PropertyDescriptor *nonSparseArrayAt(uint index) const {
+ PropertyDescriptor *nonSparseArrayAt(uint index) const {
if (sparseArray)
return 0;
if (index >= arrayDataLen)
return arrayData + index;
}
- PropertyDescriptor *nonSparseArrayAtRef(uint index) {
- if (sparseArray)
- return 0;
- if (index >= arrayDataLen)
- return 0;
- return arrayData + index;
- }
-
- const PropertyDescriptor *arrayAt(uint index) const {
- if (!sparseArray) {
- if (index >= arrayDataLen)
- return 0;
- return arrayData + index;
- } else {
- SparseArrayNode *n = sparseArray->findNode(index);
- if (!n)
- return 0;
- return arrayData + n->value;
- }
- }
-
void markArrayObjects() const;
PropertyDescriptor *front() {