Package org.mozilla.javascript
Class EmbeddedSlotMap
java.lang.Object
org.mozilla.javascript.EmbeddedSlotMap
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.mozilla.javascript.SlotMap
SlotMap.SlotComputer<S extends Slot> -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidInsert a new slot to the map.<S extends Slot>
Scompute(Object key, int index, SlotMap.SlotComputer<S> c) Replace the value of key with the slot computed by the "compute" method.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.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
-
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.
-
compute
Description copied from interface:SlotMapReplace the value of key with the slot computed by the "compute" method. If "compute" throws an exception, make no change. If "compute" returns null, remove the mapping, otherwise, replace any existing mapping with the result of "compute", and create a new mapping if none exists. This is equivalent to the "compute" method on the Map interface, which simplifies code and is more efficient than making multiple calls to this interface. In order to allow use of multiple Slot subclasses, this function is templatized. -
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.
-