public NumberValue Resolve(Value source, LocalCodeExecutionContext localCodeExecutionContext, ResolverOptions options)
        {
#if DEBUG
            //Log($"source = {source}");
#endif

            var sourceKind = source.KindOfValue;

            switch (sourceKind)
            {
            case KindOfValue.NullValue:
                return(ValueConvertor.ConvertNullValueToNumberValue(source.AsNullValue, _context));

            case KindOfValue.LogicalValue:
                return(ValueConvertor.ConvertLogicalValueToNumberValue(source.AsLogicalValue, _context));

            case KindOfValue.NumberValue:
                return(source.AsNumberValue);

            default:
                throw new ArgumentOutOfRangeException(nameof(sourceKind), sourceKind, null);
            }
        }