diff options
author | Simon Hausmann <simon.hausmann@nokia.com> | 2012-09-10 19:10:20 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@nokia.com> | 2012-09-10 19:10:20 +0200 |
commit | 284837daa07b29d6a63a748544a90b1f5842ac5c (patch) | |
tree | ecd258180bde91fe741e0cfd2638beb3c6da7e8e /Source/JavaScriptCore/runtime/JSString.h | |
parent | 2e2ba8ff45915f40ed3e014101269c175f2a89a0 (diff) | |
download | qtwebkit-284837daa07b29d6a63a748544a90b1f5842ac5c.tar.gz |
Imported WebKit commit 68645295d2e3e09af2c942f092556f06aa5f8b0d (http://svn.webkit.org/repository/webkit/trunk@128073)
New snapshot
Diffstat (limited to 'Source/JavaScriptCore/runtime/JSString.h')
-rw-r--r-- | Source/JavaScriptCore/runtime/JSString.h | 97 |
1 files changed, 43 insertions, 54 deletions
diff --git a/Source/JavaScriptCore/runtime/JSString.h b/Source/JavaScriptCore/runtime/JSString.h index e91553aeb..7821b42b8 100644 --- a/Source/JavaScriptCore/runtime/JSString.h +++ b/Source/JavaScriptCore/runtime/JSString.h @@ -37,27 +37,25 @@ namespace JSC { JSString* jsEmptyString(JSGlobalData*); JSString* jsEmptyString(ExecState*); - JSString* jsString(JSGlobalData*, const UString&); // returns empty string if passed null string - JSString* jsString(ExecState*, const UString&); // returns empty string if passed null string + JSString* jsString(JSGlobalData*, const String&); // returns empty string if passed null string + JSString* jsString(ExecState*, const String&); // returns empty string if passed null string JSString* jsSingleCharacterString(JSGlobalData*, UChar); JSString* jsSingleCharacterString(ExecState*, UChar); - JSString* jsSingleCharacterSubstring(ExecState*, const UString&, unsigned offset); - JSString* jsSubstring(JSGlobalData*, const UString&, unsigned offset, unsigned length); - JSString* jsSubstring(ExecState*, const UString&, unsigned offset, unsigned length); + JSString* jsSingleCharacterSubstring(ExecState*, const String&, unsigned offset); + JSString* jsSubstring(JSGlobalData*, const String&, unsigned offset, unsigned length); + JSString* jsSubstring(ExecState*, const String&, unsigned offset, unsigned length); // Non-trivial strings are two or more characters long. // These functions are faster than just calling jsString. - JSString* jsNontrivialString(JSGlobalData*, const UString&); - JSString* jsNontrivialString(ExecState*, const UString&); - JSString* jsNontrivialString(JSGlobalData*, const char*); - JSString* jsNontrivialString(ExecState*, const char*); + JSString* jsNontrivialString(JSGlobalData*, const String&); + JSString* jsNontrivialString(ExecState*, const String&); // Should be used for strings that are owned by an object that will // likely outlive the JSValue this makes, such as the parse tree or a - // DOM object that contains a UString - JSString* jsOwnedString(JSGlobalData*, const UString&); - JSString* jsOwnedString(ExecState*, const UString&); + // DOM object that contains a String + JSString* jsOwnedString(JSGlobalData*, const String&); + JSString* jsOwnedString(ExecState*, const String&); JSRopeString* jsStringBuilder(JSGlobalData*); @@ -136,8 +134,8 @@ namespace JSC { return newString; } - const UString& value(ExecState*) const; - const UString& tryGetValue() const; + const String& value(ExecState*) const; + const String& tryGetValue() const; unsigned length() { return m_length; } JSValue toPrimitive(ExecState*, PreferredPrimitiveType) const; @@ -190,9 +188,9 @@ namespace JSC { Is8Bit = 1u }; - // A string is represented either by a UString or a rope of fibers. + // A string is represented either by a String or a rope of fibers. unsigned m_length; - mutable UString m_value; + mutable String m_value; private: friend class LLIntOffsetsExtractor; @@ -203,7 +201,7 @@ namespace JSC { static bool getOwnPropertySlot(JSCell*, ExecState*, PropertyName, PropertySlot&); static bool getOwnPropertySlotByIndex(JSCell*, ExecState*, unsigned propertyName, PropertySlot&); - UString& string() { ASSERT(!isRope()); return m_value; } + String& string() { ASSERT(!isRope()); return m_value; } friend JSValue jsString(ExecState*, JSString*, JSString*); friend JSString* jsSubstring(ExecState*, JSString*, unsigned offset, unsigned length); @@ -340,41 +338,33 @@ namespace JSC { { if (c <= maxSingleCharacterString) return globalData->smallStrings.singleCharacterString(globalData, c); - return JSString::create(*globalData, UString(&c, 1).impl()); + return JSString::create(*globalData, String(&c, 1).impl()); } - ALWAYS_INLINE JSString* jsSingleCharacterSubstring(ExecState* exec, const UString& s, unsigned offset) + ALWAYS_INLINE JSString* jsSingleCharacterSubstring(ExecState* exec, const String& s, unsigned offset) { JSGlobalData* globalData = &exec->globalData(); ASSERT(offset < static_cast<unsigned>(s.length())); - UChar c = s[offset]; + UChar c = s.characterAt(offset); if (c <= maxSingleCharacterString) return globalData->smallStrings.singleCharacterString(globalData, c); return JSString::create(*globalData, StringImpl::create(s.impl(), offset, 1)); } - inline JSString* jsNontrivialString(JSGlobalData* globalData, const char* s) - { - ASSERT(s); - ASSERT(s[0]); - ASSERT(s[1]); - return JSString::create(*globalData, UString(s).impl()); - } - - inline JSString* jsNontrivialString(JSGlobalData* globalData, const UString& s) + inline JSString* jsNontrivialString(JSGlobalData* globalData, const String& s) { ASSERT(s.length() > 1); return JSString::create(*globalData, s.impl()); } - inline const UString& JSString::value(ExecState* exec) const + inline const String& JSString::value(ExecState* exec) const { if (isRope()) static_cast<const JSRopeString*>(this)->resolveRope(exec); return m_value; } - inline const UString& JSString::tryGetValue() const + inline const String& JSString::tryGetValue() const { if (isRope()) static_cast<const JSRopeString*>(this)->resolveRope(0); @@ -390,13 +380,13 @@ namespace JSC { return jsSingleCharacterSubstring(exec, m_value, i); } - inline JSString* jsString(JSGlobalData* globalData, const UString& s) + inline JSString* jsString(JSGlobalData* globalData, const String& s) { int size = s.length(); if (!size) return globalData->smallStrings.emptyString(globalData); if (size == 1) { - UChar c = s[0]; + UChar c = s.characterAt(0); if (c <= maxSingleCharacterString) return globalData->smallStrings.singleCharacterString(globalData, c); } @@ -414,7 +404,7 @@ namespace JSC { return jsSubstring(globalData, s->value(exec), offset, length); } - inline JSString* jsSubstring8(JSGlobalData* globalData, const UString& s, unsigned offset, unsigned length) + inline JSString* jsSubstring8(JSGlobalData* globalData, const String& s, unsigned offset, unsigned length) { ASSERT(offset <= static_cast<unsigned>(s.length())); ASSERT(length <= static_cast<unsigned>(s.length())); @@ -422,14 +412,14 @@ namespace JSC { if (!length) return globalData->smallStrings.emptyString(globalData); if (length == 1) { - UChar c = s[offset]; + UChar c = s.characterAt(offset); if (c <= maxSingleCharacterString) return globalData->smallStrings.singleCharacterString(globalData, c); } return JSString::createHasOtherOwner(*globalData, StringImpl::create8(s.impl(), offset, length)); } - inline JSString* jsSubstring(JSGlobalData* globalData, const UString& s, unsigned offset, unsigned length) + inline JSString* jsSubstring(JSGlobalData* globalData, const String& s, unsigned offset, unsigned length) { ASSERT(offset <= static_cast<unsigned>(s.length())); ASSERT(length <= static_cast<unsigned>(s.length())); @@ -437,20 +427,20 @@ namespace JSC { if (!length) return globalData->smallStrings.emptyString(globalData); if (length == 1) { - UChar c = s[offset]; + UChar c = s.characterAt(offset); if (c <= maxSingleCharacterString) return globalData->smallStrings.singleCharacterString(globalData, c); } return JSString::createHasOtherOwner(*globalData, StringImpl::create(s.impl(), offset, length)); } - inline JSString* jsOwnedString(JSGlobalData* globalData, const UString& s) + inline JSString* jsOwnedString(JSGlobalData* globalData, const String& s) { int size = s.length(); if (!size) return globalData->smallStrings.emptyString(globalData); if (size == 1) { - UChar c = s[0]; + UChar c = s.characterAt(0); if (c <= maxSingleCharacterString) return globalData->smallStrings.singleCharacterString(globalData, c); } @@ -463,13 +453,12 @@ namespace JSC { } inline JSString* jsEmptyString(ExecState* exec) { return jsEmptyString(&exec->globalData()); } - inline JSString* jsString(ExecState* exec, const UString& s) { return jsString(&exec->globalData(), s); } + inline JSString* jsString(ExecState* exec, const String& s) { return jsString(&exec->globalData(), s); } inline JSString* jsSingleCharacterString(ExecState* exec, UChar c) { return jsSingleCharacterString(&exec->globalData(), c); } - inline JSString* jsSubstring8(ExecState* exec, const UString& s, unsigned offset, unsigned length) { return jsSubstring8(&exec->globalData(), s, offset, length); } - inline JSString* jsSubstring(ExecState* exec, const UString& s, unsigned offset, unsigned length) { return jsSubstring(&exec->globalData(), s, offset, length); } - inline JSString* jsNontrivialString(ExecState* exec, const UString& s) { return jsNontrivialString(&exec->globalData(), s); } - inline JSString* jsNontrivialString(ExecState* exec, const char* s) { return jsNontrivialString(&exec->globalData(), s); } - inline JSString* jsOwnedString(ExecState* exec, const UString& s) { return jsOwnedString(&exec->globalData(), s); } + inline JSString* jsSubstring8(ExecState* exec, const String& s, unsigned offset, unsigned length) { return jsSubstring8(&exec->globalData(), s, offset, length); } + inline JSString* jsSubstring(ExecState* exec, const String& s, unsigned offset, unsigned length) { return jsSubstring(&exec->globalData(), s, offset, length); } + inline JSString* jsNontrivialString(ExecState* exec, const String& s) { return jsNontrivialString(&exec->globalData(), s); } + inline JSString* jsOwnedString(ExecState* exec, const String& s) { return jsOwnedString(&exec->globalData(), s); } ALWAYS_INLINE bool JSString::getStringPropertySlot(ExecState* exec, PropertyName propertyName, PropertySlot& slot) { @@ -527,14 +516,14 @@ namespace JSC { return toStringSlowCase(exec); } - inline UString JSValue::toUString(ExecState* exec) const + inline String JSValue::toWTFString(ExecState* exec) const { if (isString()) return static_cast<JSString*>(asCell())->value(exec); - return toUStringSlowCase(exec); + return toWTFStringSlowCase(exec); } - ALWAYS_INLINE UString inlineJSValueNotStringtoUString(const JSValue& value, ExecState* exec) + ALWAYS_INLINE String inlineJSValueNotStringtoString(const JSValue& value, ExecState* exec) { JSGlobalData& globalData = exec->globalData(); if (value.isInt32()) @@ -542,22 +531,22 @@ namespace JSC { if (value.isDouble()) return globalData.numericStrings.add(value.asDouble()); if (value.isTrue()) - return globalData.propertyNames->trueKeyword.ustring(); + return globalData.propertyNames->trueKeyword.string(); if (value.isFalse()) - return globalData.propertyNames->falseKeyword.ustring(); + return globalData.propertyNames->falseKeyword.string(); if (value.isNull()) - return globalData.propertyNames->nullKeyword.ustring(); + return globalData.propertyNames->nullKeyword.string(); if (value.isUndefined()) - return globalData.propertyNames->undefinedKeyword.ustring(); + return globalData.propertyNames->undefinedKeyword.string(); return value.toString(exec)->value(exec); } - ALWAYS_INLINE UString JSValue::toUStringInline(ExecState* exec) const + ALWAYS_INLINE String JSValue::toWTFStringInline(ExecState* exec) const { if (isString()) return static_cast<JSString*>(asCell())->value(exec); - return inlineJSValueNotStringtoUString(*this, exec); + return inlineJSValueNotStringtoString(*this, exec); } } // namespace JSC |