Index: src/api.cc |
diff --git a/src/api.cc b/src/api.cc |
index 9aed956a4214e0238b3235a4635c4d6e04179f52..61cc5203e65531949270fbba813e1e819276a65a 100644 |
--- a/src/api.cc |
+++ b/src/api.cc |
@@ -399,6 +399,9 @@ enum CompressedStartupDataItems { |
kSnapshotContext, |
kLibraries, |
kExperimentalLibraries, |
+#if defined(V8_I18N_SUPPORT) |
+ kI18NExtension, |
+#endif |
kCompressedStartupDataCount |
}; |
@@ -439,6 +442,17 @@ void V8::GetCompressedStartupData(StartupData* compressed_data) { |
exp_libraries_source.length(); |
compressed_data[kExperimentalLibraries].raw_size = |
i::ExperimentalNatives::GetRawScriptsSize(); |
+ |
+#if defined(V8_I18N_SUPPORT) |
+ i::Vector<const ii:byte> i18n_extension_source = |
+ i::I18NNatives::GetScriptsSource(); |
+ compressed_data[kI18NExtension].data = |
+ reinterpret_cast<const char*>(i18n_extension_source.start()); |
+ compressed_data[kI18NExtension].compressed_size = |
+ i18n_extension_source.length(); |
+ compressed_data[kI18NExtension].raw_size = |
+ i::I18NNatives::GetRawScriptsSize(); |
+#endif |
#endif |
} |
@@ -468,6 +482,15 @@ void V8::SetDecompressedStartupData(StartupData* decompressed_data) { |
decompressed_data[kExperimentalLibraries].data, |
decompressed_data[kExperimentalLibraries].raw_size); |
i::ExperimentalNatives::SetRawScriptsSource(exp_libraries_source); |
+ |
+#if defined(V8_I18N_SUPPORT) |
+ ASSERT_EQ(i::I18NNatives::GetRawScriptsSize(), |
+ decompressed_data[kI18NExtension].raw_size); |
+ i::Vector<const char> i18n_extension_source( |
+ decompressed_data[kI18NExtension].data, |
+ decompressed_data[kI18NExtension].raw_size); |
+ i::I18NNatives::SetRawScriptsSource(i18n_extension_source); |
+#endif |
#endif |
} |