Index: src/builtins.cc |
diff --git a/src/builtins.cc b/src/builtins.cc |
index 5f062e1c95c0af883ccc898e8b42310b7ff252bf..e3dcd225d099032267ad289dff30ed8376c7c607 100644 |
--- a/src/builtins.cc |
+++ b/src/builtins.cc |
@@ -671,14 +671,6 @@ class ArrayConcatVisitor { |
bool visit(uint32_t i, Handle<Object> elm) { |
uint32_t index = index_offset_ + i; |
- if (!is_fixed_array()) { |
- Handle<Object> element_value; |
- ASSIGN_RETURN_ON_EXCEPTION_VALUE( |
- isolate_, element_value, |
- Object::SetElement(isolate_, storage_, index, elm, STRICT), false); |
- return true; |
- } |
- |
if (i >= JSObject::kMaxElementCount - index_offset_) { |
set_exceeds_array_limit(true); |
// Exception hasn't been thrown at this point. Return true to |
@@ -687,6 +679,14 @@ class ArrayConcatVisitor { |
return true; |
} |
+ if (!is_fixed_array()) { |
+ Handle<Object> element_value; |
+ ASSIGN_RETURN_ON_EXCEPTION_VALUE( |
+ isolate_, element_value, |
+ Object::SetElement(isolate_, storage_, index, elm, STRICT), false); |
+ return true; |
+ } |
+ |
if (fast_elements()) { |
if (index < static_cast<uint32_t>(storage_fixed_array()->length())) { |
storage_fixed_array()->set(index, *elm); |