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

Unified Diff: src/elements.cc

Issue 649603003: Keyed stores to super with numeric keys. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Refactoring of GetElementAttributeWithInterceptor 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 | « src/elements.h ('k') | src/objects.h » ('j') | src/objects.h » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/elements.cc
diff --git a/src/elements.cc b/src/elements.cc
index abb046725c8a0923e2ccd45aaf9826ebb9eb0453..93f9c884d4cd8ae2987b6a40acc58f7708e25732 100644
--- a/src/elements.cc
+++ b/src/elements.cc
@@ -659,21 +659,17 @@ class ElementsAccessorBase : public ElementsAccessor {
? ABSENT : NONE;
}
- MUST_USE_RESULT virtual MaybeHandle<AccessorPair> GetAccessorPair(
- Handle<Object> receiver,
- Handle<JSObject> holder,
- uint32_t key,
+ MUST_USE_RESULT virtual MaybeHandle<Object> GetStructure(
+ Handle<Object> receiver, Handle<JSObject> holder, uint32_t key,
Handle<FixedArrayBase> backing_store) FINAL OVERRIDE {
- return ElementsAccessorSubclass::GetAccessorPairImpl(
- receiver, holder, key, backing_store);
+ return ElementsAccessorSubclass::GetStructureImpl(receiver, holder, key,
+ backing_store);
}
- MUST_USE_RESULT static MaybeHandle<AccessorPair> GetAccessorPairImpl(
- Handle<Object> receiver,
- Handle<JSObject> obj,
- uint32_t key,
+ MUST_USE_RESULT static MaybeHandle<Object> GetStructureImpl(
+ Handle<Object> receiver, Handle<JSObject> obj, uint32_t key,
Handle<FixedArrayBase> backing_store) {
- return MaybeHandle<AccessorPair>();
+ return MaybeHandle<Object>();
}
MUST_USE_RESULT virtual MaybeHandle<Object> SetLength(
@@ -1514,20 +1510,17 @@ class DictionaryElementsAccessor
return ABSENT;
}
- MUST_USE_RESULT static MaybeHandle<AccessorPair> GetAccessorPairImpl(
- Handle<Object> receiver,
- Handle<JSObject> obj,
- uint32_t key,
+ MUST_USE_RESULT static MaybeHandle<Object> GetStructureImpl(
+ Handle<Object> receiver, Handle<JSObject> obj, uint32_t key,
Handle<FixedArrayBase> store) {
Handle<SeededNumberDictionary> backing_store =
Handle<SeededNumberDictionary>::cast(store);
int entry = backing_store->FindEntry(key);
if (entry != SeededNumberDictionary::kNotFound &&
- backing_store->DetailsAt(entry).type() == CALLBACKS &&
- backing_store->ValueAt(entry)->IsAccessorPair()) {
- return handle(AccessorPair::cast(backing_store->ValueAt(entry)));
+ backing_store->DetailsAt(entry).type() == CALLBACKS) {
+ return handle(backing_store->ValueAt(entry), obj->GetIsolate());
}
- return MaybeHandle<AccessorPair>();
+ return MaybeHandle<Object>();
}
static bool HasElementImpl(Handle<Object> receiver,
@@ -1618,20 +1611,18 @@ class SloppyArgumentsElementsAccessor : public ElementsAccessorBase<
}
}
- MUST_USE_RESULT static MaybeHandle<AccessorPair> GetAccessorPairImpl(
- Handle<Object> receiver,
- Handle<JSObject> obj,
- uint32_t key,
+ MUST_USE_RESULT static MaybeHandle<Object> GetStructureImpl(
+ Handle<Object> receiver, Handle<JSObject> obj, uint32_t key,
Handle<FixedArrayBase> parameters) {
Handle<FixedArray> parameter_map = Handle<FixedArray>::cast(parameters);
Handle<Object> probe = GetParameterMapArg(obj, parameter_map, key);
if (!probe->IsTheHole()) {
- return MaybeHandle<AccessorPair>();
+ return MaybeHandle<Object>();
} else {
// If not aliased, check the arguments.
Handle<FixedArray> arguments(FixedArray::cast(parameter_map->get(1)));
- return ElementsAccessor::ForArray(arguments)->GetAccessorPair(
- receiver, obj, key, arguments);
+ return ElementsAccessor::ForArray(arguments)
+ ->GetStructure(receiver, obj, key, arguments);
}
}
« no previous file with comments | « src/elements.h ('k') | src/objects.h » ('j') | src/objects.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698