Example #1
0
 void ProcessNativeParams()
 {
     if (Sk.IsNativeParams(Method))
     {
         var binding = PrmBindings.Where(t => t.Binding.Parameter.IsParams).FirstOrDefault();
         if (binding != null)
         {
             if (binding.Binding.CallResult is ArrayCreateResolveResult)
             {
                 var arrayRes = (ArrayCreateResolveResult)binding.Binding.CallResult;
                 PrmBindings.Remove(binding);
                 if (arrayRes.InitializerElements.IsNotNullOrEmpty())
                 {
                     foreach (var init in arrayRes.InitializerElements)
                     {
                         var b = binding.Binding.Clone();
                         b.CallResult = init;
                         PrmBindings.Add(new PrmBinding {
                             Binding = b, JsCallResult = binding.JsCallResult
                         });
                     }
                 }
             }
             else
             {
                 Importer.Log.Warn(Res.GetFirstNode(), "Invalid params parameter passed to method with NativeParams=true");
             }
         }
     }
 }