recursal/MDN huggingface dataset:
WEBGL\_multi\_draw: multiDrawElementsWEBGL() method
===================================================

 The **`WEBGL_multi_draw.multiDrawElementsWEBGL()`** method of
 the
 WebGL API renders multiple primitives from
 array data. It is
 identical to multiple calls to the
 `gl.drawElements()`
 method.

Syntax
------


```js
multiDrawElementsWEBGL(mode,
    countsList, countsOffset,
    type,
    firstsList, firstsOffset,
    drawCount);
```

### Parameters

`mode`

 A `GLenum`
 specifying the type primitive to render. Possible values are:


* `gl.POINTS`: Draws a single dot.
* `gl.LINE_STRIP`: Draws a straight line to the next vertex.
* `gl.LINE_LOOP`: Draws a straight line to the next vertex, and
 connects the
 last vertex back to the first.
* `gl.LINES`: Draws a line between a pair of vertices.
* `gl.TRIANGLE_STRIP`
* `gl.TRIANGLE_FAN`
* `gl.TRIANGLES`: Draws a triangle for a group of three vertices.

`countsList`

 An `Int32Array`
 or `Array`
 (of `GLint`)
 specifying a list of numbers of indices to be rendered.


`countsOffset`

 A `GLUint`
 defining the starting point into the `countsList` array.


type

 A `GLenum` specifying
 the type of the values in the element array buffer. Possible values are:


* `gl.UNSIGNED_BYTE`
* `gl.UNSIGNED_SHORT`
* When using the `OES_element_index_uint`
 extension:
    + `gl.UNSIGNED_INT`

`offsetsList`

 An `Int32Array`
 or `Array`
 (of `GLsizei`)
 specifying a list of starting indices for the arrays of vector points.


`offsetsOffset`

 A `GLuint`
 defining the starting point into the `offsetsList` array.


`drawCount`

 A `GLsizei`
 specifying the number of instances of the range of elements to execute.


### Return value

None.

### Exceptions

* If `mode` is not one of the accepted values, a
 `gl.INVALID_ENUM` error is thrown.
* If `drawCount` or items in `countsList` or
 `offsetsList` are negative,
 a `gl.INVALID_VALUE` error is thrown.
Examples
--------


```js
const counts = new Int32Array(/\* … \*/);
const offsets = new Int32Array(/\* … \*/);
ext.multiDrawElementsWEBGL(
  gl.TRIANGLES,
  counts,
  0,
  gl.UNSIGNED\_SHORT,
  offsets,
  0,
  counts.length,
);
```

Specifications
--------------

| Specification |
| --- |
| WebGL WEBGL\_multi\_draw Extension Specification  |

Browser compatibility
---------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

See also
--------

* `WebGLRenderingContext.drawElements()`
* `WebGL2RenderingContext.drawElementsInstanced()`
PublicKeyCredential: id property
================================

**Secure context:** This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

 The **`id`** read-only property of the
 `PublicKeyCredential` interface is a string, inherited
 from `Credential`, which represents the identifier of the current
 `PublicKeyCredential` instance.

This property is a base64url encoded version of `PublicKeyCredential.rawId`.

**Note:** This property may only be used in top-level contexts and will
 not be available in an `<iframe>` for example.


Value
-----

A string being the base64url encoded version of `PublicKeyCredential.rawId`.

Examples
--------


```js
const publicKey = {
  challenge: new Uint8Array(26) /\* this actually is given from the server \*/,
  rp: {
    name: "Example CORP",
    id: "login.example.com",
  },
  user: {
    id: new Uint8Array(26) /\* To be changed for each user \*/,
    name: "canand@example.com",
    displayName: "Carina Anand",
  },
  pubKeyCredParams: [
    {
      type: "public-key",
      alg: -7,
    },
  ],
};

navigator.credentials
  .create({ publicKey })
  .then((newCredentialInfo) => {
    const id = newCredentialInfo.id;
    // Do something with the id

    // send attestation response and client extensions
    // to the server to proceed with the registration
    // of the credential
  })
  .catch((err) => {
    console.error(err);
  });
```

Specifications
--------------

#### No specification found

No specification data found for `api.PublicKeyCredential.id`.  
Check for problems with this page or contribute a missing `spec_url` to mdn/browser-compat-data. Also make sure the specification is included in w3c/browser-specs.

Browser compatibility
---------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

See also
--------

* `Credential.id`
PublicKeyCredential: getClientExtensionResults() method
=======================================================

**Secure context:** This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

 The **`getClientExtensionResults()`** method of the
 `PublicKeyCredential` interface returns a map between the identifiers of extensions requested during credential creation or authentication, and their results after processing by the user agent.

 During the creation or fetching of a `PublicKeyCredential` (via
 `navigator.credentials.create()` and
 `navigator.credentials.get()` respectively), it is possible
 to request "custom" processing by the client for different extensions, specified in the `publicKey` option's `extensions` property. You can find more information about requesting the different extensions in Web Authentication extensions.

**Note:** `getClientExtensionResults()` only returns the results from extensions processed by the user agent (client). The results from extensions processed by the authenticator can be found in the authenticator data available in `AuthenticatorAssertionResponse.authenticatorData`.

Syntax
------


```js
getClientExtensionResults()
```

### Parameters

None.

### Return value

A `map`, with each entry being an extensions' identifier string as the key, and the output from the processing of the extension by the client as the value.

Examples
--------


```js
const publicKey = {
  // Here are the extension "inputs"
  extensions: {
    appid: "https://accounts.example.com",
  },
  allowCredentials: {
    id: "fgrt46jfgd...",
    transports: ["usb", "nfc"],
    type: "public-key",
  },
  challenge: new Uint8Array(16) /\* from the server \*/,
};

navigator.credentials
  .get({ publicKey })
  .then((publicKeyCred) => {
    const myResults = publicKeyCred.getClientExtensionResults();
    // myResults will contain the output of processing the "appid" extension
  })
  .catch((err) => {
    console.error(err);
  });
```

Specifications
--------------

| Specification |
| --- |
| Web Authentication: An API for accessing Public Key Credentials - Level 3 # ref-for-dom-publickeycredential-getclientextensionresults |

Browser compatibility
---------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

**Note:** Extensions are optional and different browsers may recognize different extensions. Processing extensions is always optional for the client: if a browser does not recognize a given extension, it will just ignore it. For information on which extensions are supported by which browsers, see Web Authentication extensions.

See also
--------

* The list of the currently defined extensions
* `AuthenticatorAssertionResponse.authenticatorData` which contains the
 result of the authenticator's extensions processing
PublicKeyCredential: rawId property
===================================

**Secure context:** This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

 The **`rawId`** read-only property of the
 `PublicKeyCredential` interface is an `ArrayBuffer` object
 containing the identifier of the credentials.

The `PublicKeyCredential.id` property is a base64url encoded version of this identifier.

**Note:** This property may only be used in top-level contexts and will
 not be available in an `<iframe>` for example.


Value
-----

 A `ArrayBuffer` containing the identifier of the credentials. This
 identifier is expected to be globally unique and is appointed for the current
 `PublicKeyCredential` and its associated
 `AuthenticatorAssertionResponse`.

Examples
--------


```js
const options = {
  challenge: new Uint8Array(26) /\* from the server \*/,
  rp: {
    name: "Example CORP",
    id: "login.example.com",
  },
  user: {
    id: new Uint8Array(26) /\* To be changed for each user \*/,
    name: "canand@example.com",
    displayName: "Carina Anand",
  },
  pubKeyCredParams: [
    {
      type: "public-key",
      alg: -7,
    },
  ],
};

navigator.credentials
  .create({ publicKey: options })
  .then((pubKeyCredential) => {
    const rawId = pubKeyCredential.rawId;
    // Do something with rawId
  })
  .catch((err) => {
    // Deal with any error
  });
```

Specifications
--------------

| Specification |
| --- |
| Web Authentication: An API for accessing Public Key Credentials - Level 3 # ref-for-dom-publickeycredential-rawid |

Browser compatibility
---------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
PublicKeyCredential: isUserVerifyingPlatformAuthenticatorAvailable() static method
==================================================================================

**Secure context:** This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

The **`isUserVerifyingPlatformAuthenticatorAvailable()`** static method of the `PublicKeyCredential` interface returns a `Promise` which resolves to `true` if a user-verifying platform authenticator is present.

A user-verifying platform authenticator is a kind of multi-factor authenticator that is part of the client device (it is generally not removable) and that involves an action from the user in order to identify them. Common user-verifying platform authenticators include:

* Touch ID or Face ID (macOS and iOS)
* Windows Hello (Windows)
* Device unlock (fingerprint, face, PIN, etc.) on Android

**Note:** This method may only be used in top-level contexts and will not be available in an `<iframe>` for example.

Syntax
------


```js
PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable()
```

### Parameters

None.

### Return value

 A `Promise` which resolves to a boolean value indicating whether or
 a not a user-verifying platform authenticator is available.


**Note:** In earlier versions of the specification, the boolean also
 conveyed the consent of the user to disclose such an authenticator existed.


Examples
--------


```js
PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable()
  .then((available) => {
    if (available) {
      // We can proceed with the creation of a PublicKeyCredential
      // with this authenticator
    } else {
      // Use another kind of authenticator or a classical login/password
      // workflow
    }
  })
  .catch((err) => {
    // Something went wrong
    console.error(err);
  });
```

Specifications
--------------

| Specification |
| --- |
| Web Authentication: An API for accessing Public Key Credentials - Level 3 # dom-publickeycredential-isuserverifyingplatformauthenticatoravailable |

Browser compatibility
---------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

See also
--------

* Windows Hello
* Web Authentication and Windows Hello - MSDN Guide and especially the special considerations mentioning `isUserVerifyingPlatformAuthenticator()`
PublicKeyCredential: response property
======================================

**Secure context:** This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

 The **`response`** read-only property of the
 `PublicKeyCredential` interface is an `AuthenticatorResponse`
 object which is sent from the authenticator to the user agent for the creation/fetching
 of credentials. The information contained in this response will be used by the relying
 party's server to verify the demand is legitimate.

An `AuthenticatorResponse` is either:

* an `AuthenticatorAttestationResponse` (when the
 `PublicKeyCredential` is created via
 `CredentialsContainer.create()`)
* an `AuthenticatorAssertionResponse` (when the
 `PublicKeyCredential` is obtained via
 `CredentialsContainer.get()`).

 In order to validate the *creation* of credentials, a relying party's server
 needs both:

* this response
* the extensions of the client (given by
 `PublicKeyCredential.getClientExtensionResults()`) to validate the
 demand.

**Note:** When validating the fetching of existing credentials, the
 whole `PublicKeyCredential` object and the client extensions are necessary
 for the relying party's server.



**Note:** This property may only be used in top-level contexts and will
 not be available in an `<iframe>` for example.


Value
-----

 An `AuthenticatorResponse` object containing the data a relying party's
 script will receive and which should be sent to the relying party's server in order to
 validate the demand for creation or fetching. This object contains data from the client
 (`AuthenticatorResponse/clientDataJSON`) and from the authenticator.

Examples
--------


```js
const options = {
  challenge: new Uint8Array(16) /\* from the server \*/,
  rp: {
    name: "Example CORP",
    id: "login.example.com",
  },
  user: {
    id: new Uint8Array(16) /\* from the server \*/,
    name: "canand@example.com",
    displayName: "Carina Anand",
  },
  pubKeyCredParams: [
    {
      type: "public-key",
      alg: -7,
    },
  ],
};

navigator.credentials
  .create({ publicKey: options })
  .then((pubKeyCredential) => {
    const response = pubKeyCredential.response;
    const clientExtResults = pubKeyCredential.getClientExtensionResults();
    // Send response and client extensions to the server so that it can validate
    // and create credentials
  })
  .catch((err) => {
    // Deal with any error
  });
```

Specifications
--------------

| Specification |
| --- |
| Web Authentication: An API for accessing Public Key Credentials - Level 3 # dom-publickeycredential-response |

Browser compatibility
---------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
PublicKeyCredential: authenticatorAttachment property
=====================================================

**Secure context:** This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

The **`authenticatorAttachment`** read-only property of the `PublicKeyCredential` interface is a string that indicates the general category of authenticator used during the associated `navigator.credentials.create()` or `navigator.credentials.get()` call.

Value
-----

A string, which will be one of the following values:

`"platform"`

The authenticator is part of the device WebAuthn is running on (termed a **platform authenticator**), therefore WebAuthn will communicate with it using a transport available to that platform, such as a platform-specific API. A public key credential bound to a platform authenticator is called a **platform credential**.

`"cross-platform"`

The authenticator is not a part of the device WebAuthn is running on (termed a **roaming authenticator** as it can roam between different devices), therefore WebAuthn will communicate with it using a cross-platform transport protocol such as Bluetooth or NFC. A public key credential bound to a roaming authenticator is called a **roaming credential**.

Examples
--------


```js
const options = {
  challenge: new Uint8Array(26) /\* from the server \*/,
  rp: {
    name: "Example CORP",
    id: "login.example.com",
  },
  user: {
    id: new Uint8Array(26) /\* To be changed for each user \*/,
    name: "canand@example.com",
    displayName: "Carina Anand",
  },
  pubKeyCredParams: [
    {
      type: "public-key",
      alg: -7,
    },
  ],
};

navigator.credentials
  .create({ publicKey: options })
  .then((pubKeyCredential) => {
    const attachment = pubKeyCredential.authenticatorAttachment;
    // Do something with authenticatorAttachment
  })
  .catch((err) => {
    // Deal with any error
  });
```

Specifications
--------------

| Specification |
| --- |
| Web Authentication: An API for accessing Public Key Credentials - Level 3 # dom-publickeycredential-authenticatorattachment |

Browser compatibility
---------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
CSSTransformValue: entries() method
===================================

 The **`CSSTransformValue.entries()`** method
 returns an array of a given object's own enumerable
 property `[key, value]` pairs in the same order as that provided by a
 `for...in` loop (the difference being that a for-in loop enumerates
 properties in the prototype chain as well).

Syntax
------


```js
entries(obj)
```

### Parameters

`obj`

 The `CSSTransformValue` whose enumerable own property
 `[key, value]` pairs are to be returned.


### Return value

 An array of the given `CSSTransformValue` object's own enumerable property
 `[key, value]` pairs.

Examples
--------

To Do

Specifications
--------------

#### No specification found

No specification data found for `api.CSSTransformValue.entries`.  
Check for problems with this page or contribute a missing `spec_url` to mdn/browser-compat-data. Also make sure the specification is included in w3c/browser-specs.

Browser compatibility
---------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
CSSTransformValue: CSSTransformValue() constructor
==================================================

 The **`CSSTransformValue()`** constructor
 creates a new `CSSTransformValue` object which represents a list of
 individual transform objects.

Syntax
------


```js
new CSSTransformValue(transforms)
```

### Parameters

`transforms`

A list of `CSSTransformComponent` objects to iterate over.

### Return value

A new `CSSTransformValue`.

### Exceptions

`TypeError`

Raised if transforms is empty.

Examples
--------

To do

Specifications
--------------

| Specification |
| --- |
| CSS Typed OM Level 1 # dom-csstransformvalue-csstransformvalue |

Browser compatibility
---------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
CSSTransformValue: toMatrix() method
====================================

 The **`toMatrix()`** method of the
 `CSSTransformValue` interface returns a `DOMMatrix` object.

Syntax
------


```js
toMatrix()
```

### Parameters

None.

### Return value

A `DOMMatrix` object.

### Exceptions

`TypeError`

 Raised if any lengths involved in generating the matrix are not compatible units
 with px (such as relative lengths or percentages).


Examples
--------

To Do

Specifications
--------------

| Specification |
| --- |
| CSS Typed OM Level 1 # dom-csstransformvalue-tomatrix |

Browser compatibility
---------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
CSSTransformValue: length property
==================================

 The read-only **`length`** property of the
 `CSSTransformValue` interface returns the number of transform components in
 the list.

Value
-----

An integer representing the number of transform components in the list.

Examples
--------

To Do

Specifications
--------------

| Specification |
| --- |
| CSS Typed OM Level 1 # dom-csstransformvalue-length |

Browser compatibility
---------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
CSSTransformValue: values() method
==================================

 The **`CSSTransformValue.values()`** returns a
 new *array iterator* object that contains the values for
 each index in the CSSTransformValue object.

Syntax
------


```js
values()
```

### Parameters

None.

### Return value

A new `Array`.

Examples
--------

To Do

Specifications
--------------

#### No specification found

No specification data found for `api.CSSTransformValue.values`.  
Check for problems with this page or contribute a missing `spec_url` to mdn/browser-compat-data. Also make sure the specification is included in w3c/browser-specs.

Browser compatibility
---------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
CSSTransformValue: keys() method
================================

 The **`CSSTransformValue.keys()`** method
 returns a new *array iterator* object that contains the keys
 for each index in the array.

Syntax
------


```js
keys()
```

### Parameters

None.

### Return value

A new `Array`.

Examples
--------

To Do

Specifications
--------------

#### No specification found

No specification data found for `api.CSSTransformValue.keys`.  
Check for problems with this page or contribute a missing `spec_url` to mdn/browser-compat-data. Also make sure the specification is included in w3c/browser-specs.

Browser compatibility
---------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
CSSTransformValue: is2D property
================================

 The read-only **`is2D`** property of the
 `CSSTransformValue` interface returns whether the transform is 2D or 3D.

 In the case of the `CSSTransformValue` this property returns
 true unless any of the individual functions return false for `Is2D`, in which
 case it returns false.

Value
-----

 A boolean. True indicates that the transform is a 2D transform, false that it is a 3D
 transform.

Examples
--------

To Do

Specifications
--------------

| Specification |
| --- |
| CSS Typed OM Level 1 # dom-csstransformvalue-is2d |

Browser compatibility
---------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
CSSTransformValue: forEach() method
===================================

The **`CSSTransformValue.forEach()`** method executes a provided function once for each element of the `CSSTransformValue`.

Syntax
------


```js
forEach(callbackFn)
forEach(callbackFn, thisArg)
```

### Parameters

`callbackFn`

The function to execute for each element, taking three arguments:

`currentValue`

The value of the current element being processed.

`index` Optional

The index of the current element being processed.

`array` Optional

The `CSSTransformValue` that `forEach()` is being called on.


`thisArg` Optional

Value to use as **`this`** (i.e., the reference `Object`) when executing `callback`.

### Return value

None (`undefined`).

Examples
--------

To Do

Specifications
--------------

#### No specification found

No specification data found for `api.CSSTransformValue.forEach`.  
Check for problems with this page or contribute a missing `spec_url` to mdn/browser-compat-data. Also make sure the specification is included in w3c/browser-specs.

Browser compatibility
---------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
TextUpdateEvent: updateRangeStart property
==========================================

**Experimental:** **This is an experimental technology**  
Check the Browser compatibility table carefully before using this in production.

The **`TextUpdateEvent.updateRangeStart`** read-only property indicates the start position of the text range that is being replaced in the `EditContext` object.

Value
-----

A `Number`.

Examples
--------

### Using `textupdate` to display the inserted text and location


```html
<div id="editor"></div>
```



```js
const editorEl = document.getElementById("editor");
const editContext = new EditContext();
editorEl.editContext = editContext;

editContext.addEventListener("textupdate", (e) => {
  console.log(
    `The user inserted the text "${e.text}" between index ${e.updateRangeStart} and index ${e.updateRangeEnd}.`,
  );
});
```

Specifications
--------------

| Specification |
| --- |
| EditContext API # dom-textupdateevent-updaterangestart |

Browser compatibility
---------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.