Class JSObjectUtil

java.lang.Object
com.oracle.truffle.js.runtime.objects.JSObjectUtil

public final class JSObjectUtil extends Object
See Also:
  • Method Details

    • formatToString

      public static com.oracle.truffle.api.strings.TruffleString formatToString(com.oracle.truffle.api.strings.TruffleString object)
      Formats JSDynamicObject.defaultToString(), by default returns "[object ...]".
      Parameters:
      object - object to be used
      Returns:
      "[object ...]" by default
    • createOrdinaryPrototypeObject

      public static JSObject createOrdinaryPrototypeObject(JSRealm realm)
    • createOrdinaryPrototypeObject

      public static JSObject createOrdinaryPrototypeObject(JSRealm realm, JSDynamicObject prototype)
    • setOrVerifyPrototype

      public static void setOrVerifyPrototype(JSContext context, JSDynamicObject obj, JSDynamicObject prototype)
    • isValidPrototype

      public static boolean isValidPrototype(Object proto)
    • defineDataProperty

      public static void defineDataProperty(JSContext context, JSDynamicObject thisObj, Object key, Object value, int flags)
    • defineDataProperty

      public static void defineDataProperty(JSDynamicObject thisObj, Object key, Object value, int flags)
    • defineAccessorProperty

      public static void defineAccessorProperty(JSDynamicObject thisObj, Object key, Accessor accessor, int flags)
    • defineAccessorProperty

      public static void defineAccessorProperty(JSContext context, JSDynamicObject thisObj, Object key, Accessor accessor, int flags)
    • defineAccessorProperty

      public static void defineAccessorProperty(JSContext context, JSDynamicObject thisObj, Object key, JSDynamicObject getter, JSDynamicObject setter, int flags)
    • defineProxyProperty

      public static void defineProxyProperty(JSDynamicObject thisObj, Object key, PropertyProxy proxy, int flags)
    • changePropertyFlags

      public static void changePropertyFlags(JSDynamicObject thisObj, Object key, int flags)
    • defineConstantDataProperty

      public static void defineConstantDataProperty(JSContext context, JSDynamicObject thisObj, Object key, Object value, int flags)
    • putDataProperty

      public static void putDataProperty(JSDynamicObject thisObj, Object key, Object value, int flags)
      Adds a new data property with a known key that does not need to be checked against any assumptions, i.e. the key is neither "__noSuchProperty__" nor "__noSuchMethod__".
    • putDataProperty

      public static void putDataProperty(JSDynamicObject thisObj, Object name, Object value)
    • putConstructorProperty

      public static void putConstructorProperty(JSDynamicObject prototype, JSDynamicObject constructor)
    • putConstructorPrototypeProperty

      public static void putConstructorPrototypeProperty(JSDynamicObject constructor, JSDynamicObject prototype)
    • putToStringTag

      public static void putToStringTag(JSDynamicObject prototype, com.oracle.truffle.api.strings.TruffleString toStringTag)
    • putBuiltinAccessorProperty

      public static void putBuiltinAccessorProperty(JSDynamicObject thisObj, Object key, JSDynamicObject getter, JSDynamicObject setter)
    • putBuiltinAccessorProperty

      public static void putBuiltinAccessorProperty(JSDynamicObject thisObj, Object key, JSDynamicObject getter, JSDynamicObject setter, int flags)
    • putBuiltinAccessorProperty

      public static void putBuiltinAccessorProperty(JSDynamicObject thisObj, Object key, Accessor accessor, int flags)
      Adds a new accessor property with a known key that does not need to be checked against any assumptions, i.e. the key is neither "__noSuchProperty__" nor "__noSuchMethod__".
    • putBuiltinAccessorProperty

      public static void putBuiltinAccessorProperty(JSDynamicObject thisObj, Object key, Accessor accessor)
    • putProxyProperty

      public static void putProxyProperty(JSDynamicObject thisObj, Object key, PropertyProxy proxy, int flags)
    • getProtoChildShape

      public static com.oracle.truffle.api.object.Shape getProtoChildShape(JSDynamicObject obj, JSClass jsclass, JSContext context)
      Get or create a prototype child shape inheriting from this object, migrating the object to a unique shape in the process. Creating unique shapes should be avoided in the fast path.
    • getProtoChildShape

      public static com.oracle.truffle.api.object.Shape getProtoChildShape(JSDynamicObject obj, JSClass jsclass, JSContext context, com.oracle.truffle.api.nodes.Node node, com.oracle.truffle.api.profiles.InlinedBranchProfile branchProfile)
    • putPrototypeData

      public static JSPrototypeData putPrototypeData(JSDynamicObject obj)
    • setPrototypeImpl

      public static void setPrototypeImpl(JSDynamicObject object, JSDynamicObject newPrototype)
    • getPrototype

      public static JSDynamicObject getPrototype(JSDynamicObject thisObj)
    • checkForNoSuchPropertyOrMethod

      public static <T> T checkForNoSuchPropertyOrMethod(JSContext context, T key)
    • isNoSuchPropertyOrMethod

      public static boolean isNoSuchPropertyOrMethod(Object key)
    • putFunctionFromContainer

      public static void putFunctionFromContainer(JSRealm realm, JSDynamicObject thisObj, JSBuiltinsContainer container, Object key)
    • putFunctionsFromContainer

      public static void putFunctionsFromContainer(JSRealm realm, JSDynamicObject thisObj, JSBuiltinsContainer container)
    • putAccessorsFromContainer

      public static void putAccessorsFromContainer(JSRealm realm, JSDynamicObject thisObj, JSBuiltinsContainer container)
    • putHiddenProperty

      public static void putHiddenProperty(JSDynamicObject obj, Object key, Object value)
    • getHiddenProperty

      public static Object getHiddenProperty(JSDynamicObject obj, Object key)
    • hasHiddenProperty

      public static boolean hasHiddenProperty(JSDynamicObject obj, Object key)
    • createCached

      public static com.oracle.truffle.api.object.DynamicObjectLibrary createCached(Object key, JSDynamicObject obj)
    • createDispatched

      public static com.oracle.truffle.api.object.DynamicObjectLibrary createDispatched(Object key, int limit)
    • createDispatched

      public static com.oracle.truffle.api.object.DynamicObjectLibrary createDispatched(Object key)
    • copyProperties

      public static <T extends JSDynamicObject> T copyProperties(T target, JSDynamicObject source)