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();
}
}