public final class JSProxy extends AbstractJSClass implements PrototypeSupplier
usesOrdinaryGetOwnProperty
Modifier and Type | Field and Description |
---|---|
static String |
APPLY |
static String |
CLASS_NAME |
static String |
CONSTRUCT |
static String |
DEFINE_PROPERTY |
static String |
DELETE_PROPERTY |
static String |
GET |
static String |
GET_OWN_PROPERTY_DESCRIPTOR |
static String |
GET_PROTOTYPE_OF |
static String |
HAS |
static JSProxy |
INSTANCE |
static String |
IS_EXTENSIBLE |
static String |
OWN_KEYS |
static String |
PREVENT_EXTENSIONS |
static com.oracle.truffle.api.object.HiddenKey |
REVOCABLE_PROXY |
static com.oracle.truffle.api.object.HiddenKey |
REVOKED_CALLABLE |
static String |
SET |
static String |
SET_PROTOTYPE_OF |
EMPTY_STRING_ARRAY
Modifier and Type | Method and Description |
---|---|
static Object |
call(com.oracle.truffle.api.object.DynamicObject proxyObj,
Object holder,
Object[] arguments) |
static boolean |
checkPropertyIsSettable(Object truffleTarget,
Object key) |
static void |
checkProxyGetTrapInvariants(Object truffleTarget,
Object key,
Object trapResult) |
static boolean |
checkProxySetTrapInvariants(com.oracle.truffle.api.object.DynamicObject proxy,
Object key,
Object value) |
static Object |
checkTrapReturnValue(Object trapResult) |
static Object |
construct(com.oracle.truffle.api.object.DynamicObject proxyObj,
Object[] arguments) |
static com.oracle.truffle.api.object.DynamicObject |
create(JSContext context,
Object target,
com.oracle.truffle.api.object.DynamicObject handler) |
static JSConstructor |
createConstructor(JSRealm realm) |
boolean |
defineOwnProperty(com.oracle.truffle.api.object.DynamicObject thisObj,
Object key,
PropertyDescriptor desc,
boolean doThrow)
9.1.6 [[DefineOwnProperty]] (P, Desc).
|
boolean |
delete(com.oracle.truffle.api.object.DynamicObject thisObj,
long index,
boolean isStrict) |
boolean |
delete(com.oracle.truffle.api.object.DynamicObject thisObj,
Object key,
boolean isStrict)
9.1.10 [[Delete]] (P).
|
String |
getBuiltinToStringTag(com.oracle.truffle.api.object.DynamicObject object)
Returns builtinTag from step 14 of ES6+ 19.1.3.6.
|
String |
getClassName(com.oracle.truffle.api.object.DynamicObject object)
The [[Class]] internal property.
|
static com.oracle.truffle.api.object.DynamicObject |
getHandler(com.oracle.truffle.api.object.DynamicObject obj) |
static com.oracle.truffle.api.object.DynamicObject |
getHandlerChecked(com.oracle.truffle.api.object.DynamicObject obj) |
static com.oracle.truffle.api.object.DynamicObject |
getHandlerChecked(com.oracle.truffle.api.object.DynamicObject obj,
com.oracle.truffle.api.profiles.BranchProfile errorBranch) |
com.oracle.truffle.api.object.DynamicObject |
getIntrinsicDefaultProto(JSRealm realm) |
Object |
getOwnHelper(com.oracle.truffle.api.object.DynamicObject store,
Object receiver,
long index,
com.oracle.truffle.api.nodes.Node encapsulatingNode) |
Object |
getOwnHelper(com.oracle.truffle.api.object.DynamicObject store,
Object receiver,
Object key,
com.oracle.truffle.api.nodes.Node encapsulatingNode) |
PropertyDescriptor |
getOwnProperty(com.oracle.truffle.api.object.DynamicObject thisObj,
Object key)
9.1.5 [[GetOwnProperty]] (P).
|
List<Object> |
getOwnPropertyKeys(com.oracle.truffle.api.object.DynamicObject thisObj,
boolean strings,
boolean symbols)
GetOwnPropertyKeys (O, type).
|
com.oracle.truffle.api.object.DynamicObject |
getPrototypeOf(com.oracle.truffle.api.object.DynamicObject thisObj)
9.1.1 [[GetPrototypeOf]] ().
|
static Object |
getTarget(com.oracle.truffle.api.object.DynamicObject obj) |
static Object |
getTargetNonProxy(com.oracle.truffle.api.object.DynamicObject thisObj)
Gets the target of the proxy.
|
static Object |
getTrapFromObject(com.oracle.truffle.api.object.DynamicObject maybeHandler,
String trapName) |
boolean |
hasOwnProperty(com.oracle.truffle.api.object.DynamicObject thisObj,
long index) |
boolean |
hasOwnProperty(com.oracle.truffle.api.object.DynamicObject thisObj,
Object key) |
boolean |
hasProperty(com.oracle.truffle.api.object.DynamicObject thisObj,
long index) |
boolean |
hasProperty(com.oracle.truffle.api.object.DynamicObject thisObj,
Object key)
9.1.7 [[HasProperty]] (P).
|
boolean |
isExtensible(com.oracle.truffle.api.object.DynamicObject thisObj)
9.1.3 [[IsExtensible]] ().
|
static boolean |
isJSProxy(Object obj) |
static boolean |
isRevoked(com.oracle.truffle.api.object.DynamicObject proxy) |
com.oracle.truffle.api.object.Shape |
makeInitialShape(JSContext context,
com.oracle.truffle.api.object.DynamicObject prototype) |
boolean |
preventExtensions(com.oracle.truffle.api.object.DynamicObject thisObj,
boolean doThrow)
9.1.4 [[PreventExtensions]] ().
|
static void |
revoke(com.oracle.truffle.api.object.DynamicObject obj) |
boolean |
set(com.oracle.truffle.api.object.DynamicObject thisObj,
long index,
Object value,
Object receiver,
boolean isStrict,
com.oracle.truffle.api.nodes.Node encapsulatingNode) |
boolean |
set(com.oracle.truffle.api.object.DynamicObject thisObj,
Object key,
Object value,
Object receiver,
boolean isStrict,
com.oracle.truffle.api.nodes.Node encapsulatingNode)
9.1.9 [[Set]] (P, V, Receiver).
|
boolean |
setPrototypeOf(com.oracle.truffle.api.object.DynamicObject thisObj,
com.oracle.truffle.api.object.DynamicObject newPrototype)
9.1.2 [[SetPrototypeOf]] (V).
|
String |
toDisplayStringImpl(com.oracle.truffle.api.object.DynamicObject obj,
int depth,
boolean allowSideEffects,
JSContext context)
A more informative toString variant, mainly used for error messages.
|
String |
toString() |
getHelper, getHelper, getMethodHelper, hasOnlyShapeProperties, usesOrdinaryGetOwnProperty, usesOrdinaryIsExtensible
defaultToString, filterOwnPropertyKeys, formatToString, get, get, getToStringTag, isInstance, isInstance, isInstance, isInstance, ownPropertyKeys, setIntegrityLevel, testIntegrityLevel, testIntegrityLevelDefault
public static final String CLASS_NAME
public static final JSProxy INSTANCE
public static final String GET_PROTOTYPE_OF
public static final String SET_PROTOTYPE_OF
public static final String IS_EXTENSIBLE
public static final String PREVENT_EXTENSIONS
public static final String GET_OWN_PROPERTY_DESCRIPTOR
public static final String HAS
public static final String GET
public static final String SET
public static final String DELETE_PROPERTY
public static final String DEFINE_PROPERTY
public static final String OWN_KEYS
public static final String APPLY
public static final String CONSTRUCT
public static final com.oracle.truffle.api.object.HiddenKey REVOCABLE_PROXY
public static final com.oracle.truffle.api.object.HiddenKey REVOKED_CALLABLE
public static boolean checkPropertyIsSettable(Object truffleTarget, Object key)
public String getClassName(com.oracle.truffle.api.object.DynamicObject object)
JSClass
getClassName
in class JSClass
object
- object to be usedpublic static com.oracle.truffle.api.object.DynamicObject create(JSContext context, Object target, com.oracle.truffle.api.object.DynamicObject handler)
public static Object getTarget(com.oracle.truffle.api.object.DynamicObject obj)
public static Object getTargetNonProxy(com.oracle.truffle.api.object.DynamicObject thisObj)
public static com.oracle.truffle.api.object.DynamicObject getHandler(com.oracle.truffle.api.object.DynamicObject obj)
public static com.oracle.truffle.api.object.DynamicObject getHandlerChecked(com.oracle.truffle.api.object.DynamicObject obj)
public static com.oracle.truffle.api.object.DynamicObject getHandlerChecked(com.oracle.truffle.api.object.DynamicObject obj, com.oracle.truffle.api.profiles.BranchProfile errorBranch)
public static void revoke(com.oracle.truffle.api.object.DynamicObject obj)
public static boolean isJSProxy(Object obj)
public Object getOwnHelper(com.oracle.truffle.api.object.DynamicObject store, Object receiver, Object key, com.oracle.truffle.api.nodes.Node encapsulatingNode)
getOwnHelper
in class AbstractJSClass
public Object getOwnHelper(com.oracle.truffle.api.object.DynamicObject store, Object receiver, long index, com.oracle.truffle.api.nodes.Node encapsulatingNode)
getOwnHelper
in class AbstractJSClass
public static void checkProxyGetTrapInvariants(Object truffleTarget, Object key, Object trapResult)
public boolean set(com.oracle.truffle.api.object.DynamicObject thisObj, Object key, Object value, Object receiver, boolean isStrict, com.oracle.truffle.api.nodes.Node encapsulatingNode)
JSClass
set
in class AbstractJSClass
public boolean set(com.oracle.truffle.api.object.DynamicObject thisObj, long index, Object value, Object receiver, boolean isStrict, com.oracle.truffle.api.nodes.Node encapsulatingNode)
set
in class AbstractJSClass
public static boolean checkProxySetTrapInvariants(com.oracle.truffle.api.object.DynamicObject proxy, Object key, Object value)
public boolean hasOwnProperty(com.oracle.truffle.api.object.DynamicObject thisObj, long index)
hasOwnProperty
in class AbstractJSClass
public boolean hasOwnProperty(com.oracle.truffle.api.object.DynamicObject thisObj, Object key)
hasOwnProperty
in class AbstractJSClass
public boolean hasProperty(com.oracle.truffle.api.object.DynamicObject thisObj, long index)
hasProperty
in class AbstractJSClass
public boolean hasProperty(com.oracle.truffle.api.object.DynamicObject thisObj, Object key)
JSClass
hasProperty
in class AbstractJSClass
public boolean delete(com.oracle.truffle.api.object.DynamicObject thisObj, long index, boolean isStrict)
delete
in class AbstractJSClass
public boolean delete(com.oracle.truffle.api.object.DynamicObject thisObj, Object key, boolean isStrict)
JSClass
delete
in class AbstractJSClass
public boolean defineOwnProperty(com.oracle.truffle.api.object.DynamicObject thisObj, Object key, PropertyDescriptor desc, boolean doThrow)
JSClass
defineOwnProperty
in class AbstractJSClass
public boolean preventExtensions(com.oracle.truffle.api.object.DynamicObject thisObj, boolean doThrow)
JSClass
preventExtensions
in class AbstractJSClass
public boolean isExtensible(com.oracle.truffle.api.object.DynamicObject thisObj)
JSClass
isExtensible
in class AbstractJSClass
public String getBuiltinToStringTag(com.oracle.truffle.api.object.DynamicObject object)
JSClass
getBuiltinToStringTag
in class JSClass
object
- object to be usedJSClass.defaultToString(DynamicObject)
public String toDisplayStringImpl(com.oracle.truffle.api.object.DynamicObject obj, int depth, boolean allowSideEffects, JSContext context)
JSClass
toDisplayStringImpl
in class JSClass
depth
- allowed nesting depthcontext
- the current language contextpublic com.oracle.truffle.api.object.Shape makeInitialShape(JSContext context, com.oracle.truffle.api.object.DynamicObject prototype)
makeInitialShape
in class JSClass
public static JSConstructor createConstructor(JSRealm realm)
public static Object getTrapFromObject(com.oracle.truffle.api.object.DynamicObject maybeHandler, String trapName)
public com.oracle.truffle.api.object.DynamicObject getPrototypeOf(com.oracle.truffle.api.object.DynamicObject thisObj)
JSClass
getPrototypeOf
in class AbstractJSClass
public boolean setPrototypeOf(com.oracle.truffle.api.object.DynamicObject thisObj, com.oracle.truffle.api.object.DynamicObject newPrototype)
JSClass
setPrototypeOf
in class AbstractJSClass
public List<Object> getOwnPropertyKeys(com.oracle.truffle.api.object.DynamicObject thisObj, boolean strings, boolean symbols)
JSClass
getOwnPropertyKeys
in class AbstractJSClass
public PropertyDescriptor getOwnProperty(com.oracle.truffle.api.object.DynamicObject thisObj, Object key)
JSClass
getOwnProperty
in class AbstractJSClass
public static boolean isRevoked(com.oracle.truffle.api.object.DynamicObject proxy)
public static Object call(com.oracle.truffle.api.object.DynamicObject proxyObj, Object holder, Object[] arguments)
public static Object construct(com.oracle.truffle.api.object.DynamicObject proxyObj, Object[] arguments)
public com.oracle.truffle.api.object.DynamicObject getIntrinsicDefaultProto(JSRealm realm)
getIntrinsicDefaultProto
in interface PrototypeSupplier