using System.Collections.Generic; 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 = _splitSegmentList ?? new List(); public string[] SplitArray1 => _splitArray1 = _splitArray1 ?? new string[1]; public static StringExecutionContext Current => _executionContext.Value; } }