Free memory in goog.functions.cacheReturnValue

 A closure can retain a large amount of memory. This discards the reference to the wrapped function once it is no longer needed.

`var fn2 = fn;` was the best way I saw of overcoming the type error.

Removing the the `called` variable was not necessary, but it minimized the number of variables and code.