Skip to content

Commit 3a30959

Browse files
adetaylorcalvaris
authored andcommitted
JSC: Replace UChar with char16_t
https://bugs.webkit.org/show_bug.cgi?id=294724 rdar://153818709 Reviewed by Alex Christensen. WebKit wishes to move from UChar to the C++ standard char16_t; they are currently typedef'ed to be the same. This PR makes the textual substitutions across JavaScriptCore. This is a simple search and replace for \bUChar\b with no other changes, and it should have no functional effect. This is one of a series of PRs for different parts of WebKit. * Source/JavaScriptCore/API/JSStringRef.cpp: (JSStringCreateWithCharacters): (JSStringCreateWithUTF8CString): (JSStringCreateWithCharactersNoCopy): * Source/JavaScriptCore/API/JSStringRefCF.cpp: (JSStringCreateWithCFString): * Source/JavaScriptCore/API/JSValueRef.cpp: (JSValueMakeFromJSONString): * Source/JavaScriptCore/API/OpaqueJSString.cpp: (OpaqueJSString::~OpaqueJSString): (OpaqueJSString::characters): * Source/JavaScriptCore/API/OpaqueJSString.h: (OpaqueJSString::create): (OpaqueJSString::OpaqueJSString): * Source/JavaScriptCore/API/glib/JSCValue.cpp: (jsc_value_new_from_json): * Source/JavaScriptCore/API/tests/JSONParseTest.cpp: (testJSONParse): * Source/JavaScriptCore/KeywordLookupGenerator.py: (Trie.printAsC): * Source/JavaScriptCore/builtins/BuiltinNames.cpp: (JSC::BuiltinNames::lookUpPrivateName const): (JSC::BuiltinNames::lookUpWellKnownSymbol const): * Source/JavaScriptCore/builtins/BuiltinNames.h: * Source/JavaScriptCore/bytecode/CodeBlockHash.cpp: (JSC::CodeBlockHash::CodeBlockHash): * Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h: (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects): * Source/JavaScriptCore/dfg/DFGLazyJSValue.cpp: (JSC::DFG::equalToSingleCharacter): * Source/JavaScriptCore/dfg/DFGLazyJSValue.h: (JSC::DFG::LazyJSValue::singleCharacterString): (JSC::DFG::LazyJSValue::character const): * Source/JavaScriptCore/dfg/DFGOperations.cpp: (JSC::DFG::JSC_DEFINE_JIT_OPERATION): * Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp: * Source/JavaScriptCore/ftl/FTLAbstractHeapRepository.h: * Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::compileStringIndexOf): * Source/JavaScriptCore/inspector/ContentSearchUtilities.cpp: (Inspector::ContentSearchUtilities::escapeStringForRegularExpressionSource): * Source/JavaScriptCore/interpreter/Interpreter.cpp: (JSC::eval): (JSC::Interpreter::executeProgram): * Source/JavaScriptCore/jsc.cpp: (pathSeparator): * Source/JavaScriptCore/parser/Lexer.cpp: (JSC::isSingleCharacterIdentStart): (JSC::cannotBeIdentStart): (JSC::isSingleCharacterIdentPart): (JSC::cannotBeIdentPartOrEscapeStart): (JSC::Lexer<char16_t>::currentCodePoint const): (JSC::Lexer<T>::append16): (JSC::Lexer<T>::record16): (JSC::Lexer<CharacterType>::recordUnicodeCodePoint): (JSC::Lexer<char16_t>::parseIdentifier): (JSC::characterRequiresParseStringSlowCase): (JSC::Lexer<CharacterType>::parseCommentDirectiveValue): (JSC::orCharacter<LChar>): (JSC::orCharacter<char16_t>): (JSC::Lexer<T>::scanRegExp): (JSC::Lexer<T>::clear): (JSC::Lexer<UChar>::currentCodePoint const): Deleted. (JSC::Lexer<UChar>::parseIdentifier): Deleted. (JSC::orCharacter<UChar>): Deleted. * Source/JavaScriptCore/parser/Lexer.h: (JSC::Lexer::append16): (JSC::Lexer<char16_t>::isWhiteSpace): (JSC::Lexer<char16_t>::isLineTerminator): (JSC::Lexer<T>::convertUnicode): (JSC::Lexer<LChar>::makeRightSizedIdentifier): (JSC::Lexer<char16_t>::makeRightSizedIdentifier): (JSC::Lexer<char16_t>::setCodeStart): (JSC::Lexer<T>::makeIdentifierLCharFromUChar): (JSC::Lexer<T>::makeLCharIdentifier): (JSC::Lexer<UChar>::isWhiteSpace): Deleted. (JSC::Lexer<UChar>::isLineTerminator): Deleted. (JSC::Lexer<UChar>::makeRightSizedIdentifier): Deleted. (JSC::Lexer<UChar>::setCodeStart): Deleted. * Source/JavaScriptCore/parser/Parser.cpp: * Source/JavaScriptCore/parser/Parser.h: (JSC::parse): (JSC::parseRootNode): (JSC::parseFunctionForFunctionConstructor): * Source/JavaScriptCore/parser/ParserArena.h: (JSC::IdentifierArena::makeIdentifierLCharFromUChar): * Source/JavaScriptCore/runtime/ArrayPrototype.cpp: (JSC::sortBucketSort): * Source/JavaScriptCore/runtime/CachedTypes.cpp: (JSC::CachedUniquedStringImplBase::span16 const): * Source/JavaScriptCore/runtime/ExceptionHelpers.cpp: (JSC::functionCallBase): * Source/JavaScriptCore/runtime/ISO8601.cpp: (JSC::ISO8601::canBeTimeZone): (JSC::ISO8601::parseTimeZoneAnnotation): (JSC::ISO8601::parseTimeZone): * Source/JavaScriptCore/runtime/Identifier.cpp: (JSC::Identifier::add8): * Source/JavaScriptCore/runtime/Identifier.h: (JSC::Identifier::createLCharFromUChar): (JSC::Identifier::canUseSingleCharacterString): (JSC::Identifier::equal): * Source/JavaScriptCore/runtime/IdentifierInlines.h: (JSC::Identifier::Identifier): (JSC::Identifier::fromString): * Source/JavaScriptCore/runtime/IntlCache.cpp: (JSC::IntlCache::getBestDateTimePattern): (JSC::IntlCache::getFieldDisplayName): * Source/JavaScriptCore/runtime/IntlCache.h: * Source/JavaScriptCore/runtime/IntlCollator.cpp: (JSC::IntlCollator::checkICULocaleInvariants): * Source/JavaScriptCore/runtime/IntlDateTimeFormat.cpp: (JSC::canonicalizeTimeZoneName): (JSC::IntlDateTimeFormat::hourCycleFromSymbol): (JSC::IntlDateTimeFormat::hourCycleFromPattern): (JSC::IntlDateTimeFormat::replaceHourCycleInSkeleton): (JSC::IntlDateTimeFormat::replaceHourCycleInPattern): (JSC::IntlDateTimeFormat::buildSkeleton): (JSC::IntlDateTimeFormat::initializeDateTimeFormat): (JSC::IntlDateTimeFormat::format const): (JSC::IntlDateTimeFormat::formatToParts const): (JSC::IntlDateTimeFormat::createDateIntervalFormatIfNecessary): (JSC::IntlDateTimeFormat::formatRange): (JSC::IntlDateTimeFormat::formatRangeToParts): * Source/JavaScriptCore/runtime/IntlDateTimeFormat.h: * Source/JavaScriptCore/runtime/IntlDisplayNames.cpp: (JSC::IntlDisplayNames::of const): * Source/JavaScriptCore/runtime/IntlDurationFormat.cpp: (JSC::retrieveSeparator): (JSC::collectElements): (JSC::IntlDurationFormat::format const): (JSC::IntlDurationFormat::formatToParts const): * Source/JavaScriptCore/runtime/IntlListFormat.cpp: (JSC::IntlListFormat::format const): (JSC::IntlListFormat::formatToParts const): * Source/JavaScriptCore/runtime/IntlLocale.cpp: (JSC::IntlLocale::hourCycles): * Source/JavaScriptCore/runtime/IntlNumberFormat.cpp: (JSC::IntlNumberFormat::format const): (JSC::IntlNumberFormat::formatRange const): (JSC::IntlNumberFormat::formatRangeToPartsInternal): (JSC::IntlNumberFormat::formatToParts const): * Source/JavaScriptCore/runtime/IntlObject.cpp: (JSC::convertToUnicodeSingletonIndex): (JSC::LanguageTagParser::parseExtensionsAndPUExtensions): * Source/JavaScriptCore/runtime/IntlObjectInlines.h: (JSC::canUseASCIIUCADUCETComparison): (JSC::followedByNonLatinCharacter): (JSC::ListFormatInput::stringPointers const): * Source/JavaScriptCore/runtime/IntlPluralRules.cpp: (JSC::IntlPluralRules::select const): (JSC::IntlPluralRules::selectRange const): * Source/JavaScriptCore/runtime/IntlRelativeTimeFormat.cpp: (JSC::IntlRelativeTimeFormat::formatInternal const): (JSC::IntlRelativeTimeFormat::formatToParts const): * Source/JavaScriptCore/runtime/IntlSegmentIterator.cpp: (JSC::IntlSegmentIterator::create): (JSC::IntlSegmentIterator::IntlSegmentIterator): * Source/JavaScriptCore/runtime/IntlSegmentIterator.h: * Source/JavaScriptCore/runtime/IntlSegmenter.cpp: (JSC::IntlSegmenter::segment const): * Source/JavaScriptCore/runtime/IntlSegments.cpp: (JSC::IntlSegments::create): (JSC::IntlSegments::IntlSegments): * Source/JavaScriptCore/runtime/IntlSegments.h: * Source/JavaScriptCore/runtime/JSDateMath.cpp: (JSC::DateCache::timeZoneDisplayName): (JSC::retrieveTimeZoneInformation): * Source/JavaScriptCore/runtime/JSGenericTypedArrayViewConstructor.cpp: (JSC::decodeHex): * Source/JavaScriptCore/runtime/JSGenericTypedArrayViewConstructor.h: * Source/JavaScriptCore/runtime/JSGlobalObjectFunctions.cpp: (JSC::decode): (JSC::parseFloat): (JSC::JSC_DEFINE_HOST_FUNCTION): * Source/JavaScriptCore/runtime/JSImmutableButterfly.cpp: (JSC::JSImmutableButterfly::createFromString): * Source/JavaScriptCore/runtime/JSONAtomStringCache.h: (JSC::JSONAtomStringCache::cacheSlot): * Source/JavaScriptCore/runtime/JSONAtomStringCacheInlines.h: (JSC::JSONAtomStringCache::makeIdentifier): * Source/JavaScriptCore/runtime/JSONObject.cpp: (JSC::stringCopyUpconvert): (JSC::stringify): (JSC::jsonParseSlow): (JSC::JSC_DEFINE_HOST_FUNCTION): (JSC::JSONParse): (JSC::JSONParseWithException): * Source/JavaScriptCore/runtime/JSString.cpp: (JSC:: const): (JSC::JSRopeString::resolveRopeWithFunction const): * Source/JavaScriptCore/runtime/JSString.h: (JSC::jsSingleCharacterString): * Source/JavaScriptCore/runtime/JSStringInlines.h: (JSC::JSString::tryReplaceOneCharImpl): (JSC::JSString::tryReplaceOneChar): (JSC::jsAtomString): (JSC::jsSubstringOfResolved): * Source/JavaScriptCore/runtime/JSStringJoiner.cpp: (JSC::appendStringToDataWithOneCharacterSeparatorRepeatedly): (JSC::JSStringJoiner::joinImpl): (JSC::JSOnlyStringsAndInt32sJoiner::joinImpl): * Source/JavaScriptCore/runtime/LiteralParser.cpp: (JSC::cannotBeIdentPartOrEscapeStart): (JSC::setParserTokenString<char16_t>): (JSC::isSafeStringCharacter): (JSC::isSafeStringCharacterForIdentifier): (JSC::setParserTokenString<UChar>): Deleted. * Source/JavaScriptCore/runtime/LiteralParser.h: (JSC::LiteralParserToken::string16 const): * Source/JavaScriptCore/runtime/ParseInt.h: (JSC::parseIntOverflow): (JSC::isStrWhiteSpace): * Source/JavaScriptCore/runtime/RegExp.cpp: (JSC::RegExpFunctionalTestCollector::outputEscapedString): (JSC::appendLineTerminatorEscape<char16_t>): (JSC::appendLineTerminatorEscape<UChar>): Deleted. * Source/JavaScriptCore/runtime/RegExpObjectInlines.h: (JSC::advanceStringUnicode): * Source/JavaScriptCore/runtime/StringConstructor.cpp: (JSC::JSC_DEFINE_HOST_FUNCTION): (JSC::stringFromCharCode): * Source/JavaScriptCore/runtime/StringPrototype.cpp: (JSC::substituteBackreferencesSlow): (JSC::JSC_DEFINE_HOST_FUNCTION): (JSC::splitStringByOneCharacterImpl): (JSC::isASCIIIdentifierStart): (JSC::toLocaleCase): (JSC::normalize): (JSC::illFormedIndex): * Source/JavaScriptCore/runtime/StringPrototypeInlines.h: (JSC::jsSpliceSubstringsWithSeparators): (JSC::jsSpliceSubstringsWithSeparator): (JSC::jsSpliceSubstrings): (JSC::replaceAllWithCacheUsingRegExpSearchThreeArguments): (JSC::replaceAllWithCacheUsingRegExpSearch): * Source/JavaScriptCore/testRegExp.cpp: (scanString): * Source/JavaScriptCore/tools/CharacterPropertyDataGenerator.cpp: (JSC::LineBreakData::fill): (JSC::LineBreakData::dump): (JSC::LineBreakData::setPairValue): * Source/JavaScriptCore/yarr/YarrInterpreter.cpp: (JSC::Yarr::interpret): * Source/JavaScriptCore/yarr/YarrJIT.cpp: (JSC::Yarr::SubjectSampler::frequency const): (JSC::Yarr::SubjectSampler::add): * Source/JavaScriptCore/yarr/YarrJIT.h: * Source/JavaScriptCore/yarr/YarrParser.h: (JSC::Yarr::requires): (JSC::Yarr::Parser::tryConsume): (JSC::Yarr::parse): * Source/JavaScriptCore/yarr/YarrPattern.cpp: (JSC::Yarr::CharacterClassConstructor::putRange): (JSC::Yarr::YarrPatternConstructor::extractSpecificPattern): * Source/JavaScriptCore/yarr/YarrSyntaxChecker.cpp: (JSC::Yarr::SyntaxChecker::atomCharacterClassAtom): (JSC::Yarr::SyntaxChecker::atomCharacterClassRange): Canonical link: https://commits.webkit.org/296865@main Signed-off-by: Xabier Rodriguez Calvar <calvaris@igalia.com>
1 parent 5e6b0d7 commit 3a30959

79 files changed

Lines changed: 312 additions & 312 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Source/JavaScriptCore/API/JSStringRef.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,15 +38,15 @@ WTF_ALLOW_UNSAFE_BUFFER_USAGE_BEGIN
3838
JSStringRef JSStringCreateWithCharacters(const JSChar* chars, size_t numChars)
3939
{
4040
JSC::initialize();
41-
return &OpaqueJSString::create({ reinterpret_cast<const UChar*>(chars), numChars }).leakRef();
41+
return &OpaqueJSString::create({ reinterpret_cast<const char16_t*>(chars), numChars }).leakRef();
4242
}
4343

4444
JSStringRef JSStringCreateWithUTF8CString(const char* string)
4545
{
4646
JSC::initialize();
4747
if (string) {
4848
auto stringSpan = span8(string);
49-
Vector<UChar, 1024> buffer(stringSpan.size());
49+
Vector<char16_t, 1024> buffer(stringSpan.size());
5050
auto result = WTF::Unicode::convert(spanReinterpretCast<const char8_t>(stringSpan), buffer.mutableSpan());
5151
if (result.code == WTF::Unicode::ConversionResultCode::Success) {
5252
if (result.isAllASCII)
@@ -61,7 +61,7 @@ JSStringRef JSStringCreateWithUTF8CString(const char* string)
6161
JSStringRef JSStringCreateWithCharactersNoCopy(const JSChar* chars, size_t numChars)
6262
{
6363
JSC::initialize();
64-
return OpaqueJSString::tryCreate(StringImpl::createWithoutCopying({ reinterpret_cast<const UChar*>(chars), numChars })).leakRef();
64+
return OpaqueJSString::tryCreate(StringImpl::createWithoutCopying({ reinterpret_cast<const char16_t*>(chars), numChars })).leakRef();
6565
}
6666

6767
JSStringRef JSStringRetain(JSStringRef string)

Source/JavaScriptCore/API/JSStringRefCF.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,8 @@ JSStringRef JSStringCreateWithCFString(CFStringRef string)
5353

5454
Vector<UniChar> buffer(length);
5555
CFStringGetCharacters(string, CFRangeMake(0, length), buffer.data());
56-
static_assert(sizeof(UniChar) == sizeof(UChar), "UniChar and UChar must be same size");
57-
return &OpaqueJSString::create({ reinterpret_cast<UChar*>(buffer.data()), length }).leakRef();
56+
static_assert(sizeof(UniChar) == sizeof(char16_t), "UniChar and char16_t must be same size");
57+
return &OpaqueJSString::create({ reinterpret_cast<const char16_t*>(buffer.data()), length }).leakRef();
5858
}
5959

6060
CFStringRef JSStringCopyCFString(CFAllocatorRef allocator, JSStringRef string)

Source/JavaScriptCore/API/JSValueRef.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -700,7 +700,7 @@ JSValueRef JSValueMakeFromJSONString(JSContextRef ctx, JSStringRef string)
700700
LiteralParser<LChar, JSONReviverMode::Disabled> parser(globalObject, str.span8(), StrictJSON);
701701
return toRef(globalObject, parser.tryLiteralParse());
702702
}
703-
LiteralParser<UChar, JSONReviverMode::Disabled> parser(globalObject, str.span16(), StrictJSON);
703+
LiteralParser<char16_t, JSONReviverMode::Disabled> parser(globalObject, str.span16(), StrictJSON);
704704
return toRef(globalObject, parser.tryLiteralParse());
705705
}
706706

Source/JavaScriptCore/API/OpaqueJSString.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ RefPtr<OpaqueJSString> OpaqueJSString::tryCreate(String&& string)
5252
OpaqueJSString::~OpaqueJSString()
5353
{
5454
// m_characters is put in a local here to avoid an extra atomic load.
55-
UChar* characters = m_characters;
55+
char16_t* characters = m_characters;
5656
if (!characters)
5757
return;
5858

@@ -79,17 +79,17 @@ Identifier OpaqueJSString::identifier(VM* vm) const
7979
return Identifier::fromString(*vm, m_string.span16());
8080
}
8181

82-
const UChar* OpaqueJSString::characters()
82+
const char16_t* OpaqueJSString::characters()
8383
{
8484
// m_characters is put in a local here to avoid an extra atomic load.
85-
UChar* characters = m_characters;
85+
char16_t* characters = m_characters;
8686
if (characters)
8787
return characters;
8888

8989
if (m_string.isNull())
9090
return nullptr;
9191

92-
auto newCharacters = MallocSpan<UChar>::malloc(m_string.length() * sizeof(UChar));
92+
auto newCharacters = MallocSpan<char16_t>::malloc(m_string.length() * sizeof(char16_t));
9393
StringView { m_string }.getCharacters(newCharacters.mutableSpan());
9494

9595
if (!m_characters.compare_exchange_strong(characters, newCharacters.mutableSpan().data()))

Source/JavaScriptCore/API/OpaqueJSString.h

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ struct OpaqueJSString : public ThreadSafeRefCounted<OpaqueJSString> {
4545
return adoptRef(*new OpaqueJSString(characters));
4646
}
4747

48-
static Ref<OpaqueJSString> create(std::span<const UChar> characters)
48+
static Ref<OpaqueJSString> create(std::span<const char16_t> characters)
4949
{
5050
return adoptRef(*new OpaqueJSString(characters));
5151
}
@@ -56,11 +56,11 @@ struct OpaqueJSString : public ThreadSafeRefCounted<OpaqueJSString> {
5656
JS_EXPORT_PRIVATE ~OpaqueJSString();
5757

5858
bool is8Bit() { return m_string.is8Bit(); }
59-
std::span<const LChar> span8() { return m_string.span8(); }
60-
std::span<const UChar> span16() { return m_string.span16(); }
59+
std::span<const LChar> span8() LIFETIME_BOUND { return m_string.span8(); }
60+
std::span<const char16_t> span16() LIFETIME_BOUND { return m_string.span16(); }
6161
unsigned length() { return m_string.length(); }
6262

63-
const UChar* characters();
63+
const char16_t* characters() LIFETIME_BOUND;
6464

6565
JS_EXPORT_PRIVATE String string() const;
6666
JSC::Identifier identifier(JSC::VM*) const;
@@ -77,13 +77,13 @@ struct OpaqueJSString : public ThreadSafeRefCounted<OpaqueJSString> {
7777

7878
OpaqueJSString(const String& string)
7979
: m_string(string.isolatedCopy())
80-
, m_characters(m_string.impl() && m_string.is8Bit() ? nullptr : const_cast<UChar*>(m_string.span16().data()))
80+
, m_characters(m_string.impl() && m_string.is8Bit() ? nullptr : const_cast<char16_t*>(m_string.span16().data()))
8181
{
8282
}
8383

8484
explicit OpaqueJSString(String&& string)
8585
: m_string(WTFMove(string))
86-
, m_characters(m_string.impl() && m_string.is8Bit() ? nullptr : const_cast<UChar*>(m_string.span16().data()))
86+
, m_characters(m_string.impl() && m_string.is8Bit() ? nullptr : const_cast<char16_t*>(m_string.span16().data()))
8787
{
8888
}
8989

@@ -93,14 +93,14 @@ struct OpaqueJSString : public ThreadSafeRefCounted<OpaqueJSString> {
9393
{
9494
}
9595

96-
OpaqueJSString(std::span<const UChar> characters)
96+
OpaqueJSString(std::span<const char16_t> characters)
9797
: m_string(characters)
98-
, m_characters(m_string.impl() && m_string.is8Bit() ? nullptr : const_cast<UChar*>(m_string.span16().data()))
98+
, m_characters(m_string.impl() && m_string.is8Bit() ? nullptr : const_cast<char16_t*>(m_string.span16().data()))
9999
{
100100
}
101101

102102
String m_string;
103103

104104
// This will be initialized on demand when characters() is called if the string needs up-conversion.
105-
std::atomic<UChar*> m_characters;
105+
std::atomic<char16_t*> m_characters;
106106
};

Source/JavaScriptCore/API/glib/JSCValue.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2098,7 +2098,7 @@ JSCValue* jsc_value_new_from_json(JSCContext* context, const char* json)
20982098
if (!jsValue)
20992099
exception = toRef(JSC::createSyntaxError(globalObject, jsonParser.getErrorMessage()));
21002100
} else {
2101-
JSC::LiteralParser<UChar, JSC::JSONReviverMode::Disabled> jsonParser(globalObject, jsonString.span16(), JSC::StrictJSON);
2101+
JSC::LiteralParser<char16_t, JSC::JSONReviverMode::Disabled> jsonParser(globalObject, jsonString.span16(), JSC::StrictJSON);
21022102
jsValue = jsonParser.tryLiteralParse();
21032103
if (!jsValue)
21042104
exception = toRef(JSC::createSyntaxError(globalObject, jsonParser.getErrorMessage()));

Source/JavaScriptCore/API/tests/JSONParseTest.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ int testJSONParse()
4848
JSValue v0 = JSONParse(globalObject, ""_s);
4949
JSValue v1 = JSONParse(globalObject, "#$%^"_s);
5050
JSValue v2 = JSONParse(globalObject, String());
51-
UChar emptyUCharArray[1] = { '\0' };
51+
char16_t emptyUCharArray[1] = { '\0' };
5252
unsigned zeroLength = 0;
5353
JSValue v3 = JSONParse(globalObject, String({ emptyUCharArray, zeroLength }));
5454
JSValue v4;

Source/JavaScriptCore/KeywordLookupGenerator.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -186,16 +186,16 @@ def printAsC(self):
186186
print("namespace JSC {")
187187
print("")
188188
print("static ALWAYS_INLINE bool cannotBeIdentPartOrEscapeStart(LChar);")
189-
print("static ALWAYS_INLINE bool cannotBeIdentPartOrEscapeStart(UChar);")
189+
print("static ALWAYS_INLINE bool cannotBeIdentPartOrEscapeStart(char16_t);")
190190
# max length + 1 so we don't need to do any bounds checking at all
191191
print("static constexpr int maxTokenLength = %d;" % (self.maxLength() + 1))
192192
print("")
193193
print("template <>")
194-
print("template <bool shouldCreateIdentifier> ALWAYS_INLINE JSTokenType Lexer<UChar>::parseKeyword(JSTokenData* data)")
194+
print("template <bool shouldCreateIdentifier> ALWAYS_INLINE JSTokenType Lexer<char16_t>::parseKeyword(JSTokenData* data)")
195195
print("{")
196196
print(" ASSERT(m_codeEnd - m_code >= maxTokenLength);")
197197
print("")
198-
print(" const UChar* code = m_code;")
198+
print(" const char16_t* code = m_code;")
199199
self.printSubTreeAsC("UCHAR", 4)
200200
print(" return IDENT;")
201201
print("}")

Source/JavaScriptCore/builtins/BuiltinNames.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ BuiltinNames::BuiltinNames(VM& vm, CommonIdentifiers* commonIdentifiers)
9494

9595

9696
using LCharBuffer = WTF::HashTranslatorCharBuffer<LChar>;
97-
using UCharBuffer = WTF::HashTranslatorCharBuffer<UChar>;
97+
using UCharBuffer = WTF::HashTranslatorCharBuffer<char16_t>;
9898

9999
template<typename CharacterType>
100100
struct CharBufferSeacher {
@@ -138,7 +138,7 @@ PrivateSymbolImpl* BuiltinNames::lookUpPrivateName(std::span<const LChar> charac
138138
return lookUpPrivateNameImpl(m_privateNameSet, buffer);
139139
}
140140

141-
PrivateSymbolImpl* BuiltinNames::lookUpPrivateName(std::span<const UChar> characters) const
141+
PrivateSymbolImpl* BuiltinNames::lookUpPrivateName(std::span<const char16_t> characters) const
142142
{
143143
UCharBuffer buffer { characters };
144144
return lookUpPrivateNameImpl(m_privateNameSet, buffer);
@@ -160,7 +160,7 @@ SymbolImpl* BuiltinNames::lookUpWellKnownSymbol(std::span<const LChar> character
160160
return lookUpWellKnownSymbolImpl(m_wellKnownSymbolsMap, buffer);
161161
}
162162

163-
SymbolImpl* BuiltinNames::lookUpWellKnownSymbol(std::span<const UChar> characters) const
163+
SymbolImpl* BuiltinNames::lookUpWellKnownSymbol(std::span<const char16_t> characters) const
164164
{
165165
UCharBuffer buffer { characters };
166166
return lookUpWellKnownSymbolImpl(m_wellKnownSymbolsMap, buffer);

Source/JavaScriptCore/builtins/BuiltinNames.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -247,12 +247,12 @@ class BuiltinNames {
247247
PrivateSymbolImpl* lookUpPrivateName(const Identifier&) const;
248248
PrivateSymbolImpl* lookUpPrivateName(const String&) const;
249249
PrivateSymbolImpl* lookUpPrivateName(std::span<const LChar>) const;
250-
PrivateSymbolImpl* lookUpPrivateName(std::span<const UChar>) const;
250+
PrivateSymbolImpl* lookUpPrivateName(std::span<const char16_t>) const;
251251

252252
SymbolImpl* lookUpWellKnownSymbol(const Identifier&) const;
253253
SymbolImpl* lookUpWellKnownSymbol(const String&) const;
254254
SymbolImpl* lookUpWellKnownSymbol(std::span<const LChar>) const;
255-
SymbolImpl* lookUpWellKnownSymbol(std::span<const UChar>) const;
255+
SymbolImpl* lookUpWellKnownSymbol(std::span<const char16_t>) const;
256256

257257
void appendExternalName(const Identifier& publicName, const Identifier& privateName);
258258

0 commit comments

Comments
 (0)