src/aria/utils/StackHashMap.js
function (key) {
                var map = this._getMap(key, false);
                if (map == null) {
                    return undefined;
                }
                var item;
                if (map == this._objectKeys) {
                    item = key[this._metaDataName];
                    if (item) {
                        key[this._metaDataName] = item.next;
                        if (!item.next) {
                            delete key[this._metaDataName];
                        }
                    }
                } else if (map != this._otherKeys) {
                    item = map[key];
                } else {
                    for (var i in map) {
                        if (map.hasOwnProperty(i)) {
                            var elt = map[i];
                            if (key === elt.key) {
                                item = elt;
                                break;
                            }
                        }
                    }
                }
                if (item) {
                    var next = item.next;
                    map[item.index] = next;
                    if (!next) {
                        delete map[item.index];
                    }
                    item.key = null;
                    item.next = null;
                    return item.value;
                } else {
                    return undefined;
                }
            }
function (key) {
                var map = this._getMap(key, false);
                if (map == null) {
                    return undefined;
                }
                var item;
                if (map == this._objectKeys) {
                    item = key[this._metaDataName];
                    if (item) {
                        key[this._metaDataName] = item.next;
                        if (!item.next) {
                            delete key[this._metaDataName];
                        }
                    }
                } else if (map != this._otherKeys) {
                    item = map[key];
                } else {
                    for (var i in map) {
                        if (map.hasOwnProperty(i)) {
                            var elt = map[i];
                            if (key === elt.key) {
                                item = elt;
                                break;
                            }
                        }
                    }
                }
                if (item) {
                    var next = item.next;
                    map[item.index] = next;
                    if (!next) {
                        delete map[item.index];
                    }
                    item.key = null;
                    item.next = null;
                    return item.value;
                } else {
                    return undefined;
                }
            }
function ( key ) { var map = this . _getMap ( key , false ) ; if ( map == null ) { return undefined ; } var item ; if ( map == this . _objectKeys ) { item = key [ this . _metaDataName ] ; if ( item ) { key [ this . _metaDataName ] = item . next ; if ( ! item . next ) { delete key [ this . _metaDataName ] ; } } } else if ( map != this . _otherKeys ) { item = map [ key ] ; } else { for ( var i in map ) { if ( map . hasOwnProperty ( i ) ) { var elt = map [ i ] ; if ( key === elt . key ) { item = elt ; break ; } } } } if ( item ) { var next = item . next ; map [ item . index ] = next ; if ( ! next ) { delete map [ item . index ] ; } item . key = null ; item . next = null ; return item . value ; } else { return undefined ; } }
Remove an entry from the StackHashMap object and return the value.
@param {MultiTypes} key key which was used to add the entry in the StackHashMap object.
@return {MultiTypes} value associated to the given key. If several entries were added with the same key,
return the last one which has not yet been removed (it is a stack).
Remove an entry from the StackHashMap object and return the value .