| Index: src/inspector/v8-debugger-script.h
 | 
| diff --git a/src/inspector/v8-debugger-script.h b/src/inspector/v8-debugger-script.h
 | 
| index 9250c9d87291a3dbe3771b43ff21d7991d409931..8a6bbbf29469d0593b041a429ee94cf0972a3bae 100644
 | 
| --- a/src/inspector/v8-debugger-script.h
 | 
| +++ b/src/inspector/v8-debugger-script.h
 | 
| @@ -59,8 +59,8 @@ class V8DebuggerScript {
 | 
|    bool hasSourceURL() const { return !m_sourceURL.isEmpty(); }
 | 
|    const String16& sourceURL() const;
 | 
|    virtual const String16& sourceMappingURL() const = 0;
 | 
| -  virtual String16 source(v8::Isolate*) const { return m_source; }
 | 
| -  const String16& hash(v8::Isolate*) const;
 | 
| +  virtual String16 source() const { return m_source; }
 | 
| +  const String16& hash() const;
 | 
|    int startLine() const { return m_startLine; }
 | 
|    int startColumn() const { return m_startColumn; }
 | 
|    int endLine() const { return m_endLine; }
 | 
| @@ -73,14 +73,20 @@ class V8DebuggerScript {
 | 
|    virtual void setSourceMappingURL(const String16&) = 0;
 | 
|    virtual void setSource(v8::Local<v8::String> source) {
 | 
|      m_source = toProtocolString(source);
 | 
| +    std::vector<int> empty;
 | 
| +    m_lineEndings.swap(empty);
 | 
|    }
 | 
|  
 | 
| +  String16 lineAt(int lineNumberWithOffset, int maxLength);
 | 
| +
 | 
|    virtual bool getPossibleBreakpoints(
 | 
|        const v8::debug::Location& start, const v8::debug::Location& end,
 | 
|        std::vector<v8::debug::Location>* locations) = 0;
 | 
|    virtual void resetBlackboxedStateCache() = 0;
 | 
|  
 | 
|   protected:
 | 
| +  virtual void calculateLineEndings() = 0;
 | 
| +
 | 
|    V8DebuggerScript(v8::Isolate*, String16 id, String16 url);
 | 
|  
 | 
|    String16 m_id;
 | 
| @@ -94,6 +100,8 @@ class V8DebuggerScript {
 | 
|    int m_endColumn = 0;
 | 
|    int m_executionContextId = 0;
 | 
|  
 | 
| +  std::vector<int> m_lineEndings;
 | 
| +
 | 
|    v8::Isolate* m_isolate;
 | 
|  
 | 
|   private:
 | 
| 
 |