Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(855)

Unified Diff: src/objects.h

Issue 614883003: Preserve order of fields when doing slow-to-fast object migration. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Addressed comments Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | src/objects.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/objects.h
diff --git a/src/objects.h b/src/objects.h
index 103e93e8c4ac2547bea8167c190803000071ea6a..57fc05c82c9dc9745b8b2dcb23994a8f6ede6563 100644
--- a/src/objects.h
+++ b/src/objects.h
@@ -3582,6 +3582,11 @@ class Dictionary: public HashTable<Derived, Shape, Key> {
Handle<Object> value,
PropertyDetails details);
+ // Returns iteration indices array for the |dictionary|.
+ // Values are direct indices in the |HashTable| array.
+ static Handle<FixedArray> BuildIterationIndicesArray(
+ Handle<Derived> dictionary);
+
protected:
// Generic at put operation.
MUST_USE_RESULT static Handle<Derived> AtPut(
@@ -3598,7 +3603,9 @@ class Dictionary: public HashTable<Derived, Shape, Key> {
uint32_t hash);
// Generate new enumeration indices to avoid enumeration index overflow.
- static void GenerateNewEnumerationIndices(Handle<Derived> dictionary);
+ // Returns iteration indices array for the |dictionary|.
+ static Handle<FixedArray> GenerateNewEnumerationIndices(
+ Handle<Derived> dictionary);
static const int kMaxNumberKeyIndex = DerivedHashTable::kPrefixStartIndex;
static const int kNextEnumerationIndexIndex = kMaxNumberKeyIndex + 1;
};
@@ -3627,7 +3634,7 @@ class NameDictionary: public Dictionary<NameDictionary,
// Copies enumerable keys to preallocated fixed array.
void CopyEnumKeysTo(FixedArray* storage);
- inline static void DoGenerateNewEnumerationIndices(
+ inline static Handle<FixedArray> DoGenerateNewEnumerationIndices(
Handle<NameDictionary> dictionary);
// Find entry for key, otherwise return kNotFound. Optimized version of
« no previous file with comments | « no previous file | src/objects.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698