| Index: src/runtime/runtime-array.cc
|
| diff --git a/src/runtime/runtime-array.cc b/src/runtime/runtime-array.cc
|
| index e29ecd6c83727c57be00751bc2bac3cbdebbfa38..3e05f766ab8b3d1e473acab1cb7214bff83bbb97 100644
|
| --- a/src/runtime/runtime-array.cc
|
| +++ b/src/runtime/runtime-array.cc
|
| @@ -154,8 +154,10 @@ class ArrayConcatVisitor {
|
| DCHECK(!fast_elements());
|
| Handle<SeededNumberDictionary> dict(
|
| SeededNumberDictionary::cast(*storage_));
|
| + // The object holding this backing store has just been allocated, so
|
| + // it cannot yet be used as a prototype.
|
| Handle<SeededNumberDictionary> result =
|
| - SeededNumberDictionary::AtNumberPut(dict, index, elm);
|
| + SeededNumberDictionary::AtNumberPut(dict, index, elm, false);
|
| if (!result.is_identical_to(dict)) {
|
| // Dictionary needed to grow.
|
| clear_storage();
|
| @@ -207,8 +209,11 @@ class ArrayConcatVisitor {
|
| HandleScope loop_scope(isolate_);
|
| Handle<Object> element(current_storage->get(i), isolate_);
|
| if (!element->IsTheHole()) {
|
| + // The object holding this backing store has just been allocated, so
|
| + // it cannot yet be used as a prototype.
|
| Handle<SeededNumberDictionary> new_storage =
|
| - SeededNumberDictionary::AtNumberPut(slow_storage, i, element);
|
| + SeededNumberDictionary::AtNumberPut(slow_storage, i, element,
|
| + false);
|
| if (!new_storage.is_identical_to(slow_storage)) {
|
| slow_storage = loop_scope.CloseAndEscape(new_storage);
|
| }
|
|
|