Class HashSlotMap
java.lang.Object
org.mozilla.javascript.HashSlotMap
This class implements the SlotMap interface using a java.util.HashMap. This class has more
overhead than EmbeddedSlotMap, especially because it puts each "Slot" inside an intermediate
object. However it is much more resistant to large number of hash collisions than EmbeddedSlotMap
and therefore we use this implementation when an object gains a large number of properties.
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidInsert a new slot to the map.private SlotcreateSlot(Object key, int index, int attributes) booleanisEmpty()Return whether the map is empty.iterator()private Objectprivate ObjectReturn the Slot that matches EITHER "key" or "index".Retrieve the slot at EITHER key or index, or return null if the slot cannot be found.voidRemove the slot at either "key" or "index".voidReplace "slot" with a new slot.intsize()Return the size of the map.Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface Iterable
forEach, spliterator
-
Field Details
-
map
-
-
Constructor Details
-
HashSlotMap
public HashSlotMap()
-
-
Method Details
-
size
-
isEmpty
-
query
Description copied from interface:SlotMapRetrieve the slot at EITHER key or index, or return null if the slot cannot be found. -
modify
Description copied from interface:SlotMapReturn the Slot that matches EITHER "key" or "index". (It will use "key" if it is not null, and otherwise "index".) If no slot exists, then create a default slot class.- Specified by:
modifyin interfaceSlotMap- Parameters:
key- The key for the slot, which should be a String or a Symbol.index- if key is zero, then this will be used as the key instead.attributes- the attributes to be set on the slot if a new slot is created. Existing slots will not be modified.- Returns:
- a Slot, which will be created anew if no such slot exists.
-
replace
-
createSlot
-
add
-
remove
Description copied from interface:SlotMapRemove the slot at either "key" or "index". -
iterator
-
makeKey
-
makeKey
-