Object *o = object.asObject();
assert(o);
-
- PropertyDescriptor *pd = o->insertMember(name);
+ uint idx = name->asArrayIndex();
+ PropertyDescriptor *pd = (idx != UINT_MAX) ? o->arrayInsert(idx) : o->insertMember(name);
pd->value = val ? *val : Value::undefinedValue();
pd->type = PropertyDescriptor::Data;
pd->writable = PropertyDescriptor::Enabled;
Object *o = object.asObject();
assert(o);
- PropertyDescriptor pd;
- pd.get = getter ? getter->asFunctionObject() : 0;
- pd.set = setter ? setter->asFunctionObject() : 0;
- pd.type = PropertyDescriptor::Accessor;
- pd.writable = PropertyDescriptor::Undefined;
- pd.enumberable = PropertyDescriptor::Enabled;
- pd.configurable = PropertyDescriptor::Enabled;
- o->__defineOwnProperty__(ctx, name, &pd);
+ uint idx = name->asArrayIndex();
+ PropertyDescriptor *pd = (idx != UINT_MAX) ? o->arrayInsert(idx) : o->insertMember(name);
+ pd->get = getter ? getter->asFunctionObject() : 0;
+ pd->set = setter ? setter->asFunctionObject() : 0;
+ pd->type = PropertyDescriptor::Accessor;
+ pd->writable = PropertyDescriptor::Undefined;
+ pd->enumberable = PropertyDescriptor::Enabled;
+ pd->configurable = PropertyDescriptor::Enabled;
}
void __qmljs_increment(ExecutionContext *ctx, Value *result, const Value &value)