String.h (3605B)
1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- 2 * vim: set ts=8 sts=2 et sw=2 tw=80: 3 * This Source Code Form is subject to the terms of the Mozilla Public 4 * License, v. 2.0. If a copy of the MPL was not distributed with this 5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 6 7 #ifndef builtin_String_h 8 #define builtin_String_h 9 10 #include "NamespaceImports.h" 11 12 #include "js/RootingAPI.h" 13 #include "js/Value.h" 14 15 namespace js { 16 17 class ArrayObject; 18 class GlobalObject; 19 20 /* Initialize the String class, returning its prototype object. */ 21 extern JSObject* InitStringClass(JSContext* cx, Handle<GlobalObject*> global); 22 23 // String methods exposed so they can be installed in the self-hosting global. 24 25 extern bool str_fromCharCode(JSContext* cx, unsigned argc, Value* vp); 26 27 extern bool str_fromCodePoint(JSContext* cx, unsigned argc, Value* vp); 28 29 extern bool str_includes(JSContext* cx, unsigned argc, Value* vp); 30 31 extern bool str_indexOf(JSContext* cx, unsigned argc, Value* vp); 32 33 extern bool str_startsWith(JSContext* cx, unsigned argc, Value* vp); 34 35 extern bool str_toString(JSContext* cx, unsigned argc, Value* vp); 36 37 extern bool str_charCodeAt(JSContext* cx, unsigned argc, Value* vp); 38 39 extern bool str_codePointAt(JSContext* cx, unsigned argc, Value* vp); 40 41 extern bool str_endsWith(JSContext* cx, unsigned argc, Value* vp); 42 43 ArrayObject* StringSplitString(JSContext* cx, HandleString str, 44 HandleString sep, uint32_t limit); 45 46 JSString* StringFlatReplaceString(JSContext* cx, HandleString string, 47 HandleString pattern, 48 HandleString replacement); 49 50 JSString* str_replace_string_raw(JSContext* cx, HandleString string, 51 HandleString pattern, 52 HandleString replacement); 53 54 JSString* str_replaceAll_string_raw(JSContext* cx, HandleString string, 55 HandleString pattern, 56 HandleString replacement); 57 58 extern bool StringIncludes(JSContext* cx, HandleString string, 59 HandleString searchString, bool* result); 60 61 extern bool StringIndexOf(JSContext* cx, HandleString string, 62 HandleString searchString, int32_t* result); 63 64 extern bool StringLastIndexOf(JSContext* cx, HandleString string, 65 HandleString searchString, int32_t* result); 66 67 extern bool StringStartsWith(JSContext* cx, HandleString string, 68 HandleString searchString, bool* result); 69 70 extern bool StringEndsWith(JSContext* cx, HandleString string, 71 HandleString searchString, bool* result); 72 73 extern JSLinearString* StringToLowerCase(JSContext* cx, JSString* string); 74 75 extern JSLinearString* StringToUpperCase(JSContext* cx, JSString* string); 76 77 extern JSString* StringTrim(JSContext* cx, HandleString string); 78 79 extern JSString* StringTrimStart(JSContext* cx, HandleString string); 80 81 extern JSString* StringTrimEnd(JSContext* cx, HandleString string); 82 83 extern bool StringConstructor(JSContext* cx, unsigned argc, Value* vp); 84 85 extern bool FlatStringMatch(JSContext* cx, unsigned argc, Value* vp); 86 87 extern bool FlatStringSearch(JSContext* cx, unsigned argc, Value* vp); 88 89 extern JSLinearString* StringFromCharCode(JSContext* cx, int32_t charCode); 90 91 extern JSLinearString* StringFromCodePoint(JSContext* cx, char32_t codePoint); 92 93 #if JS_HAS_INTL_API 94 bool LocaleHasDefaultCaseMapping(const char* locale); 95 #endif 96 97 } /* namespace js */ 98 99 #endif /* builtin_String_h */