Example #1
0
        private object Run(CodeContext codeContext, bool tryEvaluate)
        {
            codeContext.ModuleContext.CompilerContext = _compilerContext;
            _languageContext.ModuleContextEntering(codeContext.ModuleContext);

#if FULL
            bool doEvaluation = tryEvaluate || _languageContext.Engine.Options.InterpretedMode;
            if (_simpleTarget == null && _optimizedTarget == null &&
                doEvaluation &&
                Ast.InterpretChecker.CanEvaluate(CodeBlock, _languageContext.Engine.Options.ProfileDrivenCompilation))
            {
                return(CodeBlock.TopLevelExecute(codeContext));
            }
#endif
            if (_optimizedScope != null)
            { // flag on scope - "IsOptimized"?
              // TODO: why do we create a code context here?
              // get rid of block?
                return(_optimizedTarget(new CodeContext(_optimizedScope, _languageContext, codeContext.ModuleContext)));
            }

            EnsureCompiled();
            CodeGen._codeBlockImplementations.Clear();
            _code = null;
            return(_simpleTarget(codeContext));
        }
Example #2
0
        private object Run(CodeContext codeContext, bool tryEvaluate)
        {
            codeContext.ModuleContext.CompilerContext = _compilerContext;
            _languageContext.ModuleContextEntering(codeContext.ModuleContext);

            if (_optimizedScope != null)
            { // flag on scope - "IsOptimized"?
              // TODO: why do we create a code context here?
              // get rid of block?
                return(_optimizedTarget(new CodeContext(_optimizedScope, _languageContext, codeContext.ModuleContext)));
            }

            EnsureCompiled();
            CodeGen._codeBlockImplementations.Clear();
            _code = null;
            return(_simpleTarget(codeContext));
        }