Class JSObjectUtil
java.lang.Object
com.oracle.truffle.js.runtime.objects.JSObjectUtil
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionstatic voidchangePropertyFlags(JSDynamicObject thisObj, Object key, int flags) static <T> TcheckForNoSuchPropertyOrMethod(JSContext context, T key) static <T extends JSDynamicObject>
TcopyProperties(T target, JSDynamicObject source) static com.oracle.truffle.api.object.DynamicObjectLibrarycreateCached(Object key, JSDynamicObject obj) static com.oracle.truffle.api.object.DynamicObjectLibrarycreateDispatched(Object key) static com.oracle.truffle.api.object.DynamicObjectLibrarycreateDispatched(Object key, int limit) static JSObjectstatic JSObjectcreateOrdinaryPrototypeObject(JSRealm realm, JSDynamicObject prototype) static voiddefineAccessorProperty(JSContext context, JSDynamicObject thisObj, Object key, Accessor accessor, int flags) static voiddefineAccessorProperty(JSContext context, JSDynamicObject thisObj, Object key, JSDynamicObject getter, JSDynamicObject setter, int flags) static voiddefineAccessorProperty(JSDynamicObject thisObj, Object key, Accessor accessor, int flags) static voiddefineConstantDataProperty(JSContext context, JSDynamicObject thisObj, Object key, Object value, int flags) static voiddefineDataProperty(JSContext context, JSDynamicObject thisObj, Object key, Object value, int flags) static voiddefineDataProperty(JSDynamicObject thisObj, Object key, Object value, int flags) static voiddefineProxyProperty(JSDynamicObject thisObj, Object key, PropertyProxy proxy, int flags) static com.oracle.truffle.api.strings.TruffleStringformatToString(com.oracle.truffle.api.strings.TruffleString object) FormatsJSDynamicObject.defaultToString(), by default returns "[object ...]".static ObjectgetHiddenProperty(JSDynamicObject obj, Object key) static com.oracle.truffle.api.object.ShapegetProtoChildShape(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.static com.oracle.truffle.api.object.ShapegetProtoChildShape(JSDynamicObject obj, JSClass jsclass, JSContext context, com.oracle.truffle.api.nodes.Node node, com.oracle.truffle.api.profiles.InlinedBranchProfile branchProfile) static JSDynamicObjectgetPrototype(JSDynamicObject thisObj) static booleanhasHiddenProperty(JSDynamicObject obj, Object key) static booleanstatic booleanisValidPrototype(Object proto) static voidputAccessorsFromContainer(JSRealm realm, JSDynamicObject thisObj, JSBuiltinsContainer container) static voidputBuiltinAccessorProperty(JSDynamicObject thisObj, Object key, Accessor accessor) static voidputBuiltinAccessorProperty(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.static voidputBuiltinAccessorProperty(JSDynamicObject thisObj, Object key, JSDynamicObject getter, JSDynamicObject setter) static voidputBuiltinAccessorProperty(JSDynamicObject thisObj, Object key, JSDynamicObject getter, JSDynamicObject setter, int flags) static voidputConstructorProperty(JSDynamicObject prototype, JSDynamicObject constructor) static voidputConstructorPrototypeProperty(JSDynamicObject constructor, JSDynamicObject prototype) static voidputDataProperty(JSDynamicObject thisObj, Object name, Object value) static voidputDataProperty(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.static voidputFunctionFromContainer(JSRealm realm, JSDynamicObject thisObj, JSBuiltinsContainer container, Object key) static voidputFunctionsFromContainer(JSRealm realm, JSDynamicObject thisObj, JSBuiltinsContainer container) static voidputHiddenProperty(JSDynamicObject obj, Object key, Object value) static JSPrototypeDatastatic voidputProxyProperty(JSDynamicObject thisObj, Object key, PropertyProxy proxy, int flags) static voidputToStringTag(JSDynamicObject prototype, com.oracle.truffle.api.strings.TruffleString toStringTag) static voidsetOrVerifyPrototype(JSContext context, JSDynamicObject obj, JSDynamicObject prototype) static voidsetPrototypeImpl(JSDynamicObject object, JSDynamicObject newPrototype)
-
Method Details
-
formatToString
public static com.oracle.truffle.api.strings.TruffleString formatToString(com.oracle.truffle.api.strings.TruffleString object) FormatsJSDynamicObject.defaultToString(), by default returns "[object ...]".- Parameters:
object- object to be used- Returns:
- "[object ...]" by default
-
createOrdinaryPrototypeObject
-
createOrdinaryPrototypeObject
-
setOrVerifyPrototype
public static void setOrVerifyPrototype(JSContext context, JSDynamicObject obj, JSDynamicObject prototype) -
isValidPrototype
-
defineDataProperty
public static void defineDataProperty(JSContext context, JSDynamicObject thisObj, Object key, Object value, int flags) -
defineDataProperty
-
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
-
defineConstantDataProperty
public static void defineConstantDataProperty(JSContext context, JSDynamicObject thisObj, Object key, Object value, int flags) -
putDataProperty
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
-
putConstructorProperty
-
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
-
setPrototypeImpl
-
getPrototype
-
checkForNoSuchPropertyOrMethod
-
isNoSuchPropertyOrMethod
-
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
-
getHiddenProperty
-
hasHiddenProperty
-
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
-
copyProperties
-