| Index: src/code-stub-assembler.cc
 | 
| diff --git a/src/code-stub-assembler.cc b/src/code-stub-assembler.cc
 | 
| index 5537d0a9b0f3412325cf5f315344b6cd74269bda..952525e00c0059860732b5d7cb7a405071bef3b2 100644
 | 
| --- a/src/code-stub-assembler.cc
 | 
| +++ b/src/code-stub-assembler.cc
 | 
| @@ -171,6 +171,16 @@ Node* CodeStubAssembler::IntPtrOrSmiConstant(int value, ParameterMode mode) {
 | 
|    }
 | 
|  }
 | 
|  
 | 
| +bool CodeStubAssembler::IsIntPtrOrSmiConstantZero(Node* test) {
 | 
| +  int32_t constant_test;
 | 
| +  Smi* smi_test;
 | 
| +  if ((ToInt32Constant(test, constant_test) && constant_test == 0) ||
 | 
| +      (ToSmiConstant(test, smi_test) && smi_test->value() == 0)) {
 | 
| +    return true;
 | 
| +  }
 | 
| +  return false;
 | 
| +}
 | 
| +
 | 
|  Node* CodeStubAssembler::IntPtrRoundUpToPowerOfTwo32(Node* value) {
 | 
|    Comment("IntPtrRoundUpToPowerOfTwo32");
 | 
|    CSA_ASSERT(this, UintPtrLessThanOrEqual(value, IntPtrConstant(0x80000000u)));
 | 
| @@ -2062,8 +2072,7 @@ Node* CodeStubAssembler::AllocateJSArray(ElementsKind kind, Node* array_map,
 | 
|                                           Node* allocation_site,
 | 
|                                           ParameterMode capacity_mode) {
 | 
|    Node *array = nullptr, *elements = nullptr;
 | 
| -  int32_t constant_capacity;
 | 
| -  if (ToInt32Constant(capacity, constant_capacity) && constant_capacity == 0) {
 | 
| +  if (IsIntPtrOrSmiConstantZero(capacity)) {
 | 
|      // Array is empty. Use the shared empty fixed array instead of allocating a
 | 
|      // new one.
 | 
|      array = AllocateUninitializedJSArrayWithoutElements(kind, array_map, length,
 | 
| 
 |