Package org.mozilla.javascript
Class IdScriptableObject
java.lang.Object
org.mozilla.javascript.ScriptableObject
org.mozilla.javascript.IdScriptableObject
- All Implemented Interfaces:
Serializable
,ConstProperties
,DebuggableObject
,IdFunctionCall
,Scriptable
- Direct Known Subclasses:
BaseFunction
,NativeArray
,NativeArrayBuffer
,NativeArrayBufferView
,NativeCall
,NativeCallSite
,NativeContinuation
,NativeGenerator
,NativeIterator
,NativeJSON
,NativeObject
,NativeRegExp
,TopLevel
,XMLObject
Base class for native object implementation that uses IdFunctionObject to export its methods to script via invalid input: '<'class-name>.prototype object.
Any descendant should implement at least the following methods:
findInstanceIdInfo
getInstanceIdName
execIdCall
methodArity
To define non-function properties, the descendant should override
getInstanceIdValue
setInstanceIdValue
to get/set property value and provide its default attributes.
To customize initialization of constructor and prototype objects, descendant
may override scopeInit or fillConstructorProperties methods.
- See Also:
-
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
Constructors -
Method Summary
Modifier and TypeMethodDescriptionfinal void
activatePrototypeMap
(int maxPrototypeId) void
defineOwnProperty
(Context cx, Object key, ScriptableObject desc) Defines a property on an object.void
Removes a named property from the object.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.final IdFunctionObject
exportAsJSClass
(int maxPrototypeId, Scriptable scope, boolean sealed) get
(String name, Scriptable start) Returns the value of the named property or NOT_FOUND.int
getAttributes
(String name) Get the attributes of a named property.boolean
has
(String name, Scriptable start) Returns true if the named property is defined.final boolean
final void
final void
initPrototypeMethod
(Object tag, int id, String name, int arity) final void
initPrototypeValue
(int id, String name, Object value, int attributes) void
put
(String name, Scriptable start, Object value) Sets the value of the named property, creating it if need be.void
setAttributes
(String name, int attributes) Set the attributes of a named property.Methods inherited from class org.mozilla.javascript.ScriptableObject
associateValue, avoidObjectDetection, callMethod, callMethod, defineClass, defineClass, defineClass, defineConst, defineConstProperty, defineFunctionProperties, defineOwnProperties, defineProperty, defineProperty, defineProperty, defineProperty, delete, deleteProperty, deleteProperty, get, get, getAllIds, getArrayPrototype, getAssociatedValue, getAttributes, getAttributes, getAttributes, getClassName, getClassPrototype, getDefaultValue, getDefaultValue, getExternalArrayData, getExternalArrayLength, getFunctionPrototype, getGetterOrSetter, getIds, getObjectPrototype, getParentScope, getProperty, getProperty, getPropertyIds, getPrototype, getTopLevelScope, getTopScopeValue, getTypedProperty, getTypedProperty, getTypeOf, has, hasInstance, hasProperty, hasProperty, isConst, isEmpty, isExtensible, isSealed, preventExtensions, put, putConst, putConstProperty, putProperty, putProperty, redefineProperty, sealObject, setAttributes, setAttributes, setAttributes, setExternalArrayData, setGetterOrSetter, setParentScope, setPrototype, size
-
Constructor Details
-
IdScriptableObject
public IdScriptableObject() -
IdScriptableObject
-
-
Method Details
-
has
Description copied from class:ScriptableObject
Returns true if the named property is defined.- Specified by:
has
in interfaceScriptable
- Overrides:
has
in classScriptableObject
- Parameters:
name
- the name of the propertystart
- the object in which the lookup began- Returns:
- true if and only if the property was found in the object
- See Also:
-
get
Description copied from class:ScriptableObject
Returns the value of the named property or NOT_FOUND. If the property was created using defineProperty, the appropriate getter method is called.- Specified by:
get
in interfaceScriptable
- Overrides:
get
in classScriptableObject
- Parameters:
name
- the name of the propertystart
- the object in which the lookup began- Returns:
- the value of the property (may be null), or NOT_FOUND
- See Also:
-
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 classScriptableObject
- Parameters:
name
- the name of the propertystart
- the object whose property is being setvalue
- value to set the property to- See Also:
-
delete
Description copied from class:ScriptableObject
Removes a named 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:
name
- the name of the property- See Also:
-
getAttributes
Description copied from class:ScriptableObject
Get the attributes of a named property. The property is specified byname
as defined forhas
.- Overrides:
getAttributes
in classScriptableObject
- Parameters:
name
- the identifier for the property- Returns:
- the bitset of attributes
- See Also:
-
setAttributes
Description copied from class:ScriptableObject
Set the attributes of a named property. The property is specified byname
as defined forhas
.The possible attributes are READONLY, DONTENUM, and PERMANENT. Combinations of attributes are expressed by the bitwise OR of attributes. EMPTY is the state of no attributes set. Any unused bits are reserved for future use.
- Overrides:
setAttributes
in classScriptableObject
- Parameters:
name
- the name of the propertyattributes
- the bitset of attributes- See Also:
-
execIdCall
public Object 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.- Specified by:
execIdCall
in interfaceIdFunctionCall
-
exportAsJSClass
-
hasPrototypeMap
public final boolean hasPrototypeMap() -
activatePrototypeMap
public final void activatePrototypeMap(int maxPrototypeId) -
initPrototypeMethod
-
initPrototypeConstructor
-
initPrototypeValue
-
defineOwnProperty
Description copied from class:ScriptableObject
Defines a property on an object.- Overrides:
defineOwnProperty
in classScriptableObject
- Parameters:
cx
- the current Contextkey
- the name/index of the propertydesc
- the new property descriptor, as described in 8.6.1
-