(error2, extraLines)
| 7970 | var OFFSET_CORRECTION = 60; |
| 7971 | var TAB_REPLACEMENT = " "; |
| 7972 | function sourceFragment(error2, extraLines) { |
| 7973 | function processLines(start, end) { |
| 7974 | return lines.slice(start, end).map(function(line2, idx) { |
| 7975 | var num = String(start + idx + 1); |
| 7976 | while (num.length < maxNumLength) { |
| 7977 | num = " " + num; |
| 7978 | } |
| 7979 | return num + " |" + line2; |
| 7980 | }).join("\n"); |
| 7981 | } |
| 7982 | var lines = error2.source.split(/\r\n?|\n|\f/); |
| 7983 | var line = error2.line; |
| 7984 | var column = error2.column; |
| 7985 | var startLine = Math.max(1, line - extraLines) - 1; |
| 7986 | var endLine = Math.min(line + extraLines, lines.length + 1); |
| 7987 | var maxNumLength = Math.max(4, String(endLine).length) + 1; |
| 7988 | var cutLeft = 0; |
| 7989 | column += (TAB_REPLACEMENT.length - 1) * (lines[line - 1].substr(0, column - 1).match(/\t/g) || []).length; |
| 7990 | if (column > MAX_LINE_LENGTH) { |
| 7991 | cutLeft = column - OFFSET_CORRECTION + 3; |
| 7992 | column = OFFSET_CORRECTION - 2; |
| 7993 | } |
| 7994 | for (var i = startLine; i <= endLine; i++) { |
| 7995 | if (i >= 0 && i < lines.length) { |
| 7996 | lines[i] = lines[i].replace(/\t/g, TAB_REPLACEMENT); |
| 7997 | lines[i] = (cutLeft > 0 && lines[i].length > cutLeft ? "\u2026" : "") + lines[i].substr(cutLeft, MAX_LINE_LENGTH - 2) + (lines[i].length > cutLeft + MAX_LINE_LENGTH - 1 ? "\u2026" : ""); |
| 7998 | } |
| 7999 | } |
| 8000 | return [ |
| 8001 | processLines(startLine, line), |
| 8002 | new Array(column + maxNumLength + 2).join("-") + "^", |
| 8003 | processLines(line, endLine) |
| 8004 | ].filter(Boolean).join("\n"); |
| 8005 | } |
| 8006 | var SyntaxError$1 = function(message, source, offset2, line, column) { |
| 8007 | var error2 = createCustomError("SyntaxError", message); |
| 8008 | error2.source = source; |
no test coverage detected