1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 20:57:35 +00:00

LibJS: Use iterative text segmentation algorithms for Intl.Segmenter

This uses the find-next and find-previous APIs instead of storing all
indices as a vector.
This commit is contained in:
Timothy Flynn 2023-02-15 10:03:14 -05:00 committed by Linus Groh
parent 9a7b3c145f
commit 7cb956d17b
5 changed files with 43 additions and 38 deletions

View file

@ -1,5 +1,6 @@
/*
* Copyright (c) 2022, Idan Horowitz <idan.horowitz@serenityos.org>
* Copyright (c) 2023, Tim Flynn <trflynn89@serenityos.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
@ -38,10 +39,11 @@ private:
};
ThrowCompletionOr<NonnullGCPtr<Object>> create_segment_data_object(VM&, Segmenter const&, Utf16View const&, double start_index, double end_index);
enum class Direction {
Before,
After,
};
double find_boundary(Segmenter const&, Utf16View const&, double start_index, Direction, Optional<Vector<size_t>>& boundaries_cache);
double find_boundary(Segmenter const&, Utf16View const&, double start_index, Direction);
}