Index: src/d8.cc |
diff --git a/src/d8.cc b/src/d8.cc |
index 48e34aaf16c53193117d66a8b6539488755caf4f..c2e9615d8ef80ac8b957a52f755e73fd89416a86 100644 |
--- a/src/d8.cc |
+++ b/src/d8.cc |
@@ -1352,8 +1352,16 @@ void SourceGroup::WaitForThread() { |
#endif // !V8_SHARED |
+void SetFlagsFromString(const char* flags) { |
+ v8::V8::SetFlagsFromString(flags, strlen(flags)); |
+} |
+ |
+ |
bool Shell::SetOptions(int argc, char* argv[]) { |
+ bool logfile_per_isolate = false; |
for (int i = 0; i < argc; i++) { |
+ // Turn '_' into '-'. |
+ // for (char* c = arg; *c != '\0'; c++) if (*c == '_') *c = '-'; |
if (strcmp(argv[i], "--stress-opt") == 0) { |
options.stress_opt = true; |
argv[i] = NULL; |
@@ -1370,6 +1378,9 @@ bool Shell::SetOptions(int argc, char* argv[]) { |
// No support for stressing if we can't use --always-opt. |
options.stress_opt = false; |
options.stress_deopt = false; |
+ } else if (strcmp(argv[i], "--logfile-per-isolate") == 0) { |
+ logfile_per_isolate = true; |
+ argv[i] = NULL; |
} else if (strcmp(argv[i], "--shell") == 0) { |
options.interactive_shell = true; |
argv[i] = NULL; |
@@ -1464,6 +1475,10 @@ bool Shell::SetOptions(int argc, char* argv[]) { |
} |
current->End(argc); |
+ if (!logfile_per_isolate && options.num_isolates) { |
+ SetFlagsFromString("--nologfile_per_isolate"); |
+ } |
+ |
return true; |
} |
@@ -1537,21 +1552,6 @@ int Shell::RunMain(Isolate* isolate, int argc, char* argv[]) { |
} |
-#ifdef V8_SHARED |
-static void SetStandaloneFlagsViaCommandLine() { |
- int fake_argc = 3; |
- char **fake_argv = new char*[3]; |
- fake_argv[0] = NULL; |
- fake_argv[1] = strdup("--trace-hydrogen-file=hydrogen.cfg"); |
- fake_argv[2] = strdup("--redirect-code-traces-to=code.asm"); |
- v8::V8::SetFlagsFromCommandLine(&fake_argc, fake_argv, false); |
- free(fake_argv[1]); |
- free(fake_argv[2]); |
- delete[] fake_argv; |
-} |
-#endif |
- |
- |
#ifndef V8_SHARED |
static void DumpHeapConstants(i::Isolate* isolate) { |
i::Heap* heap = isolate->heap(); |
@@ -1635,12 +1635,8 @@ class MockArrayBufferAllocator : public v8::ArrayBuffer::Allocator { |
int Shell::Main(int argc, char* argv[]) { |
if (!SetOptions(argc, argv)) return 1; |
v8::V8::InitializeICU(options.icu_data_file); |
-#ifndef V8_SHARED |
- i::FLAG_trace_hydrogen_file = "hydrogen.cfg"; |
- i::FLAG_redirect_code_traces_to = "code.asm"; |
-#else |
- SetStandaloneFlagsViaCommandLine(); |
-#endif |
+ SetFlagsFromString("--trace-hydrogen-file=hydrogen.cfg"); |
+ SetFlagsFromString("--redirect-code-traces-to=code.asm"); |
ShellArrayBufferAllocator array_buffer_allocator; |
MockArrayBufferAllocator mock_arraybuffer_allocator; |
if (options.mock_arraybuffer_allocator) { |