/// <summary>
        /// Executes a script text
        /// </summary>
        /// <param name="code">Script text</param>
        /// <param name="documentName">Document name</param>
        /// <param name="isExpression">Flag that script text needs to run as an expression</param>
        /// <returns>Result of the execution</returns>
        private object InnerExecute(string code, string documentName, bool isExpression)
        {
            object          result;
            DebugDocument   debugDocument;
            UIntPtr         sourceContext = CreateDebugDocument(documentName, code, out debugDocument);
            ScriptTextFlags flags         = isExpression ? ScriptTextFlags.IsExpression : ScriptTextFlags.IsVisible;

            if (sourceContext != UIntPtr.Zero)
            {
                flags |= ScriptTextFlags.HostManagesSource;
            }

            try
            {
                result = _activeScriptWrapper.ParseScriptText(code, null, null, null, sourceContext, 0, flags);
            }
            catch
            {
                ThrowError();
                throw;
            }

            // Check for parse error
            ThrowError();

            return(result);
        }