| Index: src/factory.cc
|
| diff --git a/src/factory.cc b/src/factory.cc
|
| index c3a3b1570ffac982490b184681f153691e8e021b..c1d430818c724956a3ba3ab119686a1e351a00e7 100644
|
| --- a/src/factory.cc
|
| +++ b/src/factory.cc
|
| @@ -1324,7 +1324,8 @@ Handle<JSFunction> Factory::NewFunctionFromSharedFunctionInfo(
|
|
|
| } else if (!info->bound()) {
|
| int number_of_literals = info->num_literals();
|
| - Handle<FixedArray> literals = NewFixedArray(number_of_literals, pretenure);
|
| + Handle<LiteralsArray> literals = NewLiteralsArray(
|
| + handle(info->feedback_vector()), number_of_literals, pretenure);
|
| result->set_literals(*literals);
|
| // Cache context-specific literals.
|
| if (FLAG_cache_optimized_code) {
|
| @@ -2086,6 +2087,17 @@ Handle<SharedFunctionInfo> Factory::NewSharedFunctionInfo(
|
| }
|
|
|
|
|
| +Handle<LiteralsArray> Factory::NewLiteralsArray(
|
| + Handle<TypeFeedbackVector> vector, int number_of_literals,
|
| + PretenureFlag pretenure) {
|
| + Handle<FixedArray> literals =
|
| + NewFixedArray(LiteralsArray::SizeFor(number_of_literals), pretenure);
|
| + Handle<LiteralsArray> casted_literals = Handle<LiteralsArray>::cast(literals);
|
| + casted_literals->set_feedback_vector(*vector);
|
| + return casted_literals;
|
| +}
|
| +
|
| +
|
| Handle<JSMessageObject> Factory::NewJSMessageObject(
|
| MessageTemplate::Template message, Handle<Object> argument,
|
| int start_position, int end_position, Handle<Object> script,
|
|
|