bool isMapped = false;
uint numAccessors = qMin((int)context()->function->formalParameterCount(), context()->realArgumentCount);
if (pd && index < (uint)numAccessors)
- isMapped = arrayData()->attributes(index).isAccessor() && pd->getter() == context()->engine->argumentsAccessors[index].getter();
+ isMapped = arrayData()->attributes(index).isAccessor() &&
+ pd->getter()->d() == context()->engine->argumentsAccessors[index].getter()->d();
if (isMapped) {
Q_ASSERT(arrayData());
if (attrs->isEmpty())
break;
// check the property is not already defined earlier in the proto chain
- if (current->asObject() != object->asObject()) {
+ if (current->heapObject() != object->heapObject()) {
o = object->asObject();
n = *name;
bool shadowed = false;
- while (o != current->asObject()) {
+ while (o->asObject()->d() != current->heapObject()) {
if ((!!n && o->hasOwnProperty(n)) ||
(*index != UINT_MAX && o->hasOwnProperty(*index))) {
shadowed = true;
return Encode::null();
PropertyAttributes attrs;
+ // ### GC
Property p;
uint index;
Scope scope(object->engine());
if (!!name)
return name->asReturnedValue();
- assert(index < UINT_MAX);
+ Q_ASSERT(index < UINT_MAX);
return Encode(object->engine()->newString(QString::number(index)));
}