Index: src/objects.cc |
diff --git a/src/objects.cc b/src/objects.cc |
index 53c5fec01faaf13708a52de83fc4971bf7ad15d0..be5f1e283f4b6cfc6965bf26033e186dc015b9bd 100644 |
--- a/src/objects.cc |
+++ b/src/objects.cc |
@@ -10157,7 +10157,7 @@ void SharedFunctionInfo::AddSharedCodeToOptimizedCodeMap( |
void SharedFunctionInfo::AddToOptimizedCodeMap( |
Handle<SharedFunctionInfo> shared, Handle<Context> native_context, |
- Handle<HeapObject> code, Handle<FixedArray> literals, |
+ Handle<HeapObject> code, Handle<LiteralsArray> literals, |
BailoutId osr_ast_id) { |
Isolate* isolate = shared->GetIsolate(); |
DCHECK(*code == isolate->heap()->undefined_value() || |
@@ -11347,7 +11347,7 @@ CodeAndLiterals SharedFunctionInfo::SearchOptimizedCodeMap( |
DCHECK_LE(entry + kEntryLength, code_map->length()); |
Object* code = code_map->get(entry + kCachedCodeOffset); |
result = {code->IsUndefined() ? nullptr : Code::cast(code), |
- FixedArray::cast(code_map->get(entry + kLiteralsOffset))}; |
+ LiteralsArray::cast(code_map->get(entry + kLiteralsOffset))}; |
} |
} |
if (FLAG_trace_opt && !optimized_code_map()->IsSmi() && |
@@ -12225,6 +12225,19 @@ void DeoptimizationOutputData::DeoptimizationOutputDataPrint( |
} |
+// static |
+Handle<LiteralsArray> LiteralsArray::Allocate(Isolate* isolate, |
+ Handle<TypeFeedbackVector> vector, |
+ int number_of_literals, |
+ PretenureFlag pretenure) { |
+ Handle<FixedArray> literals = isolate->factory()->NewFixedArray( |
+ number_of_literals + kFirstLiteralIndex, pretenure); |
+ Handle<LiteralsArray> casted_literals = Handle<LiteralsArray>::cast(literals); |
+ casted_literals->set_feedback_vector(*vector); |
+ return casted_literals; |
+} |
+ |
+ |
void HandlerTable::HandlerTableRangePrint(std::ostream& os) { |
os << " from to hdlr\n"; |
for (int i = 0; i < length(); i += kRangeEntrySize) { |