Class AbstractConstantLazyArray
java.lang.Object
com.oracle.truffle.js.runtime.array.ScriptArray
com.oracle.truffle.js.runtime.array.DynamicArray
com.oracle.truffle.js.runtime.array.dyn.AbstractConstantArray
com.oracle.truffle.js.runtime.array.dyn.AbstractConstantLazyArray
- Direct Known Subclasses:
LazyArray,LazyRegexResultArray,LazyRegexResultIndicesArray
Common base class for lazy array strategies.
-
Nested Class Summary
Nested classes/interfaces inherited from class com.oracle.truffle.js.runtime.array.DynamicArray
DynamicArray.DynamicArrayCacheNested classes/interfaces inherited from class com.oracle.truffle.js.runtime.array.ScriptArray
ScriptArray.CreateWritableProfileAccess, ScriptArray.DefaultIterator, ScriptArray.SetLengthProfileAccess -
Field Summary
Fields inherited from class com.oracle.truffle.js.runtime.array.DynamicArray
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_MASKFields inherited from class com.oracle.truffle.js.runtime.array.ScriptArray
EMPTY_OBJECT_ARRAY -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAbstractConstantLazyArray(int integrityLevel, DynamicArray.DynamicArrayCache cache) -
Method Summary
Modifier and TypeMethodDescriptionfinal ScriptArrayaddRangeImpl(JSDynamicObject object, long offset, int size) This method grows the array by adding more elements of a given size.final AbstractWritableArraycreateWriteableDouble(JSDynamicObject object, long index, double value, com.oracle.truffle.api.nodes.Node node, ScriptArray.CreateWritableProfileAccess profile) final AbstractWritableArraycreateWriteableInt(JSDynamicObject object, long index, int value, com.oracle.truffle.api.nodes.Node node, ScriptArray.CreateWritableProfileAccess profile) final AbstractWritableArraycreateWriteableJSObject(JSDynamicObject object, long index, JSDynamicObject value, com.oracle.truffle.api.nodes.Node node, ScriptArray.CreateWritableProfileAccess profile) final ScriptArraydeleteElementImpl(JSDynamicObject object, long index, boolean strict) final booleanhasElement(JSDynamicObject object, long index) final longlength(JSDynamicObject object) final intlengthInt(JSDynamicObject object) final ScriptArrayremoveRangeImpl(JSDynamicObject object, long start, long end) This function deletes all elements in the range from [start..end[.final ScriptArraysetLengthImpl(JSDynamicObject object, long len, com.oracle.truffle.api.nodes.Node node, ScriptArray.SetLengthProfileAccess profile) Methods inherited from class com.oracle.truffle.js.runtime.array.dyn.AbstractConstantArray
createWriteableObject, firstElementIndex, getElement, getElementInBounds, getElementInBounds, hasHoles, isInBoundsFast, lastElementIndex, nextElementIndex, previousElementIndex, setElementImplMethods inherited from class com.oracle.truffle.js.runtime.array.DynamicArray
cloneArray, createCache, freeze, isExtensible, isFrozen, isLengthNotWritable, isSealed, maybePreinitializeCache, preventExtensions, seal, setIntegrityLevel, setLengthNotWritable, toString, withIntegrityLevelMethods inherited from class com.oracle.truffle.js.runtime.array.ScriptArray
addRange, asIterable, canDeleteElement, cast, createConstantArray, createConstantEmptyArray, deleteElement, hasHolesOrUnused, isHolesType, isInstance, makeMultiRangeList, makeRangeList, nextPower, ownPropertyKeys, ownPropertyKeysContiguous, ownPropertyKeysHoles, removeRange, removeRange, setElement, setLength, setLength, shiftRange, shiftRangeImpl, toArray, traceArrayTransition, traceWrite, valueIsByte
-
Constructor Details
-
AbstractConstantLazyArray
-
-
Method Details
-
hasElement
- Specified by:
hasElementin classScriptArray- Returns:
- true if array has an element (not a hole) at this index.
-
length
- Specified by:
lengthin classScriptArray
-
lengthInt
- Specified by:
lengthIntin classScriptArray
-
createWriteableDouble
public final AbstractWritableArray createWriteableDouble(JSDynamicObject object, long index, double value, com.oracle.truffle.api.nodes.Node node, ScriptArray.CreateWritableProfileAccess profile) - Specified by:
createWriteableDoublein classAbstractConstantArray
-
createWriteableInt
public final AbstractWritableArray createWriteableInt(JSDynamicObject object, long index, int value, com.oracle.truffle.api.nodes.Node node, ScriptArray.CreateWritableProfileAccess profile) - Specified by:
createWriteableIntin classAbstractConstantArray
-
createWriteableJSObject
public final AbstractWritableArray createWriteableJSObject(JSDynamicObject object, long index, JSDynamicObject value, com.oracle.truffle.api.nodes.Node node, ScriptArray.CreateWritableProfileAccess profile) - Specified by:
createWriteableJSObjectin classAbstractConstantArray
-
deleteElementImpl
- Specified by:
deleteElementImplin classScriptArray
-
setLengthImpl
public final ScriptArray setLengthImpl(JSDynamicObject object, long len, com.oracle.truffle.api.nodes.Node node, ScriptArray.SetLengthProfileAccess profile) - Specified by:
setLengthImplin classScriptArray
-
removeRangeImpl
Description copied from class:ScriptArrayThis function deletes all elements in the range from [start..end[. This is equivalent to shifting the whole array, starting with element index end, by end-start positions to the left. Can be used by e.g. Array.prototype.splice;- Specified by:
removeRangeImplin classScriptArray
-
addRangeImpl
Description copied from class:ScriptArrayThis method grows the array by adding more elements of a given size. An offset parameter can be used to specify where the new elements have to be added (starting from zero). The operation is equivalent to shifting (right) the whole array or its part as defined by the offset parameter.- Specified by:
addRangeImplin classScriptArray- Parameters:
offset- starting offset positionsize- size of the inserted empty array- Returns:
- a
ScriptArrayinstance with the new size
-