public final class JSFunction extends JSNonProxy
usesOrdinaryGetOwnProperty| Modifier and Type | Class and Description |
|---|---|
static class |
JSFunction.ArgumentsProxyProperty
V8 compatibility mode: retrieves the function's arguments from the stack.
|
static class |
JSFunction.AsyncGeneratorState |
static class |
JSFunction.CallerProxyProperty
V8 compatibility mode: retrieves the function's caller from the stack.
|
static class |
JSFunction.ClassPrototypeProxyProperty |
static class |
JSFunction.FunctionLengthPropertyProxy |
static class |
JSFunction.FunctionNamePropertyProxy |
static class |
JSFunction.GeneratorState |
| Modifier and Type | Field and Description |
|---|---|
static com.oracle.truffle.api.strings.TruffleString |
ARGUMENTS |
static PropertyProxy |
ARGUMENTS_PROXY |
static com.oracle.truffle.api.strings.TruffleString |
ASYNC_FROM_SYNC_ITERATOR_PROTOTYPE_NAME |
static com.oracle.truffle.api.strings.TruffleString |
ASYNC_FUNCTION_NAME |
static com.oracle.truffle.api.strings.TruffleString |
ASYNC_GENERATOR_FUNCTION_NAME |
static com.oracle.truffle.api.strings.TruffleString |
ASYNC_GENERATOR_NAME |
static String |
BUILTIN_SOURCE_NAME |
static com.oracle.truffle.api.source.SourceSection |
BUILTIN_SOURCE_SECTION |
static com.oracle.truffle.api.strings.TruffleString |
CALLER |
static PropertyProxy |
CALLER_PROXY |
static com.oracle.truffle.api.object.HiddenKey |
CLASS_ELEMENTS_ID |
static com.oracle.truffle.api.object.HiddenKey |
CLASS_INITIALIZERS_ID |
static com.oracle.truffle.api.strings.TruffleString |
CLASS_NAME |
static Object |
CLASS_PROTOTYPE_PLACEHOLDER
Placeholder for lazy initialization of the prototype property.
|
static JSDynamicObject |
CONSTRUCT
Construct token.
|
static com.oracle.truffle.api.object.HiddenKey |
DEBUG_SCOPE_ID
Slot for scope object passed to inline parsed scripts.
|
static com.oracle.truffle.api.strings.TruffleString |
ENUMERATE_ITERATOR_PROTOTYPE_NAME |
static com.oracle.truffle.api.strings.TruffleString |
GENERATOR_FUNCTION_NAME |
static com.oracle.truffle.api.strings.TruffleString |
GENERATOR_NAME |
static com.oracle.truffle.api.object.HiddenKey |
HOME_OBJECT_ID |
static JSFunction |
INSTANCE |
static com.oracle.truffle.api.strings.TruffleString |
LENGTH |
static PropertyProxy |
LENGTH_PROXY |
static com.oracle.truffle.api.strings.TruffleString |
NAME |
static PropertyProxy |
NAME_PROXY |
static com.oracle.truffle.api.strings.TruffleString |
ORDINARY_HAS_INSTANCE |
static com.oracle.truffle.api.object.HiddenKey |
PRIVATE_BRAND_ID |
static String |
PROGRAM_FUNCTION_NAME |
static com.oracle.truffle.api.strings.TruffleString |
PROTOTYPE_NAME |
static PropertyProxy |
PROTOTYPE_PROXY |
static com.oracle.truffle.api.strings.TruffleString |
TS_BUILTIN_SOURCE_NAME |
static com.oracle.truffle.api.strings.TruffleString |
TYPE_NAME |
GET_SYMBOL_SPECIES_NAME| Modifier and Type | Method and Description |
|---|---|
static void |
addRestrictedFunctionProperties(JSRealm realm,
JSDynamicObject obj) |
static JSFunctionObject |
bind(JSRealm realm,
JSFunctionObject thisFnObj,
Object thisArg,
Object[] boundArguments) |
static JSFunctionObject |
boundFunctionCreate(JSContext context,
JSFunctionObject boundTargetFunction,
Object boundThis,
Object[] boundArguments,
JSDynamicObject proto,
com.oracle.truffle.api.profiles.InlinedConditionProfile isConstructorProfile,
com.oracle.truffle.api.profiles.InlinedConditionProfile isAsyncProfile,
com.oracle.truffle.api.profiles.InlinedConditionProfile setProtoProfile,
com.oracle.truffle.api.nodes.Node node) |
static Object |
call(JSFunctionObject functionObject,
Object thisObject,
Object[] argumentValues) |
static Object |
call(Object[] jsArguments) |
static Object |
construct(JSFunctionObject functionObject,
Object[] argumentValues) |
static JSFunctionObject |
create(JSRealm realm,
JSFunctionData functionData) |
static JSFunctionObject |
create(JSRealm realm,
JSFunctionData functionData,
com.oracle.truffle.api.frame.MaterializedFrame enclosingFrame) |
static JSObject |
createAsyncFromSyncIteratorPrototype(JSRealm realm)
Creates the %AsyncFromSyncIteratorPrototype% object (ES2018 11.1.3.2).
|
static JSConstructor |
createAsyncFunctionConstructor(JSRealm realm) |
static JSObject |
createAsyncFunctionPrototype(JSRealm realm,
JSDynamicObject constructor) |
static JSConstructor |
createAsyncGeneratorFunctionConstructor(JSRealm realm) |
static JSObject |
createAsyncGeneratorFunctionPrototype(JSRealm realm,
JSDynamicObject constructor) |
static JSObject |
createAsyncIteratorPrototype(JSRealm realm)
Creates the %AsyncIteratorPrototype% object (ES2018 11.1.2).
|
static JSFunctionObject |
createBound(JSContext context,
JSRealm realm,
JSFunctionData functionData,
Object boundTargetFunction,
Object boundThis,
Object[] boundArguments) |
static com.oracle.truffle.api.nodes.RootNode |
createBoundRootNode(JSContext context,
boolean construct,
boolean newTarget) |
static com.oracle.truffle.api.source.SourceSection |
createBuiltinSourceSection(String name) |
static JSFunctionObject |
createEmptyFunction(JSRealm realm) |
static JSFunctionData |
createEmptyFunctionData(JSContext context) |
static JSDynamicObject |
createEnumerateIteratorPrototype(JSRealm realm) |
static JSDynamicObject |
createForInIteratorPrototype(JSRealm realm) |
static JSFunctionObject |
createFunctionConstructor(JSRealm realm) |
static JSFunctionObject |
createFunctionPrototype(JSRealm realm,
JSDynamicObject objectPrototype) |
static JSConstructor |
createGeneratorFunctionConstructor(JSRealm realm) |
static JSObject |
createGeneratorFunctionPrototype(JSRealm realm,
JSDynamicObject constructor) |
static JSFunctionObject |
createLexicalThis(JSRealm realm,
JSFunctionData functionData,
com.oracle.truffle.api.frame.MaterializedFrame enclosingFrame,
Object lexicalThis) |
static JSFunctionObject |
createNamedEmptyFunction(JSRealm realm,
com.oracle.truffle.api.strings.TruffleString name) |
static JSFunctionData |
createNamedEmptyFunctionData(JSContext context,
com.oracle.truffle.api.strings.TruffleString name) |
static JSDynamicObject |
createOrdinaryHasInstanceFunction(JSRealm realm) |
static JSFunctionObject |
createWithPrototype(JSFunctionFactory factory,
JSRealm realm,
JSFunctionData functionData,
com.oracle.truffle.api.frame.MaterializedFrame enclosingFrame,
JSDynamicObject prototype) |
static JSFunctionObject |
createWrapped(JSContext context,
JSRealm realm,
JSFunctionData functionData,
Object wrappedTargetFunction) |
static void |
fillFunctionPrototype(JSRealm realm) |
static Object[] |
getBoundArguments(JSDynamicObject function) |
static Object |
getBoundTargetFunction(JSDynamicObject function) |
static Object |
getBoundThis(JSDynamicObject function) |
com.oracle.truffle.api.strings.TruffleString |
getBuiltinToStringTag(JSDynamicObject object)
Returns builtinTag from step 14 of ES6+ 19.1.3.6.
|
static com.oracle.truffle.api.source.Source |
getCallerSource() |
static com.oracle.truffle.api.CallTarget |
getCallTarget(JSDynamicObject obj) |
com.oracle.truffle.api.strings.TruffleString |
getClassName(JSDynamicObject object)
The [[Class]] internal property.
|
static Object |
getClassPrototype(JSDynamicObject thisObj) |
static Object |
getClassPrototypeInitialized(JSDynamicObject thisObj) |
static com.oracle.truffle.api.CallTarget |
getConstructNewTarget(JSDynamicObject obj) |
static com.oracle.truffle.api.CallTarget |
getConstructTarget(JSDynamicObject obj) |
static com.oracle.truffle.api.frame.MaterializedFrame |
getEnclosingFrame(JSDynamicObject obj) |
static com.oracle.truffle.api.nodes.RootNode |
getFrameRootNode(com.oracle.truffle.api.frame.FrameInstance frameInstance) |
static JSFunctionData |
getFunctionData(JSDynamicObject obj) |
static JSFunctionData |
getFunctionData(JSFunctionObject obj) |
static int |
getLength(JSDynamicObject obj) |
static Object |
getLexicalThis(JSDynamicObject thisObj) |
static com.oracle.truffle.api.strings.TruffleString |
getName(JSDynamicObject obj) |
static JSRealm |
getRealm(JSDynamicObject obj) |
static JSRealm |
getRealm(JSFunctionObject obj) |
static JSRealm |
getRealm(JSFunctionObject functionObj,
JSContext context,
com.oracle.truffle.api.nodes.Node node)
Version optimized for a single Realm.
|
boolean |
hasOnlyShapeProperties(JSDynamicObject obj)
If true,
JSClass.ownPropertyKeys(com.oracle.truffle.js.runtime.objects.JSDynamicObject) and JSShape.getProperties(com.oracle.truffle.api.object.Shape) enumerate the same keys. |
static boolean |
isAsyncFunction(JSDynamicObject function) |
static boolean |
isBoundFunction(Object function) |
static boolean |
isBuiltin(JSDynamicObject obj) |
static boolean |
isBuiltinSourceSection(com.oracle.truffle.api.source.SourceSection sourceSection) |
static boolean |
isBuiltinThatShouldNotAppearInStackTrace(JSRealm realm,
JSDynamicObject function) |
static boolean |
isClassPrototypeInitialized(JSDynamicObject thisObj) |
static boolean |
isConstructor(JSDynamicObject obj) |
static boolean |
isConstructor(Object obj) |
static boolean |
isGenerator(JSDynamicObject obj) |
static boolean |
isJSFunction(Object obj) |
static boolean |
isStrict(JSDynamicObject obj) |
static boolean |
isStrictBuiltin(JSDynamicObject function,
JSRealm realm) |
static com.oracle.truffle.api.object.Shape |
makeFunctionShape(JSContext context,
JSDynamicObject prototype,
boolean isGenerator,
boolean isAsync) |
static com.oracle.truffle.api.object.Shape |
makeInitialEnumerateIteratorShape(JSContext context,
JSDynamicObject enumerateIteratorPrototype) |
static com.oracle.truffle.api.object.Shape |
makeInitialForInIteratorShape(JSContext context,
JSDynamicObject iteratorPrototype) |
static boolean |
needsParentFrame(JSDynamicObject obj) |
static void |
setBoundFunctionName(JSDynamicObject boundFunction,
com.oracle.truffle.api.strings.TruffleString targetName) |
static void |
setClassPrototype(JSDynamicObject thisObj,
Object value) |
static void |
setFunctionLength(JSDynamicObject functionObj,
Number length) |
com.oracle.truffle.api.strings.TruffleString |
toDisplayStringImpl(JSDynamicObject obj,
boolean allowSideEffects,
ToDisplayStringFormat format,
int depth)
A more informative toString variant, mainly used for error messages.
|
checkProtoCycle, createSymbolSpeciesGetterFunction, defineOwnProperty, delete, delete, deletePropertyDefault, getHelper, getHelper, getMethodHelper, getOwnHelper, getOwnHelper, getOwnProperty, getOwnPropertyKeys, getPrototypeOf, hasOwnProperty, hasOwnProperty, hasProperty, hasProperty, invokeAccessorPropertySetter, isExtensible, ordinaryGetOwnProperty, ordinaryGetOwnPropertyIntl, ordinaryIsExtensible, ordinaryOwnPropertyKeys, ordinaryOwnPropertyKeys, ordinaryOwnPropertyKeysSlow, ordinarySet, ordinarySetIndex, ordinarySetWithReceiver, performOrdinarySetWithOwnDescriptor, preventExtensions, preventExtensionsImpl, putConstructorSpeciesGetter, set, set, setIntegrityLevel, setIntegrityLevelFast, setPropertySlow, setPrototypeOf, testIntegrityLevel, testIntegrityLevelFast, toString, usesOrdinaryGetOwnProperty, usesOrdinaryIsExtensibledefaultToString, filterOwnPropertyKeys, formatToString, get, get, getIntrinsicDefaultProto, getToStringTag, isInstance, isInstance, isInstance, isInstance, makeInitialShape, ownPropertyKeys, testIntegrityLevelDefaultpublic static final com.oracle.truffle.api.strings.TruffleString TYPE_NAME
public static final com.oracle.truffle.api.strings.TruffleString CLASS_NAME
public static final com.oracle.truffle.api.strings.TruffleString PROTOTYPE_NAME
public static final com.oracle.truffle.api.strings.TruffleString GENERATOR_FUNCTION_NAME
public static final com.oracle.truffle.api.strings.TruffleString GENERATOR_NAME
public static final com.oracle.truffle.api.strings.TruffleString ASYNC_FUNCTION_NAME
public static final com.oracle.truffle.api.strings.TruffleString ASYNC_GENERATOR_FUNCTION_NAME
public static final com.oracle.truffle.api.strings.TruffleString ASYNC_GENERATOR_NAME
public static final com.oracle.truffle.api.strings.TruffleString ENUMERATE_ITERATOR_PROTOTYPE_NAME
public static final com.oracle.truffle.api.strings.TruffleString CALLER
public static final com.oracle.truffle.api.strings.TruffleString ARGUMENTS
public static final com.oracle.truffle.api.strings.TruffleString LENGTH
public static final com.oracle.truffle.api.strings.TruffleString NAME
public static final com.oracle.truffle.api.strings.TruffleString ORDINARY_HAS_INSTANCE
public static final String PROGRAM_FUNCTION_NAME
public static final String BUILTIN_SOURCE_NAME
public static final com.oracle.truffle.api.strings.TruffleString TS_BUILTIN_SOURCE_NAME
public static final com.oracle.truffle.api.source.SourceSection BUILTIN_SOURCE_SECTION
public static final com.oracle.truffle.api.strings.TruffleString ASYNC_FROM_SYNC_ITERATOR_PROTOTYPE_NAME
public static final PropertyProxy PROTOTYPE_PROXY
public static final PropertyProxy LENGTH_PROXY
public static final PropertyProxy NAME_PROXY
public static final PropertyProxy ARGUMENTS_PROXY
public static final PropertyProxy CALLER_PROXY
public static final Object CLASS_PROTOTYPE_PLACEHOLDER
public static final JSFunction INSTANCE
public static final com.oracle.truffle.api.object.HiddenKey HOME_OBJECT_ID
public static final com.oracle.truffle.api.object.HiddenKey CLASS_ELEMENTS_ID
public static final com.oracle.truffle.api.object.HiddenKey CLASS_INITIALIZERS_ID
public static final com.oracle.truffle.api.object.HiddenKey PRIVATE_BRAND_ID
public static final com.oracle.truffle.api.object.HiddenKey DEBUG_SCOPE_ID
public static final JSDynamicObject CONSTRUCT
new node as this argument to built-in
functions to differentiate between a constructor and a normal call (i.e., [[Construct]] and
[[Call]] internal methods, see ES5 13.2.1 and 13.2.2). Must not be passed anywhere else.public static com.oracle.truffle.api.CallTarget getCallTarget(JSDynamicObject obj)
public static com.oracle.truffle.api.frame.MaterializedFrame getEnclosingFrame(JSDynamicObject obj)
public static JSFunctionData getFunctionData(JSDynamicObject obj)
public static JSFunctionData getFunctionData(JSFunctionObject obj)
public static JSRealm getRealm(JSDynamicObject obj)
public static JSRealm getRealm(JSFunctionObject obj)
public static JSRealm getRealm(JSFunctionObject functionObj, JSContext context, com.oracle.truffle.api.nodes.Node node)
public static JSFunctionObject create(JSRealm realm, JSFunctionData functionData)
public static JSFunctionObject create(JSRealm realm, JSFunctionData functionData, com.oracle.truffle.api.frame.MaterializedFrame enclosingFrame)
public static JSFunctionObject createWithPrototype(JSFunctionFactory factory, JSRealm realm, JSFunctionData functionData, com.oracle.truffle.api.frame.MaterializedFrame enclosingFrame, JSDynamicObject prototype)
public static JSFunctionObject createLexicalThis(JSRealm realm, JSFunctionData functionData, com.oracle.truffle.api.frame.MaterializedFrame enclosingFrame, Object lexicalThis)
public static JSFunctionObject createBound(JSContext context, JSRealm realm, JSFunctionData functionData, Object boundTargetFunction, Object boundThis, Object[] boundArguments)
public static JSFunctionObject createWrapped(JSContext context, JSRealm realm, JSFunctionData functionData, Object wrappedTargetFunction)
public static com.oracle.truffle.api.strings.TruffleString getName(JSDynamicObject obj)
public static Object call(JSFunctionObject functionObject, Object thisObject, Object[] argumentValues)
public static Object construct(JSFunctionObject functionObject, Object[] argumentValues)
public static JSFunctionObject bind(JSRealm realm, JSFunctionObject thisFnObj, Object thisArg, Object[] boundArguments)
public static JSFunctionObject boundFunctionCreate(JSContext context, JSFunctionObject boundTargetFunction, Object boundThis, Object[] boundArguments, JSDynamicObject proto, com.oracle.truffle.api.profiles.InlinedConditionProfile isConstructorProfile, com.oracle.truffle.api.profiles.InlinedConditionProfile isAsyncProfile, com.oracle.truffle.api.profiles.InlinedConditionProfile setProtoProfile, com.oracle.truffle.api.nodes.Node node)
public static void setFunctionLength(JSDynamicObject functionObj, Number length)
public static void setBoundFunctionName(JSDynamicObject boundFunction, com.oracle.truffle.api.strings.TruffleString targetName)
public static boolean isStrict(JSDynamicObject obj)
public static boolean isBuiltin(JSDynamicObject obj)
public static boolean isConstructor(JSDynamicObject obj)
public static boolean isConstructor(Object obj)
public static boolean isGenerator(JSDynamicObject obj)
public static boolean needsParentFrame(JSDynamicObject obj)
public static int getLength(JSDynamicObject obj)
public static boolean isClassPrototypeInitialized(JSDynamicObject thisObj)
public static boolean isBoundFunction(Object function)
public static boolean isAsyncFunction(JSDynamicObject function)
public static Object getBoundThis(JSDynamicObject function)
public static Object getBoundTargetFunction(JSDynamicObject function)
public static Object[] getBoundArguments(JSDynamicObject function)
public static Object getLexicalThis(JSDynamicObject thisObj)
public static Object getClassPrototypeInitialized(JSDynamicObject thisObj)
public static Object getClassPrototype(JSDynamicObject thisObj)
public static void setClassPrototype(JSDynamicObject thisObj, Object value)
public static com.oracle.truffle.api.nodes.RootNode createBoundRootNode(JSContext context, boolean construct, boolean newTarget)
public static JSFunctionObject createFunctionPrototype(JSRealm realm, JSDynamicObject objectPrototype)
public static void addRestrictedFunctionProperties(JSRealm realm, JSDynamicObject obj)
public static JSFunctionData createNamedEmptyFunctionData(JSContext context, com.oracle.truffle.api.strings.TruffleString name)
public static JSFunctionData createEmptyFunctionData(JSContext context)
public static JSFunctionObject createNamedEmptyFunction(JSRealm realm, com.oracle.truffle.api.strings.TruffleString name)
public static JSFunctionObject createEmptyFunction(JSRealm realm)
public static void fillFunctionPrototype(JSRealm realm)
public static com.oracle.truffle.api.object.Shape makeFunctionShape(JSContext context, JSDynamicObject prototype, boolean isGenerator, boolean isAsync)
public static JSFunctionObject createFunctionConstructor(JSRealm realm)
public com.oracle.truffle.api.strings.TruffleString getClassName(JSDynamicObject object)
JSClassgetClassName in class JSClassobject - object to be usedpublic com.oracle.truffle.api.strings.TruffleString getBuiltinToStringTag(JSDynamicObject object)
JSClassgetBuiltinToStringTag in class JSNonProxyobject - object to be usedJSClass.defaultToString(JSDynamicObject)public com.oracle.truffle.api.strings.TruffleString toDisplayStringImpl(JSDynamicObject obj, boolean allowSideEffects, ToDisplayStringFormat format, int depth)
JSClasstoDisplayStringImpl in class JSNonProxyformat - formatting parametersdepth - current nesting depthpublic boolean hasOnlyShapeProperties(JSDynamicObject obj)
JSClassJSClass.ownPropertyKeys(com.oracle.truffle.js.runtime.objects.JSDynamicObject) and JSShape.getProperties(com.oracle.truffle.api.object.Shape) enumerate the same keys.hasOnlyShapeProperties in class JSNonProxypublic static com.oracle.truffle.api.CallTarget getConstructTarget(JSDynamicObject obj)
public static com.oracle.truffle.api.CallTarget getConstructNewTarget(JSDynamicObject obj)
public static boolean isJSFunction(Object obj)
public static JSObject createGeneratorFunctionPrototype(JSRealm realm, JSDynamicObject constructor)
public static JSConstructor createGeneratorFunctionConstructor(JSRealm realm)
public static JSObject createAsyncFunctionPrototype(JSRealm realm, JSDynamicObject constructor)
public static JSConstructor createAsyncFunctionConstructor(JSRealm realm)
public static JSObject createAsyncIteratorPrototype(JSRealm realm)
public static JSObject createAsyncFromSyncIteratorPrototype(JSRealm realm)
public static JSObject createAsyncGeneratorFunctionPrototype(JSRealm realm, JSDynamicObject constructor)
public static JSConstructor createAsyncGeneratorFunctionConstructor(JSRealm realm)
public static JSDynamicObject createEnumerateIteratorPrototype(JSRealm realm)
public static com.oracle.truffle.api.object.Shape makeInitialEnumerateIteratorShape(JSContext context, JSDynamicObject enumerateIteratorPrototype)
public static JSDynamicObject createForInIteratorPrototype(JSRealm realm)
public static com.oracle.truffle.api.object.Shape makeInitialForInIteratorShape(JSContext context, JSDynamicObject iteratorPrototype)
public static JSDynamicObject createOrdinaryHasInstanceFunction(JSRealm realm)
public static com.oracle.truffle.api.nodes.RootNode getFrameRootNode(com.oracle.truffle.api.frame.FrameInstance frameInstance)
public static com.oracle.truffle.api.source.SourceSection createBuiltinSourceSection(String name)
public static boolean isBuiltinSourceSection(com.oracle.truffle.api.source.SourceSection sourceSection)
public static boolean isBuiltinThatShouldNotAppearInStackTrace(JSRealm realm, JSDynamicObject function)
public static boolean isStrictBuiltin(JSDynamicObject function, JSRealm realm)
public static com.oracle.truffle.api.source.Source getCallerSource()