| Index: src/builtins.cc
|
| diff --git a/src/builtins.cc b/src/builtins.cc
|
| index d9f8d15411ad91be9dd141cfe9d4534eeb9782ea..c1407a69db13ab308c56a1072e2308b6be06d32f 100644
|
| --- a/src/builtins.cc
|
| +++ b/src/builtins.cc
|
| @@ -576,7 +576,7 @@ BUILTIN(ArrayPush) {
|
|
|
| ElementsAccessor* accessor = array->GetElementsAccessor();
|
| MaybeObject* maybe_failure = accessor->CopyElements(
|
| - NULL, 0, new_elms, kind, 0,
|
| + NULL, 0, kind, new_elms, 0,
|
| ElementsAccessor::kCopyToEndAndInitializeToHole, elms_obj);
|
| ASSERT(!maybe_failure->IsFailure());
|
| USE(maybe_failure);
|
| @@ -623,7 +623,7 @@ BUILTIN(ArrayPush) {
|
|
|
| ElementsAccessor* accessor = array->GetElementsAccessor();
|
| MaybeObject* maybe_failure = accessor->CopyElements(
|
| - NULL, 0, new_elms, kind, 0,
|
| + NULL, 0, kind, new_elms, 0,
|
| ElementsAccessor::kCopyToEndAndInitializeToHole, elms_obj);
|
| ASSERT(!maybe_failure->IsFailure());
|
| USE(maybe_failure);
|
| @@ -785,7 +785,7 @@ BUILTIN(ArrayUnshift) {
|
| ElementsKind kind = array->GetElementsKind();
|
| ElementsAccessor* accessor = array->GetElementsAccessor();
|
| MaybeObject* maybe_failure = accessor->CopyElements(
|
| - NULL, 0, new_elms, kind, to_add,
|
| + NULL, 0, kind, new_elms, to_add,
|
| ElementsAccessor::kCopyToEndAndInitializeToHole, elms);
|
| ASSERT(!maybe_failure->IsFailure());
|
| USE(maybe_failure);
|
| @@ -934,9 +934,8 @@ BUILTIN(ArraySlice) {
|
| if (!maybe_array->To(&result_array)) return maybe_array;
|
|
|
| ElementsAccessor* accessor = object->GetElementsAccessor();
|
| - MaybeObject* maybe_failure =
|
| - accessor->CopyElements(NULL, k, result_array->elements(),
|
| - kind, 0, result_len, elms);
|
| + MaybeObject* maybe_failure = accessor->CopyElements(
|
| + NULL, k, kind, result_array->elements(), 0, result_len, elms);
|
| ASSERT(!maybe_failure->IsFailure());
|
| USE(maybe_failure);
|
|
|
| @@ -1037,9 +1036,9 @@ BUILTIN(ArraySplice) {
|
| if (actual_delete_count > 0) {
|
| AssertNoAllocation no_gc;
|
| ElementsAccessor* accessor = array->GetElementsAccessor();
|
| - MaybeObject* maybe_failure =
|
| - accessor->CopyElements(NULL, actual_start, result_array->elements(),
|
| - elements_kind, 0, actual_delete_count, elms_obj);
|
| + MaybeObject* maybe_failure = accessor->CopyElements(
|
| + NULL, actual_start, elements_kind, result_array->elements(),
|
| + 0, actual_delete_count, elms_obj);
|
| // Cannot fail since the origin and target array are of the same elements
|
| // kind.
|
| ASSERT(!maybe_failure->IsFailure());
|
| @@ -1105,12 +1104,12 @@ BUILTIN(ArraySplice) {
|
| if (actual_start > 0) {
|
| // Copy the part before actual_start as is.
|
| MaybeObject* maybe_failure = accessor->CopyElements(
|
| - NULL, 0, new_elms, kind, 0, actual_start, elms);
|
| + NULL, 0, kind, new_elms, 0, actual_start, elms);
|
| ASSERT(!maybe_failure->IsFailure());
|
| USE(maybe_failure);
|
| }
|
| MaybeObject* maybe_failure = accessor->CopyElements(
|
| - NULL, actual_start + actual_delete_count, new_elms, kind,
|
| + NULL, actual_start + actual_delete_count, kind, new_elms,
|
| actual_start + item_count,
|
| ElementsAccessor::kCopyToEndAndInitializeToHole, elms);
|
| ASSERT(!maybe_failure->IsFailure());
|
| @@ -1220,13 +1219,14 @@ BUILTIN(ArrayConcat) {
|
|
|
| int j = 0;
|
| FixedArrayBase* storage = result_array->elements();
|
| + ElementsAccessor* accessor = ElementsAccessor::ForKind(elements_kind);
|
| for (int i = 0; i < n_arguments; i++) {
|
| JSArray* array = JSArray::cast(args[i]);
|
| int len = Smi::cast(array->length())->value();
|
| + ElementsKind from_kind = array->GetElementsKind();
|
| if (len > 0) {
|
| - ElementsAccessor* accessor = array->GetElementsAccessor();
|
| MaybeObject* maybe_failure =
|
| - accessor->CopyElements(array, 0, storage, elements_kind, j, len);
|
| + accessor->CopyElements(array, 0, from_kind, storage, j, len);
|
| if (maybe_failure->IsFailure()) return maybe_failure;
|
| j += len;
|
| }
|
|
|