Package org.mozilla.javascript
Class BaseFunction
- java.lang.Object
- 
- org.mozilla.javascript.ScriptableObject
- 
- org.mozilla.javascript.IdScriptableObject
- 
- org.mozilla.javascript.BaseFunction
 
 
 
- 
- All Implemented Interfaces:
- java.io.Serializable,- Callable,- ConstProperties,- Constructable,- DebuggableObject,- Function,- IdFunctionCall,- Scriptable,- SymbolScriptable
 - Direct Known Subclasses:
- ArrowFunction,- BoundFunction,- FunctionObject,- IdFunctionObject,- LambdaFunction,- NativeFunction,- NativeJavaConstructor,- NativeJavaMethod,- Require
 
 public class BaseFunction extends IdScriptableObject implements Function The base class for Function objects. That is one of two purposes. It is also the prototype for every "function" defined except those that are used as GeneratorFunctions via the ES6 "function *" syntax.See ECMA 15.3. - See Also:
- Serialized Form
 
- 
- 
Nested Class Summary- 
Nested classes/interfaces inherited from class org.mozilla.javascript.ScriptableObjectScriptableObject.KeyComparator
 
- 
 - 
Field SummaryFields Modifier and Type Field Description protected static intId_argumentsprotected static intId_arityprotected static intId_lengthprotected static intId_nameprotected static intId_prototypeprotected static intMAX_INSTANCE_ID- 
Fields inherited from class org.mozilla.javascript.ScriptableObjectCONST, DONTENUM, EMPTY, PERMANENT, READONLY, UNINITIALIZED_CONST
 - 
Fields inherited from interface org.mozilla.javascript.ScriptableNOT_FOUND
 
- 
 - 
Constructor SummaryConstructors Constructor Description BaseFunction()BaseFunction(boolean isGenerator)BaseFunction(Scriptable scope, Scriptable prototype)
 - 
Method SummaryAll Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.Objectcall(Context cx, Scriptable scope, Scriptable thisObj, java.lang.Object[] args)Should be overridden.Scriptableconstruct(Context cx, Scriptable scope, java.lang.Object[] args)Call the function as a constructor.ScriptablecreateObject(Context cx, Scriptable scope)Creates new script object.java.lang.ObjectexecIdCall(IdFunctionObject f, Context cx, Scriptable scope, Scriptable thisObj, java.lang.Object[] args)'thisObj' will be null if invoked as constructor, in which case * instance of Scriptable should be returned.protected voidfillConstructorProperties(IdFunctionObject ctor)protected intfindInstanceIdInfo(java.lang.String s)Map name to id of instance property.protected intfindPrototypeId(java.lang.String s)intgetArity()java.lang.StringgetClassName()Return the name of the class.protected ScriptablegetClassPrototype()java.lang.StringgetFunctionName()protected java.lang.StringgetInstanceIdName(int id)Map id back to property name it defines.protected java.lang.ObjectgetInstanceIdValue(int id)Get id value.intgetLength()protected intgetMaxInstanceId()Get maximum id findInstanceIdInfo can generate.protected java.lang.ObjectgetPrototypeProperty()java.lang.StringgetTypeOf()Gets the value returned by calling the typeof operator on this object.booleanhasInstance(Scriptable instance)Implements the instanceof operator for JavaScript Function objects.protected booleanhasPrototypeProperty()protected voidinitPrototypeId(int id)protected booleanisGeneratorFunction()voidsetImmunePrototypeProperty(java.lang.Object value)Make value as DontEnum, DontDelete, ReadOnly prototype property of this Function objectprotected voidsetInstanceIdAttributes(int id, int attr)Update the attributes of the given instance property.protected voidsetInstanceIdValue(int id, java.lang.Object value)Set or delete id value.protected voidsetPrototypeProperty(java.lang.Object prototype)voidsetPrototypePropertyAttributes(int attributes)voidsetStandardPropertyAttributes(int attributes)Sets the attributes of the "name", "length", and "arity" properties, which differ for many native objects.protected java.lang.ObjectsetupDefaultPrototype()- 
Methods inherited from class org.mozilla.javascript.IdScriptableObjectactivatePrototypeMap, addIdFunctionProperty, defaultGet, defaultHas, defaultPut, defineOwnProperty, delete, delete, ensureType, exportAsJSClass, findInstanceIdInfo, findPrototypeId, get, get, getAttributes, getAttributes, getOwnPropertyDescriptor, has, has, hasPrototypeMap, initPrototypeConstructor, initPrototypeMethod, initPrototypeMethod, initPrototypeMethod, initPrototypeValue, initPrototypeValue, instanceIdInfo, put, put, setAttributes
 - 
Methods inherited from class org.mozilla.javascript.ScriptableObjectapplyDescriptorToAttributeBitset, associateValue, avoidObjectDetection, buildDataDescriptor, callMethod, callMethod, checkPropertyChange, checkPropertyDefinition, defineClass, defineClass, defineClass, defineConst, defineConstProperty, defineFunctionProperties, defineOwnProperties, defineOwnProperty, defineProperty, defineProperty, defineProperty, defineProperty, defineProperty, defineProperty, defineProperty, delete, deleteProperty, deleteProperty, ensureScriptable, ensureScriptableObject, ensureSymbolScriptable, equivalentValues, get, get, getAllIds, getArrayPrototype, getAssociatedValue, getAttributes, getAttributes, getAttributes, getClassPrototype, getDefaultValue, getDefaultValue, getExternalArrayData, getExternalArrayLength, getFunctionPrototype, getGeneratorFunctionPrototype, getGetterOrSetter, getGetterOrSetter, getIds, getObjectPrototype, getParentScope, getProperty, getProperty, getProperty, getPropertyIds, getPrototype, getTopLevelScope, getTopScopeValue, getTypedProperty, getTypedProperty, has, hasProperty, hasProperty, hasProperty, isAccessorDescriptor, isConst, isDataDescriptor, isEmpty, isExtensible, isFalse, isGenericDescriptor, isGetterOrSetter, isSealed, isTrue, preventExtensions, put, putConst, putConstProperty, putProperty, putProperty, putProperty, querySlot, redefineProperty, sameValue, sealObject, setAttributes, setAttributes, setAttributes, setAttributes, setCommonDescriptorProperties, setExternalArrayData, setGetterOrSetter, setParentScope, setPrototype, size
 - 
Methods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 - 
Methods inherited from interface org.mozilla.javascript.Scriptabledelete, delete, get, get, getDefaultValue, getIds, getParentScope, getPrototype, has, has, put, put, setParentScope, setPrototype
 
- 
 
- 
- 
- 
Field Detail- 
Id_lengthprotected static final int Id_length - See Also:
- Constant Field Values
 
 - 
Id_arityprotected static final int Id_arity - See Also:
- Constant Field Values
 
 - 
Id_nameprotected static final int Id_name - See Also:
- Constant Field Values
 
 - 
Id_prototypeprotected static final int Id_prototype - See Also:
- Constant Field Values
 
 - 
Id_argumentsprotected static final int Id_arguments - See Also:
- Constant Field Values
 
 - 
MAX_INSTANCE_IDprotected static final int MAX_INSTANCE_ID - See Also:
- Constant Field Values
 
 
- 
 - 
Constructor Detail- 
BaseFunctionpublic BaseFunction() 
 - 
BaseFunctionpublic BaseFunction(boolean isGenerator) 
 - 
BaseFunctionpublic BaseFunction(Scriptable scope, Scriptable prototype) 
 
- 
 - 
Method Detail- 
getClassNamepublic java.lang.String getClassName() Description copied from class:ScriptableObjectReturn the name of the class.This is typically the same name as the constructor. Classes extending ScriptableObject must implement this abstract method. - Specified by:
- getClassNamein interface- Scriptable
- Specified by:
- getClassNamein class- ScriptableObject
 
 - 
isGeneratorFunctionprotected boolean isGeneratorFunction() 
 - 
getTypeOfpublic java.lang.String getTypeOf() Gets the value returned by calling the typeof operator on this object.- Overrides:
- getTypeOfin class- ScriptableObject
- Returns:
- "function" or "undefined" if ScriptableObject.avoidObjectDetection()returnstrue
- See Also:
- ScriptableObject.getTypeOf()
 
 - 
hasInstancepublic boolean hasInstance(Scriptable instance) Implements the instanceof operator for JavaScript Function objects.foo = new Foo();
 foo instanceof Foo; // true
 - Specified by:
- hasInstancein interface- Scriptable
- Overrides:
- hasInstancein class- ScriptableObject
- Parameters:
- instance- The value that appeared on the LHS of the instanceof operator
- Returns:
- true if the "prototype" property of "this" appears in value's prototype chain
 
 - 
getMaxInstanceIdprotected int getMaxInstanceId() Description copied from class:IdScriptableObjectGet maximum id findInstanceIdInfo can generate.- Overrides:
- getMaxInstanceIdin class- IdScriptableObject
 
 - 
findInstanceIdInfoprotected int findInstanceIdInfo(java.lang.String s) Description copied from class:IdScriptableObjectMap name to id of instance property. Should return 0 if not found or the result ofIdScriptableObject.instanceIdInfo(int, int).- Overrides:
- findInstanceIdInfoin class- IdScriptableObject
 
 - 
getInstanceIdNameprotected java.lang.String getInstanceIdName(int id) Description copied from class:IdScriptableObjectMap id back to property name it defines.- Overrides:
- getInstanceIdNamein class- IdScriptableObject
 
 - 
getInstanceIdValueprotected java.lang.Object getInstanceIdValue(int id) Description copied from class:IdScriptableObjectGet 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:
- getInstanceIdValuein class- IdScriptableObject
 
 - 
setInstanceIdValueprotected void setInstanceIdValue(int id, java.lang.Object value)Description copied from class:IdScriptableObjectSet or delete id value. If value == NOT_FOUND , the implementation should make sure that the following getInstanceIdValue return NOT_FOUND.- Overrides:
- setInstanceIdValuein class- IdScriptableObject
 
 - 
setInstanceIdAttributesprotected void setInstanceIdAttributes(int id, int attr)Description copied from class:IdScriptableObjectUpdate 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:
- setInstanceIdAttributesin class- IdScriptableObject
- Parameters:
- id- the instance property id
- attr- the new attribute bitset
 
 - 
fillConstructorPropertiesprotected void fillConstructorProperties(IdFunctionObject ctor) - Overrides:
- fillConstructorPropertiesin class- IdScriptableObject
 
 - 
initPrototypeIdprotected void initPrototypeId(int id) - Overrides:
- initPrototypeIdin class- IdScriptableObject
 
 - 
execIdCallpublic java.lang.Object execIdCall(IdFunctionObject f, Context cx, Scriptable scope, Scriptable thisObj, java.lang.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:
- execIdCallin interface- IdFunctionCall
- Overrides:
- execIdCallin class- IdScriptableObject
 
 - 
setImmunePrototypePropertypublic void setImmunePrototypeProperty(java.lang.Object value) Make value as DontEnum, DontDelete, ReadOnly prototype property of this Function object
 - 
getClassPrototypeprotected Scriptable getClassPrototype() 
 - 
callpublic java.lang.Object call(Context cx, Scriptable scope, Scriptable thisObj, java.lang.Object[] args) Should be overridden.- Specified by:
- callin interface- Callable
- Specified by:
- callin interface- Function
- Parameters:
- cx- the current Context for this thread
- scope- the scope to execute the function relative to. This is set to the value returned by getParentScope() except when the function is called from a closure.
- thisObj- the JavaScript- thisobject
- args- the array of arguments
- Returns:
- the result of the call
 
 - 
constructpublic Scriptable construct(Context cx, Scriptable scope, java.lang.Object[] args) Description copied from interface:FunctionCall the function as a constructor.This method is invoked by the runtime in order to satisfy a use of the JavaScript newoperator. This method is expected to create a new object and return it.- Specified by:
- constructin interface- Constructable
- Specified by:
- constructin interface- Function
- Parameters:
- cx- the current Context for this thread
- scope- an enclosing scope of the caller except when the function is called from a closure.
- args- the array of arguments
- Returns:
- the allocated object
 
 - 
createObjectpublic Scriptable createObject(Context cx, Scriptable scope) Creates new script object. The default implementation ofconstruct(org.mozilla.javascript.Context, org.mozilla.javascript.Scriptable, java.lang.Object[])uses the method to to get the value forthisObjargument when invokingcall(org.mozilla.javascript.Context, org.mozilla.javascript.Scriptable, org.mozilla.javascript.Scriptable, java.lang.Object[]). The methos is allowed to returnnullto indicate thatcall(org.mozilla.javascript.Context, org.mozilla.javascript.Scriptable, org.mozilla.javascript.Scriptable, java.lang.Object[])will create a new object itself. In this caseconstruct(org.mozilla.javascript.Context, org.mozilla.javascript.Scriptable, java.lang.Object[])will set scope and prototype on the resultcall(org.mozilla.javascript.Context, org.mozilla.javascript.Scriptable, org.mozilla.javascript.Scriptable, java.lang.Object[])unless they are already set.
 - 
getAritypublic int getArity() 
 - 
getLengthpublic int getLength() 
 - 
getFunctionNamepublic java.lang.String getFunctionName() 
 - 
setStandardPropertyAttributespublic void setStandardPropertyAttributes(int attributes) Sets the attributes of the "name", "length", and "arity" properties, which differ for many native objects.
 - 
setPrototypePropertyAttributespublic void setPrototypePropertyAttributes(int attributes) 
 - 
hasPrototypePropertyprotected boolean hasPrototypeProperty() 
 - 
getPrototypePropertyprotected java.lang.Object getPrototypeProperty() 
 - 
setPrototypePropertyprotected void setPrototypeProperty(java.lang.Object prototype) 
 - 
setupDefaultPrototypeprotected java.lang.Object setupDefaultPrototype() 
 - 
findPrototypeIdprotected int findPrototypeId(java.lang.String s) - Overrides:
- findPrototypeIdin class- IdScriptableObject
 
 
- 
 
-