示例#1
0
 public static void UpdateMapProfileForWrite(DObject obj, mjr.CodeGen.Profiler profiler, int profileIndex, int fieldId, PropertyMap oldMap)
 {
   if (profiler != null)
   {
     if (obj.Map == oldMap) 
     {
       PropertyDescriptor pd = obj.GetPropertyDescriptorByFieldId(fieldId);
       //          obj.GetPropertyDescriptor
         //          Trace.WriteLine("YYY");
         profiler.GetOrAddMapNodeProfile(profileIndex).UpdateNodeProfile(oldMap, pd);
     }
   }
 }
示例#2
0
 public static void UpdateGuardProfile(ValueTypes type, mjr.CodeGen.Profiler profiler, int profileIndex)
 {
   if (profiler != null)
   {
     profiler.GetOrAddGuardNodeProfile(profileIndex).UpdateNodeProfile(type);
   }
 }
示例#3
0
 public static PropertyDescriptor UpdateMapProfile(PropertyDescriptor pd, mjr.CodeGen.Profiler profiler, int profileIndex, PropertyMap map)
 {
   if (profiler != null)
   {
     profiler.GetOrAddMapNodeProfile(profileIndex).UpdateNodeProfile(map, pd);
   }
   return pd;
 }
示例#4
0
文件: Program.cs 项目: reshadi2/mcjs
 void DoAll(mjr.JSFunctionMetadata func, ProgramConfiguration config)
 {
   if (config.DumpIRGraph)
   {
     func.Analyze();
     IRGraphWriter.Execute(func);
   }
   else
     if (config.OnlyJit)
     {
       func.JitSpeculatively(ref mdr.DFunctionSignature.EmptySignature);
     }
     else if (config.OnlyAnalyze)
     {
       func.Analyze();
     }
     else if (config.OnlyParse)
     {
       // Already parsed everything during load.
     }
     else if (config.OnlyLex)
     {
       // Already lexed everything during load.
     }
   foreach (var f in func.SubFunctions)
     DoAll(f, config);
 }