inputNumberPolyfill should not assume anything about inputs and only apply itself when it can, but never error out.
return elem.attr("type").toLowerCase() === "number" && (...)
Should become:
return elem.attr("type") && elem.attr("type").toLowerCase() === "number" &&