MCPcopy Create free account
hub / github.com/bigskysoftware/_hyperscript / _bind

Function _bind

www/js/_hyperscript-max.js:9908–9940  ·  view source on GitHub ↗
(left, right, target, feature, runtime2)

Source from the content-addressed store, hash-verified

9906 return typeof expr.set === "function";
9907 }
9908 function _bind(left, right, target, feature, runtime2) {
9909 var ctx = runtime2.makeContext(target, feature, target, null);
9910 var leftSide = _resolveSide(left, target, feature, runtime2, ctx);
9911 var rightSide = _resolveSide(right, target, feature, runtime2, ctx);
9912 var leftWritable = leftSide.element || _isAssignable(left);
9913 var rightWritable = rightSide.element || _isAssignable(right);
9914 if (!leftWritable && !rightWritable) {
9915 throw new Error("bind requires at least one writable side");
9916 }
9917 if (leftWritable) {
9918 runtime2.reactivity.createEffect(
9919 function() {
9920 return rightSide.read();
9921 },
9922 function(newValue) {
9923 leftSide.write(newValue);
9924 },
9925 { element: target }
9926 );
9927 }
9928 if (rightWritable) {
9929 runtime2.reactivity.createEffect(
9930 function() {
9931 return leftSide.read();
9932 },
9933 function(newValue) {
9934 rightSide.write(newValue);
9935 },
9936 { element: target }
9937 );
9938 }
9939 _setupFormReset(leftSide, rightSide, target, runtime2);
9940 }
9941 function _resolveSide(expr, target, feature, runtime2, ctx) {
9942 var value = expr.evaluate(ctx);
9943 if (value instanceof Element) {

Callers 1

installMethod · 0.70

Calls 5

_resolveSideFunction · 0.70
_isAssignableFunction · 0.70
_setupFormResetFunction · 0.70
makeContextMethod · 0.45
createEffectMethod · 0.45

Tested by

no test coverage detected