Package org.htmlunit.corejs.javascript
Class NativeWeakMap
- java.lang.Object
-
- org.htmlunit.corejs.javascript.ScriptableObject
-
- org.htmlunit.corejs.javascript.IdScriptableObject
-
- org.htmlunit.corejs.javascript.NativeWeakMap
-
- All Implemented Interfaces:
java.io.Serializable
,ConstProperties
,DebuggableObject
,IdFunctionCall
,Scriptable
,SymbolScriptable
public class NativeWeakMap extends IdScriptableObject
This is an implementation of the ES6 WeakMap class. As per the spec, keys must be ordinary objects. Since there is no defined "equality" for objects, comparisions are done strictly by object equality. Both ES6 and the java.util.WeakHashMap class have the same basic structure -- entries are removed automatically when the sole remaining reference to the key is a weak reference. Therefore, we can use WeakHashMap as the basis of this implementation and preserve the same semantics.- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.htmlunit.corejs.javascript.ScriptableObject
ScriptableObject.KeyComparator
-
-
Field Summary
Fields Modifier and Type Field Description private static int
Id_constructor
private static int
Id_delete
private static int
Id_get
private static int
Id_has
private static int
Id_set
private boolean
instanceOfWeakMap
private java.util.WeakHashMap<Scriptable,java.lang.Object>
map
private static java.lang.Object
MAP_TAG
private static int
MAX_PROTOTYPE_ID
private static java.lang.Object
NULL_VALUE
private static long
serialVersionUID
private static int
SymbolId_toStringTag
-
Fields inherited from class org.htmlunit.corejs.javascript.ScriptableObject
CONST, DONTENUM, EMPTY, PERMANENT, READONLY, UNINITIALIZED_CONST
-
Fields inherited from interface org.htmlunit.corejs.javascript.Scriptable
NOT_FOUND
-
-
Constructor Summary
Constructors Constructor Description NativeWeakMap()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.Object
execIdCall(IdFunctionObject f, Context cx, Scriptable scope, Scriptable thisObj, java.lang.Object[] args)
'thisObj' will be null if invoked as constructor, in which case * instance of Scriptable should be returned.protected int
findPrototypeId(java.lang.String s)
protected int
findPrototypeId(Symbol k)
java.lang.String
getClassName()
Return the name of the class.(package private) static void
init(Scriptable scope, boolean sealed)
protected void
initPrototypeId(int id)
private java.lang.Object
js_delete(java.lang.Object key)
private java.lang.Object
js_get(java.lang.Object key)
private java.lang.Object
js_has(java.lang.Object key)
private java.lang.Object
js_set(java.lang.Object key, java.lang.Object v)
private void
readObject(java.io.ObjectInputStream stream)
private static NativeWeakMap
realThis(Scriptable thisObj, IdFunctionObject f)
-
Methods inherited from class org.htmlunit.corejs.javascript.IdScriptableObject
activatePrototypeMap, addIdFunctionProperty, defaultGet, defaultHas, defaultPut, defineOwnProperty, delete, delete, ensureType, exportAsJSClass, fillConstructorProperties, findInstanceIdInfo, findInstanceIdInfo, get, get, getAttributes, getAttributes, getIds, getInstanceIdName, getInstanceIdValue, getMaxInstanceId, getOwnPropertyDescriptor, has, has, hasPrototypeMap, initPrototypeConstructor, initPrototypeMethod, initPrototypeMethod, initPrototypeMethod, initPrototypeValue, initPrototypeValue, instanceIdInfo, put, put, setAttributes, setInstanceIdAttributes, setInstanceIdValue
-
Methods inherited from class org.htmlunit.corejs.javascript.ScriptableObject
addLazilyInitializedValue, applyDescriptorToAttributeBitset, associateValue, avoidObjectDetection, buildClassCtor, buildDataDescriptor, callMethod, callMethod, checkPropertyChange, checkPropertyDefinition, checkValidAttributes, defineClass, defineClass, defineClass, defineConst, defineConstProperty, defineFunctionProperties, defineOwnProperties, defineOwnProperty, defineProperty, defineProperty, defineProperty, defineProperty, defineProperty, defineProperty, defineProperty, delete, deleteProperty, deleteProperty, deleteProperty, ensureScriptable, ensureScriptableObject, ensureSymbolScriptable, equivalentValues, get, get, getAllIds, getArrayPrototype, getAssociatedValue, getAttributes, getAttributes, getAttributes, getBase, getBase, getClassPrototype, getDefaultValue, getDefaultValue, getExternalArrayData, getExternalArrayLength, getFunctionPrototype, getGeneratorFunctionPrototype, getGetterOrSetter, getGetterOrSetter, getIds, getObjectPrototype, getParentScope, getProperty, getProperty, getProperty, getPropertyIds, getPrototype, getTopLevelScope, getTopScopeValue, getTypedProperty, getTypedProperty, getTypeOf, has, hasInstance, hasProperty, hasProperty, hasProperty, isAccessorDescriptor, isConst, isDataDescriptor, isEmpty, isExtensible, isFalse, isGenericDescriptor, isGetterOrSetter, isSealed, isTrue, preventExtensions, put, putConst, putConstProperty, putImpl, putProperty, putProperty, putProperty, querySlot, redefineProperty, sameValue, sealObject, setAttributes, setAttributes, setAttributes, setAttributes, setCommonDescriptorProperties, setExternalArrayData, setGetterOrSetter, setParentScope, setPrototype, size
-
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
-
MAP_TAG
private static final java.lang.Object MAP_TAG
-
instanceOfWeakMap
private boolean instanceOfWeakMap
-
map
private transient java.util.WeakHashMap<Scriptable,java.lang.Object> map
-
NULL_VALUE
private static final java.lang.Object NULL_VALUE
-
Id_constructor
private static final int Id_constructor
- See Also:
- Constant Field Values
-
Id_delete
private static final int Id_delete
- See Also:
- Constant Field Values
-
Id_get
private static final int Id_get
- See Also:
- Constant Field Values
-
Id_has
private static final int Id_has
- See Also:
- Constant Field Values
-
Id_set
private static final int Id_set
- See Also:
- Constant Field Values
-
SymbolId_toStringTag
private static final int SymbolId_toStringTag
- See Also:
- Constant Field Values
-
MAX_PROTOTYPE_ID
private static final int MAX_PROTOTYPE_ID
- See Also:
- Constant Field Values
-
-
Method Detail
-
init
static void init(Scriptable scope, boolean sealed)
-
getClassName
public java.lang.String getClassName()
Description copied from class:ScriptableObject
Return the name of the class.This is typically the same name as the constructor. Classes extending ScriptableObject must implement this abstract method.
- Specified by:
getClassName
in interfaceScriptable
- Specified by:
getClassName
in classScriptableObject
-
execIdCall
public java.lang.Object execIdCall(IdFunctionObject f, Context cx, Scriptable scope, Scriptable thisObj, java.lang.Object[] args)
Description copied from class:IdScriptableObject
'thisObj' will be null if invoked as constructor, in which case * instance of Scriptable should be returned.- Specified by:
execIdCall
in interfaceIdFunctionCall
- Overrides:
execIdCall
in classIdScriptableObject
-
js_delete
private java.lang.Object js_delete(java.lang.Object key)
-
js_get
private java.lang.Object js_get(java.lang.Object key)
-
js_has
private java.lang.Object js_has(java.lang.Object key)
-
js_set
private java.lang.Object js_set(java.lang.Object key, java.lang.Object v)
-
realThis
private static NativeWeakMap realThis(Scriptable thisObj, IdFunctionObject f)
-
initPrototypeId
protected void initPrototypeId(int id)
- Overrides:
initPrototypeId
in classIdScriptableObject
-
findPrototypeId
protected int findPrototypeId(Symbol k)
- Overrides:
findPrototypeId
in classIdScriptableObject
-
findPrototypeId
protected int findPrototypeId(java.lang.String s)
- Overrides:
findPrototypeId
in classIdScriptableObject
-
readObject
private void readObject(java.io.ObjectInputStream stream) throws java.io.IOException, java.lang.ClassNotFoundException
- Throws:
java.io.IOException
java.lang.ClassNotFoundException
-
-