summaryrefslogtreecommitdiff
path: root/Source/JavaScriptCore/runtime/PropertyName.h
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@nokia.com>2012-05-25 15:09:11 +0200
committerSimon Hausmann <simon.hausmann@nokia.com>2012-05-25 15:09:11 +0200
commita89b2ebb8e192c5e8cea21079bda2ee2c0c7dddd (patch)
treeb7abd9f49ae1d4d2e426a5883bfccd42b8e2ee12 /Source/JavaScriptCore/runtime/PropertyName.h
parent8d473cf9743f1d30a16a27114e93bd5af5648d23 (diff)
downloadqtwebkit-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.h37
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();
}
}