| Index: src/d8.cc
|
| ===================================================================
|
| --- src/d8.cc (revision 9457)
|
| +++ src/d8.cc (working copy)
|
| @@ -112,6 +112,27 @@
|
| }
|
|
|
|
|
| +class FileHeapVisualizer : public v8::HeapVisualizer {
|
| + public:
|
| + explicit FileHeapVisualizer(const char* path) {
|
| + file_ = i::OS::FOpen(path, "w");
|
| + }
|
| +
|
| + ~FileHeapVisualizer() {
|
| + if (file_ != NULL) fclose(file_);
|
| + }
|
| +
|
| + void Write(const char* buf, int len) {
|
| + fwrite(reinterpret_cast<const void*>(buf), 1, len, file_);
|
| + }
|
| +
|
| + bool open_succeeded() { return file_ != NULL; }
|
| +
|
| + private:
|
| + FILE* file_;
|
| +};
|
| +
|
| +
|
| CounterMap* Shell::counter_map_;
|
| i::OS::MemoryMappedFile* Shell::counters_file_ = NULL;
|
| CounterCollection Shell::local_counters_;
|
| @@ -635,7 +656,6 @@
|
| }
|
| #endif // V8_SHARED
|
|
|
| -
|
| #ifdef COMPRESS_STARTUP_DATA_BZ2
|
| class BZip2Decompressor : public v8::StartupDataDecompressor {
|
| public:
|
| @@ -1264,6 +1284,17 @@
|
| }
|
| #endif // V8_SHARED
|
| }
|
| +
|
| + if (i::FLAG_trace_heap) {
|
| + FileHeapVisualizer* visualizer =
|
| + new FileHeapVisualizer(i::FLAG_trace_heap_file);
|
| + if (visualizer->open_succeeded()) {
|
| + RegisterHeapVisualizer(visualizer);
|
| + } else {
|
| + delete visualizer;
|
| + }
|
| + }
|
| +
|
| {
|
| Context::Scope cscope(context);
|
| options.isolate_sources[0].Execute();
|
|
|