anchor.diff:      // We force the hash codes to be unsigned 30-bit integers to avoid
       // issues with problematic keys like '__proto__'. Another option
       // would be to throw an exception if the hash code isn't a number.
  -    return JS('int', '# & 0x3ffffff', identityHashCode(key));
  +    return JS('int', '# & #', identityHashCode(key), _mask30);
     }
   
     int _findBucketIndex(var bucket, var key) {
  
positive.code:     // We force the hash codes to be unsigned 30-bit integers to avoid
      // issues with problematic keys like '__proto__'. Another option
      // would be to throw an exception if the hash code isn't a number.
      return JS('int', '# & 0x3ffffff', identityHashCode(key));
    }
  
    int internalFindBucketIndex(var bucket, var key) {
  
negative.code:     // way, we avoid converting them to strings when we use them as
      // keys in the JavaScript hash table object.
      return element is num &&
          JS('bool', '(# & #) === #', element, _mask30, element);
    }
  
    int _computeHashCode(var element) {
  