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