Chromium Code Reviews| Index: src/objects-inl.h |
| diff --git a/src/objects-inl.h b/src/objects-inl.h |
| index 811b2f9c8776de4613a1ece5b2f62deef2415204..03ca6697dc99a5f8c19697ad7629c281a8ad8a3b 100644 |
| --- a/src/objects-inl.h |
| +++ b/src/objects-inl.h |
| @@ -1662,6 +1662,19 @@ MaybeObject* JSObject::EnsureCanContainElements(Object** objects, |
| } |
| +// TODO(ishell): Temporary wrapper until handlified. |
| +// static |
| +void JSObject::EnsureCanContainElements(Handle<JSObject> object, |
| + Handle<FixedArrayBase> elements, |
| + uint32_t length, |
| + EnsureElementsMode mode) { |
| + CALL_HEAP_FUNCTION_VOID(object->GetIsolate(), |
| + object->EnsureCanContainElements(*elements, |
| + length, |
| + mode)); |
| +} |
| + |
| + |
| MaybeObject* JSObject::EnsureCanContainElements(FixedArrayBase* elements, |
| uint32_t length, |
| EnsureElementsMode mode) { |
| @@ -6568,19 +6581,20 @@ bool JSArray::AllowsSetElementsLength() { |
| } |
| -MaybeObject* JSArray::SetContent(FixedArrayBase* storage) { |
| - MaybeObject* maybe_result = EnsureCanContainElements( |
| - storage, storage->length(), ALLOW_COPIED_DOUBLE_ELEMENTS); |
| - if (maybe_result->IsFailure()) return maybe_result; |
| - ASSERT((storage->map() == GetHeap()->fixed_double_array_map() && |
| - IsFastDoubleElementsKind(GetElementsKind())) || |
| - ((storage->map() != GetHeap()->fixed_double_array_map()) && |
| - (IsFastObjectElementsKind(GetElementsKind()) || |
| - (IsFastSmiElementsKind(GetElementsKind()) && |
| - FixedArray::cast(storage)->ContainsOnlySmisOrHoles())))); |
| - set_elements(storage); |
| - set_length(Smi::FromInt(storage->length())); |
| - return this; |
| +// static |
|
Yang
2014/03/20 15:26:38
We don't have the convention of denoting implement
Igor Sheludko
2014/03/21 08:25:12
Done.
|
| +void JSArray::SetContent(Handle<JSArray> array, |
| + Handle<FixedArrayBase> storage) { |
| + EnsureCanContainElements(array, storage, storage->length(), |
| + ALLOW_COPIED_DOUBLE_ELEMENTS); |
| + |
| + ASSERT((storage->map() == array->GetHeap()->fixed_double_array_map() && |
| + IsFastDoubleElementsKind(array->GetElementsKind())) || |
| + ((storage->map() != array->GetHeap()->fixed_double_array_map()) && |
| + (IsFastObjectElementsKind(array->GetElementsKind()) || |
| + (IsFastSmiElementsKind(array->GetElementsKind()) && |
| + Handle<FixedArray>::cast(storage)->ContainsOnlySmisOrHoles())))); |
| + array->set_elements(*storage); |
| + array->set_length(Smi::FromInt(storage->length())); |
| } |