anchor.diff:            if (blankLineCount < 4) {
               // Too few blank lines for an elipsis.
               for (int j = firstBlank; j  <= lastBlank; j++) {
  -              table.append(lineElement(script.getLine(j)));
  +              table.append(lineElement(script.getLine(j), lineNumPad));
               }
             } else {
               // Add an elipsis for the skipped region.
  -            table.append(lineElement(script.getLine(firstBlank)));
  -            table.append(lineElement(null));
  -            table.append(lineElement(script.getLine(lastBlank)));
  +            table.append(lineElement(script.getLine(firstBlank), lineNumPad));
  +            table.append(lineElement(null, lineNumPad));
  +            table.append(lineElement(script.getLine(lastBlank), lineNumPad));
             }
             blankLineCount = 0;
           }
  -        table.append(lineElement(line));
  +        table.append(lineElement(line, lineNumPad));
         }
       }
   
  
positive.code:     return e;
    }
  
    Element lineNumberElement(ScriptLine line) {
      var lineNumber = line == null ? "..." : line.line;
      var e = span("$nbsp$lineNumber$nbsp");
      e.classes.add('noCopy');
  
      if (lineNumber == _currentLine) {
  
negative.code:       return table;
      }
  
      var endLine = (endPos != null
                     ? script.tokenToLine(endPos)
                     : script.lines.length + script.lineOffset);
      var lineNumPad = endLine.toString().length;
  
      annotationsCursor = 0;
  
      int blankLineCount = 0;
  