function createElement(type, props, children) {
	let normalizedProps = {},
		key,
		ref,
		i;
	for (i in props) {
		if (i == 'key') key = props[i];
		else if (i == 'ref' && typeof type != 'function') ref = props[i];
		else normalizedProps[i] = props[i];
	}

	if (arguments.length > 2) {
		normalizedProps.children =
			arguments.length > 3 ? slice.call(arguments, 2) : children;
	}

	return createVNode(type, normalizedProps, key, ref, NULL);
}
Create an virtual node (used for JSX)
@param {import('./internal').VNode["type"]} type The node name or Component constructor for this
virtual node
@param {object | null | undefined} [props] The properties of the virtual node
@param {Array<import('.').ComponentChildren>} [children] The children of the
virtual node
@returns {import('./internal').VNode}