Class JSDynamicObject
java.lang.Object
com.oracle.truffle.api.object.DynamicObject
com.oracle.truffle.js.runtime.objects.JSDynamicObject
- All Implemented Interfaces:
com.oracle.truffle.api.interop.TruffleObject
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final classstatic classstatic classstatic classNested classes/interfaces inherited from class com.oracle.truffle.api.object.DynamicObject
com.oracle.truffle.api.object.DynamicObject.DynamicField -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedJSDynamicObject(com.oracle.truffle.api.object.Shape shape) -
Method Summary
Modifier and TypeMethodDescriptioncom.oracle.truffle.api.strings.TruffleStringReturns the equivalent of Object.prototype.toString(), i.e., for ES2015+:"[object " + toStringTag + "]", where toStringTag is either the value of the object'sSymbol.toStringTagproperty, if present and a string value, or else, the builtinTag (default: "Object") according to Object.prototype.toString().abstract booleandefineOwnProperty(Object key, PropertyDescriptor value, boolean doThrow) [[DefineOwnProperty]] (P, Desc).abstract booleandelete(long propIdx, boolean isStrict) abstract boolean[[Delete]] (P).abstract com.oracle.truffle.api.strings.TruffleStringReturns builtinTag as per Object.prototype.toString().abstract com.oracle.truffle.api.strings.TruffleStringThe [[Class]] internal property.static Objectabstract Objectabstract Objectfinal JSClassfinal JSContextstatic JSSharedDataabstract ObjectgetMethodHelper(Object receiver, Object key, com.oracle.truffle.api.nodes.Node encapsulatingNode) static intstatic ObjectgetOrDefault(JSDynamicObject obj, Object key, Object defaultValue) static ObjectgetOrNull(JSDynamicObject obj, Object key) abstract ObjectgetOwnHelper(Object receiver, long index, com.oracle.truffle.api.nodes.Node encapsulatingNode) abstract ObjectgetOwnHelper(Object receiver, Object key, com.oracle.truffle.api.nodes.Node encapsulatingNode) abstract PropertyDescriptorgetOwnProperty(Object propertyKey) [[GetOwnProperty]] (P).getOwnPropertyKeys(boolean strings, boolean symbols) GetOwnPropertyKeys (O, type).static com.oracle.truffle.api.object.Property[]static intgetPropertyFlags(JSDynamicObject obj, Object key) abstract JSDynamicObject[[GetPrototypeOf]] ().getValue(long index) [[Get]] (P, Receiver).abstract booleanIf true,ownPropertyKeys()andJSShape.getPropertyKeyList(Shape, boolean, boolean)enumerate the same keys.abstract booleanhasOwnProperty(long index) abstract booleanhasOwnProperty(Object propName) abstract booleanhasProperty(long index) static booleanhasProperty(JSDynamicObject obj, Object key) abstract booleanhasProperty(Object key) [[HasProperty]] (P).final intabstract boolean[IsExtensible]] ().static booleanisJSDynamicObject(Object object) Returns whether object is a JSDynamicObject (JSObject or null/undefined).[[OwnPropertyKeys]]().abstract booleanpreventExtensions(boolean doThrow) [[PreventExtensions]] ().abstract booleanset(long index, Object value, Object receiver, boolean isStrict, com.oracle.truffle.api.nodes.Node encapsulatingNode) abstract booleanset(Object key, Object value, Object receiver, boolean isStrict, com.oracle.truffle.api.nodes.Node encapsulatingNode) [[Set]] (P, V, Receiver).booleansetIntegrityLevel(boolean freeze, boolean doThrow) SetIntegrityLevel(O, level).static voidsetJSClass(JSDynamicObject obj, JSClass jsclass) static voidsetObjectFlags(JSDynamicObject obj, int flags) static voidsetPropertyFlags(JSDynamicObject obj, Object key, int flags) abstract booleansetPrototypeOf(JSDynamicObject newPrototype) [[SetPrototypeOf]] (V).booleantestIntegrityLevel(boolean frozen) TestIntegrityLevel(O, level).static booleantestProperties(JSDynamicObject obj, Predicate<com.oracle.truffle.api.object.Property> predicate) abstract com.oracle.truffle.api.strings.TruffleStringtoDisplayStringImpl(boolean allowSideEffects, ToDisplayStringFormat format, int depth) A more informative toString variant, mainly used for error messages.static booleanupdatePropertyFlags(JSDynamicObject obj, Object key, IntUnaryOperator updateFunction) Update property flags, changing the object's shape if need be.Methods inherited from class com.oracle.truffle.api.object.DynamicObject
clone, getShape
-
Constructor Details
-
JSDynamicObject
protected JSDynamicObject(com.oracle.truffle.api.object.Shape shape)
-
-
Method Details
-
identityHashCode
public final int identityHashCode() -
getJSContext
-
getJSClass
-
getPrototypeOf
[[GetPrototypeOf]] (). -
setPrototypeOf
[[SetPrototypeOf]] (V). -
isExtensible
public abstract boolean isExtensible()[IsExtensible]] (). -
preventExtensions
public abstract boolean preventExtensions(boolean doThrow) [[PreventExtensions]] (). -
getOwnProperty
[[GetOwnProperty]] (P). -
defineOwnProperty
[[DefineOwnProperty]] (P, Desc). -
hasProperty
[[HasProperty]] (P). -
hasProperty
public abstract boolean hasProperty(long index) -
hasOwnProperty
-
hasOwnProperty
public abstract boolean hasOwnProperty(long index) -
getValue
-
getValue
-
getHelper
-
getHelper
-
getOwnHelper
-
getOwnHelper
-
getMethodHelper
-
set
-
set
-
delete
[[Delete]] (P). -
delete
public abstract boolean delete(long propIdx, boolean isStrict) -
ownPropertyKeys
-
getOwnPropertyKeys
-
hasOnlyShapeProperties
public abstract boolean hasOnlyShapeProperties()If true,ownPropertyKeys()andJSShape.getPropertyKeyList(Shape, boolean, boolean)enumerate the same keys. -
getClassName
public abstract com.oracle.truffle.api.strings.TruffleString getClassName()The [[Class]] internal property. For ES5, this is the second part of what Object.prototype.toString.call(myObj) returns, e.g. "[object Array]". -
defaultToString
public com.oracle.truffle.api.strings.TruffleString defaultToString()Returns the equivalent of Object.prototype.toString(), i.e., for ES2015+:"[object " + toStringTag + "]", where toStringTag is either the value of the object'sSymbol.toStringTagproperty, if present and a string value, or else, the builtinTag (default: "Object") according to Object.prototype.toString(). For ES5, the [[Class]] internal property is used instead, i.e.:"[object " + [[Class]] + "]", although in some cases we still useSymbol.toStringTagto override [[Class]] for Nashorn compatibility.- See Also:
-
getBuiltinToStringTag
public abstract com.oracle.truffle.api.strings.TruffleString getBuiltinToStringTag()Returns builtinTag as per Object.prototype.toString(). By default returns "Object".- Returns:
- built-in toStringTag
-
toDisplayStringImpl
public abstract com.oracle.truffle.api.strings.TruffleString toDisplayStringImpl(boolean allowSideEffects, ToDisplayStringFormat format, int depth) A more informative toString variant, mainly used for error messages.- Parameters:
format- formatting parametersdepth- current nesting depth
-
testIntegrityLevel
public boolean testIntegrityLevel(boolean frozen) TestIntegrityLevel(O, level). -
setIntegrityLevel
public boolean setIntegrityLevel(boolean freeze, boolean doThrow) SetIntegrityLevel(O, level). -
isJSDynamicObject
Returns whether object is a JSDynamicObject (JSObject or null/undefined). -
setJSClass
-
getDynamicType
-
hasProperty
-
getPropertyArray
-
getOrNull
-
getOrDefault
-
getObjectFlags
-
setObjectFlags
-
setPropertyFlags
-
getPropertyFlags
-
updatePropertyFlags
public static boolean updatePropertyFlags(JSDynamicObject obj, Object key, IntUnaryOperator updateFunction) Update property flags, changing the object's shape if need be.- Parameters:
updateFunction- An idempotent function that returns the updated property flags based on the previous flags.- Returns:
trueif successful,falseif there was no such property or no change was made.- See Also:
-
testProperties
public static boolean testProperties(JSDynamicObject obj, Predicate<com.oracle.truffle.api.object.Property> predicate)
-