| Index: src/d8.cc | 
| diff --git a/src/d8.cc b/src/d8.cc | 
| index 8c0f82a3117245f0e6e6a1202db20553d3de111b..cc62aa8cb6acdcadda0a1dbc29ee2109d0b2b97b 100644 | 
| --- a/src/d8.cc | 
| +++ b/src/d8.cc | 
| @@ -925,25 +925,28 @@ void Shell::ReportException(Isolate* isolate, v8::TryCatch* try_catch) { | 
| // Print (filename):(line number): (message). | 
| v8::String::Utf8Value filename(message->GetScriptOrigin().ResourceName()); | 
| const char* filename_string = ToCString(filename); | 
| -    int linenum = | 
| -        message->GetLineNumber(isolate->GetCurrentContext()).FromJust(); | 
| +    Maybe<int> maybeline = message->GetLineNumber(isolate->GetCurrentContext()); | 
| +    int linenum = maybeline.IsJust() ? maybeline.FromJust() : -1; | 
| printf("%s:%i: %s\n", filename_string, linenum, exception_string); | 
| -    // Print line of source code. | 
| -    v8::String::Utf8Value sourceline( | 
| -        message->GetSourceLine(isolate->GetCurrentContext()).ToLocalChecked()); | 
| -    const char* sourceline_string = ToCString(sourceline); | 
| -    printf("%s\n", sourceline_string); | 
| -    // Print wavy underline (GetUnderline is deprecated). | 
| -    int start = | 
| -        message->GetStartColumn(isolate->GetCurrentContext()).FromJust(); | 
| -    for (int i = 0; i < start; i++) { | 
| -      printf(" "); | 
| -    } | 
| -    int end = message->GetEndColumn(isolate->GetCurrentContext()).FromJust(); | 
| -    for (int i = start; i < end; i++) { | 
| -      printf("^"); | 
| +    if (maybeline.IsJust()) { | 
| +      // Print line of source code. | 
| +      v8::String::Utf8Value sourceline( | 
| +          message->GetSourceLine(isolate->GetCurrentContext()) | 
| +              .ToLocalChecked()); | 
| +      const char* sourceline_string = ToCString(sourceline); | 
| +      printf("%s\n", sourceline_string); | 
| +      // Print wavy underline (GetUnderline is deprecated). | 
| +      int start = | 
| +          message->GetStartColumn(isolate->GetCurrentContext()).FromJust(); | 
| +      for (int i = 0; i < start; i++) { | 
| +        printf(" "); | 
| +      } | 
| +      int end = message->GetEndColumn(isolate->GetCurrentContext()).FromJust(); | 
| +      for (int i = start; i < end; i++) { | 
| +        printf("^"); | 
| +      } | 
| +      printf("\n"); | 
| } | 
| -    printf("\n"); | 
| Local<Value> stack_trace_string; | 
| if (try_catch->StackTrace(isolate->GetCurrentContext()) | 
| .ToLocal(&stack_trace_string) && | 
|  |