summaryrefslogtreecommitdiffstats
path: root/Source/JavaScriptCore/parser/SourceCode.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/JavaScriptCore/parser/SourceCode.h')
-rw-r--r--Source/JavaScriptCore/parser/SourceCode.h19
1 files changed, 17 insertions, 2 deletions
diff --git a/Source/JavaScriptCore/parser/SourceCode.h b/Source/JavaScriptCore/parser/SourceCode.h
index 9ba4da3..a3ce759 100644
--- a/Source/JavaScriptCore/parser/SourceCode.h
+++ b/Source/JavaScriptCore/parser/SourceCode.h
@@ -31,6 +31,7 @@
#include "SourceProvider.h"
#include <wtf/RefPtr.h>
+#include <wtf/text/TextPosition.h>
namespace JSC {
@@ -41,22 +42,34 @@ namespace JSC {
, m_startChar(0)
, m_endChar(0)
, m_firstLine(0)
+ , m_firstColumn(0)
{
}
- SourceCode(PassRefPtr<SourceProvider> provider, int firstLine = 1)
+ SourceCode(PassRefPtr<SourceProvider> provider, int firstLine = 1, int firstColumn = 1)
: m_provider(provider)
, m_startChar(0)
, m_endChar(m_provider->length())
, m_firstLine(std::max(firstLine, 1))
+ , m_firstColumn(std::max(firstColumn, 1))
{
}
- SourceCode(PassRefPtr<SourceProvider> provider, int start, int end, int firstLine)
+ SourceCode(PassRefPtr<SourceProvider> provider, int start, int end, int firstLine, int firstColumn = 1)
: m_provider(provider)
, m_startChar(start)
, m_endChar(end)
, m_firstLine(std::max(firstLine, 1))
+ , m_firstColumn(std::max(firstColumn, 1))
+ {
+ }
+
+ SourceCode(PassRefPtr<SourceProvider> provider, const TextPosition1& startPosition)
+ : m_provider(provider)
+ , m_startChar(0)
+ , m_endChar(m_provider->length())
+ , m_firstLine(startPosition.m_line.oneBasedInt())
+ , m_firstColumn(startPosition.m_column.oneBasedInt())
{
}
@@ -70,6 +83,7 @@ namespace JSC {
bool isNull() const { return !m_provider; }
SourceProvider* provider() const { return m_provider.get(); }
int firstLine() const { return m_firstLine; }
+ int firstColumn() const { return m_firstColumn; }
int startOffset() const { return m_startChar; }
int endOffset() const { return m_endChar; }
const UChar* data() const { return m_provider->data() + m_startChar; }
@@ -80,6 +94,7 @@ namespace JSC {
int m_startChar;
int m_endChar;
int m_firstLine;
+ int m_firstColumn;
};
inline SourceCode makeSource(const UString& source, const UString& url = UString(), int firstLine = 1)