| 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();
|
| }
|
|
|