onchange (updatefn, errorfn, cancelfn) {
		var lastval = undefined;
		var updfn = funcOrNull(updatefn);

		return this.on(updchange, errorfn, cancelfn);

		function updchange (newval, lastres) {
			if (lastval !== newval) {
				lastval = newval;
				return (updfn !== null) ? updfn.call(this, newval, lastres) : newval;
			}
			return _hold;
		}
	}
// Returns reactor which only calls updatefn when input value changes
Returns reactor which only calls updatefn when input value changes
Returns reactor which only calls updatefn when input value changes
onchange (updatefn, errorfn, cancelfn) {
		var lastval = undefined;
		var updfn = funcOrNull(updatefn);
		return this.on(updchange, errorfn, cancelfn);
		function updchange (newval, lastres) {
			if (lastval !== newval) {
				lastval = newval;
				return (updfn !== null) ? updfn.call(this, newval, lastres) : newval;
			}
			return _hold;
		}
	}
onchange ( updatefn , errorfn , cancelfn ) { var lastval = undefined ; var updfn = funcOrNull ( updatefn ) ; return this . on ( updchange , errorfn , cancelfn ) ; function updchange ( newval , lastres ) { if ( lastval !== newval ) { lastval = newval ; return ( updfn !== null ) ? updfn . call ( this , newval , lastres ) : newval ; } return _hold ; } }
Returns reactor which only calls updatefn when input value changes
Returns reactor which only calls updatefn when input value changes