{"ScriptPreparationCode":" var getClass = {}.toString,\r\n hasProperty = {}.hasOwnProperty,\r\n expression = /Kit/g;\r\n \r\n function Test() {}\r\n \r\n // Checks the internal [[Class]] name of the object.\r\n \r\n \r\n function isFunctionA(object) {\r\n return object \u0026\u0026 getClass.call(object) == \u0027[object Function]\u0027;\r\n }\r\n \r\n // Partial duck-typing implementation by Garrett Smith.\r\n \r\n \r\n function isFunctionB(object) {\r\n return typeof object === \u0027function\u0027\r\n }\r\n \r\n // Pure duck-typing implementation taken from Underscore.js.\r\n \r\n \r\n function isFunctionC(object) {\r\n return !!(object \u0026\u0026 object.constructor \u0026\u0026 object.call \u0026\u0026 object.apply);\r\n }","TestCases":[{"Name":"B","Code":"isFunctionB(Test);\r\nisFunctionB(getClass);\r\nisFunctionB(hasProperty);\r\n!isFunctionB(expression);","IsDeferred":false},{"Name":"C","Code":"isFunctionC(Test);\r\nisFunctionC(getClass);\r\nisFunctionC(hasProperty);\r\n!isFunctionC(expression);","IsDeferred":false}]}