| Index: src/objects-inl.h
|
| diff --git a/src/objects-inl.h b/src/objects-inl.h
|
| index b56efe305bf70b6cec639af606a1cc0faaa3df22..bebb207af1126a2171220b73029608fcf8e81e21 100644
|
| --- a/src/objects-inl.h
|
| +++ b/src/objects-inl.h
|
| @@ -3514,12 +3514,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));
|
| }
|
|
|
| @@ -6647,6 +6651,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));
|
|
|