cache[key] replaces hasOwnProperty.call(cache,key)