{"ScriptPreparationCode":"function classnames2(a, b) {\r\n return a ? (b ? \u0060${a} ${b}\u0060 : a) : b || \u0027\u0027;\r\n}\r\n\r\nfunction classnames3(a, b, c) {\r\n return a\r\n ? b\r\n ? c\r\n ? \u0060${a} ${b} ${c}\u0060\r\n : \u0060${a} ${b}\u0060\r\n : c\r\n ? \u0060${a} ${c}\u0060\r\n : a\r\n : classnames2(b, c);\r\n}\r\n\r\nfunction classnamesFlex(...classes) {\r\n return classes.filter(Boolean).join(\u0027 \u0027);\r\n}\r\n\r\n// explicitly handling 2 arguments handles most of our use cases efficiently\r\nfunction classnames(a, b, c) {\r\n const numArgs = arguments.length;\r\n\r\n if (numArgs === 1) {\r\n return a || \u0027\u0027;\r\n } else if (numArgs === 2) {\r\n return classnames2(a, b);\r\n } else if (numArgs === 3) {\r\n return classnames3(a, b, c);\r\n } else {\r\n return classnamesFlex.apply(null, arguments);\r\n }\r\n}","TestCases":[{"Name":"classnames","Code":"classnames(null, \u0022a\u0022);","IsDeferred":false},{"Name":"classnames flex","Code":"classnamesFlex(null, \u0022a\u0022);","IsDeferred":false}]}