function every(obj, f, opt_obj) {
  for (const key in obj) {
    if (!f.call(/** @type {?} */ (opt_obj), obj[key], key, obj)) {
      return false;
    }
  }
  return true;
}
Calls a function for each element in an object/map/hash. If
all calls return true, returns true. If any call returns false, returns
false at this point and does not continue to check the remaining elements.
@param {?Object<K,V>} obj The object to check.
@param {?function(this:T,V,?,?Object<K,V>):boolean} f The function to call
    for every element. This function takes 3 arguments (the value, the key
    and the object) and should return a boolean.
@param {T=} opt_obj This is used as the 'this' object within f.
@return {boolean} false if any element fails the test.
@template T,K,V