mirror of
https://github.com/RGBCube/serenity
synced 2025-07-02 20:22:13 +00:00
LibJS+AK: Use Vector<u16, 1> for UTF-16 string storage
It's very common to encounter single-character strings in JavaScript on the web. We can make such strings significantly lighter by having a 1-character inline capacity on the Vectors.
This commit is contained in:
parent
ae0bdda86e
commit
024367d82e
7 changed files with 27 additions and 26 deletions
|
@ -470,7 +470,7 @@ ALWAYS_INLINE ExecutionResult OpCode_Compare::execute(MatchInput const& input, M
|
|||
return ExecutionResult::Failed_ExecuteLowPrioForks;
|
||||
|
||||
Optional<String> str;
|
||||
Vector<u16> utf16;
|
||||
Vector<u16, 1> utf16;
|
||||
Vector<u32> data;
|
||||
data.ensure_capacity(length);
|
||||
for (size_t i = offset; i < offset + length; ++i)
|
||||
|
@ -557,7 +557,7 @@ ALWAYS_INLINE void OpCode_Compare::compare_char(MatchInput const& input, MatchSt
|
|||
|
||||
auto input_view = input.view.substring_view(state.string_position, 1);
|
||||
Optional<String> str;
|
||||
Vector<u16> utf16;
|
||||
Vector<u16, 1> utf16;
|
||||
auto compare_view = input_view.construct_as_same({ &ch1, 1 }, str, utf16);
|
||||
bool equal;
|
||||
if (input.regex_options & AllFlags::Insensitive)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue