Improved `supported` function

JavaScript

var supported = (function()
{
    var div = document.createElement('div'),
    vendors = 'Khtml Ms O Moz Webkit'.split(' '),
    len = vendors.length;
    return function(prop)
    {
        prop = prop.replace(/-[a-z]/g, function (val) { return val.toUpperCase(); }).replace(/-/g, '');
        if( prop in div.style ) return 1;
        prop = prop.replace(/^[a-z]/, function(val) { return val.toUpperCase(); });
        while(len--)
        {
            if ( vendors[len] + prop in div.style )
            {
                return 2;
            }
        }
        return false;
    };
})();


// TESTING

function log(s) {
    $('body').append('<p>'+s+'</p>');
};

$.each([ 'cursor', 'border-radius', 'box-sizing' ], function (i, e) {
    var s = '<strong>'+e+'</strong>: ';
    switch (supported(e)) {
        case false: s += '✗ no'; break;
        case 1: s += '✓ yes'; break;
        case 2: s += '✓ yes, proprietary'; break;
    }
    log(s);
});