backprop.js
function(typeCoerce) {
        return function(specObj) {
            specObj = specObj || {};
            var innerCoerce = specObj.coerce;

            if (typeof innerCoerce === 'function') {
                specObj.coerce = function(x) { return innerCoerce(typeCoerce(x)); };
            } else {
                specObj.coerce = typeCoerce;
            }
            return new PropPlaceholder(specObj);
        };
    }
function(typeCoerce) {
        return function(specObj) {
            specObj = specObj || {};
            var innerCoerce = specObj.coerce;

            if (typeof innerCoerce === 'function') {
                specObj.coerce = function(x) { return innerCoerce(typeCoerce(x)); };
            } else {
                specObj.coerce = typeCoerce;
            }
            return new PropPlaceholder(specObj);
        };
    }
Allow use of shorthand properties like "myprop: Backprop.Boolean()". This avoids having to pass in an explicit coerce function when you are just casting to a JS type. If you do pass in a coerce function, it will still work, but the type cast will be applied first.