Reviewed by Darin and Adam.
<rdar://problem/5368990> REGRESSION: newsgator.com sign-on 6x slower than Safari 3 beta due to GC changes (14808)
* kjs/string_object.cpp:
(KJS::replace): if the string didn't change (very common in some cases) reuse the original string value.
(KJS::StringProtoFunc::callAsFunction): Pass in the StringImp* when replacing, not just the UString.
* kjs/string_object.h:
(KJS::StringInstance::internalValue): covariant override to return StringImp for convenience
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@24873 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/JavaScriptCore/kjs/string_object.h b/JavaScriptCore/kjs/string_object.h
index 9f07cf1..a583e48 100644
--- a/JavaScriptCore/kjs/string_object.h
+++ b/JavaScriptCore/kjs/string_object.h
@@ -41,6 +41,9 @@
virtual const ClassInfo *classInfo() const { return &info; }
static const ClassInfo info;
+
+ StringImp* internalValue() const { return static_cast<StringImp*>(JSWrapperObject::internalValue());}
+
private:
static JSValue *lengthGetter(ExecState *exec, JSObject *, const Identifier&, const PropertySlot &slot);
static JSValue *indexGetter(ExecState *exec, JSObject *, const Identifier&, const PropertySlot &slot);