bug 486106 - restoring JS*Lookup API compatibility with fast arrays. r=shaver
This commit is contained in:
@@ -739,6 +739,23 @@ array_dropProperty(JSContext *cx, JSObject *obj, JSProperty *prop)
|
||||
#endif
|
||||
}
|
||||
|
||||
jsval
|
||||
js_GetDenseArrayElementValue(JSObject *obj, JSProperty *prop)
|
||||
{
|
||||
/* OBJ_IS_DENSE_ARRAY does not use the cx argument. */
|
||||
JS_ASSERT(OBJ_IS_DENSE_ARRAY(cx, obj));
|
||||
JS_ASSERT((void *) prop ==
|
||||
(void *) &(obj->fslots[JSSLOT_ARRAY_LOOKUP_HOLDER]));
|
||||
JS_ASSERT((jsval) prop->id == obj->fslots[JSSLOT_ARRAY_LOOKUP_HOLDER]);
|
||||
JS_ASSERT(JSVAL_IS_INT(prop->id));
|
||||
|
||||
jsint i = JSID_TO_INT(prop->id);
|
||||
JS_ASSERT(i >= 0);
|
||||
jsval v = obj->dslots[i];
|
||||
JS_ASSERT(v != JSVAL_HOLE);
|
||||
return v;
|
||||
}
|
||||
|
||||
static JSBool
|
||||
array_getProperty(JSContext *cx, JSObject *obj, jsid id, jsval *vp)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user