update patchFn to align with the new semantics of zone.bind