| OLD | NEW |
| 1 // Copyright 2006-2008 the V8 project authors. All rights reserved. | 1 // Copyright 2006-2008 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <errno.h> | 5 #include <errno.h> |
| 6 #include <stdio.h> | 6 #include <stdio.h> |
| 7 #ifdef COMPRESS_STARTUP_DATA_BZ2 | 7 #ifdef COMPRESS_STARTUP_DATA_BZ2 |
| 8 #include <bzlib.h> | 8 #include <bzlib.h> |
| 9 #endif | 9 #endif |
| 10 #include <signal.h> | 10 #include <signal.h> |
| 11 | 11 |
| 12 #include "src/v8.h" | 12 #include "src/v8.h" |
| 13 | 13 |
| 14 #include "src/assembler.h" | 14 #include "src/assembler.h" |
| 15 #include "src/base/platform/platform.h" |
| 15 #include "src/bootstrapper.h" | 16 #include "src/bootstrapper.h" |
| 16 #include "src/flags.h" | 17 #include "src/flags.h" |
| 17 #include "src/list.h" | 18 #include "src/list.h" |
| 18 #include "src/natives.h" | 19 #include "src/natives.h" |
| 19 #include "src/platform.h" | |
| 20 #include "src/serialize.h" | 20 #include "src/serialize.h" |
| 21 | 21 |
| 22 | 22 |
| 23 using namespace v8; | 23 using namespace v8; |
| 24 | 24 |
| 25 | 25 |
| 26 class Compressor { | 26 class Compressor { |
| 27 public: | 27 public: |
| 28 virtual ~Compressor() {} | 28 virtual ~Compressor() {} |
| 29 virtual bool Compress(i::Vector<char> input) = 0; | 29 virtual bool Compress(i::Vector<char> input) = 0; |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 127 WriteData("", snapshot_data, raw_file_); | 127 WriteData("", snapshot_data, raw_file_); |
| 128 WriteData("context_", context_snapshot_data, raw_context_file_); | 128 WriteData("context_", context_snapshot_data, raw_context_file_); |
| 129 WriteMeta("context_", context_serializer); | 129 WriteMeta("context_", context_serializer); |
| 130 WriteMeta("", serializer); | 130 WriteMeta("", serializer); |
| 131 WriteFileSuffix(); | 131 WriteFileSuffix(); |
| 132 } | 132 } |
| 133 | 133 |
| 134 void WriteFilePrefix() const { | 134 void WriteFilePrefix() const { |
| 135 fprintf(fp_, "// Autogenerated snapshot file. Do not edit.\n\n"); | 135 fprintf(fp_, "// Autogenerated snapshot file. Do not edit.\n\n"); |
| 136 fprintf(fp_, "#include \"src/v8.h\"\n"); | 136 fprintf(fp_, "#include \"src/v8.h\"\n"); |
| 137 fprintf(fp_, "#include \"src/platform.h\"\n\n"); | 137 fprintf(fp_, "#include \"src/base/platform/platform.h\"\n\n"); |
| 138 fprintf(fp_, "#include \"src/snapshot.h\"\n\n"); | 138 fprintf(fp_, "#include \"src/snapshot.h\"\n\n"); |
| 139 fprintf(fp_, "namespace v8 {\n"); | 139 fprintf(fp_, "namespace v8 {\n"); |
| 140 fprintf(fp_, "namespace internal {\n\n"); | 140 fprintf(fp_, "namespace internal {\n\n"); |
| 141 } | 141 } |
| 142 | 142 |
| 143 void WriteFileSuffix() const { | 143 void WriteFileSuffix() const { |
| 144 fprintf(fp_, "} // namespace internal\n"); | 144 fprintf(fp_, "} // namespace internal\n"); |
| 145 fprintf(fp_, "} // namespace v8\n"); | 145 fprintf(fp_, "} // namespace v8\n"); |
| 146 } | 146 } |
| 147 | 147 |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 224 if ((i & 0x1f) == 0x1f) | 224 if ((i & 0x1f) == 0x1f) |
| 225 fprintf(fp_, "\n"); | 225 fprintf(fp_, "\n"); |
| 226 if (i > 0) | 226 if (i > 0) |
| 227 fprintf(fp_, ","); | 227 fprintf(fp_, ","); |
| 228 fprintf(fp_, "%u", static_cast<unsigned char>(data->at(i))); | 228 fprintf(fp_, "%u", static_cast<unsigned char>(data->at(i))); |
| 229 } | 229 } |
| 230 fprintf(fp_, "\n"); | 230 fprintf(fp_, "\n"); |
| 231 } | 231 } |
| 232 | 232 |
| 233 FILE* GetFileDescriptorOrDie(const char* filename) { | 233 FILE* GetFileDescriptorOrDie(const char* filename) { |
| 234 FILE* fp = i::OS::FOpen(filename, "wb"); | 234 FILE* fp = base::OS::FOpen(filename, "wb"); |
| 235 if (fp == NULL) { | 235 if (fp == NULL) { |
| 236 i::PrintF("Unable to open file \"%s\" for writing.\n", filename); | 236 i::PrintF("Unable to open file \"%s\" for writing.\n", filename); |
| 237 exit(1); | 237 exit(1); |
| 238 } | 238 } |
| 239 return fp; | 239 return fp; |
| 240 } | 240 } |
| 241 | 241 |
| 242 FILE* fp_; | 242 FILE* fp_; |
| 243 FILE* raw_file_; | 243 FILE* raw_file_; |
| 244 FILE* raw_context_file_; | 244 FILE* raw_context_file_; |
| (...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 356 fprintf(stderr, | 356 fprintf(stderr, |
| 357 "\nException thrown while compiling natives - see above.\n\n"); | 357 "\nException thrown while compiling natives - see above.\n\n"); |
| 358 exit(1); | 358 exit(1); |
| 359 } | 359 } |
| 360 if (i::FLAG_extra_code != NULL) { | 360 if (i::FLAG_extra_code != NULL) { |
| 361 // Capture 100 frames if anything happens. | 361 // Capture 100 frames if anything happens. |
| 362 V8::SetCaptureStackTraceForUncaughtExceptions(true, 100); | 362 V8::SetCaptureStackTraceForUncaughtExceptions(true, 100); |
| 363 HandleScope scope(isolate); | 363 HandleScope scope(isolate); |
| 364 v8::Context::Scope cscope(v8::Local<v8::Context>::New(isolate, context)); | 364 v8::Context::Scope cscope(v8::Local<v8::Context>::New(isolate, context)); |
| 365 const char* name = i::FLAG_extra_code; | 365 const char* name = i::FLAG_extra_code; |
| 366 FILE* file = i::OS::FOpen(name, "rb"); | 366 FILE* file = base::OS::FOpen(name, "rb"); |
| 367 if (file == NULL) { | 367 if (file == NULL) { |
| 368 fprintf(stderr, "Failed to open '%s': errno %d\n", name, errno); | 368 fprintf(stderr, "Failed to open '%s': errno %d\n", name, errno); |
| 369 exit(1); | 369 exit(1); |
| 370 } | 370 } |
| 371 | 371 |
| 372 fseek(file, 0, SEEK_END); | 372 fseek(file, 0, SEEK_END); |
| 373 int size = ftell(file); | 373 int size = ftell(file); |
| 374 rewind(file); | 374 rewind(file); |
| 375 | 375 |
| 376 char* chars = new char[size + 1]; | 376 char* chars = new char[size + 1]; |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 436 writer.SetCompressor(&bzip2); | 436 writer.SetCompressor(&bzip2); |
| 437 #endif | 437 #endif |
| 438 writer.WriteSnapshot(snapshot_data, ser, context_data, context_ser); | 438 writer.WriteSnapshot(snapshot_data, ser, context_data, context_ser); |
| 439 } | 439 } |
| 440 } | 440 } |
| 441 | 441 |
| 442 isolate->Dispose(); | 442 isolate->Dispose(); |
| 443 V8::Dispose(); | 443 V8::Dispose(); |
| 444 return 0; | 444 return 0; |
| 445 } | 445 } |
| OLD | NEW |