summaryrefslogtreecommitdiff
path: root/src/snapshot_creator.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/snapshot_creator.cc')
-rw-r--r--src/snapshot_creator.cc65
1 files changed, 6 insertions, 59 deletions
diff --git a/src/snapshot_creator.cc b/src/snapshot_creator.cc
index a79071a65..f821565e5 100644
--- a/src/snapshot_creator.cc
+++ b/src/snapshot_creator.cc
@@ -40,72 +40,17 @@ v8::StartupData MakeSnapshot(const char* js_filename, const char* js_source) {
return snapshot_blob;
}
-class StartupDataCppWriter {
- public:
- StartupDataCppWriter(const char* name, const char* filename,
- const std::string& data)
- : name_(name),
- filename_(filename),
- data_(data),
- file_(filename_, std::ios::binary) {}
-
- bool Write() {
- if (file_.bad()) {
- return false;
- }
- WritePrefix();
- WriteData();
- WriteSuffix();
-
- file_.close();
- // printf("Wrote %s %d %s \n", name_, data_.size(), filename_);
- return !file_.bad();
- }
-
- private:
- void WritePrefix() {
- file_ << "// Autogenerated snapshot file. Do not edit.\n\n";
- file_ << "#include \"third_party/v8/include/v8.h\"\n\n";
- file_ << "namespace deno { \n\n";
- }
-
- void WriteSuffix() {
- char buffer[500];
- snprintf(buffer, sizeof(buffer), "v8::StartupData* StartupBlob_%s() {\n",
- name_);
- file_ << buffer;
- snprintf(buffer, sizeof(buffer), " return &%s_blob;\n", name_);
- file_ << buffer;
- file_ << "}\n\n";
- file_ << "} // namespace deno\n\n";
- }
-
- void WriteData() {
- char buffer[500];
- file_ << BinaryContentAsC(name_, data_);
- snprintf(buffer, sizeof(buffer),
- "static v8::StartupData %s_blob = { %s_data, %s_size };\n", name_,
- name_, name_);
- file_ << buffer;
- }
-
- const char* name_;
- const char* filename_;
- std::string data_;
- std::ofstream file_;
-};
-
} // namespace deno
int main(int argc, char** argv) {
- const char* snapshot_out_cc = argv[1];
+ const char* snapshot_out_bin = argv[1];
const char* js_fn = argv[2];
v8::V8::SetFlagsFromCommandLine(&argc, argv, true);
CHECK_EQ(argc, 3);
CHECK_NE(js_fn, nullptr);
- CHECK_NE(snapshot_out_cc, nullptr);
+ CHECK_NE(snapshot_out_bin, nullptr);
std::string js_source;
CHECK(deno::ReadFileToString(js_fn, &js_source));
@@ -114,6 +59,8 @@ int main(int argc, char** argv) {
auto snapshot_blob = deno::MakeSnapshot(js_fn, js_source.c_str());
std::string snapshot_str(snapshot_blob.data, snapshot_blob.raw_size);
- deno::StartupDataCppWriter writer("snapshot", snapshot_out_cc, snapshot_str);
- CHECK(writer.Write());
+ std::ofstream file_(snapshot_out_bin, std::ios::binary);
+ file_ << snapshot_str;
+ file_.close();
+ return file_.bad();
}