| Index: src/runtime/runtime-array.cc
|
| diff --git a/src/runtime/runtime-array.cc b/src/runtime/runtime-array.cc
|
| index 06cfa05fe40ba473e88c4261420a08065574a704..cc4a2e78a503c124c7ce7af19c11cf69b5a2542b 100644
|
| --- a/src/runtime/runtime-array.cc
|
| +++ b/src/runtime/runtime-array.cc
|
| @@ -1302,87 +1302,6 @@ RUNTIME_FUNCTION(Runtime_HasComplexElements) {
|
| }
|
|
|
|
|
| -// TODO(dcarney): remove this function when TurboFan supports it.
|
| -// Takes the object to be iterated over and the result of GetPropertyNamesFast
|
| -// Returns pair (cache_array, cache_type).
|
| -RUNTIME_FUNCTION_RETURN_PAIR(Runtime_ForInInit) {
|
| - SealHandleScope scope(isolate);
|
| - DCHECK(args.length() == 2);
|
| - // This simulates CONVERT_ARG_HANDLE_CHECKED for calls returning pairs.
|
| - // Not worth creating a macro atm as this function should be removed.
|
| - if (!args[0]->IsJSReceiver() || !args[1]->IsObject()) {
|
| - Object* error = isolate->ThrowIllegalOperation();
|
| - return MakePair(error, isolate->heap()->undefined_value());
|
| - }
|
| - Handle<JSReceiver> object = args.at<JSReceiver>(0);
|
| - Handle<Object> cache_type = args.at<Object>(1);
|
| - if (cache_type->IsMap()) {
|
| - // Enum cache case.
|
| - return MakePair(Map::cast(*cache_type)->EnumLength() != 0
|
| - ? object->map()->instance_descriptors()->GetEnumCache()
|
| - : isolate->heap()->empty_fixed_array(),
|
| - *cache_type);
|
| - } else {
|
| - // FixedArray case.
|
| - Smi* new_cache_type = Smi::FromInt(object->IsJSProxy() ? 0 : 1);
|
| - return MakePair(*Handle<FixedArray>::cast(cache_type), new_cache_type);
|
| - }
|
| -}
|
| -
|
| -
|
| -// TODO(dcarney): remove this function when TurboFan supports it.
|
| -RUNTIME_FUNCTION(Runtime_ForInCacheArrayLength) {
|
| - SealHandleScope shs(isolate);
|
| - DCHECK(args.length() == 2);
|
| - CONVERT_ARG_HANDLE_CHECKED(Object, cache_type, 0);
|
| - CONVERT_ARG_HANDLE_CHECKED(FixedArray, array, 1);
|
| - int length = 0;
|
| - if (cache_type->IsMap()) {
|
| - length = Map::cast(*cache_type)->EnumLength();
|
| - } else {
|
| - DCHECK(cache_type->IsSmi());
|
| - length = array->length();
|
| - }
|
| - return Smi::FromInt(length);
|
| -}
|
| -
|
| -
|
| -// TODO(dcarney): remove this function when TurboFan supports it.
|
| -// Takes (the object to be iterated over,
|
| -// cache_array from ForInInit,
|
| -// cache_type from ForInInit,
|
| -// the current index)
|
| -// Returns pair (array[index], needs_filtering).
|
| -RUNTIME_FUNCTION_RETURN_PAIR(Runtime_ForInNext) {
|
| - SealHandleScope scope(isolate);
|
| - DCHECK(args.length() == 4);
|
| - int32_t index;
|
| - // This simulates CONVERT_ARG_HANDLE_CHECKED for calls returning pairs.
|
| - // Not worth creating a macro atm as this function should be removed.
|
| - if (!args[0]->IsJSReceiver() || !args[1]->IsFixedArray() ||
|
| - !args[2]->IsObject() || !args[3]->ToInt32(&index)) {
|
| - Object* error = isolate->ThrowIllegalOperation();
|
| - return MakePair(error, isolate->heap()->undefined_value());
|
| - }
|
| - Handle<JSReceiver> object = args.at<JSReceiver>(0);
|
| - Handle<FixedArray> array = args.at<FixedArray>(1);
|
| - Handle<Object> cache_type = args.at<Object>(2);
|
| - // Figure out first if a slow check is needed for this object.
|
| - bool slow_check_needed = false;
|
| - if (cache_type->IsMap()) {
|
| - if (object->map() != Map::cast(*cache_type)) {
|
| - // Object transitioned. Need slow check.
|
| - slow_check_needed = true;
|
| - }
|
| - } else {
|
| - // No slow check needed for proxies.
|
| - slow_check_needed = Smi::cast(*cache_type)->value() == 1;
|
| - }
|
| - return MakePair(array->get(index),
|
| - isolate->heap()->ToBoolean(slow_check_needed));
|
| -}
|
| -
|
| -
|
| RUNTIME_FUNCTION(Runtime_IsArray) {
|
| SealHandleScope shs(isolate);
|
| DCHECK(args.length() == 1);
|
|
|