{"ScriptPreparationCode":"var fn = function(){};\r\nvar obj = {};\r\nvar objNull = null;\r\nvar unknown; // undefined","TestCases":[{"Name":"typeof function","Code":"var isFuncTrue = typeof fn === \u0027function\u0027;\r\nvar isFuncFalse = typeof obj === \u0027function\u0027;\r\nvar isFuncFalse2 = typeof objNull === \u0027function\u0027;\r\nvar isFuncFalse3 = typeof unknown === \u0027function\u0027;","IsDeferred":false},{"Name":"call in function","Code":"var isFuncTrue = fn \u0026\u0026 \u0027call\u0027 in fn;\r\nvar isFuncFalse = obj \u0026\u0026 \u0027call\u0027 in obj;\r\nvar isFuncFalse2 = objNull \u0026\u0026 \u0027call\u0027 in objNull;\r\nvar isFuncFalse3 = unknown \u0026\u0026 \u0027call\u0027 in unknown;","IsDeferred":false},{"Name":"!!fn?.call","Code":"var isFuncTrue = !!fn?.call;\r\nvar isFuncFalse = !!obj?.call;\r\nvar isFuncFalse2 = !!objNull?.call;\r\nvar isFuncFalse3 = !!unknown?.call;","IsDeferred":false},{"Name":"fn?.call != null","Code":"var isFuncTrue = fn?.call != null;\r\nvar isFuncFalse = obj?.call != null;\r\nvar isFuncFalse2 = objNull?.call != null;\r\nvar isFuncFalse3 = unknown?.call != null;","IsDeferred":false},{"Name":"fn?.call != void 0","Code":"var isFuncTrue = fn?.call != void 0;\r\nvar isFuncFalse = obj?.call != void 0;\r\nvar isFuncFalse2 = objNull?.call != void 0;\r\nvar isFuncFalse3 = unknown?.call != void 0;","IsDeferred":false},{"Name":"isFuncTrue = fn?.call != undefined;","Code":"var isFuncTrue = fn?.call != undefined;\r\nvar isFuncFalse = obj?.call != undefined;\r\nvar isFuncFalse2 = objNull?.call != undefined;\r\nvar isFuncFalse3 = unknown?.call != undefined;","IsDeferred":false}]}