Package org.mozilla.javascript
Class EmbeddedSlotMap
java.lang.Object
org.mozilla.javascript.EmbeddedSlotMap
-
Nested Class Summary
Nested Classes -
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidInsert a new slot to the map.private static voidaddKnownAbsentSlot(Slot[] addSlots, Slot slot) Add slot with keys that are known to absent from the table.private static voidprivate SlotcreateSlot(Object key, int indexOrHash, int attributes) private static intgetSlotIndex(int tableSize, int indexOrHash) private voidinsertNewSlot(Slot newSlot) booleanisEmpty()Return whether the map is empty.iterator()Locate the slot with given name or index, and create a new one if necessary.Locate the slot with the given name or index.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 java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface java.lang.Iterable
forEach, spliterator
-
Field Details
-
slots
-
firstAdded
-
lastAdded
-
count
private int count -
INITIAL_SLOT_SIZE
private static final int INITIAL_SLOT_SIZE- See Also:
-
-
Constructor Details
-
EmbeddedSlotMap
public EmbeddedSlotMap()
-
-
Method Details
-
size
public int size()Description copied from interface:SlotMapReturn the size of the map. -
isEmpty
public boolean isEmpty()Description copied from interface:SlotMapReturn whether the map is empty. -
iterator
-
query
Locate the slot with the given name or index. -
modify
Locate the slot with given name or index, and create a new one if necessary.- Specified by:
modifyin interfaceSlotMap- Parameters:
key- either a String or a Symbol object that identifies the propertyindex- index or 0 if slot holds property name.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.
-
createSlot
-
replace
Description copied from interface:SlotMapReplace "slot" with a new slot. This is used to change slot types. -
add
Description copied from interface:SlotMapInsert a new slot to the map. Both "name" and "indexOrHash" must be populated. Note that ScriptableObject generally adds slots via the "modify" method. -
insertNewSlot
-
remove
Description copied from interface:SlotMapRemove the slot at either "key" or "index". -
copyTable
-
addKnownAbsentSlot
Add slot with keys that are known to absent from the table. This is an optimization to use when inserting into empty table, after table growth or during deserialization. -
getSlotIndex
private static int getSlotIndex(int tableSize, int indexOrHash)
-