private void PreAnalyzeLocalFunction(LocalFunctionData functionData, SemanticModel semanticModel)
 {
     if (functionData.MethodData.Conversion.HasFlag(MethodConversion.Copy))
     {
         functionData.Copy();
         return;
     }
     //TODO
     FillFunctionLocks(functionData, semanticModel);
 }
Exemple #2
0
        protected void GenerateFunctionBody(StatementNode r, ILGenerator gen)
        {
            LocalFunctionData oldData = this.fncData;

            try
            {
                this.fncData = new LocalFunctionData(gen, gen.DefineLabel(), gen.DeclareLocal(typeof(JSValue)));
                r.GenCode(this);
                gen.EmitCallV(mi_JSUndefined_Instance);
                gen.Emit(OpCodes.Stloc, this.fncData.return_local);
                gen.MarkLabel(this.fncData.return_label);
                gen.Emit(OpCodes.Ldloc, this.fncData.return_local);
                gen.Emit(OpCodes.Ret);
            }
            finally
            {
                this.fncData = oldData;
            }
        }