code: function (key) {
                                  var that = this
                                      , entry = getEntry(that, key);
                                  if (entry) {
                                      var next = entry.n
                                          , prev = entry.p;
                                      delete that._i[entry.i];
                                      entry.r = true;
                                      if (prev) prev.n = next;
                                      if (next) next.p = prev;
                                      if (that._f == entry) that._f = next;
                                      if (that._l == entry) that._l = prev;
                                      that[SIZE]--;
                                  } return !!entry;
                              }
docs: 23.1.3.3 Map.prototype.delete(key) 23.2.3.4 Set.prototype.delete(value)