Chromium Code Reviews| Index: src/elements.cc |
| diff --git a/src/elements.cc b/src/elements.cc |
| index c8436b5cd684c84b01be76507a7a1bebc79fa1bf..adcc237d08d142ca3e7849b479ef7c8da7e19734 100644 |
| --- a/src/elements.cc |
| +++ b/src/elements.cc |
| @@ -2967,31 +2967,17 @@ void ElementsAccessor::TearDown() { |
| elements_accessors_ = NULL; |
| } |
| - |
| Handle<JSArray> ElementsAccessor::Concat(Isolate* isolate, Arguments* args, |
| - uint32_t concat_size) { |
| - uint32_t result_len = 0; |
| - bool has_raw_doubles = false; |
| + uint32_t concat_size, |
| + uint32_t result_len) { |
| ElementsKind result_elements_kind = GetInitialFastElementsKind(); |
| + bool has_raw_doubles = false; |
| { |
| DisallowHeapAllocation no_gc; |
| bool is_holey = false; |
| - // Iterate through all the arguments performing checks |
| - // and calculating total length. |
| for (uint32_t i = 0; i < concat_size; i++) { |
| - JSArray* array = JSArray::cast((*args)[i]); |
| - uint32_t len = 0; |
| - array->length()->ToArrayLength(&len); |
| - |
| - // We shouldn't overflow when adding another len. |
| - const int kHalfOfMaxInt = 1 << (kBitsPerInt - 2); |
| - STATIC_ASSERT(FixedArray::kMaxLength < kHalfOfMaxInt); |
| - USE(kHalfOfMaxInt); |
| - result_len += len; |
| - DCHECK(0 <= result_len); |
| - DCHECK(result_len <= FixedDoubleArray::kMaxLength); |
| - |
| - ElementsKind arg_kind = array->GetElementsKind(); |
| + Object* arg = (*args)[i]; |
| + ElementsKind arg_kind = JSArray::cast(arg)->map()->elements_kind(); |
|
Toon Verwaest
2016/03/31 08:09:46
JSArray::cast(arg)->GetElementsKind()
|
| has_raw_doubles = has_raw_doubles || IsFastDoubleElementsKind(arg_kind); |
| is_holey = is_holey || IsFastHoleyElementsKind(arg_kind); |
| result_elements_kind = |
| @@ -3029,7 +3015,7 @@ Handle<JSArray> ElementsAccessor::Concat(Isolate* isolate, Arguments* args, |
| insertion_index += len; |
| } |
| - DCHECK_EQ(insertion_index, result_len); |
| + DCHECK(insertion_index == result_len); |
|
Toon Verwaest
2016/03/31 08:09:46
Spurious change
|
| return result_array; |
| } |