Index: src/objects-inl.h |
diff --git a/src/objects-inl.h b/src/objects-inl.h |
index a56792c5f517c0c5b729c5fa7e47acc2cf50c559..ec2ec10230f5a74d1d1fc3286e49a230486bc15c 100644 |
--- a/src/objects-inl.h |
+++ b/src/objects-inl.h |
@@ -6966,6 +6966,36 @@ void FlexibleBodyDescriptor<start_offset>::IterateBody(HeapObject* obj, |
} |
+template<class Derived, class TableType> |
+Object* OrderedHashTableIterator<Derived, TableType>::CurrentKey() { |
+ TableType* table(TableType::cast(this->table())); |
+ int index = Smi::cast(this->index())->value(); |
+ Object* key = table->KeyAt(index); |
+ ASSERT(!key->IsTheHole()); |
+ return key; |
+} |
+ |
+ |
+void JSSetIterator::PopulateValueArray(FixedArray* array) { |
+ array->set(0, CurrentKey()); |
+} |
+ |
+ |
+void JSMapIterator::PopulateValueArray(FixedArray* array) { |
+ array->set(0, CurrentKey()); |
+ array->set(1, CurrentValue()); |
+} |
+ |
+ |
+Object* JSMapIterator::CurrentValue() { |
+ OrderedHashMap* table(OrderedHashMap::cast(this->table())); |
+ int index = Smi::cast(this->index())->value(); |
+ Object* value = table->ValueAt(index); |
+ ASSERT(!value->IsTheHole()); |
+ return value; |
+} |
+ |
+ |
#undef TYPE_CHECKER |
#undef CAST_ACCESSOR |
#undef INT_ACCESSORS |