Microsoft.JScript.Eval.PartiallyEvaluate C# (CSharp) Method

PartiallyEvaluate() private method

private PartiallyEvaluate ( ) : AST
return AST
      internal override AST PartiallyEvaluate(){
        VsaEngine engine = this.Engine;
        ScriptObject scope = Globals.ScopeStack.Peek();
        
        ClassScope cscope = ClassScope.ScopeOfClassMemberInitializer(scope);
        if (null != cscope) {
          if (cscope.inStaticInitializerCode) 
            cscope.staticInitializerUsesEval = true;
          else 
            cscope.instanceInitializerUsesEval = true;
        }
          
        if (engine.doFast)
          engine.PushScriptObject(new BlockScope(scope));
        else{
          while (scope is WithObject || scope is BlockScope){
            if (scope is BlockScope)
              ((BlockScope)scope).isKnownAtCompileTime = false;
            scope = scope.GetParent();
          }
        }
        try{
          this.operand = this.operand.PartiallyEvaluate();
          if (this.unsafeOption != null)
            this.unsafeOption = this.unsafeOption.PartiallyEvaluate();
          if (this.enclosingFunctionScope != null && this.enclosingFunctionScope.owner == null)
            this.context.HandleError(JSError.NotYetImplemented);
          return this;
        }finally{
          if (engine.doFast)
            this.Engine.PopScriptObject();
        }
      }