render = (...args) => {
if (args.length < 3) {
throw new Error("`render` needs four arguments! (did you forget to pass `this` as #1?)");
}
let [component, props, element, programState] = args;
if (!element) {
element = document.createElement('div');
element.reactRoot = ReactDOM.createRoot(element);
}
element.reactRoot.render(React.createElement(component, {...props, programState: programState || null, __element: element}));
return element;
}