Package org.mozilla.javascript
Class NativeArray
java.lang.Object
org.mozilla.javascript.ScriptableObject
org.mozilla.javascript.IdScriptableObject
org.mozilla.javascript.NativeArray
- All Implemented Interfaces:
Serializable
,Iterable
,Collection
,List
,SequencedCollection
,ConstProperties
,DebuggableObject
,IdFunctionCall
,Scriptable
,SymbolScriptable
This class implements the Array native object.
- Author:
- Norris Boyd, Mike McCabe
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class org.mozilla.javascript.ScriptableObject
ScriptableObject.KeyComparator
-
Field Summary
Fields inherited from class org.mozilla.javascript.ScriptableObject
CONST, DONTENUM, EMPTY, PERMANENT, READONLY, UNINITIALIZED_CONST
Fields inherited from interface org.mozilla.javascript.Scriptable
NOT_FOUND
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
boolean
boolean
addAll
(int index, Collection c) boolean
addAll
(Collection c) void
clear()
boolean
boolean
protected void
defineOwnProperty
(Context cx, Object id, ScriptableObject desc, boolean checkValid) Defines a property on an object.void
delete
(int index) Removes the indexed property from the object.void
Removes an object like the others, but using a Symbol as the key.execIdCall
(IdFunctionObject f, Context cx, Scriptable scope, Scriptable thisObj, Object[] args) 'thisObj' will be null if invoked as constructor, in which case * instance of Scriptable should be returned.protected void
protected int
Map name to id of instance property.protected int
protected int
get
(int index) get
(int index, Scriptable start) Returns the value of the indexed property or NOT_FOUND.get
(long index) get
(Symbol key, Scriptable start) Another version of Get that supports Symbol keyed properties.int
getAttributes
(int index) Get the attributes of an indexed property.Return the name of the class.getDefaultValue
(Class<?> hint) Implements the [[DefaultValue]] internal method.Object[]
getIds
(boolean nonEnumerable, boolean getSymbols) protected String
getInstanceIdName
(int id) Map id back to property name it defines.protected Object
getInstanceIdValue
(int id) Get id value. * If id value is constant, descendant can call cacheIdValue to store * value in the permanent cache. * Default implementation creates IdFunctionObject instance for given id * and cache its valuelong
protected int
Get maximum id findInstanceIdInfo can generate.protected ScriptableObject
getOwnPropertyDescriptor
(Context cx, Object id) boolean
has
(int index, Scriptable start) Returns true if the property index is defined.boolean
has
(Symbol key, Scriptable start) A version of "has" that supports symbols.int
protected void
initPrototypeId
(int id) boolean
isEmpty()
iterator()
long
Deprecated.int
listIterator
(int start) void
put
(int index, Scriptable start, Object value) Sets the value of the indexed property, creating it if need be.void
put
(String id, Scriptable start, Object value) Sets the value of the named property, creating it if need be.void
put
(Symbol key, Scriptable start, Object value) Implementation of put required by SymbolScriptable objects.remove
(int index) boolean
boolean
boolean
protected void
setInstanceIdAttributes
(int id, int attr) Update the attributes of the given instance property.protected void
setInstanceIdValue
(int id, Object value) Set or delete id value.void
Sets the prototype of the object.int
size()
subList
(int fromIndex, int toIndex) Object[]
toArray()
Object[]
Methods inherited from class org.mozilla.javascript.IdScriptableObject
activatePrototypeMap, addIdFunctionProperty, defaultGet, defaultHas, defaultPut, delete, ensureType, ensureType, exportAsJSClass, findInstanceIdInfo, get, getAttributes, getAttributes, has, hasPrototypeMap, initPrototypeConstructor, initPrototypeMethod, initPrototypeMethod, initPrototypeMethod, initPrototypeValue, initPrototypeValue, instanceIdInfo, setAttributes
Methods inherited from class org.mozilla.javascript.ScriptableObject
applyDescriptorToAttributeBitset, associateValue, avoidObjectDetection, buildDataDescriptor, callMethod, callMethod, checkPropertyChange, checkPropertyDefinition, defineClass, defineClass, defineClass, defineConst, defineConstProperty, defineFunctionProperties, defineOwnProperties, defineOwnProperty, defineProperty, defineProperty, defineProperty, defineProperty, defineProperty, defineProperty, defineProperty, defineProperty, deleteProperty, deleteProperty, ensureScriptable, ensureScriptableObject, ensureSymbolScriptable, equivalentValues, get, getAllIds, getArrayPrototype, getAssociatedValue, getAttributes, getAttributes, getClassPrototype, getDefaultValue, getExternalArrayData, getExternalArrayLength, getFunctionPrototype, getGeneratorFunctionPrototype, getGetterOrSetter, getGetterOrSetter, getIds, getObjectPrototype, getParentScope, getProperty, getProperty, getProperty, getPropertyIds, getPrototype, getTopLevelScope, getTopScopeValue, getTypedProperty, getTypedProperty, getTypeOf, hasInstance, hasProperty, hasProperty, hasProperty, isAccessorDescriptor, isConst, isDataDescriptor, isExtensible, isFalse, isGenericDescriptor, isGetterOrSetter, isSealed, isTrue, preventExtensions, putConst, putConstProperty, putProperty, putProperty, putProperty, querySlot, redefineProperty, sameValue, sealObject, setAttributes, setAttributes, setAttributes, setAttributes, setCommonDescriptorProperties, setExternalArrayData, setGetterOrSetter, setParentScope
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface java.util.Collection
parallelStream, removeIf, stream, toArray
Methods inherited from interface java.util.List
addFirst, addLast, equals, getFirst, getLast, hashCode, removeFirst, removeLast, replaceAll, reversed, sort, spliterator
-
Constructor Details
-
NativeArray
public NativeArray(long lengthArg) -
NativeArray
-
-
Method Details
-
getClassName
Description copied from class:ScriptableObject
Return the name of the class.This is typically the same name as the constructor. Classes extending ScriptableObject must implement this abstract method.
- Specified by:
getClassName
in interfaceScriptable
- Specified by:
getClassName
in classScriptableObject
-
getMaxInstanceId
protected int getMaxInstanceId()Description copied from class:IdScriptableObject
Get maximum id findInstanceIdInfo can generate.- Overrides:
getMaxInstanceId
in classIdScriptableObject
-
setInstanceIdAttributes
protected void setInstanceIdAttributes(int id, int attr) Description copied from class:IdScriptableObject
Update the attributes of the given instance property. Classes which want to support changing property attributes via Object.defineProperty must override this method. The default implementation throws InternalError.- Overrides:
setInstanceIdAttributes
in classIdScriptableObject
- Parameters:
id
- the instance property idattr
- the new attribute bitset
-
findInstanceIdInfo
Description copied from class:IdScriptableObject
Map name to id of instance property. Should return 0 if not found or the result ofIdScriptableObject.instanceIdInfo(int, int)
.- Overrides:
findInstanceIdInfo
in classIdScriptableObject
-
getInstanceIdName
Description copied from class:IdScriptableObject
Map id back to property name it defines.- Overrides:
getInstanceIdName
in classIdScriptableObject
-
getInstanceIdValue
Description copied from class:IdScriptableObject
Get id value. * If id value is constant, descendant can call cacheIdValue to store * value in the permanent cache. * Default implementation creates IdFunctionObject instance for given id * and cache its value- Overrides:
getInstanceIdValue
in classIdScriptableObject
-
setInstanceIdValue
Description copied from class:IdScriptableObject
Set or delete id value. If value == NOT_FOUND , the implementation should make sure that the following getInstanceIdValue return NOT_FOUND.- Overrides:
setInstanceIdValue
in classIdScriptableObject
-
fillConstructorProperties
- Overrides:
fillConstructorProperties
in classIdScriptableObject
-
initPrototypeId
protected void initPrototypeId(int id) - Overrides:
initPrototypeId
in classIdScriptableObject
-
execIdCall
public Object execIdCall(IdFunctionObject f, Context cx, Scriptable scope, Scriptable thisObj, Object[] args) Description copied from class:IdScriptableObject
'thisObj' will be null if invoked as constructor, in which case * instance of Scriptable should be returned.- Specified by:
execIdCall
in interfaceIdFunctionCall
- Overrides:
execIdCall
in classIdScriptableObject
-
setPrototype
Description copied from class:ScriptableObject
Sets the prototype of the object.- Specified by:
setPrototype
in interfaceScriptable
- Overrides:
setPrototype
in classScriptableObject
- Parameters:
p
- the prototype to set
-
get
Description copied from class:ScriptableObject
Returns the value of the indexed property or NOT_FOUND.- Specified by:
get
in interfaceScriptable
- Overrides:
get
in classScriptableObject
- Parameters:
index
- the numeric index for the propertystart
- the object in which the lookup began- Returns:
- the value of the property (may be null), or NOT_FOUND
- See Also:
-
has
Description copied from class:ScriptableObject
Returns true if the property index is defined.- Specified by:
has
in interfaceScriptable
- Overrides:
has
in classScriptableObject
- Parameters:
index
- the numeric index for the propertystart
- the object in which the lookup began- Returns:
- true if and only if the property was found in the object
- See Also:
-
has
Description copied from class:ScriptableObject
A version of "has" that supports symbols.- Specified by:
has
in interfaceSymbolScriptable
- Overrides:
has
in classIdScriptableObject
-
get
Description copied from class:ScriptableObject
Another version of Get that supports Symbol keyed properties.- Specified by:
get
in interfaceSymbolScriptable
- Overrides:
get
in classIdScriptableObject
-
put
Description copied from class:ScriptableObject
Implementation of put required by SymbolScriptable objects.- Specified by:
put
in interfaceSymbolScriptable
- Overrides:
put
in classIdScriptableObject
-
delete
Description copied from class:ScriptableObject
Removes an object like the others, but using a Symbol as the key.- Specified by:
delete
in interfaceSymbolScriptable
- Overrides:
delete
in classIdScriptableObject
-
put
Description copied from class:ScriptableObject
Sets the value of the named property, creating it if need be.If the property was created using defineProperty, the appropriate setter method is called.
If the property's attributes include READONLY, no action is taken. This method will actually set the property in the start object.
- Specified by:
put
in interfaceScriptable
- Overrides:
put
in classIdScriptableObject
- Parameters:
id
- the name of the propertystart
- the object whose property is being setvalue
- value to set the property to- See Also:
-
put
Description copied from class:ScriptableObject
Sets the value of the indexed property, creating it if need be.- Specified by:
put
in interfaceScriptable
- Overrides:
put
in classScriptableObject
- Parameters:
index
- the numeric index for the propertystart
- the object whose property is being setvalue
- value to set the property to- See Also:
-
delete
public void delete(int index) Description copied from class:ScriptableObject
Removes the indexed property from the object.If the property is not found, or it has the PERMANENT attribute, no action is taken.
- Specified by:
delete
in interfaceScriptable
- Overrides:
delete
in classScriptableObject
- Parameters:
index
- the numeric index for the property- See Also:
-
getIds
-
getIndexIds
-
getDefaultValue
Description copied from class:ScriptableObject
Implements the [[DefaultValue]] internal method.Note that the toPrimitive conversion is a no-op for every type other than Object, for which [[DefaultValue]] is called. See ECMA 9.1.
A
hint
of null means "no hint".- Specified by:
getDefaultValue
in interfaceScriptable
- Overrides:
getDefaultValue
in classScriptableObject
- Parameters:
hint
- the type hint- Returns:
- the default value for the object
See ECMA 8.6.2.6.
-
getAttributes
public int getAttributes(int index) Description copied from class:ScriptableObject
Get the attributes of an indexed property.- Overrides:
getAttributes
in classScriptableObject
- Parameters:
index
- the numeric index for the property- Returns:
- the bitset of attributes
- See Also:
-
getOwnPropertyDescriptor
- Overrides:
getOwnPropertyDescriptor
in classIdScriptableObject
-
defineOwnProperty
Description copied from class:ScriptableObject
Defines a property on an object.Based on [[DefineOwnProperty]] from 8.12.10 of the spec.
- Overrides:
defineOwnProperty
in classIdScriptableObject
- Parameters:
cx
- the current Contextid
- the name/index of the propertydesc
- the new property descriptor, as described in 8.6.1checkValid
- whether to perform validity checks
-
getLength
public long getLength() -
jsGet_length
Deprecated.UsegetLength()
instead. -
contains
- Specified by:
contains
in interfaceCollection
- Specified by:
contains
in interfaceList
-
toArray
- Specified by:
toArray
in interfaceCollection
- Specified by:
toArray
in interfaceList
-
toArray
- Specified by:
toArray
in interfaceCollection
- Specified by:
toArray
in interfaceList
-
containsAll
- Specified by:
containsAll
in interfaceCollection
- Specified by:
containsAll
in interfaceList
-
size
public int size()- Specified by:
size
in interfaceCollection
- Specified by:
size
in interfaceList
- Overrides:
size
in classScriptableObject
-
isEmpty
public boolean isEmpty()- Specified by:
isEmpty
in interfaceCollection
- Specified by:
isEmpty
in interfaceList
- Overrides:
isEmpty
in classScriptableObject
-
get
-
get
-
indexOf
-
lastIndexOf
- Specified by:
lastIndexOf
in interfaceList
-
iterator
-
listIterator
- Specified by:
listIterator
in interfaceList
-
listIterator
- Specified by:
listIterator
in interfaceList
-
add
- Specified by:
add
in interfaceCollection
- Specified by:
add
in interfaceList
-
remove
- Specified by:
remove
in interfaceCollection
- Specified by:
remove
in interfaceList
-
addAll
- Specified by:
addAll
in interfaceCollection
- Specified by:
addAll
in interfaceList
-
removeAll
- Specified by:
removeAll
in interfaceCollection
- Specified by:
removeAll
in interfaceList
-
retainAll
- Specified by:
retainAll
in interfaceCollection
- Specified by:
retainAll
in interfaceList
-
clear
public void clear()- Specified by:
clear
in interfaceCollection
- Specified by:
clear
in interfaceList
-
add
-
addAll
-
set
-
remove
-
subList
-
findPrototypeId
- Overrides:
findPrototypeId
in classIdScriptableObject
-
findPrototypeId
- Overrides:
findPrototypeId
in classIdScriptableObject
-
getLength()
instead.