diff options
author | Simon Hausmann <simon.hausmann@nokia.com> | 2012-05-25 15:09:11 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@nokia.com> | 2012-05-25 15:09:11 +0200 |
commit | a89b2ebb8e192c5e8cea21079bda2ee2c0c7dddd (patch) | |
tree | b7abd9f49ae1d4d2e426a5883bfccd42b8e2ee12 /Source/JavaScriptCore/runtime/PropertyName.h | |
parent | 8d473cf9743f1d30a16a27114e93bd5af5648d23 (diff) | |
download | qtwebkit-a89b2ebb8e192c5e8cea21079bda2ee2c0c7dddd.tar.gz |
Imported WebKit commit eb5c1b8fe4d4b1b90b5137433fc58a91da0e6878 (http://svn.webkit.org/repository/webkit/trunk@118516)
Diffstat (limited to 'Source/JavaScriptCore/runtime/PropertyName.h')
-rw-r--r-- | Source/JavaScriptCore/runtime/PropertyName.h | 37 |
1 files changed, 28 insertions, 9 deletions
diff --git a/Source/JavaScriptCore/runtime/PropertyName.h b/Source/JavaScriptCore/runtime/PropertyName.h index d2258b471..7253756fa 100644 --- a/Source/JavaScriptCore/runtime/PropertyName.h +++ b/Source/JavaScriptCore/runtime/PropertyName.h @@ -27,6 +27,7 @@ #define PropertyName_h #include "Identifier.h" +#include "PrivateName.h" namespace JSC { @@ -80,15 +81,33 @@ public: PropertyName(const Identifier& propertyName) : m_impl(propertyName.impl()) { + ASSERT(!m_impl || m_impl->isIdentifier()); } - StringImpl* impl() const { return m_impl; } - UString ustring() const { return m_impl; } + PropertyName(const PrivateName& propertyName) + : m_impl(propertyName.uid()) + { + ASSERT(m_impl && m_impl->isEmptyUnique()); + } + + StringImpl* uid() const + { + ASSERT(!m_impl || (m_impl->isIdentifier() == !m_impl->isEmptyUnique())); + return m_impl; + } + + StringImpl* publicName() const + { + ASSERT(!m_impl || (m_impl->isIdentifier() == !m_impl->isEmptyUnique())); + return m_impl->isIdentifier() ? m_impl : 0; + } static const uint32_t NotAnIndex = UINT_MAX; + uint32_t asIndex() { - return toUInt32FromStringImpl(m_impl); + ASSERT(!m_impl || (m_impl->isIdentifier() == !m_impl->isEmptyUnique())); + return m_impl ? toUInt32FromStringImpl(m_impl) : NotAnIndex; } private: @@ -97,32 +116,32 @@ private: inline bool operator==(PropertyName a, const Identifier& b) { - return a.impl() == b.impl(); + return a.uid() == b.impl(); } inline bool operator==(const Identifier& a, PropertyName b) { - return a.impl() == b.impl(); + return a.impl() == b.uid(); } inline bool operator==(PropertyName a, PropertyName b) { - return a.impl() == b.impl(); + return a.uid() == b.uid(); } inline bool operator!=(PropertyName a, const Identifier& b) { - return a.impl() != b.impl(); + return a.uid() != b.impl(); } inline bool operator!=(const Identifier& a, PropertyName b) { - return a.impl() != b.impl(); + return a.impl() != b.uid(); } inline bool operator!=(PropertyName a, PropertyName b) { - return a.impl() != b.impl(); + return a.uid() != b.uid(); } } |