public ProcessingResult TryProcessCallStackFrame(string frame, out CallStackFrameInfo callStackFrameInfo)
        {
            List <Regex> regexList = new List <Regex>
            {
                ClientWatsonDatapointHandler.ChromeAndIEStackFrameRegex,
                ClientWatsonDatapointHandler.IOS7StackFrameRegex
            };

            callStackFrameInfo = null;
            Match match;

            if (!ClientWatsonDatapointHandler.TryMatchAny(frame, regexList, out match))
            {
                return(new ProcessingResult
                {
                    Code = ResultCode.NoMatch,
                    RawErrorFrame = frame
                });
            }
            string text = match.Groups["package"].Value;
            int    num  = text.LastIndexOf('/') + 1;

            if (num > 0)
            {
                text = text.Substring(num, text.Length - num);
            }
            int              num2  = int.Parse(match.Groups["line"].Value);
            int              num3  = int.Parse(match.Groups["column"].Value);
            string           text2 = match.Groups["function"].Value.TrimEnd(new char[0]);
            string           text3;
            Tuple <int, int> tuple;

            if (this.parameters.ConsolidationSymbolsMap.HasSymbolsLoadedForScript(text))
            {
                if (!this.parameters.ConsolidationSymbolsMap.Search(text, num2, num3, out text3, out tuple))
                {
                    return(new ProcessingResult
                    {
                        Code = ResultCode.FailedToDeConsolidate,
                        Package = text,
                        Function = text2,
                        Line = num2,
                        Column = num3
                    });
                }
            }
            else
            {
                text3 = text;
                tuple = new Tuple <int, int>(num2, num3);
            }
            if (this.parameters.MinificationSymbolsMapForScriptSharp.HasSymbolsLoadedForScript(text3))
            {
                ResultCode resultCode = this.TryDeMinifyAndDeObfuscate(text3, tuple.Item1, tuple.Item2, out callStackFrameInfo);
                if (resultCode != ResultCode.Success)
                {
                    return(new ProcessingResult
                    {
                        Code = resultCode,
                        SourceType = FrameSourceType.ScriptSharp,
                        Package = text3,
                        Function = text2,
                        Line = tuple.Item1,
                        Column = tuple.Item2
                    });
                }
            }
            else if (this.parameters.MinificationSymbolsMapForJavaScript.HasSymbolsLoadedForScript(text3))
            {
                if (!this.TryDeMinify(text3, tuple.Item1, tuple.Item2, out callStackFrameInfo))
                {
                    return(new ProcessingResult
                    {
                        Code = ResultCode.FailedToDeMinify,
                        SourceType = FrameSourceType.JavaScript,
                        Package = text3,
                        Function = text2,
                        Line = tuple.Item1,
                        Column = tuple.Item2
                    });
                }
            }
            else
            {
                callStackFrameInfo = new CallStackFrameInfo(true)
                {
                    StartLine    = tuple.Item1,
                    EndLine      = tuple.Item1,
                    StartColumn  = tuple.Item2,
                    EndColumn    = tuple.Item2,
                    FunctionName = text2,
                    FileName     = text3 + ".js",
                    FolderPath   = string.Empty
                };
            }
            callStackFrameInfo.PackageName = text3;
            return(new ProcessingResult
            {
                Code = ResultCode.Success
            });
        }