| Index: src/serialize.cc
|
| diff --git a/src/serialize.cc b/src/serialize.cc
|
| index 01c55a1226efedc5cca0d8bc1f80ad99dede6ba4..d58d8e200f04abd7c74abb20a2ecc7a10736a490 100644
|
| --- a/src/serialize.cc
|
| +++ b/src/serialize.cc
|
| @@ -1307,14 +1307,16 @@ void Deserializer::ReadData(Object** current, Object** limit, int source_space,
|
| }
|
|
|
|
|
| -Serializer::Serializer(Isolate* isolate, SnapshotByteSink* sink)
|
| +Serializer::Serializer(Isolate* isolate, SnapshotByteSink* sink,
|
| + bool allow_type_feedback)
|
| : isolate_(isolate),
|
| sink_(sink),
|
| external_reference_encoder_(new ExternalReferenceEncoder(isolate)),
|
| root_index_map_(isolate),
|
| code_address_map_(NULL),
|
| large_objects_total_size_(0),
|
| - seen_large_objects_index_(0) {
|
| + seen_large_objects_index_(0),
|
| + allow_type_feedback_(allow_type_feedback) {
|
| // The serializer is meant to be used only to generate initial heap images
|
| // from a context in which there is only one isolate.
|
| for (int i = 0; i < kNumberOfPreallocatedSpaces; i++) {
|
| @@ -1768,6 +1770,12 @@ void Serializer::ObjectSerializer::Serialize() {
|
| }
|
| }
|
|
|
| + if (object_->IsSharedFunctionInfo() && !serializer_->allow_type_feedback_) {
|
| + CHECK(SharedFunctionInfo::cast(object_)
|
| + ->feedback_vector()
|
| + ->CanBeSerialized());
|
| + }
|
| +
|
| int size = object_->Size();
|
| Map* map = object_->map();
|
| SerializePrologue(Serializer::SpaceOfObject(object_), size, map);
|
|
|