Package org.mozilla.javascript

## Interface SymbolScriptable

- All Known Implementing Classes:
    `ArrowFunction`, `BaseFunction`, `BindingsObject`, `BoundFunction`, `ES6Iterator`, `FunctionObject`, `IdFunctionObject`, `IdFunctionObjectES6`, `IdScriptableObject`, `ImporterTopLevel`, `ModuleScope`, `NativeArray`, `NativeArrayBuffer`, `NativeArrayBufferView`, `NativeArrayIterator`, `NativeCall`, `NativeCallSite`, `NativeContinuation`, `NativeDataView`, `NativeFloat32Array`, `NativeFloat64Array`, `NativeFunction`, `NativeGenerator`, `NativeInt16Array`, `NativeInt32Array`, `NativeInt8Array`, `NativeIterator`, `NativeJavaConstructor`, `NativeJavaMethod`, `NativeJavaPackage`, `NativeJavaTopPackage`, `NativeJSON`, `NativeObject`, `NativeRegExp`, `NativeStringIterator`, `NativeSymbol`, `NativeTypedArrayView`, `NativeUint16Array`, `NativeUint32Array`, `NativeUint8Array`, `NativeUint8ClampedArray`, `Require`, `ScriptableObject`, `TopLevel`, `XMLObject`

      public interface SymbolScriptable

  This interface may be combined with any object that implements Scriptable to add support for properties keyed by Symbol objects (as opposed to String and number objects as in previous versions of JavaScript. It's separated into its own interface so that the addition of Symbol support does not break compatibility for existing code.
  Since:
    1.7.8

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `delete​(Symbol key)` | Delete a property with the specified key.
    `java.lang.Object` | `get​(Symbol key, Scriptable start)` | Return the value of the property with the specified key, or NOT_FOUND.
    `boolean` | `has​(Symbol key, Scriptable start)` | Return true if the specified property exists.
    `void` | `put​(Symbol key, Scriptable start, java.lang.Object value)` | Add a new property to to the object.

- - ### Method Detail

    - #### get

          java.lang.Object get​(Symbol key,
                               Scriptable start)

      Return the value of the property with the specified key, or NOT_FOUND.

    - #### has

          boolean has​(Symbol key,
                      Scriptable start)

      Return true if the specified property exists.

    - #### put

          void put​(Symbol key,
                   Scriptable start,
                   java.lang.Object value)

      Add a new property to to the object.

    - #### delete

          void delete​(Symbol key)

      Delete a property with the specified key.