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,DebuggableObject,Function,IdFunctionCall,Scriptable
- Direct Known Subclasses:
BoundFunction,FunctionObject,IdFunctionObject,NativeFunction,NativeJavaConstructor,NativeJavaMethod,Require
public class BaseFunction extends IdScriptableObject implements Function
The base class for Function objects See ECMA 15.3.- See Also:
- Serialized Form
-
-
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 Constructor Description BaseFunction()BaseFunction(Scriptable scope, Scriptable prototype)
-
Method Summary
All 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.intgetArity()java.lang.StringgetClassName()Return the name of the class.java.lang.StringgetFunctionName()intgetLength()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.voidsetImmunePrototypeProperty(java.lang.Object value)Make value as DontEnum, DontDelete, ReadOnly prototype property of this Function object-
Methods inherited from class org.mozilla.javascript.IdScriptableObject
activatePrototypeMap, defineOwnProperty, delete, exportAsJSClass, get, getAttributes, has, hasPrototypeMap, initPrototypeConstructor, initPrototypeMethod, initPrototypeValue, put, setAttributes
-
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, getClassPrototype, getDefaultValue, getDefaultValue, getExternalArrayData, getExternalArrayLength, getFunctionPrototype, getGetterOrSetter, getIds, getObjectPrototype, getParentScope, getProperty, getProperty, getPropertyIds, getPrototype, getTopLevelScope, getTopScopeValue, getTypedProperty, getTypedProperty, has, hasProperty, hasProperty, isConst, isEmpty, isExtensible, isSealed, preventExtensions, put, putConst, putConstProperty, putProperty, putProperty, redefineProperty, sealObject, setAttributes, setAttributes, setAttributes, setExternalArrayData, setGetterOrSetter, setParentScope, setPrototype, size
-
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.mozilla.javascript.Scriptable
delete, delete, get, get, getDefaultValue, getIds, getParentScope, getPrototype, has, has, put, put, setParentScope, setPrototype
-
-
-
-
Constructor Detail
-
BaseFunction
public BaseFunction()
-
BaseFunction
public BaseFunction(Scriptable scope, Scriptable prototype)
-
-
Method Detail
-
getClassName
public 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 interfaceScriptable- Specified by:
getClassNamein classScriptableObject
-
getTypeOf
public java.lang.String getTypeOf()
Gets the value returned by calling the typeof operator on this object.- Overrides:
getTypeOfin classScriptableObject- Returns:
- "function" or "undefined" if
ScriptableObject.avoidObjectDetection()returnstrue - See Also:
ScriptableObject.getTypeOf()
-
hasInstance
public boolean hasInstance(Scriptable instance)
Implements the instanceof operator for JavaScript Function objects.foo = new Foo();
foo instanceof Foo; // true
- Specified by:
hasInstancein interfaceScriptable- Overrides:
hasInstancein classScriptableObject- 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
-
execIdCall
public 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 interfaceIdFunctionCall- Overrides:
execIdCallin classIdScriptableObject
-
setImmunePrototypeProperty
public void setImmunePrototypeProperty(java.lang.Object value)
Make value as DontEnum, DontDelete, ReadOnly prototype property of this Function object
-
call
public java.lang.Object call(Context cx, Scriptable scope, Scriptable thisObj, java.lang.Object[] args)
Should be overridden.- Specified by:
callin interfaceCallable- Specified by:
callin interfaceFunction- Parameters:
cx- the current Context for this threadscope- 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 JavaScriptthisobjectargs- the array of arguments- Returns:
- the result of the call
-
construct
public 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 JavaScriptnewoperator. This method is expected to create a new object and return it.
-
createObject
public 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 for thisObj argument when invokingcall(org.mozilla.javascript.Context, org.mozilla.javascript.Scriptable, org.mozilla.javascript.Scriptable, java.lang.Object[]). The methos is allowed to return null to 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.
-
getArity
public int getArity()
-
getLength
public int getLength()
-
getFunctionName
public java.lang.String getFunctionName()
-
-