Reviewers: Jakob,
Message:
As just discussed offline, this CL seems to be subsumed by Toon's upcoming
CL,
so I'll simply close it...
Description:
Tiny cleanup of DescriptorArrays lookups
Nuked JSObject::LookupInDescriptor, it had only a single call site.
Removed copy-n-paste from Map::LookupInDescriptors.
[email protected]
Please review this at http://codereview.chromium.org/10693100/
SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge
Affected files:
M src/objects.h
M src/objects.cc
Index: src/objects.cc
diff --git a/src/objects.cc b/src/objects.cc
index
57483177854d3928d838967bf9c8a98adc7f6a54..39aba0b2b85608fb4e746c4bbe849d9baaf0774c
100644
--- a/src/objects.cc
+++ b/src/objects.cc
@@ -2177,32 +2177,15 @@ MaybeObject* JSObject::SetPropertyViaPrototypes(
}
-void JSObject::LookupInDescriptor(String* name, LookupResult* result) {
- DescriptorArray* descriptors = map()->instance_descriptors();
- int number = descriptors->SearchWithCache(name);
- if (number != DescriptorArray::kNotFound) {
- result->DescriptorResult(this, descriptors->GetDetails(number),
number);
- } else {
- result->NotFound();
- }
-}
-
-
void Map::LookupInDescriptors(JSObject* holder,
String* name,
LookupResult* result) {
DescriptorArray* descriptors = instance_descriptors();
- DescriptorLookupCache* cache =
- GetHeap()->isolate()->descriptor_lookup_cache();
- int number = cache->Lookup(descriptors, name);
- if (number == DescriptorLookupCache::kAbsent) {
- number = descriptors->Search(name);
- cache->Update(descriptors, name, number);
- }
- if (number != DescriptorArray::kNotFound) {
- result->DescriptorResult(holder, descriptors->GetDetails(number),
number);
- } else {
+ int number = descriptors->SearchWithCache(name);
+ if (number == DescriptorArray::kNotFound) {
result->NotFound();
+ } else {
+ result->DescriptorResult(holder, descriptors->GetDetails(number),
number);
}
}
@@ -2418,7 +2401,7 @@ void JSObject::LocalLookupRealNamedProperty(String*
name,
}
if (HasFastProperties()) {
- LookupInDescriptor(name, result);
+ map()->LookupInDescriptors(this, name, result);
if (result->IsFound()) {
// A property, a map transition or a null descriptor was found.
// We return all of these result types because
Index: src/objects.h
diff --git a/src/objects.h b/src/objects.h
index
274f1dccae9ec19980bea3be09cced6db9b4ac1c..5cf1430f5c137320eedad489f4ce0d52c71f5065
100644
--- a/src/objects.h
+++ b/src/objects.h
@@ -2212,7 +2212,6 @@ class JSObject: public JSReceiver {
Object* getter,
Object* setter,
PropertyAttributes attributes);
- void LookupInDescriptor(String* name, LookupResult* result);
// Returns the hidden properties backing store object, currently
// a StringDictionary, stored on this object.
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev