Package org.mozilla.javascript

## Class NativeWeakMap

- java.lang.Object
- - org.mozilla.javascript.ScriptableObject
  - - org.mozilla.javascript.IdScriptableObject
    - - org.mozilla.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.mozilla.javascript.ScriptableObject

      `ScriptableObject.KeyComparator`

  - ### Field Summary

    - ### Fields inherited from class org.mozilla.javascript.ScriptableObject

      `CONST, DONTENUM, EMPTY, PERMANENT, READONLY, UNINITIALIZED_CONST`

    - ### Fields inherited from interface org.mozilla.javascript.Scriptable

      `NOT_FOUND`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `NativeWeakMap()` |

  - ### Method Summary

    All 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.
    `protected void` | `initPrototypeId​(int id)` |

    - ### Methods inherited from class org.mozilla.javascript.IdScriptableObject

      `activatePrototypeMap, addIdFunctionProperty, defaultGet, defaultHas, defaultPut, defineOwnProperty, delete, delete, ensureType, exportAsJSClass, fillConstructorProperties, findInstanceIdInfo, findInstanceIdInfo, get, get, getAttributes, getAttributes, getInstanceIdName, getInstanceIdValue, getMaxInstanceId, getOwnPropertyDescriptor, has, has, hasPrototypeMap, initPrototypeConstructor, initPrototypeMethod, initPrototypeMethod, initPrototypeMethod, initPrototypeValue, initPrototypeValue, instanceIdInfo, put, put, setAttributes, setInstanceIdAttributes, setInstanceIdValue`

    - ### Methods inherited from class org.mozilla.javascript.ScriptableObject

      `applyDescriptorToAttributeBitset, associateValue, avoidObjectDetection, buildDataDescriptor, callMethod, callMethod, checkPropertyChange, checkPropertyDefinition, defineClass, defineClass, defineClass, defineConst, defineConstProperty, defineFunctionProperties, defineOwnProperties, defineOwnProperty, defineProperty, defineProperty, defineProperty, defineProperty, defineProperty, defineProperty, defineProperty, delete, deleteProperty, deleteProperty, ensureScriptable, ensureScriptableObject, ensureSymbolScriptable, equivalentValues, get, get, getAllIds, getArrayPrototype, getAssociatedValue, getAttributes, getAttributes, getAttributes, 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, putProperty, putProperty, putProperty, querySlot, redefineProperty, sameValue, sealObject, setAttributes, setAttributes, setAttributes, setAttributes, setCommonDescriptorProperties, setExternalArrayData, setGetterOrSetter, setParentScope, setPrototype, size`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### NativeWeakMap

          public NativeWeakMap()

  - ### Method Detail

    - #### 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 interface `Scriptable`
      Specified by:
        `getClassName` in class `ScriptableObject`

    - #### 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 interface `IdFunctionCall`
      Overrides:
        `execIdCall` in class `IdScriptableObject`

    - #### initPrototypeId

          protected void initPrototypeId​(int id)

      Overrides:
        `initPrototypeId` in class `IdScriptableObject`

    - #### findPrototypeId

          protected int findPrototypeId​(Symbol k)

      Overrides:
        `findPrototypeId` in class `IdScriptableObject`

    - #### findPrototypeId

          protected int findPrototypeId​(java.lang.String s)

      Overrides:
        `findPrototypeId` in class `IdScriptableObject`