public final class SparseArray extends DynamicArray
DynamicArray.DynamicArrayCache
ScriptArray.CreateWritableProfileAccess, ScriptArray.DefaultIterator, ScriptArray.SetLengthProfileAccess
cache, INTEGRITY_LEVEL_FROZEN, INTEGRITY_LEVEL_FROZEN_LENGTH_READONLY, INTEGRITY_LEVEL_MASK, INTEGRITY_LEVEL_NONE, INTEGRITY_LEVEL_NONE_LENGTH_READONLY, INTEGRITY_LEVEL_NOT_EXTENSIBLE, INTEGRITY_LEVEL_NOT_EXTENSIBLE_LENGTH_READONLY, INTEGRITY_LEVEL_SEALED, INTEGRITY_LEVEL_SEALED_LENGTH_READONLY, INTEGRITY_LEVELS, integrityLevel, LENGTH_NOT_WRITABLE, LENGTH_WRITABLE_MASK
EMPTY_OBJECT_ARRAY
Modifier and Type | Method and Description |
---|---|
ScriptArray |
addRangeImpl(JSDynamicObject object,
long offset,
int size)
This method grows the array by adding more elements of a given size.
|
Object |
cloneArray(JSDynamicObject object) |
protected static void |
copyArrayToMap(JSDynamicObject object,
ScriptArray fromArray,
Map<Long,Object> toMap) |
static TreeMap<Long,Object> |
createArrayMap() |
static SparseArray |
createSparseArray() |
ScriptArray |
deleteElementImpl(JSDynamicObject object,
long index,
boolean strict) |
long |
firstElementIndex(JSDynamicObject object)
First element index (inclusive).
|
Object |
getElement(JSDynamicObject object,
long index) |
Object |
getElementInBounds(JSDynamicObject object,
long index) |
boolean |
hasElement(JSDynamicObject object,
long index) |
boolean |
hasHoles(JSDynamicObject object) |
boolean |
isHolesType()
Returns true when the this array could have hole values in it.
|
long |
lastElementIndex(JSDynamicObject object)
Last element index (inclusive).
|
long |
length(JSDynamicObject object) |
int |
lengthInt(JSDynamicObject object) |
static SparseArray |
makeSparseArray(JSDynamicObject object,
ScriptArray fromArray) |
long |
nextElementIndex(JSDynamicObject object,
long index)
Returns the next index.
|
List<Object> |
ownPropertyKeys(JSDynamicObject object) |
long |
previousElementIndex(JSDynamicObject object,
long index)
Returns the previous index.
|
ScriptArray |
removeRangeImpl(JSDynamicObject object,
long start,
long end)
This function deletes all elements in the range from [start..end[.
|
ScriptArray |
setElementImpl(JSDynamicObject object,
long index,
Object value,
boolean strict) |
SparseArray |
setLengthImpl(JSDynamicObject object,
long len,
com.oracle.truffle.api.nodes.Node node,
ScriptArray.SetLengthProfileAccess profile) |
protected DynamicArray |
withIntegrityLevel(int newIntegrityLevel) |
createCache, freeze, isExtensible, isFrozen, isLengthNotWritable, isSealed, maybePreinitializeCache, preventExtensions, seal, setIntegrityLevel, setLengthNotWritable, toString
addRange, asIterable, canDeleteElement, cast, createConstantArray, createConstantEmptyArray, deleteElement, isInBoundsFast, isInstance, makeMultiRangeList, makeRangeList, nextPower, ownPropertyKeysContiguous, ownPropertyKeysHoles, removeRange, removeRange, setElement, setLength, setLength, shiftRange, shiftRangeImpl, toArray, toString, traceArrayTransition, traceWrite, valueIsByte
public static SparseArray createSparseArray()
public static SparseArray makeSparseArray(JSDynamicObject object, ScriptArray fromArray)
protected static void copyArrayToMap(JSDynamicObject object, ScriptArray fromArray, Map<Long,Object> toMap)
public Object getElement(JSDynamicObject object, long index)
getElement
in class ScriptArray
public Object getElementInBounds(JSDynamicObject object, long index)
getElementInBounds
in class ScriptArray
public ScriptArray setElementImpl(JSDynamicObject object, long index, Object value, boolean strict)
setElementImpl
in class ScriptArray
public long length(JSDynamicObject object)
length
in class ScriptArray
public int lengthInt(JSDynamicObject object)
lengthInt
in class ScriptArray
public SparseArray setLengthImpl(JSDynamicObject object, long len, com.oracle.truffle.api.nodes.Node node, ScriptArray.SetLengthProfileAccess profile)
setLengthImpl
in class ScriptArray
public long firstElementIndex(JSDynamicObject object)
ScriptArray
firstElementIndex
in class ScriptArray
public long lastElementIndex(JSDynamicObject object)
ScriptArray
lastElementIndex
in class ScriptArray
public long nextElementIndex(JSDynamicObject object, long index)
ScriptArray
nextElementIndex
in class ScriptArray
public long previousElementIndex(JSDynamicObject object, long index)
ScriptArray
previousElementIndex
in class ScriptArray
public Object cloneArray(JSDynamicObject object)
cloneArray
in class DynamicArray
public ScriptArray deleteElementImpl(JSDynamicObject object, long index, boolean strict)
deleteElementImpl
in class ScriptArray
public boolean hasElement(JSDynamicObject object, long index)
hasElement
in class ScriptArray
public boolean isHolesType()
ScriptArray
isHolesType
in class ScriptArray
public boolean hasHoles(JSDynamicObject object)
hasHoles
in class ScriptArray
public ScriptArray removeRangeImpl(JSDynamicObject object, long start, long end)
ScriptArray
removeRangeImpl
in class ScriptArray
public ScriptArray addRangeImpl(JSDynamicObject object, long offset, int size)
ScriptArray
addRangeImpl
in class ScriptArray
offset
- starting offset positionsize
- size of the inserted empty arrayScriptArray
instance with the new sizepublic List<Object> ownPropertyKeys(JSDynamicObject object)
ownPropertyKeys
in class ScriptArray
protected DynamicArray withIntegrityLevel(int newIntegrityLevel)
withIntegrityLevel
in class DynamicArray