(function umd(root, factory) {
    if (typeof exports === "object" && typeof module === "object") {
        module.exports = factory(require("react"));
    } else if (typeof define === "function" && define.amd) {
        define(["react"], factory);
    } else if (typeof exports === "object") {
        exports.ReactDOMFactories = factory(require("react"));
    } else {
        root.ReactDOMFactories = factory(root["React"]);
    }
})(this, function(ReactInAnujs) {

    function checkNull(vnode) {
        if (vnode === null || vnode === false) {
            return { type: "#comment", text: "empty", vtype: 0 };
        }
        return vnode;
    }
    function ReactShallowRenderer() {
        return {
            render: function(vnode) {
                var ret;
                if (vnode.vtype === 2) {
                    ret = checkNull(new vnode.type());
                    ret = checkNull(ret);
                } else if (vnode.vtype === 4) {
                    ret = checkNull(vnode.type());
                } else {
                    ret = vnode;
                }
                this.ret = ret;
            },
            getRenderOutput:function(){
                return this.ret;
            }
        };
    }

});