public static T GetNonRefTranslator(int jsEnvIdx, IntPtr isolate, IGetValueFromJs getValueApi, IntPtr value, bool isByRef) { object obj = JsEnv.jsEnvs[jsEnvIdx].GeneralGetterManager.GetNativeObjectTranslatorFunc(isolate, getValueApi, value, isByRef); if (obj != null) { return((T)obj); } return(default(T)); }
internal object NativeObjectTranslator(IntPtr isolate, IGetValueFromJs getValueApi, IntPtr value, bool isByRef) { if (getValueApi.GetJsValueType(isolate, value, isByRef) == JsValueType.NativeObject) { var objPtr = getValueApi.GetNativeObject(isolate, value, isByRef); var obj = objectPool.Get(objPtr.ToInt32()); return(obj); } return(null); }
internal object AnyTranslator(IntPtr isolate, IGetValueFromJs getValueApi, IntPtr value, bool isByRef) { var type = getValueApi.GetJsValueType(isolate, value, isByRef); switch (type) { case JsValueType.BigInt: return(getValueApi.GetBigInt(isolate, value, isByRef)); case JsValueType.Boolean: return(getValueApi.GetBoolean(isolate, value, isByRef)); case JsValueType.Date: return(DateTranslator(isolate, getValueApi, value, isByRef)); case JsValueType.ArrayBuffer: return(getValueApi.GetArrayBuffer(isolate, value, isByRef)); case JsValueType.Function: return(getValueApi.GetFunction(isolate, value, isByRef)); case JsValueType.JsObject: return(getValueApi.GetJSObject(isolate, value, isByRef)); case JsValueType.NativeObject: var typeId = getValueApi.GetTypeId(isolate, value, isByRef); if (!typeRegister.IsArray(typeId)) { var objType = typeRegister.GetType(typeId); if (objType != typeof(object) && generalGetterMap.ContainsKey(objType)) { return(generalGetterMap[objType](isolate, getValueApi, value, isByRef)); } } var objPtr = getValueApi.GetNativeObject(isolate, value, isByRef); var result = objectPool.Get(objPtr.ToInt32()); var typedValueResult = result as TypedValue; if (typedValueResult != null) { return(typedValueResult.Target); } return(result); case JsValueType.Number: return(getValueApi.GetNumber(isolate, value, isByRef)); case JsValueType.String: return(getValueApi.GetString(isolate, value, isByRef)); default: return(null); } }
private static T DefaultGetResult(int jsEnvIdx, IntPtr isolate, IGetValueFromJs getValueApi, IntPtr value, bool isByRef) { object obj = JsEnv.jsEnvs[jsEnvIdx].GeneralGetterManager.GetTranslateFunc(typeof(T))(isolate, getValueApi, value, isByRef); if (obj == null) { return(default(T)); } else { return((T)obj); } }
private object GenericDelegateTranslator(IntPtr isolate, IGetValueFromJs getValueApi, IntPtr value, bool isByRef) { var jsValueType = getValueApi.GetJsValueType(isolate, value, isByRef); if (jsValueType == JsValueType.Function) { var nativePtr = getValueApi.GetFunction(isolate, value, isByRef); return(new GenericDelegate(nativePtr, jsEnv)); } else { return(AnyTranslator(isolate, getValueApi, value, isByRef)); } }
private object JSObjectTranslator(IntPtr isolate, IGetValueFromJs getValueApi, IntPtr value, bool isByRef) { var jsValueType = getValueApi.GetJsValueType(isolate, value, isByRef); if (jsValueType == JsValueType.JsObject) { IntPtr DLLJSObjectPtr = getValueApi.GetJSObject(isolate, value, isByRef); return(jsEnv.jsObjectFactory.GetOrCreateJSObject(DLLJSObjectPtr, jsEnv)); } else { return(AnyTranslator(isolate, getValueApi, value, isByRef)); } }
internal object AnyTranslator(IntPtr isolate, IGetValueFromJs getValueApi, IntPtr value, bool isByRef) { var type = getValueApi.GetJsValueType(isolate, value, isByRef); switch (type) { case JsValueType.BigInt: return(getValueApi.GetBigInt(isolate, value, isByRef)); case JsValueType.Boolean: return(getValueApi.GetBoolean(isolate, value, isByRef)); case JsValueType.Date: return(DateTranslator(isolate, getValueApi, value, isByRef)); //case JsValueType.Function: //case JsValueType.JsObject: case JsValueType.NativeObject: var typeId = getValueApi.GetTypeId(isolate, value, isByRef); var objType = typeRegister.GetType(typeId); if (objType != typeof(object) && generalGetterMap.ContainsKey(objType)) { return(generalGetterMap[objType](isolate, getValueApi, value, isByRef)); } var objPtr = getValueApi.GetObject(isolate, value, isByRef); return(objectPool.Get(objPtr.ToInt32())); case JsValueType.Number: return(getValueApi.GetNumber(isolate, value, isByRef)); case JsValueType.String: return(getValueApi.GetString(isolate, value, isByRef)); default: return(null); } }
public static string GetString(int jsEnvIdx, IntPtr isolate, IGetValueFromJs getValueApi, IntPtr holder, bool isByRef) { return getValueApi.GetString(isolate, holder, isByRef); }
public static short GetInt16(int jsEnvIdx, IntPtr isolate, IGetValueFromJs getValueApi, IntPtr holder, bool isByRef) { return (short)getValueApi.GetNumber(isolate, holder, isByRef); }
public static sbyte GetSByte(int jsEnvIdx, IntPtr isolate, IGetValueFromJs getValueApi, IntPtr holder, bool isByRef) { return (sbyte)getValueApi.GetNumber(isolate, holder, isByRef); }
public static double GetDouble(int jsEnvIdx, IntPtr isolate, IGetValueFromJs getValueApi, IntPtr holder, bool isByRef) { return getValueApi.GetNumber(isolate, holder, isByRef); }
public static float GetFloat(int jsEnvIdx, IntPtr isolate, IGetValueFromJs getValueApi, IntPtr holder, bool isByRef) { return (float)getValueApi.GetNumber(isolate, holder, isByRef); }
private static object ArrayBufferTranslator(IntPtr isolate, IGetValueFromJs getValueApi, IntPtr value, bool isByRef) { return(getValueApi.GetArrayBuffer(isolate, value, isByRef)); }
public static DateTime GetDateTime(int jsEnvIdx, IntPtr isolate, IGetValueFromJs getValueApi, IntPtr holder, bool isByRef) { var ticks = getValueApi.GetDate(isolate, holder, isByRef); return (new DateTime(1970, 1, 1)).AddMilliseconds(ticks); }
private static object DoubleTranslator(IntPtr isolate, IGetValueFromJs getValueApi, IntPtr value, bool isByRef) { return(getValueApi.GetNumber(isolate, value, isByRef)); }
private static T DefaultGetResult(int jsEnvIdx, IntPtr isolate, IGetValueFromJs getValueApi, IntPtr value, bool isByRef) { return (T)JsEnv.jsEnvs[jsEnvIdx].GeneralGetterManager.GetTranslateFunc(typeof(T))(isolate, getValueApi, value, isByRef); }
public static bool GetBoolean(int jsEnvIdx, IntPtr isolate, IGetValueFromJs getValueApi, IntPtr holder, bool isByRef) { return(getValueApi.GetBoolean(isolate, holder, isByRef)); }
private static object UlongTranslator(IntPtr isolate, IGetValueFromJs getValueApi, IntPtr value, bool isByRef) { return((ulong)getValueApi.GetBigInt(isolate, value, isByRef)); }
private static object DateTranslator(IntPtr isolate, IGetValueFromJs getValueApi, IntPtr value, bool isByRef) { var ticks = getValueApi.GetDate(isolate, value, isByRef); return((new DateTime(1970, 1, 1)).AddMilliseconds(ticks)); }
private static object StringTranslator(IntPtr isolate, IGetValueFromJs getValueApi, IntPtr value, bool isByRef) { return(getValueApi.GetString(isolate, value, isByRef)); }
public static ArrayBuffer GetArrayBuffer(int jsEnvIdx, IntPtr isolate, IGetValueFromJs getValueApi, IntPtr holder, bool isByRef) { return(getValueApi.GetArrayBuffer(isolate, holder, isByRef)); }
public static uint GetUInt32(int jsEnvIdx, IntPtr isolate, IGetValueFromJs getValueApi, IntPtr holder, bool isByRef) { return (uint)getValueApi.GetNumber(isolate, holder, isByRef); }
public static char GetChar(int jsEnvIdx, IntPtr isolate, IGetValueFromJs getValueApi, IntPtr holder, bool isByRef) { return (char)getValueApi.GetNumber(isolate, holder, isByRef); }
public static ulong GetUInt64(int jsEnvIdx, IntPtr isolate, IGetValueFromJs getValueApi, IntPtr holder, bool isByRef) { return (ulong)getValueApi.GetBigInt(isolate, holder, isByRef); }
private object JSObjectTranslator(IntPtr isolate, IGetValueFromJs getValueApi, IntPtr value, bool isByRef) { IntPtr DLLJSObjectPtr = getValueApi.GetJSObject(isolate, value, isByRef); return(jsEnv.jsObjectFactory.GetOrCreateJSObject(DLLJSObjectPtr, jsEnv)); }