| Index: src/d8.cc
 | 
| ===================================================================
 | 
| --- src/d8.cc	(revision 9531)
 | 
| +++ src/d8.cc	(working copy)
 | 
| @@ -146,11 +146,11 @@
 | 
|                            Handle<Value> name,
 | 
|                            bool print_result,
 | 
|                            bool report_exceptions) {
 | 
| -#ifndef V8_SHARED
 | 
| +#if !defined(V8_SHARED) && defined(ENABLE_DEBUGGER_SUPPORT)
 | 
|    bool FLAG_debugger = i::FLAG_debugger;
 | 
|  #else
 | 
|    bool FLAG_debugger = false;
 | 
| -#endif  // V8_SHARED
 | 
| +#endif  // !V8_SHARED && ENABLE_DEBUGGER_SUPPORT
 | 
|    HandleScope handle_scope;
 | 
|    TryCatch try_catch;
 | 
|    options.script_executed = true;
 | 
| @@ -594,6 +594,7 @@
 | 
|    Context::Scope utility_scope(utility_context_);
 | 
|  
 | 
|  #ifdef ENABLE_DEBUGGER_SUPPORT
 | 
| +  if (i::FLAG_debugger) printf("JavaScript debugger enabled\n");
 | 
|    // Install the debugger object in the utility scope
 | 
|    i::Debug* debug = i::Isolate::Current()->debug();
 | 
|    debug->Load();
 | 
| @@ -816,7 +817,7 @@
 | 
|  
 | 
|  
 | 
|  static FILE* FOpen(const char* path, const char* mode) {
 | 
| -#if (defined(_WIN32) || defined(_WIN64))
 | 
| +#if defined(_MSC_VER) && (defined(_WIN32) || defined(_WIN64))
 | 
|    FILE* result;
 | 
|    if (fopen_s(&result, path, mode) == 0) {
 | 
|      return result;
 | 
| @@ -900,9 +901,6 @@
 | 
|  #ifndef V8_SHARED
 | 
|    console = LineEditor::Get();
 | 
|    printf("V8 version %s [console: %s]\n", V8::GetVersion(), console->name());
 | 
| -  if (i::FLAG_debugger) {
 | 
| -    printf("JavaScript debugger enabled\n");
 | 
| -  }
 | 
|    console->Open();
 | 
|    while (true) {
 | 
|      i::SmartArrayPointer<char> input = console->Prompt(Shell::kPrompt);
 | 
| @@ -1253,14 +1251,22 @@
 | 
|      Locker lock;
 | 
|      HandleScope scope;
 | 
|      Persistent<Context> context = CreateEvaluationContext();
 | 
| +    if (options.last_run) {
 | 
| +      // Keep using the same context in the interactive shell.
 | 
| +      evaluation_context_ = context;
 | 
| +#if !defined(V8_SHARED) && defined(ENABLE_DEBUGGER_SUPPORT)
 | 
| +      // If the interactive debugger is enabled make sure to activate
 | 
| +      // it before running the files passed on the command line.
 | 
| +      if (i::FLAG_debugger) {
 | 
| +        InstallUtilityScript();
 | 
| +      }
 | 
| +#endif  // !V8_SHARED && ENABLE_DEBUGGER_SUPPORT
 | 
| +    }
 | 
|      {
 | 
|        Context::Scope cscope(context);
 | 
|        options.isolate_sources[0].Execute();
 | 
|      }
 | 
| -    if (options.last_run) {
 | 
| -      // Keep using the same context in the interactive shell
 | 
| -      evaluation_context_ = context;
 | 
| -    } else {
 | 
| +    if (!options.last_run) {
 | 
|        context.Dispose();
 | 
|      }
 | 
|  
 | 
| @@ -1331,9 +1337,11 @@
 | 
|    if (( options.interactive_shell
 | 
|        || !options.script_executed )
 | 
|        && !options.test_shell ) {
 | 
| -#ifndef V8_SHARED
 | 
| -    InstallUtilityScript();
 | 
| -#endif  // V8_SHARED
 | 
| +#if !defined(V8_SHARED) && defined(ENABLE_DEBUGGER_SUPPORT)
 | 
| +    if (!i::FLAG_debugger) {
 | 
| +      InstallUtilityScript();
 | 
| +    }
 | 
| +#endif  // !V8_SHARED && ENABLE_DEBUGGER_SUPPORT
 | 
|      RunShell();
 | 
|    }
 | 
|  
 | 
| 
 |