@@ -1585,6 +1585,7 @@ void AppendExceptionLine(Environment* env,
|
1585 | 1585 | } |
1586 | 1586 | |
1587 | 1587 | // Print (filename):(line number): (message). |
| 1588 | + ScriptOrigin origin = message->GetScriptOrigin(); |
1588 | 1589 | node::Utf8Value filename(env->isolate(), message->GetScriptResourceName()); |
1589 | 1590 | const char* filename_string = *filename; |
1590 | 1591 | int linenum = message->GetLineNumber(); |
@@ -1613,8 +1614,16 @@ void AppendExceptionLine(Environment* env,
|
1613 | 1614 | // sourceline to 78 characters, and we end up not providing very much |
1614 | 1615 | // useful debugging info to the user if we remove 62 characters. |
1615 | 1616 | |
| 1617 | +int script_start = |
| 1618 | + (linenum - origin.ResourceLineOffset()->Value()) == 1 ? |
| 1619 | + origin.ResourceColumnOffset()->Value() : 0; |
1616 | 1620 | int start = message->GetStartColumn(env->context()).FromMaybe(0); |
1617 | 1621 | int end = message->GetEndColumn(env->context()).FromMaybe(0); |
| 1622 | +if (start >= script_start) { |
| 1623 | +CHECK_GE(end, start); |
| 1624 | + start -= script_start; |
| 1625 | + end -= script_start; |
| 1626 | + } |
1618 | 1627 | |
1619 | 1628 | char arrow[1024]; |
1620 | 1629 | int max_off = sizeof(arrow) - 2; |
|