Package io.karatelabs.js
Interface ObjectLike
- All Known Subinterfaces:
SimpleObject
- All Known Implementing Classes:
JavaObject,JsBoolean,JsFunction,JsFunctionWrapper,JsJava,JsJson,JsPromise,JsRegex
public interface ObjectLike
-
Method Summary
Modifier and TypeMethodDescriptionRaw-value accessor — returns the stored data value, ornullfor accessor descriptors (which have no extractable raw value).default ObjectJS-semantic resolved read.default ObjectLikeReturns the prototype (__proto__) for prototype chain walking.default booleandefault booleanisFrozen()default booleanisOwnProperty(String name) True iffnameis an own property — not inherited, not absent.default booleanisSealed()voiddefault voidStrict-aware[[Set]](ES 10.4.7 OrdinarySetWithOwnDescriptor).voidremoveMember(String name) default voidremoveMember(String name, io.karatelabs.js.CoreContext ctx, boolean strict) Strict-aware[[Delete]](ES 13.5.1.2 / DeletePropertyOrThrow).default voidsetExtensible(boolean extensible) default voidsetFrozen(boolean frozen) default voidsetSealed(boolean sealed) toMap()
-
Method Details
-
getMember
Raw-value accessor — returns the stored data value, ornullfor accessor descriptors (which have no extractable raw value). Internal map / Java-interop callers (toMap, Map.get, jsEntries) and subclasssuper.getMember(name)chains use this.For JS-semantic reads that must invoke an accessor's getter, use
getMember(String, Object, CoreContext)instead. -
getMember
JS-semantic resolved read. For data descriptors returns the value; for accessor descriptors invokes the getter withreceiverbound asthis.receiveris the object the property is being read on (may differ fromthiswhen walking a prototype chain).ctxthreads through to the getter call. Default delegates togetMember(String)— implementations with accessor storage (JsObject,JsArray) override. -
putMember
-
putMember
Strict-aware[[Set]](ES 10.4.7 OrdinarySetWithOwnDescriptor). Same store asputMember(String, Object), but when the write is rejected — frozen object, non-extensible new key, non-writable data property, or a get-only accessor — a sloppy caller gets the silent no-op while astrictcaller gets aJsErrorExceptionTypeError.ctxthreads through for accessor setters.Default delegates to the lenient
putMember(String, Object)— host bridges that don't model property attributes are perpetually writable, so there is nothing to reject.JsObject/JsArrayoverride to enforce. -
removeMember
-
removeMember
Strict-aware[[Delete]](ES 13.5.1.2 / DeletePropertyOrThrow). Same removal asremoveMember(String), but a non-configurable own property is a silent no-op for a sloppy caller and a TypeError for astrictcaller. Default delegates to the lenientremoveMember(String);JsObject/JsArrayoverride to enforce. -
toMap
-
getPrototype
Returns the prototype (__proto__) for prototype chain walking. Default returns null (no prototype chain). -
isOwnProperty
True iffnameis an own property — not inherited, not absent. Default readstoMap()which works for any host ObjectLike;JsObject/JsArray/Prototypeoverride with tighter implementations that distinguish tombstones from absent keys and intrinsic-installed entries. -
isExtensible
default boolean isExtensible() -
isSealed
default boolean isSealed() -
isFrozen
default boolean isFrozen() -
setExtensible
default void setExtensible(boolean extensible) -
setSealed
default void setSealed(boolean sealed) -
setFrozen
default void setFrozen(boolean frozen)
-