move no-loop to an extension
refactor as extension to fn prototype