public final class JSProxy extends AbstractJSClass implements PrototypeSupplier
usesOrdinaryGetOwnProperty| Modifier and Type | Field and Description |
|---|---|
static com.oracle.truffle.api.strings.TruffleString |
APPLY |
static com.oracle.truffle.api.strings.TruffleString |
CLASS_NAME |
static com.oracle.truffle.api.strings.TruffleString |
CONSTRUCT |
static com.oracle.truffle.api.strings.TruffleString |
DEFINE_PROPERTY |
static com.oracle.truffle.api.strings.TruffleString |
DELETE_PROPERTY |
static com.oracle.truffle.api.strings.TruffleString |
GET |
static com.oracle.truffle.api.strings.TruffleString |
GET_OWN_PROPERTY_DESCRIPTOR |
static com.oracle.truffle.api.strings.TruffleString |
GET_PROTOTYPE_OF |
static com.oracle.truffle.api.strings.TruffleString |
HAS |
static JSProxy |
INSTANCE |
static com.oracle.truffle.api.strings.TruffleString |
IS_EXTENSIBLE |
static com.oracle.truffle.api.strings.TruffleString |
OWN_KEYS |
static com.oracle.truffle.api.strings.TruffleString |
PREVENT_EXTENSIONS |
static com.oracle.truffle.api.strings.TruffleString |
PROXY_CALL |
static com.oracle.truffle.api.object.HiddenKey |
REVOCABLE_PROXY |
static com.oracle.truffle.api.strings.TruffleString |
SET |
static com.oracle.truffle.api.strings.TruffleString |
SET_PROTOTYPE_OF |
| Modifier and Type | Method and Description |
|---|---|
static Object |
call(JSDynamicObject proxyObj,
Object holder,
Object[] arguments) |
static boolean |
checkPropertyIsSettable(Object truffleTarget,
Object key) |
static void |
checkProxyGetTrapInvariants(Object truffleTarget,
Object key,
Object trapResult) |
static boolean |
checkProxySetTrapInvariants(JSDynamicObject proxy,
Object key,
Object value) |
static Object |
checkTrapReturnValue(Object trapResult) |
static Object |
construct(JSDynamicObject proxyObj,
Object[] arguments) |
static JSProxyObject |
create(JSContext context,
JSRealm realm,
JSDynamicObject proto,
Object target,
JSDynamicObject handler) |
static JSProxyObject |
create(JSContext context,
JSRealm realm,
Object target,
JSDynamicObject handler) |
static JSConstructor |
createConstructor(JSRealm realm) |
static JSFunctionData |
createProxyCallFunctionData(JSContext ctx) |
boolean |
defineOwnProperty(JSDynamicObject thisObj,
Object key,
PropertyDescriptor desc,
boolean doThrow)
9.1.6 [[DefineOwnProperty]] (P, Desc).
|
boolean |
delete(JSDynamicObject thisObj,
long index,
boolean isStrict) |
boolean |
delete(JSDynamicObject thisObj,
Object key,
boolean isStrict)
9.1.10 [[Delete]] (P).
|
com.oracle.truffle.api.strings.TruffleString |
getBuiltinToStringTag(JSDynamicObject object)
Returns builtinTag from step 14 of ES6+ 19.1.3.6.
|
com.oracle.truffle.api.strings.TruffleString |
getClassName(JSDynamicObject object)
The [[Class]] internal property.
|
static JSDynamicObject |
getHandler(JSDynamicObject obj) |
static JSDynamicObject |
getHandlerChecked(JSDynamicObject obj,
com.oracle.truffle.api.strings.TruffleString trap) |
JSDynamicObject |
getIntrinsicDefaultProto(JSRealm realm)
Allows invokevirtual of this method instead of invokeinterface.
|
Object |
getOwnHelper(JSDynamicObject store,
Object receiver,
long index,
com.oracle.truffle.api.nodes.Node encapsulatingNode) |
Object |
getOwnHelper(JSDynamicObject store,
Object receiver,
Object key,
com.oracle.truffle.api.nodes.Node encapsulatingNode) |
PropertyDescriptor |
getOwnProperty(JSDynamicObject thisObj,
Object key)
9.1.5 [[GetOwnProperty]] (P).
|
List<Object> |
getOwnPropertyKeys(JSDynamicObject thisObj,
boolean strings,
boolean symbols)
GetOwnPropertyKeys (O, type).
|
JSDynamicObject |
getPrototypeOf(JSDynamicObject thisObj)
9.1.1 [[GetPrototypeOf]] ().
|
static Object |
getTarget(JSDynamicObject obj) |
static Object |
getTargetNonProxy(JSDynamicObject thisObj)
Gets the target of the proxy.
|
static Object |
getTrapFromObject(JSDynamicObject maybeHandler,
com.oracle.truffle.api.strings.TruffleString trapName) |
boolean |
hasOwnProperty(JSDynamicObject thisObj,
long index) |
boolean |
hasOwnProperty(JSDynamicObject thisObj,
Object key) |
boolean |
hasProperty(JSDynamicObject thisObj,
long index) |
boolean |
hasProperty(JSDynamicObject thisObj,
Object key)
9.1.7 [[HasProperty]] (P).
|
boolean |
isExtensible(JSDynamicObject thisObj)
9.1.3 [[IsExtensible]] ().
|
static boolean |
isJSProxy(Object obj) |
static boolean |
isRevoked(JSDynamicObject proxy) |
com.oracle.truffle.api.object.Shape |
makeInitialShape(JSContext context,
JSDynamicObject prototype) |
boolean |
preventExtensions(JSDynamicObject thisObj,
boolean doThrow)
9.1.4 [[PreventExtensions]] ().
|
boolean |
set(JSDynamicObject thisObj,
long index,
Object value,
Object receiver,
boolean isStrict,
com.oracle.truffle.api.nodes.Node encapsulatingNode) |
boolean |
set(JSDynamicObject 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(JSDynamicObject thisObj,
JSDynamicObject newPrototype)
9.1.2 [[SetPrototypeOf]] (V).
|
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.
|
String |
toString() |
getHelper, getHelper, getMethodHelper, hasOnlyShapeProperties, usesOrdinaryGetOwnProperty, usesOrdinaryIsExtensibledefaultToString, filterOwnPropertyKeys, formatToString, get, get, getToStringTag, isInstance, isInstance, isInstance, isInstance, ownPropertyKeys, setIntegrityLevel, testIntegrityLevel, testIntegrityLevelDefaultpublic static final com.oracle.truffle.api.strings.TruffleString CLASS_NAME
public static final JSProxy INSTANCE
public static final com.oracle.truffle.api.strings.TruffleString GET_PROTOTYPE_OF
public static final com.oracle.truffle.api.strings.TruffleString SET_PROTOTYPE_OF
public static final com.oracle.truffle.api.strings.TruffleString IS_EXTENSIBLE
public static final com.oracle.truffle.api.strings.TruffleString PREVENT_EXTENSIONS
public static final com.oracle.truffle.api.strings.TruffleString GET_OWN_PROPERTY_DESCRIPTOR
public static final com.oracle.truffle.api.strings.TruffleString HAS
public static final com.oracle.truffle.api.strings.TruffleString GET
public static final com.oracle.truffle.api.strings.TruffleString SET
public static final com.oracle.truffle.api.strings.TruffleString DELETE_PROPERTY
public static final com.oracle.truffle.api.strings.TruffleString DEFINE_PROPERTY
public static final com.oracle.truffle.api.strings.TruffleString OWN_KEYS
public static final com.oracle.truffle.api.strings.TruffleString APPLY
public static final com.oracle.truffle.api.strings.TruffleString CONSTRUCT
public static final com.oracle.truffle.api.strings.TruffleString PROXY_CALL
public static final com.oracle.truffle.api.object.HiddenKey REVOCABLE_PROXY
public static boolean checkPropertyIsSettable(Object truffleTarget, Object key)
public com.oracle.truffle.api.strings.TruffleString getClassName(JSDynamicObject object)
JSClassgetClassName in class JSClassobject - object to be usedpublic static JSProxyObject create(JSContext context, JSRealm realm, Object target, JSDynamicObject handler)
public static JSProxyObject create(JSContext context, JSRealm realm, JSDynamicObject proto, Object target, JSDynamicObject handler)
public static Object getTarget(JSDynamicObject obj)
public static Object getTargetNonProxy(JSDynamicObject thisObj)
public static JSDynamicObject getHandler(JSDynamicObject obj)
public static JSDynamicObject getHandlerChecked(JSDynamicObject obj, com.oracle.truffle.api.strings.TruffleString trap)
public static boolean isJSProxy(Object obj)
public Object getOwnHelper(JSDynamicObject store, Object receiver, Object key, com.oracle.truffle.api.nodes.Node encapsulatingNode)
getOwnHelper in class AbstractJSClasspublic Object getOwnHelper(JSDynamicObject store, Object receiver, long index, com.oracle.truffle.api.nodes.Node encapsulatingNode)
getOwnHelper in class AbstractJSClasspublic static void checkProxyGetTrapInvariants(Object truffleTarget, Object key, Object trapResult)
public boolean set(JSDynamicObject thisObj, Object key, Object value, Object receiver, boolean isStrict, com.oracle.truffle.api.nodes.Node encapsulatingNode)
JSClassset in class AbstractJSClasspublic boolean set(JSDynamicObject thisObj, long index, Object value, Object receiver, boolean isStrict, com.oracle.truffle.api.nodes.Node encapsulatingNode)
set in class AbstractJSClasspublic static boolean checkProxySetTrapInvariants(JSDynamicObject proxy, Object key, Object value)
public boolean hasOwnProperty(JSDynamicObject thisObj, long index)
hasOwnProperty in class AbstractJSClasspublic boolean hasOwnProperty(JSDynamicObject thisObj, Object key)
hasOwnProperty in class AbstractJSClasspublic boolean hasProperty(JSDynamicObject thisObj, long index)
hasProperty in class AbstractJSClasspublic boolean hasProperty(JSDynamicObject thisObj, Object key)
JSClasshasProperty in class AbstractJSClasspublic boolean delete(JSDynamicObject thisObj, long index, boolean isStrict)
delete in class AbstractJSClasspublic boolean delete(JSDynamicObject thisObj, Object key, boolean isStrict)
JSClassdelete in class AbstractJSClasspublic boolean defineOwnProperty(JSDynamicObject thisObj, Object key, PropertyDescriptor desc, boolean doThrow)
JSClassdefineOwnProperty in class AbstractJSClasspublic boolean preventExtensions(JSDynamicObject thisObj, boolean doThrow)
JSClasspreventExtensions in class AbstractJSClasspublic boolean isExtensible(JSDynamicObject thisObj)
JSClassisExtensible in class AbstractJSClasspublic com.oracle.truffle.api.strings.TruffleString getBuiltinToStringTag(JSDynamicObject object)
JSClassgetBuiltinToStringTag in class JSClassobject - 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 JSClassformat - formatting parametersdepth - current nesting depthpublic com.oracle.truffle.api.object.Shape makeInitialShape(JSContext context, JSDynamicObject prototype)
makeInitialShape in class JSClasspublic static JSConstructor createConstructor(JSRealm realm)
public static Object getTrapFromObject(JSDynamicObject maybeHandler, com.oracle.truffle.api.strings.TruffleString trapName)
public JSDynamicObject getPrototypeOf(JSDynamicObject thisObj)
JSClassgetPrototypeOf in class AbstractJSClasspublic boolean setPrototypeOf(JSDynamicObject thisObj, JSDynamicObject newPrototype)
JSClasssetPrototypeOf in class AbstractJSClasspublic List<Object> getOwnPropertyKeys(JSDynamicObject thisObj, boolean strings, boolean symbols)
JSClassgetOwnPropertyKeys in class AbstractJSClasspublic PropertyDescriptor getOwnProperty(JSDynamicObject thisObj, Object key)
JSClassgetOwnProperty in class AbstractJSClasspublic static boolean isRevoked(JSDynamicObject proxy)
public static Object call(JSDynamicObject proxyObj, Object holder, Object[] arguments)
public static Object construct(JSDynamicObject proxyObj, Object[] arguments)
public JSDynamicObject getIntrinsicDefaultProto(JSRealm realm)
JSClassPrototypeSupplier.getIntrinsicDefaultProto in interface PrototypeSuppliergetIntrinsicDefaultProto in class JSClassPrototypeSupplier.getIntrinsicDefaultProto(com.oracle.truffle.js.runtime.JSRealm)public static JSFunctionData createProxyCallFunctionData(JSContext ctx)