Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: f6ec77d6554e5282dd6a264cdc59ab4076baa9e9
https://github.com/WebKit/WebKit/commit/f6ec77d6554e5282dd6a264cdc59ab4076baa9e9
Author: Chris Dumez <[email protected]>
Date: 2023-04-26 (Wed, 26 Apr 2023)
Changed paths:
M Source/JavaScriptCore/runtime/LiteralParser.cpp
M Source/JavaScriptCore/runtime/LiteralParser.h
Log Message:
-----------
Simplify / optimize JSC's LiteralParser
https://bugs.webkit.org/show_bug.cgi?id=255928
Reviewed by Justin Michaud.
Simplify / optimize JSC's LiteralParser:
- Avoid storing the start/end pointers inside LiteralParserToken, as they are
not actually needed. We already have a `stringStart + length` for
strings/identifiers,
which is all that's needed.
- Stop using LiteralParserToken::stringIs8Bit for identifiers. Unlike strings,
identifiers always use the same character type as the LiteralParser. This
also avoids
some unnecessary branching.
This may be a small progression on Speedometer on M1.
* Source/JavaScriptCore/runtime/LiteralParser.cpp:
(JSC::LiteralParser<CharType>::tryJSONPParse):
(JSC::LiteralParser<CharType>::makeIdentifier):
(JSC::LiteralParser<CharType>::makeJSString):
(JSC::LiteralParser<CharType>::Lexer::lex):
(JSC::LiteralParser<LChar>::Lexer::lexIdentifier):
(JSC::LiteralParser<UChar>::Lexer::lexIdentifier):
(JSC::setParserTokenString<LChar>):
(JSC::setParserTokenString<UChar>):
(JSC::LiteralParser<CharType>::Lexer::lexString):
(JSC::LiteralParser<CharType>::Lexer::lexStringSlow):
(JSC::LiteralParser<CharType>::Lexer::lexNumber):
(JSC::LiteralParser<CharType>::parsePrimitiveValue):
* Source/JavaScriptCore/runtime/LiteralParser.h:
Canonical link: https://commits.webkit.org/263416@main
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes