function bind_content_editable(property, element, get, set = get) {
	element.addEventListener('input', () => {
		// @ts-ignore
		set(element[property]);
	});

	render_effect(() => {
		var value = get();

		if (element[property] !== value) {
			if (value == null) {
				// @ts-ignore
				var non_null_value = element[property];
				set(non_null_value);
			} else {
				// @ts-ignore
				element[property] = value + '';
			}
		}
	});
}
@param {'innerHTML' | 'textContent' | 'innerText'} property
@param {HTMLElement} element
@param {() => unknown} get
@param {(value: unknown) => void} set
@returns {void}