From f63d960bdc8471de501604f782011a25fbac4124 Mon Sep 17 00:00:00 2001 From: Richard Viney Date: Tue, 8 Oct 2024 00:16:52 +1300 Subject: Improve JS string performance by caching the Intl Segmenter --- src/gleam_stdlib.mjs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/gleam_stdlib.mjs b/src/gleam_stdlib.mjs index 50ebb46..1c0754f 100644 --- a/src/gleam_stdlib.mjs +++ b/src/gleam_stdlib.mjs @@ -156,9 +156,12 @@ export function graphemes(string) { } } +let segmenter = undefined; + function graphemes_iterator(string) { if (globalThis.Intl && Intl.Segmenter) { - return new Intl.Segmenter().segment(string)[Symbol.iterator](); + segmenter ??= new Intl.Segmenter(); + return segmenter.segment(string)[Symbol.iterator](); } } -- cgit v1.2.3