public abstract class ScriptArray extends Object
Modifier and Type | Class and Description |
---|---|
protected class |
ScriptArray.DefaultIterator |
protected static interface |
ScriptArray.ProfileAccess |
static interface |
ScriptArray.ProfileHolder |
protected static interface |
ScriptArray.SetLengthProfileAccess |
Modifier and Type | Field and Description |
---|---|
static Object[] |
EMPTY_OBJECT_ARRAY |
protected static ScriptArray.SetLengthProfileAccess |
SET_LENGTH_PROFILE |
Constructor and Description |
---|
ScriptArray() |
Modifier and Type | Method and Description |
---|---|
ScriptArray |
addRange(com.oracle.truffle.api.object.DynamicObject object,
long offset,
int size) |
abstract ScriptArray |
addRangeImpl(com.oracle.truffle.api.object.DynamicObject object,
long offset,
int size)
This method grows the array by adding more elements of a given size.
|
Iterable<Object> |
asIterable(com.oracle.truffle.api.object.DynamicObject object) |
boolean |
canDeleteElement(com.oracle.truffle.api.object.DynamicObject object,
long index,
boolean strict) |
ScriptArray |
cast(ScriptArray other) |
static AbstractConstantArray |
createConstantArray(Object[] elements) |
static AbstractConstantArray |
createConstantEmptyArray() |
static ScriptArray.ProfileHolder |
createSetLengthProfile() |
ScriptArray |
deleteElement(com.oracle.truffle.api.object.DynamicObject object,
long index,
boolean strict) |
abstract ScriptArray |
deleteElementImpl(com.oracle.truffle.api.object.DynamicObject object,
long index,
boolean strict) |
abstract long |
firstElementIndex(com.oracle.truffle.api.object.DynamicObject object)
First element index (inclusive).
|
abstract ScriptArray |
freeze() |
abstract Object |
getElement(com.oracle.truffle.api.object.DynamicObject object,
long index) |
abstract Object |
getElementInBounds(com.oracle.truffle.api.object.DynamicObject object,
long index) |
abstract boolean |
hasElement(com.oracle.truffle.api.object.DynamicObject object,
long index) |
abstract boolean |
hasHoles(com.oracle.truffle.api.object.DynamicObject object) |
boolean |
isExtensible() |
boolean |
isFrozen() |
boolean |
isHolesType()
Returns true when the this array could have hole values in it.
|
boolean |
isInBoundsFast(com.oracle.truffle.api.object.DynamicObject object,
long index)
Range check only, might be a hole depending on array type.
|
boolean |
isInstance(ScriptArray other) |
boolean |
isLengthNotWritable() |
boolean |
isSealed() |
abstract long |
lastElementIndex(com.oracle.truffle.api.object.DynamicObject object)
Last element index (inclusive).
|
abstract long |
length(com.oracle.truffle.api.object.DynamicObject object) |
abstract int |
lengthInt(com.oracle.truffle.api.object.DynamicObject object) |
protected static List<Object> |
makeMultiRangeList(int total,
long[] ranges) |
static List<Object> |
makeRangeList(long rangeStart,
long rangeEnd) |
abstract long |
nextElementIndex(com.oracle.truffle.api.object.DynamicObject object,
long index)
Returns the next index.
|
protected static int |
nextPower(int length) |
List<Object> |
ownPropertyKeys(com.oracle.truffle.api.object.DynamicObject object) |
protected List<Object> |
ownPropertyKeysContiguous(com.oracle.truffle.api.object.DynamicObject object) |
protected List<Object> |
ownPropertyKeysHoles(com.oracle.truffle.api.object.DynamicObject object) |
abstract ScriptArray |
preventExtensions() |
abstract long |
previousElementIndex(com.oracle.truffle.api.object.DynamicObject object,
long index)
Returns the previous index.
|
ScriptArray |
removeRange(com.oracle.truffle.api.object.DynamicObject object,
long start,
long end) |
ScriptArray |
removeRange(com.oracle.truffle.api.object.DynamicObject object,
long start,
long end,
com.oracle.truffle.api.profiles.BranchProfile errorBranch) |
abstract ScriptArray |
removeRangeImpl(com.oracle.truffle.api.object.DynamicObject object,
long start,
long end)
This function deletes all elements in the range from [start..end[.
|
abstract ScriptArray |
seal() |
ScriptArray |
setElement(com.oracle.truffle.api.object.DynamicObject object,
long index,
Object value,
boolean strict) |
abstract ScriptArray |
setElementImpl(com.oracle.truffle.api.object.DynamicObject object,
long index,
Object value,
boolean strict) |
ScriptArray |
setLength(com.oracle.truffle.api.object.DynamicObject object,
long len,
boolean strict) |
ScriptArray |
setLength(com.oracle.truffle.api.object.DynamicObject object,
long len,
boolean strict,
ScriptArray.ProfileHolder profile) |
abstract ScriptArray |
setLengthImpl(com.oracle.truffle.api.object.DynamicObject object,
long len,
ScriptArray.ProfileHolder profile) |
abstract ScriptArray |
setLengthNotWritable() |
ScriptArray |
shiftRange(com.oracle.truffle.api.object.DynamicObject object,
long from,
com.oracle.truffle.api.profiles.BranchProfile errorBranch) |
ScriptArray |
shiftRangeImpl(com.oracle.truffle.api.object.DynamicObject object,
long limit)
This function shifts all elements in the range from [0..limit[.
|
Object[] |
toArray(com.oracle.truffle.api.object.DynamicObject thisObj)
Creates an Object[] from this array, of size array.length.
|
String |
toString(com.oracle.truffle.api.object.DynamicObject object) |
protected static void |
traceArrayTransition(ScriptArray oldArray,
ScriptArray newArray,
long index,
Object value) |
protected static void |
traceWrite(String access,
long index,
Object value) |
static boolean |
valueIsByte(int value) |
public static final Object[] EMPTY_OBJECT_ARRAY
protected static final ScriptArray.SetLengthProfileAccess SET_LENGTH_PROFILE
public abstract Object getElement(com.oracle.truffle.api.object.DynamicObject object, long index)
public abstract Object getElementInBounds(com.oracle.truffle.api.object.DynamicObject object, long index)
public abstract ScriptArray setElementImpl(com.oracle.truffle.api.object.DynamicObject object, long index, Object value, boolean strict)
public final ScriptArray setElement(com.oracle.truffle.api.object.DynamicObject object, long index, Object value, boolean strict)
public abstract ScriptArray deleteElementImpl(com.oracle.truffle.api.object.DynamicObject object, long index, boolean strict)
public final ScriptArray deleteElement(com.oracle.truffle.api.object.DynamicObject object, long index, boolean strict)
public final boolean canDeleteElement(com.oracle.truffle.api.object.DynamicObject object, long index, boolean strict)
public abstract boolean hasElement(com.oracle.truffle.api.object.DynamicObject object, long index)
public abstract long length(com.oracle.truffle.api.object.DynamicObject object)
public abstract int lengthInt(com.oracle.truffle.api.object.DynamicObject object)
public static ScriptArray.ProfileHolder createSetLengthProfile()
public abstract ScriptArray setLengthImpl(com.oracle.truffle.api.object.DynamicObject object, long len, ScriptArray.ProfileHolder profile)
public final ScriptArray setLength(com.oracle.truffle.api.object.DynamicObject object, long len, boolean strict, ScriptArray.ProfileHolder profile)
public final ScriptArray setLength(com.oracle.truffle.api.object.DynamicObject object, long len, boolean strict)
public abstract long firstElementIndex(com.oracle.truffle.api.object.DynamicObject object)
public abstract long lastElementIndex(com.oracle.truffle.api.object.DynamicObject object)
public abstract long nextElementIndex(com.oracle.truffle.api.object.DynamicObject object, long index)
public abstract long previousElementIndex(com.oracle.truffle.api.object.DynamicObject object, long index)
public boolean isInBoundsFast(com.oracle.truffle.api.object.DynamicObject object, long index)
public final Object[] toArray(com.oracle.truffle.api.object.DynamicObject thisObj)
public static AbstractConstantArray createConstantEmptyArray()
public static AbstractConstantArray createConstantArray(Object[] elements)
public static boolean valueIsByte(int value)
public String toString(com.oracle.truffle.api.object.DynamicObject object)
protected static final void traceArrayTransition(ScriptArray oldArray, ScriptArray newArray, long index, Object value)
public boolean isHolesType()
public abstract boolean hasHoles(com.oracle.truffle.api.object.DynamicObject object)
public abstract ScriptArray removeRangeImpl(com.oracle.truffle.api.object.DynamicObject object, long start, long end)
public final ScriptArray removeRange(com.oracle.truffle.api.object.DynamicObject object, long start, long end)
public final ScriptArray removeRange(com.oracle.truffle.api.object.DynamicObject object, long start, long end, com.oracle.truffle.api.profiles.BranchProfile errorBranch)
public ScriptArray shiftRangeImpl(com.oracle.truffle.api.object.DynamicObject object, long limit)
public final ScriptArray shiftRange(com.oracle.truffle.api.object.DynamicObject object, long from, com.oracle.truffle.api.profiles.BranchProfile errorBranch)
public abstract ScriptArray addRangeImpl(com.oracle.truffle.api.object.DynamicObject object, long offset, int size)
offset
- starting offset positionsize
- size of the inserted empty arrayScriptArray
instance with the new sizepublic final ScriptArray addRange(com.oracle.truffle.api.object.DynamicObject object, long offset, int size)
public List<Object> ownPropertyKeys(com.oracle.truffle.api.object.DynamicObject object)
protected final List<Object> ownPropertyKeysContiguous(com.oracle.truffle.api.object.DynamicObject object)
protected final List<Object> ownPropertyKeysHoles(com.oracle.truffle.api.object.DynamicObject object)
protected static int nextPower(int length)
public boolean isSealed()
public boolean isFrozen()
public boolean isLengthNotWritable()
public boolean isExtensible()
public abstract ScriptArray seal()
public abstract ScriptArray freeze()
public abstract ScriptArray setLengthNotWritable()
public abstract ScriptArray preventExtensions()
public final boolean isInstance(ScriptArray other)
public final ScriptArray cast(ScriptArray other)