Index: src/builtins.cc |
diff --git a/src/builtins.cc b/src/builtins.cc |
index b73ed6b9810e37e9a64586c8598911be43a60a83..44c3220776a2e249e238188bc53a3f94c53a3db0 100644 |
--- a/src/builtins.cc |
+++ b/src/builtins.cc |
@@ -510,22 +510,6 @@ static bool ElementsAccessorHasElementWrapper( |
} |
-// TODO(ishell): Temporary wrapper until handlified. |
-static Handle<Object> ElementsAccessorGetWrapper( |
- Isolate* isolate, |
- ElementsAccessor* accessor, |
- Handle<Object> receiver, |
- Handle<JSObject> holder, |
- uint32_t key, |
- Handle<FixedArrayBase> backing_store = Handle<FixedArrayBase>::null()) { |
- CALL_HEAP_FUNCTION(isolate, |
- accessor->Get(*receiver, *holder, key, |
- backing_store.is_null() |
- ? *backing_store : NULL), |
- Object); |
-} |
- |
- |
BUILTIN(ArrayPop) { |
HandleScope scope(isolate); |
Handle<Object> receiver = args.receiver(); |
@@ -544,8 +528,8 @@ BUILTIN(ArrayPop) { |
Handle<Object> element; |
if (ElementsAccessorHasElementWrapper( |
accessor, array, array, new_length, elms_obj)) { |
- element = ElementsAccessorGetWrapper( |
- isolate, accessor, array, array, new_length, elms_obj); |
+ element = accessor->Get( |
+ array, array, new_length, elms_obj); |
} else { |
Handle<Object> proto(array->GetPrototype(), isolate); |
element = Object::GetElement(isolate, proto, len - 1); |
@@ -578,6 +562,7 @@ BUILTIN(ArrayShift) { |
// Get first element |
ElementsAccessor* accessor = array->GetElementsAccessor(); |
Handle<Object> first = accessor->Get(receiver, array, 0, elms_obj); |
+ RETURN_IF_EMPTY_HANDLE(isolate, first); |
if (first->IsTheHole()) { |
first = isolate->factory()->undefined_value(); |
} |