using System.Threading; namespace Jint.Native.String; /// /// Helper to cache common data structures when manipulating strings. /// internal sealed class StringExecutionContext { private static readonly ThreadLocal _executionContext = new ThreadLocal(() => new StringExecutionContext()); private List? _splitSegmentList; private string[]? _splitArray1; private StringExecutionContext() { } public List SplitSegmentList => _splitSegmentList ??= new List(); public string[] SplitArray1 => _splitArray1 ??= new string[1]; public static StringExecutionContext Current => _executionContext.Value!; }