Class JSProxy
java.lang.Object
com.oracle.truffle.js.runtime.builtins.JSClass
com.oracle.truffle.js.runtime.builtins.AbstractJSClass
com.oracle.truffle.js.runtime.builtins.JSProxy
- All Implemented Interfaces:
PrototypeSupplier
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final com.oracle.truffle.api.strings.TruffleStringstatic final com.oracle.truffle.api.strings.TruffleStringstatic final com.oracle.truffle.api.strings.TruffleStringstatic final com.oracle.truffle.api.strings.TruffleStringstatic final com.oracle.truffle.api.strings.TruffleStringstatic final com.oracle.truffle.api.strings.TruffleStringstatic final com.oracle.truffle.api.strings.TruffleStringstatic final com.oracle.truffle.api.strings.TruffleStringstatic final com.oracle.truffle.api.strings.TruffleStringstatic final JSProxystatic final com.oracle.truffle.api.strings.TruffleStringstatic final com.oracle.truffle.api.strings.TruffleStringstatic final com.oracle.truffle.api.strings.TruffleStringstatic final com.oracle.truffle.api.strings.TruffleStringstatic final com.oracle.truffle.api.object.HiddenKeystatic final com.oracle.truffle.api.strings.TruffleStringstatic final com.oracle.truffle.api.strings.TruffleString -
Method Summary
Modifier and TypeMethodDescriptionstatic Objectcall(JSDynamicObject proxyObj, Object holder, Object[] arguments) static booleancheckPropertyIsSettable(Object truffleTarget, Object key) static booleancheckProxyDefinePropertyTrapInvariants(JSDynamicObject proxy, Object key, PropertyDescriptor desc) static voidcheckProxyGetTrapInvariants(Object truffleTarget, Object key, Object trapResult) static booleancheckProxySetTrapInvariants(JSDynamicObject proxy, Object key, Object value) static ObjectcheckTrapReturnValue(Object trapResult) static Objectconstruct(JSDynamicObject proxyObj, Object[] arguments) static JSProxyObjectcreate(JSContext context, JSRealm realm, JSDynamicObject proto, Object target, JSDynamicObject handler) static JSProxyObjectcreate(JSContext context, JSRealm realm, Object target, JSDynamicObject handler) static JSConstructorcreateConstructor(JSRealm realm) static JSFunctionDatabooleandefineOwnProperty(JSDynamicObject thisObj, Object key, PropertyDescriptor desc, boolean doThrow) 9.1.6 [[DefineOwnProperty]] (P, Desc).booleandelete(JSDynamicObject thisObj, long index, boolean isStrict) booleandelete(JSDynamicObject thisObj, Object key, boolean isStrict) 9.1.10 [[Delete]] (P).static JSDynamicObjectstatic JSDynamicObjectgetHandlerChecked(JSDynamicObject obj, com.oracle.truffle.api.strings.TruffleString trap) getIntrinsicDefaultProto(JSRealm realm) Allows invokevirtual of this method instead of invokeinterface.getOwnHelper(JSDynamicObject store, Object receiver, long index, com.oracle.truffle.api.nodes.Node encapsulatingNode) getOwnHelper(JSDynamicObject store, Object receiver, Object key, com.oracle.truffle.api.nodes.Node encapsulatingNode) getOwnProperty(JSDynamicObject thisObj, Object key) 9.1.5 [[GetOwnProperty]] (P).getOwnPropertyKeys(JSDynamicObject thisObj, boolean strings, boolean symbols) GetOwnPropertyKeys (O, type).getPrototypeOf(JSDynamicObject thisObj) 9.1.1 [[GetPrototypeOf]] ().static ObjectgetTarget(JSDynamicObject obj) static ObjectgetTargetNonProxy(JSDynamicObject thisObj) Gets the target of the proxy.static ObjectgetTrapFromObject(JSDynamicObject maybeHandler, com.oracle.truffle.api.strings.TruffleString trapName) booleanhasOwnProperty(JSDynamicObject thisObj, long index) booleanhasOwnProperty(JSDynamicObject thisObj, Object key) booleanhasProperty(JSDynamicObject thisObj, long index) booleanhasProperty(JSDynamicObject thisObj, Object key) 9.1.7 [[HasProperty]] (P).booleanisExtensible(JSDynamicObject thisObj) 9.1.3 [[IsExtensible]] ().static booleanstatic booleanisRevoked(JSDynamicObject proxy) com.oracle.truffle.api.object.ShapemakeInitialShape(JSContext context, JSDynamicObject prototype) booleanpreventExtensions(JSDynamicObject thisObj, boolean doThrow) 9.1.4 [[PreventExtensions]] ().booleanset(JSDynamicObject thisObj, long index, Object value, Object receiver, boolean isStrict, com.oracle.truffle.api.nodes.Node encapsulatingNode) booleanset(JSDynamicObject thisObj, Object key, Object value, Object receiver, boolean isStrict, com.oracle.truffle.api.nodes.Node encapsulatingNode) 9.1.9 [[Set]] (P, V, Receiver).booleansetPrototypeOf(JSDynamicObject thisObj, JSDynamicObject newPrototype) 9.1.2 [[SetPrototypeOf]] (V).Methods inherited from class com.oracle.truffle.js.runtime.builtins.AbstractJSClass
getHelper, getHelper, getMethodHelper, hasOnlyShapeProperties, usesOrdinaryGetOwnProperty, usesOrdinaryIsExtensibleMethods inherited from class com.oracle.truffle.js.runtime.builtins.JSClass
filterOwnPropertyKeys, get, get, isInstance, isInstance, isInstance, isInstance, ownPropertyKeys, toString
-
Field Details
-
CLASS_NAME
public static final com.oracle.truffle.api.strings.TruffleString CLASS_NAME -
INSTANCE
-
GET_PROTOTYPE_OF
public static final com.oracle.truffle.api.strings.TruffleString GET_PROTOTYPE_OF -
SET_PROTOTYPE_OF
public static final com.oracle.truffle.api.strings.TruffleString SET_PROTOTYPE_OF -
IS_EXTENSIBLE
public static final com.oracle.truffle.api.strings.TruffleString IS_EXTENSIBLE -
PREVENT_EXTENSIONS
public static final com.oracle.truffle.api.strings.TruffleString PREVENT_EXTENSIONS -
GET_OWN_PROPERTY_DESCRIPTOR
public static final com.oracle.truffle.api.strings.TruffleString GET_OWN_PROPERTY_DESCRIPTOR -
HAS
public static final com.oracle.truffle.api.strings.TruffleString HAS -
GET
public static final com.oracle.truffle.api.strings.TruffleString GET -
SET
public static final com.oracle.truffle.api.strings.TruffleString SET -
DELETE_PROPERTY
public static final com.oracle.truffle.api.strings.TruffleString DELETE_PROPERTY -
DEFINE_PROPERTY
public static final com.oracle.truffle.api.strings.TruffleString DEFINE_PROPERTY -
OWN_KEYS
public static final com.oracle.truffle.api.strings.TruffleString OWN_KEYS -
APPLY
public static final com.oracle.truffle.api.strings.TruffleString APPLY -
CONSTRUCT
public static final com.oracle.truffle.api.strings.TruffleString CONSTRUCT -
PROXY_CALL
public static final com.oracle.truffle.api.strings.TruffleString PROXY_CALL -
REVOCABLE_PROXY
public static final com.oracle.truffle.api.object.HiddenKey REVOCABLE_PROXY
-
-
Method Details
-
checkPropertyIsSettable
-
create
public static JSProxyObject create(JSContext context, JSRealm realm, Object target, JSDynamicObject handler) -
create
public static JSProxyObject create(JSContext context, JSRealm realm, JSDynamicObject proto, Object target, JSDynamicObject handler) -
getTarget
-
getTargetNonProxy
Gets the target of the proxy. As the target can be a proxy again, retrieves the first non-proxy target. -
getHandler
-
getHandlerChecked
public static JSDynamicObject getHandlerChecked(JSDynamicObject obj, com.oracle.truffle.api.strings.TruffleString trap) -
isJSProxy
-
getOwnHelper
public Object getOwnHelper(JSDynamicObject store, Object receiver, Object key, com.oracle.truffle.api.nodes.Node encapsulatingNode) - Overrides:
getOwnHelperin classAbstractJSClass
-
getOwnHelper
public Object getOwnHelper(JSDynamicObject store, Object receiver, long index, com.oracle.truffle.api.nodes.Node encapsulatingNode) - Overrides:
getOwnHelperin classAbstractJSClass
-
checkProxyGetTrapInvariants
-
set
public boolean set(JSDynamicObject thisObj, Object key, Object value, Object receiver, boolean isStrict, com.oracle.truffle.api.nodes.Node encapsulatingNode) Description copied from class:JSClass9.1.9 [[Set]] (P, V, Receiver).- Overrides:
setin classAbstractJSClass
-
set
public boolean set(JSDynamicObject thisObj, long index, Object value, Object receiver, boolean isStrict, com.oracle.truffle.api.nodes.Node encapsulatingNode) - Overrides:
setin classAbstractJSClass
-
checkProxySetTrapInvariants
-
hasOwnProperty
- Overrides:
hasOwnPropertyin classAbstractJSClass
-
hasOwnProperty
- Overrides:
hasOwnPropertyin classAbstractJSClass
-
hasProperty
- Overrides:
hasPropertyin classAbstractJSClass
-
hasProperty
Description copied from class:JSClass9.1.7 [[HasProperty]] (P).- Overrides:
hasPropertyin classAbstractJSClass
-
delete
- Overrides:
deletein classAbstractJSClass
-
delete
Description copied from class:JSClass9.1.10 [[Delete]] (P).- Overrides:
deletein classAbstractJSClass
-
defineOwnProperty
public boolean defineOwnProperty(JSDynamicObject thisObj, Object key, PropertyDescriptor desc, boolean doThrow) Description copied from class:JSClass9.1.6 [[DefineOwnProperty]] (P, Desc).- Overrides:
defineOwnPropertyin classAbstractJSClass
-
checkProxyDefinePropertyTrapInvariants
public static boolean checkProxyDefinePropertyTrapInvariants(JSDynamicObject proxy, Object key, PropertyDescriptor desc) -
preventExtensions
Description copied from class:JSClass9.1.4 [[PreventExtensions]] ().- Overrides:
preventExtensionsin classAbstractJSClass
-
isExtensible
Description copied from class:JSClass9.1.3 [[IsExtensible]] ().- Overrides:
isExtensiblein classAbstractJSClass
-
makeInitialShape
public com.oracle.truffle.api.object.Shape makeInitialShape(JSContext context, JSDynamicObject prototype) - Overrides:
makeInitialShapein classJSClass
-
createConstructor
-
getTrapFromObject
public static Object getTrapFromObject(JSDynamicObject maybeHandler, com.oracle.truffle.api.strings.TruffleString trapName) -
getPrototypeOf
Description copied from class:JSClass9.1.1 [[GetPrototypeOf]] ().- Overrides:
getPrototypeOfin classAbstractJSClass
-
setPrototypeOf
Description copied from class:JSClass9.1.2 [[SetPrototypeOf]] (V).- Overrides:
setPrototypeOfin classAbstractJSClass
-
getOwnPropertyKeys
Description copied from class:JSClassGetOwnPropertyKeys (O, type).- Overrides:
getOwnPropertyKeysin classAbstractJSClass- Returns:
- a List of the keys of all own properties of that object with the specified types
-
getOwnProperty
Description copied from class:JSClass9.1.5 [[GetOwnProperty]] (P).- Overrides:
getOwnPropertyin classAbstractJSClass
-
isRevoked
-
checkTrapReturnValue
-
call
-
construct
-
getIntrinsicDefaultProto
Description copied from class:JSClassAllows invokevirtual of this method instead of invokeinterface. Classes overriding this method should implementPrototypeSupplier.- Specified by:
getIntrinsicDefaultProtoin interfacePrototypeSupplier- Overrides:
getIntrinsicDefaultProtoin classJSClass- See Also:
-
createProxyCallFunctionData
-