public class BaseFunction extends ScriptableObject implements Function
See ECMA 15.3.
ScriptableObject.KeyComparator, ScriptableObject.LambdaGetterFunction, ScriptableObject.LambdaSetterFunction| Modifier and Type | Field and Description |
|---|---|
protected static int |
Id_arguments |
protected static int |
Id_arity |
protected static int |
Id_length |
protected static int |
Id_name |
protected static int |
Id_prototype |
protected static int |
MAX_INSTANCE_ID |
CONST, DONTENUM, EMPTY, PERMANENT, READONLY, UNINITIALIZED_CONSTNOT_FOUND| Constructor and Description |
|---|
BaseFunction() |
BaseFunction(boolean isGenerator) |
BaseFunction(Scriptable scope,
Scriptable prototype) |
| Modifier and Type | Method and Description |
|---|---|
Object |
call(Context cx,
Scriptable scope,
Scriptable thisObj,
Object[] args)
Should be overridden.
|
Scriptable |
construct(Context cx,
Scriptable scope,
Object[] args)
Call the function as a constructor.
|
Scriptable |
createObject(Context cx,
Scriptable scope)
Creates new script object.
|
protected void |
createProperties() |
protected void |
createPrototypeProperty() |
protected Object |
defaultGet(String name) |
protected boolean |
defaultHas(String name) |
protected void |
defaultPut(String name,
Object value) |
int |
getArity() |
String |
getClassName()
Return the name of the class.
|
Scriptable |
getClassPrototype() |
String |
getFunctionName() |
Scriptable |
getHomeObject() |
int |
getLength() |
Object |
getPrototypeProperty() |
String |
getTypeOf()
Gets the value returned by calling the typeof operator on this object.
|
protected boolean |
hasDefaultParameters() |
boolean |
hasInstance(Scriptable instance)
Implements the instanceof operator for JavaScript Function objects.
|
protected boolean |
hasPrototypeProperty() |
protected boolean |
includeNonStandardProps() |
protected boolean |
isGeneratorFunction() |
void |
setHomeObject(Scriptable homeObject) |
void |
setImmunePrototypeProperty(Object value)
Make value as DontEnum, DontDelete, ReadOnly prototype property of this Function object
|
protected void |
setPrototypeProperty(Object prototype) |
void |
setPrototypePropertyAttributes(int attributes) |
void |
setStandardPropertyAttributes(int attributes)
Sets the attributes of the "name", "length", and "arity" properties, which differ for many
native objects.
|
protected Object |
setupDefaultPrototype(Scriptable scope) |
applyDescriptorToAttributeBitset, associateValue, avoidObjectDetection, buildDataDescriptor, callMethod, callMethod, checkPropertyChangeForSlot, checkPropertyDefinition, defineBuiltInProperty, defineBuiltInProperty, defineBuiltInProperty, defineBuiltInProperty, defineClass, defineClass, defineClass, defineConst, defineConstProperty, defineFunctionProperties, defineOwnProperties, defineOwnProperty, defineOwnProperty, defineProperty, defineProperty, defineProperty, defineProperty, defineProperty, defineProperty, defineProperty, defineProperty, defineProperty, defineProperty, delete, delete, delete, deleteProperty, deleteProperty, deleteProperty, ensureScriptable, ensureScriptableObject, ensureScriptableObjectButNotSymbol, ensureSymbolScriptable, ensureType, equivalentValues, get, get, get, get, getAllIds, getArrayPrototype, getAssociatedValue, getAttributes, getAttributes, getAttributes, getAttributes, getAttributes, getClassPrototype, getDefaultValue, getDefaultValue, getExternalArrayData, getExternalArrayLength, getFunctionPrototype, getGeneratorFunctionPrototype, getGetterOrSetter, getGetterOrSetter, getIds, getObjectPrototype, getOwnPropertyDescriptor, getParentScope, getProperty, getProperty, getProperty, getPropertyIds, getPrototype, getSuperProperty, getSuperProperty, getSuperProperty, getTopLevelScope, getTopScopeValue, getTypedProperty, getTypedProperty, has, has, has, hasProperty, hasProperty, hasProperty, isAccessorDescriptor, isConst, isDataDescriptor, isEmpty, isExtensible, isFalse, isGenericDescriptor, isGetterOrSetter, isSealed, isTrue, preventExtensions, put, put, put, putConst, putConstProperty, putOwnProperty, putOwnProperty, putOwnProperty, putProperty, putProperty, putProperty, putSuperProperty, putSuperProperty, putSuperProperty, querySlot, redefineProperty, sameValue, sealObject, setAttributes, setAttributes, setAttributes, setAttributes, setAttributes, setCommonDescriptorProperties, setExternalArrayData, setGetterOrSetter, setParentScope, setPrototype, sizecreateSlotMapclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitdelete, delete, get, get, getDefaultValue, getIds, getParentScope, getPrototype, has, has, put, put, setParentScope, setPrototypeprotected static final int Id_length
protected static final int Id_arity
protected static final int Id_name
protected static final int Id_prototype
protected static final int Id_arguments
protected static final int MAX_INSTANCE_ID
public BaseFunction()
public BaseFunction(boolean isGenerator)
public BaseFunction(Scriptable scope, Scriptable prototype)
protected void createProperties()
protected boolean includeNonStandardProps()
protected void createPrototypeProperty()
protected final boolean defaultHas(String name)
public String getClassName()
ScriptableObjectThis is typically the same name as the constructor. Classes extending ScriptableObject must implement this abstract method.
getClassName in interface ScriptablegetClassName in class ScriptableObjectprotected boolean isGeneratorFunction()
protected boolean hasDefaultParameters()
public String getTypeOf()
getTypeOf in class ScriptableObjectScriptableObject.avoidObjectDetection() returns true
ScriptableObject.getTypeOf()public boolean hasInstance(Scriptable instance)
foo = new Foo();
foo instanceof Foo; // true
hasInstance in interface ScriptablehasInstance in class ScriptableObjectinstance - The value that appeared on the LHS of the instanceof operatorpublic void setImmunePrototypeProperty(Object value)
public Scriptable getClassPrototype()
public Object call(Context cx, Scriptable scope, Scriptable thisObj, Object[] args)
call in interface Callablecall in interface Functioncx - 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 JavaScript this objectargs - the array of argumentspublic Scriptable construct(Context cx, Scriptable scope, Object[] args)
FunctionThis method is invoked by the runtime in order to satisfy a use of the JavaScript
new operator. This method is expected to create a new object and return it.
construct in interface Constructableconstruct in interface Functioncx - the current Context for this threadscope - an enclosing scope of the caller except when the function is called from a
closure.args - the array of argumentspublic Scriptable createObject(Context cx, Scriptable scope)
construct(org.htmlunit.corejs.javascript.Context, org.htmlunit.corejs.javascript.Scriptable, java.lang.Object[]) uses this method
to to get the value for thisObj argument when invoking call(org.htmlunit.corejs.javascript.Context, org.htmlunit.corejs.javascript.Scriptable, org.htmlunit.corejs.javascript.Scriptable, java.lang.Object[]). The method
is allowed to return null to indicate that call(org.htmlunit.corejs.javascript.Context, org.htmlunit.corejs.javascript.Scriptable, org.htmlunit.corejs.javascript.Scriptable, java.lang.Object[]) will create a new
object itself. In this case construct(org.htmlunit.corejs.javascript.Context, org.htmlunit.corejs.javascript.Scriptable, java.lang.Object[]) will set scope and prototype on the result
call(org.htmlunit.corejs.javascript.Context, org.htmlunit.corejs.javascript.Scriptable, org.htmlunit.corejs.javascript.Scriptable, java.lang.Object[]) unless they are already set.public int getArity()
public int getLength()
public String getFunctionName()
public void setStandardPropertyAttributes(int attributes)
public void setPrototypePropertyAttributes(int attributes)
protected boolean hasPrototypeProperty()
public Object getPrototypeProperty()
protected void setPrototypeProperty(Object prototype)
protected Object setupDefaultPrototype(Scriptable scope)
public void setHomeObject(Scriptable homeObject)
public Scriptable getHomeObject()
Copyright © 2025 HtmlUnit. All rights reserved.