NativeArrayBuffer (Rhino)
Date: 2018-10-23

org.mozilla.javascript.typedarrays

## Class NativeArrayBuffer

- java.lang.Object
- - org.mozilla.javascript.ScriptableObject
  - - org.mozilla.javascript.IdScriptableObject
    - - org.mozilla.javascript.typedarrays.NativeArrayBuffer

- All Implemented Interfaces:
    java.io.Serializable, ConstProperties, DebuggableObject, IdFunctionCall, Scriptable, SymbolScriptable

      public class NativeArrayBuffer
      extends IdScriptableObject

  A NativeArrayBuffer is the backing buffer for a typed array. Used inside JavaScript code, it implements the ArrayBuffer interface. Used directly from Java, it simply holds a byte array.
  See Also:
    Serialized Form

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.mozilla.javascript.ScriptableObject

      `ScriptableObject.KeyComparator`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static java.lang.String` | `CLASS_NAME`
    `static NativeArrayBuffer` | `EMPTY_BUFFER`

    - ### 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 and Description
    `NativeArrayBuffer()` Create an empty buffer.
    `NativeArrayBuffer(int len)` Create a buffer of the specified length in bytes.

  - ### Method Summary

    Methods
    Modifier and Type | Method and 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 void` | `fillConstructorProperties(IdFunctionObject ctor)`
    `protected int` | `findInstanceIdInfo(java.lang.String s)` Map name to id of instance property.
    `protected int` | `findPrototypeId(java.lang.String s)`
    `byte[]` | `getBuffer()` Return the actual bytes that back the buffer.
    `java.lang.String` | `getClassName()` Return the name of the class.
    `protected java.lang.String` | `getInstanceIdName(int id)` Map id back to property name it defines.
    `protected java.lang.Object` | `getInstanceIdValue(int id)` Get id value.
    `int` | `getLength()` Get the number of bytes in the buffer.
    `protected int` | `getMaxInstanceId()` Get maximum id findInstanceIdInfo can generate.
    `static void` | `init(Context cx, Scriptable scope, boolean sealed)`
    `protected void` | `initPrototypeId(int id)`
    `NativeArrayBuffer` | `slice(int s, int e)` Return a new buffer that represents a slice of this buffer's content, starting at position "start" and ending at position "end".

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

      `activatePrototypeMap, addIdFunctionProperty, defaultGet, defaultHas, defaultPut, defineOwnProperty, delete, delete, exportAsJSClass, findInstanceIdInfo, findPrototypeId, get, get, getAttributes, getOwnPropertyDescriptor, has, has, hasPrototypeMap, incompatibleCallError, 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, delete, deleteProperty, deleteProperty, ensureScriptable, ensureScriptableObject, ensureSymbolScriptable, equivalentValues, get, get, getAllIds, getArrayPrototype, getAssociatedValue, getAttributes, getAttributes, getAttributes, getAttributes, getClassPrototype, getDefaultValue, getDefaultValue, getExternalArrayData, getExternalArrayLength, getFunctionPrototype, getGetterOrSetter, getIds, getObjectPrototype, getParentScope, getProperty, getProperty, getProperty, getPropertyIds, getPrototype, getSlot, 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, redefineProperty, sameValue, sealObject, setAttributes, setAttributes, setAttributes, setAttributes, setExternalArrayData, setGetterOrSetter, setParentScope, setPrototype, size`

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

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

- - ### Field Detail

    - #### CLASS_NAME

          public static final java.lang.String CLASS_NAME

      See Also:
        Constant Field Values

    - #### EMPTY_BUFFER

          public static final NativeArrayBuffer EMPTY_BUFFER

  - ### Constructor Detail

    - #### NativeArrayBuffer

          public NativeArrayBuffer()

      Create an empty buffer.

    - #### NativeArrayBuffer

          public NativeArrayBuffer(int len)

      Create a buffer of the specified length in bytes.

  - ### 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`

    - #### init

          public static void init(Context cx,
                  Scriptable scope,
                  boolean sealed)

    - #### getLength

          public int getLength()

      Get the number of bytes in the buffer.

    - #### getBuffer

          public byte[] getBuffer()

      Return the actual bytes that back the buffer. This is a reference to the real buffer, so changes to bytes here will be reflected in the actual object and all its views.

    - #### slice

          public NativeArrayBuffer slice(int s,
                                int e)

      Return a new buffer that represents a slice of this buffer's content, starting at position "start" and ending at position "end". Both values will be "clamped" as per the JavaScript spec so that invalid values may be passed and will be adjusted up or down accordingly. This method will return a new buffer that contains a copy of the original buffer. Changes there will not affect the content of the buffer.
      Parameters:
        `s` - the position where the new buffer will start
        `e` - the position where it will end

    - #### 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(java.lang.String s)

      Overrides:
        `findPrototypeId` in class `IdScriptableObject`

    - #### fillConstructorProperties

          protected void fillConstructorProperties(IdFunctionObject ctor)

      Overrides:
        `fillConstructorProperties` in class `IdScriptableObject`

    - #### getMaxInstanceId

          protected int getMaxInstanceId()

      Description copied from class: `IdScriptableObject`
      Get maximum id findInstanceIdInfo can generate.
      Overrides:
        `getMaxInstanceId` in class `IdScriptableObject`

    - #### getInstanceIdName

          protected java.lang.String getInstanceIdName(int id)

      Description copied from class: `IdScriptableObject`
      Map id back to property name it defines.
      Overrides:
        `getInstanceIdName` in class `IdScriptableObject`

    - #### getInstanceIdValue

          protected java.lang.Object getInstanceIdValue(int id)

      Description copied from class: `IdScriptableObject`
      Get id value. If id value is constant, descendant can call cacheIdValue to store value in the permanent cache. Default implementation creates IdFunctionObject instance for given id and cache its value
      Overrides:
        `getInstanceIdValue` in class `IdScriptableObject`

    - #### findInstanceIdInfo

          protected int findInstanceIdInfo(java.lang.String s)

      Description copied from class: `IdScriptableObject`
      Map name to id of instance property. Should return 0 if not found or the result of `IdScriptableObject.instanceIdInfo(int, int)`.
      Overrides:
        `findInstanceIdInfo` in class `IdScriptableObject`