fix($parse) move oneTime detection to parser and cache function values

This fixes issue #10133