Index: src/objects.cc |
diff --git a/src/objects.cc b/src/objects.cc |
index ca1c65065085d084378cde64d4a7d76550af67da..5b9c37278c13f92c731c640fd3950ffdb8a95566 100644 |
--- a/src/objects.cc |
+++ b/src/objects.cc |
@@ -10845,24 +10845,18 @@ static bool GetOldValue(Isolate* isolate, |
return true; |
} |
- |
-// TODO(rafaelw): Remove |delete_count| argument and rely on the length of |
-// of |deleted|. |
static void EnqueueSpliceRecord(Handle<JSArray> object, |
uint32_t index, |
Handle<JSArray> deleted, |
- uint32_t delete_count, |
uint32_t add_count) { |
Isolate* isolate = object->GetIsolate(); |
HandleScope scope(isolate); |
Handle<Object> index_object = isolate->factory()->NewNumberFromUint(index); |
- Handle<Object> delete_count_object = |
- isolate->factory()->NewNumberFromUint(delete_count); |
Handle<Object> add_count_object = |
isolate->factory()->NewNumberFromUint(add_count); |
Handle<Object> args[] = |
- { object, index_object, deleted, delete_count_object, add_count_object }; |
+ { object, index_object, deleted, add_count_object }; |
bool threw; |
Execution::Call(Handle<JSFunction>(isolate->observers_enqueue_splice()), |
@@ -10973,7 +10967,10 @@ MaybeObject* JSArray::SetElementsLength(Object* len) { |
} |
} |
- EnqueueSpliceRecord(self, index, deleted, delete_count, add_count); |
+ SetProperty(deleted, isolate->factory()->length_string(), |
adamk
2013/06/05 17:22:03
This can go inside the if (delete_count) block.
I
rafaelw
2013/06/06 18:44:41
Done.
|
+ isolate->factory()->NewNumberFromUint(delete_count), |
+ NONE, kNonStrictMode); |
+ EnqueueSpliceRecord(self, index, deleted, add_count); |
return *hresult; |
} |
@@ -12039,7 +12036,7 @@ MaybeObject* JSObject::SetElement(uint32_t index, |
old_length_handle); |
EndPerformSplice(Handle<JSArray>::cast(self)); |
Handle<JSArray> deleted = isolate->factory()->NewJSArray(0); |
- EnqueueSpliceRecord(Handle<JSArray>::cast(self), old_length, deleted, 0, |
+ EnqueueSpliceRecord(Handle<JSArray>::cast(self), old_length, deleted, |
new_length - old_length); |
} else { |
EnqueueChangeRecord(self, "new", name, old_value); |