transformation.extendMethod(TransformConstants.CONTAINING_PAGE_DID_DETACH_SIGNATURE, b.toString());
// prefix the existing method to cache the result
b.clear();
b.begin();
// if it has been called and watch is set and the old value is the same as the new value then return
// get the old value and cache it
/* NOTE: evaluates the binding twice when checking the new value.
* this is probably not a problem because in most cases properties