diff -r f9c4371d59d4 -r 7721042bdb67 src/ObjectVisitor.h --- a/src/ObjectVisitor.h Thu Dec 27 21:07:03 2012 -0800 +++ b/src/ObjectVisitor.h Fri Dec 28 17:13:51 2012 -0800 @@ -148,6 +148,11 @@ return array->objSize(map); } + size_t iterateDependentArray(Object *array) { + visitField(array, DependentArray::offsetOfRoot()); + return sizeof(DependentArray); + } + size_t iterateBox(Box *obj) { visitField(obj, Box::offsetOfType()); if (obj->type()->isTraceable()) @@ -248,7 +253,10 @@ return iterateString(obj); case MapKind_Array: - return Align(iterateArray(Array::cast(obj), ArrayMap::cast(map)), kObjectAlignment); + return iterateArray(Array::cast(obj), ArrayMap::cast(map)); + + case MapKind_DependentArray: + return iterateDependentArray(obj); case MapKind_Box: return iterateBox(Box::cast(obj)); @@ -340,7 +348,10 @@ return sizeof(Native); case MapKind_Array: - return Align(Array::cast(obj)->objSize(ArrayMap::cast(map)), kObjectAlignment); + return Array::cast(obj)->objSize(ArrayMap::cast(map)); + + case MapKind_DependentArray: + return sizeof(DependentArray), kObjectAlignment; case MapKind_Box: return sizeof(Box);