Class JSInteropUtil
java.lang.Object
com.oracle.truffle.js.runtime.interop.JSInteropUtil
Utility class for interop operations. Provides methods that can be used in Cached annotations of
the TruffleDSL to create interop nodes just for specific specializations.
-
Method Summary
Modifier and TypeMethodDescriptionstatic Objectstatic Objectstatic voidcopyFromBuffer(JSArrayBufferObject buffer, int byteOffset, byte[] destination, int destinationOffset, int byteLength, com.oracle.truffle.api.interop.InteropLibrary interop) static booleanstatic booleandeleteArrayElement(Object target, long index, com.oracle.truffle.api.interop.InteropLibrary interop, boolean strict) static booleandeleteHashEntry(Object target, Object key, com.oracle.truffle.api.interop.InteropLibrary interop, boolean strict) static booleandeleteMember(Object target, com.oracle.truffle.api.strings.TruffleString name, com.oracle.truffle.api.interop.InteropLibrary interop, boolean strict) static ByteBufferforeignInteropBufferAsByteBuffer(Object foreignInteropBuffer, com.oracle.truffle.api.interop.InteropLibrary interop, JSRealm realm) static StringformatError(Object error, com.oracle.truffle.api.interop.InteropLibrary interopExc, com.oracle.truffle.api.interop.InteropLibrary interopStr) static PropertyDescriptorgetArrayElementProperty(Object object, long index, com.oracle.truffle.api.interop.InteropLibrary interop, ImportValueNode importValueNode) static longgetArraySize(Object foreignObj, com.oracle.truffle.api.interop.InteropLibrary interop, com.oracle.truffle.api.nodes.Node originatingNode) static PropertyDescriptorgetExistingMemberProperty(Object object, String key, com.oracle.truffle.api.interop.InteropLibrary interop, ImportValueNode importValueNode) static ObjectgetOrDefault(JSContext context, Object target, Object propertyKey, Object receiver, Object defaultValue) static PropertyDescriptorgetOwnProperty(Object object, com.oracle.truffle.api.strings.TruffleString propertyKey) static PropertyDescriptorgetOwnProperty(Object object, com.oracle.truffle.api.strings.TruffleString propertyKey, com.oracle.truffle.api.interop.InteropLibrary interop, ImportValueNode importValueNode, com.oracle.truffle.api.strings.TruffleString.ReadCharUTF16Node charAtNode) static booleanhasProperty(Object obj, Object key) static booleanisBoxedPrimitive(Object receiver, com.oracle.truffle.api.interop.InteropLibrary interop) static ByteBufferjsInteropBufferAsByteBuffer(JSArrayBufferObject interopArrayBuffer, com.oracle.truffle.api.interop.InteropLibrary interop, JSRealm realm) static ObjectreadArrayElementOrDefault(Object obj, long index, Object defaultValue) static ObjectreadArrayElementOrDefault(Object obj, long index, Object defaultValue, com.oracle.truffle.api.interop.InteropLibrary interop, ImportValueNode importValue) static voidreadBuffer(Object buffer, long byteOffset, byte[] destination, int destinationOffset, int byteLength, com.oracle.truffle.api.interop.InteropLibrary interop) static ObjectreadMemberOrDefault(Object obj, Object member, Object defaultValue) static ObjectreadMemberOrDefault(Object obj, Object member, Object defaultValue, com.oracle.truffle.api.interop.InteropLibrary interop, ImportValueNode importValue) static booleanstatic booleansetArraySize(Object obj, Object value, boolean isStrict, com.oracle.truffle.api.interop.InteropLibrary interop, com.oracle.truffle.api.nodes.Node originatingNode, com.oracle.truffle.api.profiles.BranchProfile errorBranch) static ObjecttoPrimitiveOrDefaultLossless(Object obj, Object defaultValue, com.oracle.truffle.api.interop.InteropLibrary interop, com.oracle.truffle.api.strings.TruffleString.SwitchEncodingNode switchEncoding, com.oracle.truffle.api.nodes.Node originatingNode) Converts a foreign object to a JS primitive value.static ObjecttoPrimitiveOrDefaultLossy(Object obj, Object defaultValue, com.oracle.truffle.api.interop.InteropLibrary interop, com.oracle.truffle.api.nodes.Node originatingNode) Converts foreign objects to JS primitive values, coercing all numbers to double precision.static voidwriteBuffer(Object destination, long destinationOffset, byte[] source, int sourceOffset, int copyLength, com.oracle.truffle.api.interop.InteropLibrary interop) static booleanwriteMember(Object obj, Object member, Object value) static booleanwriteMember(Object obj, Object member, Object value, com.oracle.truffle.api.interop.InteropLibrary interop, ExportValueNode exportValue, boolean strict, com.oracle.truffle.api.nodes.Node originatingNode)
-
Method Details
-
getArraySize
public static long getArraySize(Object foreignObj, com.oracle.truffle.api.interop.InteropLibrary interop, com.oracle.truffle.api.nodes.Node originatingNode) -
setArraySize
-
getOrDefault
-
readMemberOrDefault
-
readMemberOrDefault
public static Object readMemberOrDefault(Object obj, Object member, Object defaultValue, com.oracle.truffle.api.interop.InteropLibrary interop, ImportValueNode importValue) -
readArrayElementOrDefault
public static Object readArrayElementOrDefault(Object obj, long index, Object defaultValue, com.oracle.truffle.api.interop.InteropLibrary interop, ImportValueNode importValue) -
readArrayElementOrDefault
-
set
-
writeMember
-
writeMember
public static boolean writeMember(Object obj, Object member, Object value, com.oracle.truffle.api.interop.InteropLibrary interop, ExportValueNode exportValue, boolean strict, com.oracle.truffle.api.nodes.Node originatingNode) -
toPrimitiveOrDefaultLossy
-
toPrimitiveOrDefaultLossless
public static Object toPrimitiveOrDefaultLossless(Object obj, Object defaultValue, com.oracle.truffle.api.interop.InteropLibrary interop, com.oracle.truffle.api.strings.TruffleString.SwitchEncodingNode switchEncoding, com.oracle.truffle.api.nodes.Node originatingNode) Converts a foreign object to a JS primitive value. Attempts to keep the precise numeric value when converting foreign numbers, relevant for comparisons and ToString/ToBigInt conversion. Returned BigInt values are marked as foreign so that they are handled correctly by subsequent ToNumeric, ToNumber (i.e., coerced to double), or ToBigInt. -
keys
-
hasProperty
-
delete
-
deleteArrayElement
public static boolean deleteArrayElement(Object target, long index, com.oracle.truffle.api.interop.InteropLibrary interop, boolean strict) -
deleteHashEntry
-
deleteMember
public static boolean deleteMember(Object target, com.oracle.truffle.api.strings.TruffleString name, com.oracle.truffle.api.interop.InteropLibrary interop, boolean strict) -
call
-
construct
-
isBoxedPrimitive
public static boolean isBoxedPrimitive(Object receiver, com.oracle.truffle.api.interop.InteropLibrary interop) -
getOwnProperty
public static PropertyDescriptor getOwnProperty(Object object, com.oracle.truffle.api.strings.TruffleString propertyKey) -
getOwnProperty
public static PropertyDescriptor getOwnProperty(Object object, com.oracle.truffle.api.strings.TruffleString propertyKey, com.oracle.truffle.api.interop.InteropLibrary interop, ImportValueNode importValueNode, com.oracle.truffle.api.strings.TruffleString.ReadCharUTF16Node charAtNode) -
getExistingMemberProperty
public static PropertyDescriptor getExistingMemberProperty(Object object, String key, com.oracle.truffle.api.interop.InteropLibrary interop, ImportValueNode importValueNode) throws com.oracle.truffle.api.interop.InteropException - Throws:
com.oracle.truffle.api.interop.InteropException
-
getArrayElementProperty
public static PropertyDescriptor getArrayElementProperty(Object object, long index, com.oracle.truffle.api.interop.InteropLibrary interop, ImportValueNode importValueNode) throws com.oracle.truffle.api.interop.InteropException - Throws:
com.oracle.truffle.api.interop.InteropException
-
formatError
-
jsInteropBufferAsByteBuffer
public static ByteBuffer jsInteropBufferAsByteBuffer(JSArrayBufferObject interopArrayBuffer, com.oracle.truffle.api.interop.InteropLibrary interop, JSRealm realm) -
foreignInteropBufferAsByteBuffer
public static ByteBuffer foreignInteropBufferAsByteBuffer(Object foreignInteropBuffer, com.oracle.truffle.api.interop.InteropLibrary interop, JSRealm realm) -
readBuffer
public static void readBuffer(Object buffer, long byteOffset, byte[] destination, int destinationOffset, int byteLength, com.oracle.truffle.api.interop.InteropLibrary interop) -
copyFromBuffer
public static void copyFromBuffer(JSArrayBufferObject buffer, int byteOffset, byte[] destination, int destinationOffset, int byteLength, com.oracle.truffle.api.interop.InteropLibrary interop) -
writeBuffer
public static void writeBuffer(Object destination, long destinationOffset, byte[] source, int sourceOffset, int copyLength, com.oracle.truffle.api.interop.InteropLibrary interop)
-