| Index: src/objects-inl.h
 | 
| diff --git a/src/objects-inl.h b/src/objects-inl.h
 | 
| index 5ad593bfa6630d6fe0df69e71a15f6d8efe4a722..64d0a93cc832bec9ba50a10654e26cf7d837d42f 100644
 | 
| --- a/src/objects-inl.h
 | 
| +++ b/src/objects-inl.h
 | 
| @@ -3505,12 +3505,16 @@ LiteralsArray* LiteralsArray::cast(Object* object) {
 | 
|    return reinterpret_cast<LiteralsArray*>(object);
 | 
|  }
 | 
|  
 | 
| +bool LiteralsArray::has_feedback_vector() const {
 | 
| +  return !get(kVectorIndex)->IsUndefined(this->GetIsolate());
 | 
| +}
 | 
|  
 | 
|  TypeFeedbackVector* LiteralsArray::feedback_vector() const {
 | 
| -  if (length() == 0) {
 | 
| +  if (length() == 0 || !has_feedback_vector()) {
 | 
|      return TypeFeedbackVector::cast(
 | 
| -        const_cast<FixedArray*>(FixedArray::cast(this)));
 | 
| +        this->GetIsolate()->heap()->empty_type_feedback_vector());
 | 
|    }
 | 
| +
 | 
|    return TypeFeedbackVector::cast(get(kVectorIndex));
 | 
|  }
 | 
|  
 | 
| @@ -6657,6 +6661,13 @@ void JSFunction::ReplaceCode(Code* code) {
 | 
|    }
 | 
|  }
 | 
|  
 | 
| +bool JSFunction::has_literals_array() const {
 | 
| +  SharedFunctionInfo* shared = this->shared();
 | 
| +
 | 
| +  return (literals() != shared->GetIsolate()->heap()->empty_literals_array() ||
 | 
| +          (shared->feedback_metadata()->slot_count() == 0 &&
 | 
| +           shared->num_literals() == 0));
 | 
| +}
 | 
|  
 | 
|  Context* JSFunction::context() {
 | 
|    return Context::cast(READ_FIELD(this, kContextOffset));
 | 
| 
 |