function createReactCompositeComponent(vnode) {
        var type = vnode.type;
        var typeName = type.displayName || type.name;
        var instance = vnode.stateNode 
        var dom = React.findDOMNode(instance);
        return {
            getName: function getName() {
                return typeName;
            },

            type: type,
            _instance: instance,
            state: instance.state,
            node: dom,
            props: instance.props,
            _currentElement: {
                type: type,
                key: normalizeKey(vnode.key),
                props: vnode.props,
                ref: null
            },
            // _renderedComponent: updateReactComponent(instance.updater.rendered, dom),
            _renderedComponent: updateReactComponent(vnode.child, dom),
            forceUpdate: instance.forceUpdate && instance.forceUpdate.bind(instance),
            setState: instance.setState && instance.setState.bind(instance)
        };
    }
Return a ReactCompositeComponent-compatible object for a given Inferno
component instance.

This implements the subset of the ReactCompositeComponent interface that
the DevTools requires in order to walk the component tree and inspect the
component's properties.

See https://github.com/facebook/react-devtools/blob/e31ec5825342eda570acfc9bcb43a44258fceb28/backend/getData.js