diff options
Diffstat (limited to 'Source/JavaScriptCore/parser')
-rw-r--r-- | Source/JavaScriptCore/parser/Nodes.h | 2 | ||||
-rw-r--r-- | Source/JavaScriptCore/parser/SourceCode.h | 7 | ||||
-rw-r--r-- | Source/JavaScriptCore/parser/SourceProvider.h | 10 |
3 files changed, 17 insertions, 2 deletions
diff --git a/Source/JavaScriptCore/parser/Nodes.h b/Source/JavaScriptCore/parser/Nodes.h index 26c829da6..5c90bb9fe 100644 --- a/Source/JavaScriptCore/parser/Nodes.h +++ b/Source/JavaScriptCore/parser/Nodes.h @@ -1399,7 +1399,7 @@ namespace JSC { const SourceCode& source() const { return m_source; } const UString& sourceURL() const { return m_source.provider()->url(); } - intptr_t sourceID() const { return m_source.provider()->asID(); } + intptr_t sourceID() const { return m_source.providerID(); } void setFeatures(CodeFeatures features) { m_features = features; } CodeFeatures features() { return m_features; } diff --git a/Source/JavaScriptCore/parser/SourceCode.h b/Source/JavaScriptCore/parser/SourceCode.h index a33ffea72..11a00337d 100644 --- a/Source/JavaScriptCore/parser/SourceCode.h +++ b/Source/JavaScriptCore/parser/SourceCode.h @@ -67,6 +67,13 @@ namespace JSC { return m_provider->getRange(m_startChar, m_endChar); } + intptr_t providerID() const + { + if (!m_provider) + return SourceProvider::nullID; + return m_provider->asID(); + } + bool isNull() const { return !m_provider; } SourceProvider* provider() const { return m_provider.get(); } int firstLine() const { return m_firstLine; } diff --git a/Source/JavaScriptCore/parser/SourceProvider.h b/Source/JavaScriptCore/parser/SourceProvider.h index 20be63cac..946792b2c 100644 --- a/Source/JavaScriptCore/parser/SourceProvider.h +++ b/Source/JavaScriptCore/parser/SourceProvider.h @@ -40,6 +40,8 @@ namespace JSC { class SourceProvider : public RefCounted<SourceProvider> { public: + static const intptr_t nullID = 1; + SourceProvider(const UString& url, const TextPosition& startPosition, SourceProviderCache* cache = 0) : m_url(url) , m_startPosition(startPosition) @@ -61,7 +63,13 @@ namespace JSC { const UString& url() { return m_url; } TextPosition startPosition() const { return m_startPosition; } - intptr_t asID() { return reinterpret_cast<intptr_t>(this); } + intptr_t asID() + { + ASSERT(this); + if (!this) // Be defensive in release mode. + return nullID; + return reinterpret_cast<intptr_t>(this); + } bool isValid() const { return m_validated; } void setValid() { m_validated = true; } |