org.mozilla.javascript.regexp

## Class NativeRegExp

- java.lang.Object
- - org.mozilla.javascript.ScriptableObject
  - - org.mozilla.javascript.IdScriptableObject
    - - org.mozilla.javascript.regexp.NativeRegExp

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

      public class NativeRegExp
      extends IdScriptableObject
      implements Function

  This class implements the RegExp native object. Revision History: Implementation in C by Brendan Eich Initial port to Java by Norris Boyd from jsregexp.c version 1.36 Merged up to version 1.38, which included Unicode support. Merged bug fixes in version 1.39. Merged JSFUN13_BRANCH changes up to 1.32.2.13
  Author:
    Brendan Eich, Norris Boyd
  See Also:
    Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `JSREG_FOLD`
    `static int` | `JSREG_GLOB`
    `static int` | `JSREG_MULTILINE`
    `static int` | `MATCH`
    `static int` | `PREFIX`
    `static int` | `TEST`

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

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.Object` | `call(Context cx, Scriptable scope, Scriptable thisObj, java.lang.Object[] args)` Call the function.
    `Scriptable` | `construct(Context cx, Scriptable scope, java.lang.Object[] args)` Call the function as a constructor.
    `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` | `findInstanceIdInfo(java.lang.String s)` Map name to id of instance property.
    `protected int` | `findPrototypeId(java.lang.String s)`
    `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.
    `protected int` | `getMaxInstanceId()` Get maximum id findInstanceIdInfo can generate.
    `java.lang.String` | `getTypeOf()` Gets the value to be returned by the typeof operator called on this object.
    `static void` | `init(Context cx, Scriptable scope, boolean sealed)`
    `protected void` | `initPrototypeId(int id)`
    `protected void` | `setInstanceIdAttributes(int id, int attr)` Update the attributes of the given instance property.
    `protected void` | `setInstanceIdValue(int id, java.lang.Object value)` Set or delete id value.
    `java.lang.String` | `toString()`

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

      `activatePrototypeMap, addIdFunctionProperty, defaultGet, defaultHas, defaultPut, defineOwnProperty, delete, exportAsJSClass, fillConstructorProperties, get, getAttributes, getOwnPropertyDescriptor, has, hasPrototypeMap, incompatibleCallError, initPrototypeConstructor, initPrototypeMethod, initPrototypeValue, instanceIdInfo, put, setAttributes`

    - ### 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, delete, deleteProperty, deleteProperty, ensureScriptable, ensureScriptableObject, equivalentValues, get, get, getAllIds, getArrayPrototype, getAssociatedValue, getAttributes, getAttributes, getAttributes, getClassPrototype, getDefaultValue, getDefaultValue, getExternalArrayData, getExternalArrayLength, getFunctionPrototype, getGetterOrSetter, getIds, getObjectPrototype, getParentScope, getProperty, getProperty, getPropertyIds, getPrototype, getSlot, getTopLevelScope, getTopScopeValue, getTypedProperty, getTypedProperty, has, hasInstance, hasProperty, hasProperty, isAccessorDescriptor, isConst, isDataDescriptor, isEmpty, isExtensible, isFalse, isGenericDescriptor, isGetterOrSetter, isSealed, isTrue, preventExtensions, put, putConst, putConstProperty, putProperty, putProperty, redefineProperty, sameValue, sealObject, setAttributes, setAttributes, setAttributes, setExternalArrayData, setGetterOrSetter, setParentScope, setPrototype, size`

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

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

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

      `delete, delete, get, get, getDefaultValue, getIds, getParentScope, getPrototype, has, has, hasInstance, put, put, setParentScope, setPrototype`

- - ### Field Detail

    - #### JSREG_GLOB

          public static final int JSREG_GLOB

      See Also:
        Constant Field Values

    - #### JSREG_FOLD

          public static final int JSREG_FOLD

      See Also:
        Constant Field Values

    - #### JSREG_MULTILINE

          public static final int JSREG_MULTILINE

      See Also:
        Constant Field Values

    - #### TEST

          public static final int TEST

      See Also:
        Constant Field Values

    - #### MATCH

          public static final int MATCH

      See Also:
        Constant Field Values

    - #### PREFIX

          public static final int PREFIX

      See Also:
        Constant Field Values

  - ### Method Detail

    - #### init

          public static void init(Context cx,
                                  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 interface `Scriptable`
      Specified by:
        `getClassName` in class `ScriptableObject`

    - #### getTypeOf

          public java.lang.String getTypeOf()

      Gets the value to be returned by the typeof operator called on this object.
      Overrides:
        `getTypeOf` in class `ScriptableObject`
      Returns:
        "object"
      See Also:
        `ScriptableObject.getTypeOf()`

    - #### call

          public java.lang.Object call(Context cx,
                                       Scriptable scope,
                                       Scriptable thisObj,
                                       java.lang.Object[] args)

      Description copied from interface: `Function`
      Call the function. Note that the array of arguments is not guaranteed to have length greater than 0.
      Specified by:
        `call` in interface `Callable`
      Specified by:
        `call` in interface `Function`
      Parameters:
        `cx` - the current Context for this thread
        `scope` - the scope to execute the function relative to. This is set to the value returned by getParentScope() except when the function is called from a closure.
        `thisObj` - the JavaScript `this` object
        `args` - the array of arguments
      Returns:
        the result of the call

    - #### construct

          public Scriptable construct(Context cx,
                                      Scriptable scope,
                                      java.lang.Object[] args)

      Description copied from interface: `Function`
      Call the function as a constructor. This method is invoked by the runtime in order to satisfy a use of the JavaScript `new` operator. This method is expected to create a new object and return it.
      Specified by:
        `construct` in interface `Function`
      Parameters:
        `cx` - the current Context for this thread
        `scope` - an enclosing scope of the caller except when the function is called from a closure.
        `args` - the array of arguments
      Returns:
        the allocated object

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `java.lang.Object`

    - #### getMaxInstanceId

          protected int getMaxInstanceId()

      Description copied from class: `IdScriptableObject`
      Get maximum id findInstanceIdInfo can generate.
      Overrides:
        `getMaxInstanceId` 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`

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

    - #### setInstanceIdValue

          protected void setInstanceIdValue(int id,
                                            java.lang.Object value)

      Description copied from class: `IdScriptableObject`
      Set or delete id value. If value == NOT_FOUND , the implementation should make sure that the following getInstanceIdValue return NOT_FOUND.
      Overrides:
        `setInstanceIdValue` in class `IdScriptableObject`

    - #### setInstanceIdAttributes

          protected void setInstanceIdAttributes(int id,
                                                 int attr)

      Description copied from class: `IdScriptableObject`
      Update the attributes of the given instance property. Classes which want to support changing property attributes via Object.defineProperty must override this method. The default implementation throws InternalError.
      Overrides:
        `setInstanceIdAttributes` in class `IdScriptableObject`
      Parameters:
        `id` - the instance property id
        `attr` - the new attribute bitset

    - #### initPrototypeId

          protected void initPrototypeId(int id)

      Overrides:
        `initPrototypeId` in class `IdScriptableObject`

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

    - #### findPrototypeId

          protected int findPrototypeId(java.lang.String s)

      Overrides:
        `findPrototypeId` in class `IdScriptableObject`