Changeset 209220 in webkit for trunk/Source/JavaScriptCore/parser/SourceCode.h
- Timestamp:
- Dec 1, 2016, 4:24:17 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/parser/SourceCode.h
r206653 r209220 29 29 #pragma once 30 30 31 #include "SourceProvider.h" 32 #include <wtf/RefPtr.h> 31 #include "UnlinkedSourceCode.h" 33 32 34 33 namespace JSC { 35 34 36 class SourceCode {35 class SourceCode : public UnlinkedSourceCode { 37 36 public: 38 37 SourceCode() 39 : m_provider(0) 40 , m_startChar(0) 41 , m_endChar(0) 38 : UnlinkedSourceCode() 42 39 , m_firstLine(0) 43 40 , m_startColumn(0) … … 45 42 } 46 43 47 SourceCode(WTF::HashTableDeletedValueType)48 : m_provider(WTF::HashTableDeletedValue)49 {50 }51 52 44 SourceCode(PassRefPtr<SourceProvider> provider) 53 : m_provider(provider) 54 , m_startChar(0) 55 , m_endChar(m_provider->source().length()) 45 : UnlinkedSourceCode(provider) 56 46 , m_firstLine(1) 57 47 , m_startColumn(1) … … 60 50 61 51 SourceCode(PassRefPtr<SourceProvider> provider, int firstLine, int startColumn) 62 : m_provider(provider) 63 , m_startChar(0) 64 , m_endChar(m_provider->source().length()) 52 : UnlinkedSourceCode(provider) 65 53 , m_firstLine(std::max(firstLine, 1)) 66 54 , m_startColumn(std::max(startColumn, 1)) … … 68 56 } 69 57 70 SourceCode(PassRefPtr<SourceProvider> provider, int start, int end, int firstLine, int startColumn) 71 : m_provider(provider) 72 , m_startChar(start) 73 , m_endChar(end) 58 SourceCode(PassRefPtr<SourceProvider> provider, int startOffset, int endOffset, int firstLine, int startColumn) 59 : UnlinkedSourceCode(provider, startOffset, endOffset) 74 60 , m_firstLine(std::max(firstLine, 1)) 75 61 , m_startColumn(std::max(startColumn, 1)) … … 77 63 } 78 64 79 bool isHashTableDeletedValue() const { return m_provider.isHashTableDeletedValue(); } 65 int firstLine() const { return m_firstLine; } 66 int startColumn() const { return m_startColumn; } 80 67 81 unsigned hash() const82 {83 ASSERT(m_provider);84 return m_provider->hash();85 }86 87 StringView view() const88 {89 if (!m_provider)90 return StringView();91 return m_provider->getRange(m_startChar, m_endChar);92 }93 94 CString toUTF8() const;95 96 68 intptr_t providerID() const 97 69 { … … 100 72 return m_provider->asID(); 101 73 } 102 103 bool isNull() const { return !m_provider; } 74 104 75 SourceProvider* provider() const { return m_provider.get(); } 105 int firstLine() const { return m_firstLine; } 106 int startColumn() const { return m_startColumn; } 107 int startOffset() const { return m_startChar; } 108 int endOffset() const { return m_endChar; } 109 int length() const { return m_endChar - m_startChar; } 110 76 111 77 SourceCode subExpression(unsigned openBrace, unsigned closeBrace, int firstLine, int startColumn); 112 78 113 79 private: 114 RefPtr<SourceProvider> m_provider;115 int m_startChar;116 int m_endChar;117 80 int m_firstLine; 118 81 int m_startColumn;
Note:
See TracChangeset
for help on using the changeset viewer.