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

Unified Diff: src/elements.cc

Issue 225623004: Callers of ElementsAccessor::AddElementsToFixedArray(), ElementsAccessor::HasElement() and Elements… (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: HasElement() polishing Created 6 years, 9 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/handles.h » ('j') | no next file with comments »
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 c2d31caeeaa07305bceb963bd1808866c2d8ac47..cda95774b066dbc8bcc1bf2c706aa6a6803aab17 100644
--- a/src/elements.cc
+++ b/src/elements.cc
@@ -622,15 +622,14 @@ class ElementsAccessorBase : public ElementsAccessor {
receiver, holder, key, backing_store) != ABSENT;
}
- virtual bool HasElement(Object* receiver,
- JSObject* holder,
- uint32_t key,
- FixedArrayBase* backing_store) V8_FINAL V8_OVERRIDE {
- if (backing_store == NULL) {
- backing_store = holder->elements();
- }
+ virtual bool HasElement(
+ Handle<Object> receiver,
+ Handle<JSObject> holder,
+ uint32_t key,
+ Handle<FixedArrayBase> backing_store) V8_FINAL V8_OVERRIDE {
+ // TODO(ishell): Handlify HasElementImpl().
return ElementsAccessorSubclass::HasElementImpl(
- receiver, holder, key, backing_store);
+ *receiver, *holder, key, *backing_store);
}
// TODO(ishell): Temporary wrapper until handlified.
@@ -830,11 +829,25 @@ class ElementsAccessorBase : public ElementsAccessor {
from, from_start, to, from_kind, to_start, packed_size, copy_size);
}
- MUST_USE_RESULT virtual MaybeObject* AddElementsToFixedArray(
+ virtual Handle<FixedArray> AddElementsToFixedArray(
+ Handle<Object> receiver,
+ Handle<JSObject> holder,
+ Handle<FixedArray> to,
+ Handle<FixedArrayBase> from) V8_FINAL V8_OVERRIDE {
+ CALL_HEAP_FUNCTION(to->GetIsolate(),
+ AddElementsToFixedArray(
+ receiver.is_null() ? NULL : *receiver,
+ holder.is_null() ? NULL : *holder,
+ *to,
+ *from),
+ FixedArray);
+ }
+
+ static MUST_USE_RESULT MaybeObject* AddElementsToFixedArray(
Object* receiver,
JSObject* holder,
FixedArray* to,
- FixedArrayBase* from) V8_FINAL V8_OVERRIDE {
+ FixedArrayBase* from) {
int len0 = to->length();
#ifdef ENABLE_SLOW_ASSERTS
if (FLAG_enable_slow_asserts) {
@@ -843,9 +856,6 @@ class ElementsAccessorBase : public ElementsAccessor {
}
}
#endif
- if (from == NULL) {
- from = holder->elements();
- }
// Optimize if 'other' is empty.
// We cannot optimize if 'this' is empty, as other may have holes.
@@ -922,9 +932,9 @@ class ElementsAccessorBase : public ElementsAccessor {
return index;
}
- virtual uint32_t GetKeyForIndex(FixedArrayBase* backing_store,
+ virtual uint32_t GetKeyForIndex(Handle<FixedArrayBase> backing_store,
uint32_t index) V8_FINAL V8_OVERRIDE {
- return ElementsAccessorSubclass::GetKeyForIndexImpl(backing_store, index);
+ return ElementsAccessorSubclass::GetKeyForIndexImpl(*backing_store, index);
}
private:
@@ -1668,6 +1678,7 @@ class DictionaryElementsAccessor
SeededNumberDictionary::kNotFound;
}
+ // TODO(ishell): Handlify when all callers are handlified.
static uint32_t GetKeyForIndexImpl(FixedArrayBase* store,
uint32_t index) {
SeededNumberDictionary* dict = SeededNumberDictionary::cast(store);
@@ -1825,6 +1836,7 @@ class SloppyArgumentsElementsAccessor : public ElementsAccessorBase<
ForArray(arguments)->GetCapacity(arguments));
}
+ // TODO(ishell): Handlify when all callers are handlified.
static uint32_t GetKeyForIndexImpl(FixedArrayBase* dict,
uint32_t index) {
return index;
« no previous file with comments | « src/elements.h ('k') | src/handles.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698