| Index: src/elements.cc
|
| diff --git a/src/elements.cc b/src/elements.cc
|
| index db97133ff34656b4e7c078f1f61f7c20b4c0c3f1..b0761a0481f3ef14bc408f3b6ab33c6480470b40 100644
|
| --- a/src/elements.cc
|
| +++ b/src/elements.cc
|
| @@ -162,11 +162,11 @@ static bool HasKey(Handle<FixedArray> array, Handle<Object> key_handle) {
|
| }
|
|
|
|
|
| -static Handle<Object> ThrowArrayLengthRangeError(Isolate* isolate) {
|
| - isolate->Throw(
|
| - *isolate->factory()->NewRangeError("invalid_array_length",
|
| - HandleVector<Object>(NULL, 0)));
|
| - return Handle<Object>();
|
| +MUST_USE_RESULT
|
| +static MaybeHandle<Object> ThrowArrayLengthRangeError(Isolate* isolate) {
|
| + return isolate->Throw<Object>(
|
| + isolate->factory()->NewRangeError("invalid_array_length",
|
| + HandleVector<Object>(NULL, 0)));
|
| }
|
|
|
|
|
| @@ -727,14 +727,14 @@ class ElementsAccessorBase : public ElementsAccessor {
|
| return MaybeHandle<AccessorPair>();
|
| }
|
|
|
| - MUST_USE_RESULT virtual Handle<Object> SetLength(
|
| + MUST_USE_RESULT virtual MaybeHandle<Object> SetLength(
|
| Handle<JSArray> array,
|
| Handle<Object> length) V8_FINAL V8_OVERRIDE {
|
| return ElementsAccessorSubclass::SetLengthImpl(
|
| array, length, handle(array->elements()));
|
| }
|
|
|
| - MUST_USE_RESULT static Handle<Object> SetLengthImpl(
|
| + MUST_USE_RESULT static MaybeHandle<Object> SetLengthImpl(
|
| Handle<JSObject> obj,
|
| Handle<Object> length,
|
| Handle<FixedArrayBase> backing_store);
|
| @@ -1364,7 +1364,7 @@ class TypedElementsAccessor
|
| ? FIELD : NONEXISTENT;
|
| }
|
|
|
| - MUST_USE_RESULT static Handle<Object> SetLengthImpl(
|
| + MUST_USE_RESULT static MaybeHandle<Object> SetLengthImpl(
|
| Handle<JSObject> obj,
|
| Handle<Object> length,
|
| Handle<FixedArrayBase> backing_store) {
|
| @@ -1749,7 +1749,7 @@ class SloppyArgumentsElementsAccessor : public ElementsAccessorBase<
|
| }
|
| }
|
|
|
| - MUST_USE_RESULT static Handle<Object> SetLengthImpl(
|
| + MUST_USE_RESULT static MaybeHandle<Object> SetLengthImpl(
|
| Handle<JSObject> obj,
|
| Handle<Object> length,
|
| Handle<FixedArrayBase> parameter_map) {
|
| @@ -1867,8 +1867,9 @@ void ElementsAccessor::TearDown() {
|
|
|
|
|
| template <typename ElementsAccessorSubclass, typename ElementsKindTraits>
|
| -MUST_USE_RESULT Handle<Object> ElementsAccessorBase<ElementsAccessorSubclass,
|
| - ElementsKindTraits>::
|
| +MUST_USE_RESULT
|
| +MaybeHandle<Object> ElementsAccessorBase<ElementsAccessorSubclass,
|
| + ElementsKindTraits>::
|
| SetLengthImpl(Handle<JSObject> obj,
|
| Handle<Object> length,
|
| Handle<FixedArrayBase> backing_store) {
|
| @@ -1883,7 +1884,7 @@ MUST_USE_RESULT Handle<Object> ElementsAccessorBase<ElementsAccessorSubclass,
|
| if (value >= 0) {
|
| Handle<Object> new_length = ElementsAccessorSubclass::
|
| SetLengthWithoutNormalize(backing_store, array, smi_length, value);
|
| - RETURN_IF_EMPTY_HANDLE_VALUE(isolate, new_length, new_length);
|
| + ASSERT(!new_length.is_null());
|
|
|
| // even though the proposed length was a smi, new_length could
|
| // still be a heap number because SetLengthWithoutNormalize doesn't
|
| @@ -1910,11 +1911,11 @@ MUST_USE_RESULT Handle<Object> ElementsAccessorBase<ElementsAccessorSubclass,
|
| if (length->ToArrayIndex(&value)) {
|
| Handle<SeededNumberDictionary> dictionary =
|
| JSObject::NormalizeElements(array);
|
| - RETURN_IF_EMPTY_HANDLE_VALUE(isolate, dictionary, dictionary);
|
| + ASSERT(!dictionary.is_null());
|
|
|
| Handle<Object> new_length = DictionaryElementsAccessor::
|
| SetLengthWithoutNormalize(dictionary, array, length, value);
|
| - RETURN_IF_EMPTY_HANDLE_VALUE(isolate, new_length, new_length);
|
| + ASSERT(!new_length.is_null());
|
|
|
| ASSERT(new_length->IsNumber());
|
| array->set_length(*new_length);
|
| @@ -1933,8 +1934,8 @@ MUST_USE_RESULT Handle<Object> ElementsAccessorBase<ElementsAccessorSubclass,
|
| }
|
|
|
|
|
| -Handle<Object> ArrayConstructInitializeElements(Handle<JSArray> array,
|
| - Arguments* args) {
|
| +MaybeHandle<Object> ArrayConstructInitializeElements(Handle<JSArray> array,
|
| + Arguments* args) {
|
| // Optimize the case where there is one argument and the argument is a
|
| // small smi.
|
| if (args->length() == 1) {
|
|
|