#ifndef StringPrototype_h
#define StringPrototype_h
#include "JITOperations.h"
#include "StringObject.h"
namespace JSC {
class ObjectPrototype;
class RegExp;
class RegExpObject;
class StringPrototype : public StringObject {
private:
StringPrototype(VM&, Structure*);
public:
typedef StringObject Base;
static const unsigned StructureFlags = HasStaticPropertyTable | Base::StructureFlags;
static StringPrototype* create(VM&, JSGlobalObject*, Structure*);
static Structure* createStructure(VM& vm, JSGlobalObject* globalObject, JSValue prototype)
{
return Structure::create(vm, globalObject, prototype, TypeInfo(ObjectType, StructureFlags), info());
}
DECLARE_INFO;
protected:
void finishCreation(VM&, JSGlobalObject*, JSString*);
};
EncodedJSValue JIT_OPERATION operationStringProtoFuncReplaceGeneric(
ExecState*, EncodedJSValue thisValue, EncodedJSValue searchValue, EncodedJSValue replaceValue);
EncodedJSValue JIT_OPERATION operationStringProtoFuncReplaceRegExpEmptyStr(
ExecState*, JSString* thisValue, RegExpObject* searchValue);
EncodedJSValue JIT_OPERATION operationStringProtoFuncReplaceRegExpString(
ExecState*, JSString* thisValue, RegExpObject* searchValue, JSString* replaceValue);
String substituteBackreferences(const String& replacement, StringView source, const int* ovector, RegExp* reg);
EncodedJSValue JSC_HOST_CALL stringProtoFuncRepeatCharacter(ExecState*);
EncodedJSValue JSC_HOST_CALL stringProtoFuncSplitFast(ExecState*);
EncodedJSValue JSC_HOST_CALL builtinStringSubstrInternal(ExecState*);
EncodedJSValue JSC_HOST_CALL builtinStringIncludesInternal(ExecState*);
}
#endif // StringPrototype_h