/// <summary> /// <para>Creates a new token which is the merge of the passed tokens</para> /// </summary> /// <param name="left">Token</param> /// <param name="right">Token to merge, overwriting the left</param> /// <param name="options">Options for merge</param> /// <returns>A new merged token</returns> public static JToken Merge( this JToken left, JToken right, MergeOptions options) { if (left.Type != JTokenType.Object) { return(right.DeepClone()); } var leftClone = (JContainer)left.DeepClone(); MergeInto(leftClone, right, options); return(leftClone); }
static int DeepClone(IntPtr L) { try { ToLua.CheckArgsCount(L, 1); Newtonsoft.Json.Linq.JToken obj = (Newtonsoft.Json.Linq.JToken)ToLua.CheckObject(L, 1, typeof(Newtonsoft.Json.Linq.JToken)); Newtonsoft.Json.Linq.JToken o = obj.DeepClone(); ToLua.PushObject(L, o); return(1); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }