recursal/MDN huggingface dataset:
USBIsochronousInTransferResult
==============================

Limited availability
--------------------

This feature is not Baseline because it does not work in some of the most widely-used browsers.

* Learn more
* See full compatibility
* Report feedback
**Secure context:** This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

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

The `USBIsochronousInTransferResult` interface of the WebUSB API provides the result from a call to the `isochronousTransferIn()` method of the `USBDevice` interface. It represents the result from requesting a transfer of data from the USB device to the USB host.

Constructor
-----------

`USBIsochronousInTransferResult()` 
Experimental

Creates a new `USBIsochronousInTransferResult` object with the provided `packets` and `data` fields.

Instance properties
-------------------

`USBIsochronousInTransferResult.data` Read only  
Experimental

Returns a `DataView` object containing the data received from the device. This is the combined data from all packets. See the individual `DataView` objects in the `packets` array for the portion of this buffer containing data from each packet.

`USBIsochronousInTransferResult.packets` Read only  
Experimental

Returns an array of `USBIsochronousInTransferPacket` objects containing the result of each request to receive a packet from the device.

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

| Specification |
| --- |
| WebUSB API # usbisochronousintransferresult |

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

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

The **`PerformanceObserverEntryList`** interface is a list of performance events that were explicitly observed via the `observe()` method.

Instance methods
----------------

`PerformanceObserverEntryList.getEntries()`

Returns a list of all explicitly observed `PerformanceEntry` objects.

`PerformanceObserverEntryList.getEntriesByType()`

Returns a list of all explicitly observed `PerformanceEntry` objects of the given entry type.

`PerformanceObserverEntryList.getEntriesByName()`

Returns a list of all explicitly observed `PerformanceEntry` objects based on the given name and entry type.

Example
-------

### Using PerformanceObserverEntryList

In the following example, `list` is the `PerformanceObserverEntryList` object. The `getEntries()` method is called to get all explicitly observed `PerformanceEntry` objects which are "measure" and "mark" in this case.


```js
function perfObserver(list, observer) {
  list.getEntries().forEach((entry) => {
    if (entry.entryType === "mark") {
      console.log(`${entry.name}'s startTime: ${entry.startTime}`);
    }
    if (entry.entryType === "measure") {
      console.log(`${entry.name}'s duration: ${entry.duration}`);
    }
  });
}
const observer = new PerformanceObserver(perfObserver);
observer.observe({ entryTypes: ["measure", "mark"] });
```

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

| Specification |
| --- |
| Performance Timeline # performanceobserverentrylist-interface |

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

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

The DOM **`CompositionEvent`** represents events that occur due to the user indirectly entering text.

Event

UIEvent

CompositionEventConstructor
-----------

`CompositionEvent()`

Creates a new `CompositionEvent` object instance.

Instance properties
-------------------

*This interface also inherits properties of its parent, `UIEvent`, and its ancestor — `Event`.*

`CompositionEvent.data` Read only 

Returns the characters generated by the input method that raised the event; its varies depending on the type of event that generated the `CompositionEvent` object.

`CompositionEvent.locale` Read only  
Deprecated

Non-standard

Returns the locale of current input method (for example, the keyboard layout locale if the composition is associated with IME).

Instance methods
----------------

*This interface also inherits methods of its parent, `UIEvent`, and its ancestor — `Event`.*

`CompositionEvent.initCompositionEvent()` 
Deprecated

Initializes the attributes of a `CompositionEvent` object.

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

| Specification |
| --- |
| UI Events # interface-compositionevent |

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

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

See also
--------

* compositionstart
* compositionend
* compositionupdate
* UIEvent
* Event
BarcodeDetector
===============

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

**Note:** This feature is available in Web Workers

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

The **`BarcodeDetector`** interface of the Barcode Detection API allows detection of linear and two dimensional barcodes in images.

Constructors
------------

`BarcodeDetector.BarcodeDetector()` 
Experimental

Creates and returns a `BarcodeDetector` object, with optional `BarcodeDetectorOptions`.

Static methods
--------------

`getSupportedFormats()` 
Experimental

Returns a `Promise` which fulfills with an `Array` of supported barcode format types.

Instance methods
----------------

`detect()` 
Experimental

Returns a `Promise` which fulfills with an array of `DetectedBarcode` objects with the following properties:

* `boundingBox`: A `DOMRectReadOnly`, which returns the dimensions of a rectangle representing the extent of a detected barcode, aligned with the image.
* `cornerPoints`: The x and y co-ordinates of the four corner points of the detected barcode relative to the image, starting with the top left and working clockwise. This may not be square due to perspective distortions within the image.
* `format`: The detected barcode format. (For a full list of formats, consult the supported barcode format) list.
* `rawValue`: A string decoded from the barcode data.

Examples
--------

### Creating A Detector

This example creates a new barcode detector object, with specified supported formats and tests for browser compatibility.


```js
// check compatibility
if (!("BarcodeDetector" in globalThis)) {
  console.log("Barcode Detector is not supported by this browser.");
} else {
  console.log("Barcode Detector supported!");

  // create new detector
  const barcodeDetector = new BarcodeDetector({
    formats: ["code\_39", "codabar", "ean\_13"],
  });
}
```

### Getting Supported Formats

The following example calls the `getSupportFormat()` static method and logs the results to the console.


```js
// check supported types
BarcodeDetector.getSupportedFormats().then((supportedFormats) => {
  supportedFormats.forEach((format) => console.log(format));
});
```

### Detect Barcodes

This example uses the `detect()` method to detect the barcodes within the given image. These are iterated over and the barcode data is logged to the console.


```js
barcodeDetector
  .detect(imageEl)
  .then((barcodes) => {
    barcodes.forEach((barcode) => console.log(barcode.rawValue));
  })
  .catch((err) => {
    console.log(err);
  });
```

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

| Specification |
| --- |
| Accelerated Shape Detection in Images # barcode-detection-api |

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

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

See also
--------

* barcodefaq.com: A website with information about different barcodes and examples of the different types.
* Accelerated Shape Detection in Images
HTMLPreElement
==============

The **`HTMLPreElement`** interface exposes specific properties and methods (beyond those of the `HTMLElement` interface it also has available to it by inheritance) for manipulating a block of preformatted text (`<pre>`).

EventTarget

Node

Element

HTMLElement

HTMLPreElementInstance properties
-------------------

*Inherits properties from its parent, `HTMLElement`.*

`HTMLPreElement.width` 
Deprecated

A `long` value reflecting the obsolete `width` attribute, containing a fixed-size length for the `<pre>` element.

Instance methods
----------------

*No specific method; inherits methods from its parent, `HTMLElement`.*

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

| Specification |
| --- |
| HTML Standard # htmlpreelement |

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

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

See also
--------

* The HTML element implementing this interface: `<pre>`
HkdfParams
==========

The **`HkdfParams`** dictionary of the Web Crypto API represents the object that should be passed as the `algorithm` parameter into `SubtleCrypto.deriveKey()`, when using the HKDF algorithm.

Instance properties
-------------------

`name`

A string. This should be set to `HKDF`.

`hash`

A string representing the digest algorithm to use. This may be one of:

* `SHA-1`
* `SHA-256`
* `SHA-384`
* `SHA-512`

`salt`

An `ArrayBuffer`, a `TypedArray`, or a `DataView`. The HKDF specification states that adding salt "adds significantly to the strength of HKDF". Ideally, the salt is a random or pseudo-random value with the same length as the output of the digest function. Unlike the input key material passed into `deriveKey()`, salt does not need to be kept secret.

`info`

An `ArrayBuffer`, a `TypedArray`, or a `DataView` representing application-specific contextual information. This is used to bind the derived key to an application or context, and enables you to derive different keys for different contexts while using the same input key material. It's important that this should be independent of the input key material itself. This property is required but may be an empty buffer.

Examples
--------

See the examples for `SubtleCrypto.deriveKey()`.

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

| Specification |
| --- |
| Web Cryptography API # dfn-HkdfParams |

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

Browsers that support the "HKDF" algorithm for the `SubtleCrypto.deriveKey()` method will support this type.

See also
--------

* `SubtleCrypto.deriveKey()`.
CSSStyleDeclaration
===================

The **`CSSStyleDeclaration`** interface represents an object that is a CSS declaration block, and exposes style information and various style-related methods and properties.

A `CSSStyleDeclaration` object can be exposed using three different APIs:

* Via `HTMLElement.style`, which deals with the inline styles of a single element (e.g., `<div style="…">`).
* Via the `CSSStyleSheet` API. For example, `document.styleSheets[0].cssRules[0].style` returns a `CSSStyleDeclaration` object on the first CSS rule in the document's first stylesheet.
* Via `Window.getComputedStyle()`, which exposes the `CSSStyleDeclaration` object as a **read-only** interface.
Attributes
----------

`CSSStyleDeclaration.cssText`

Textual representation of the declaration block, if and only if it is exposed via `HTMLElement.style`. Setting this attribute changes the inline style. If you want a text representation of a computed declaration block, you can get it with `JSON.stringify()`.

`CSSStyleDeclaration.length` Read only 

The number of properties. See the `item()` method below.

`CSSStyleDeclaration.parentRule` Read only 

The containing `CSSRule`.

### CSS Properties

`CSSStyleDeclaration.cssFloat`

Special alias for the `float` CSS property.

`CSSStyleDeclaration` named properties

Dashed and camel-cased attributes for all supported CSS properties.

Instance methods
----------------

`CSSStyleDeclaration.getPropertyPriority()`

Returns the optional priority, "important".

`CSSStyleDeclaration.getPropertyValue()`

Returns the property value given a property name.

`CSSStyleDeclaration.item()`

Returns a CSS property name by its index, or the empty string if the index is out-of-bounds.

`CSSStyleDeclaration.removeProperty()`

Removes a property from the CSS declaration block.

`CSSStyleDeclaration.setProperty()`

Modifies an existing CSS property or creates a new CSS property in the declaration block.

`CSSStyleDeclaration.getPropertyCSSValue()` 
Deprecated

**Only supported via getComputedStyle in Firefox.** Returns the property value as a `CSSPrimitiveValue` or `null` for shorthand properties.

Example
-------


```js
const styleObj = document.styleSheets[0].cssRules[0].style;
console.log(styleObj.cssText);

for (let i = styleObj.length; i--; ) {
  const nameString = styleObj[i];
  styleObj.removeProperty(nameString);
}

console.log(styleObj.cssText);
```

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

| Specification |
| --- |
| CSS Object Model (CSSOM) # the-cssstyledeclaration-interface |

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

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

The **`CSSSkewX`** interface of the CSS\_Object\_Model#css\_typed\_object\_model represents the `skewX()` value of the individual `transform` property in CSS. It inherits properties and methods from its parent `CSSTransformValue`.

CSSTransformComponent

CSSSkewXConstructor
-----------

`CSSSkewX()`

Creates a new `CSSSkewX` object.

Instance properties
-------------------

`ax`

Returns or sets the x-axis value.

Examples
--------

To Do

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

| Specification |
| --- |
| CSS Typed OM Level 1 # cssskewx |

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

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

The **`CSSGroupingRule`** interface of the CSS Object Model represents any CSS at-rule that contains other rules nested within it.

CSSRule

CSSGroupingRuleInstance properties
-------------------

*This interface also inherits properties from `CSSRule`.*

`CSSGroupingRule.cssRules` Read only 

Returns a `CSSRuleList` of the CSS rules in the media rule.

Instance methods
----------------

*This interface also inherits methods from `CSSRule`.*

`CSSGroupingRule.deleteRule`

Deletes a rule from the style sheet.

`CSSGroupingRule.insertRule`

Inserts a new style rule into the current style sheet.

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

| Specification |
| --- |
| CSS Object Model (CSSOM) # the-cssgroupingrule-interface |

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

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

See also
--------

* Using dynamic styling information
GPURenderPipeline
=================

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

The **`GPURenderPipeline`** interface of the WebGPU API represents a pipeline that controls the vertex and fragment shader stages and can be used in a `GPURenderPassEncoder` or `GPURenderBundleEncoder`.

A `GPURenderPipeline` object instance can be created using the `GPUDevice.createRenderPipeline()` or `GPUDevice.createRenderPipelineAsync()` methods.

Instance properties
-------------------

`label` 
Experimental

A string providing a label that can be used to identify the object, for example in `GPUError` messages or console warnings.

Instance methods
----------------

`getBindGroupLayout()` 
Experimental

Returns the pipeline's `GPUBindGroupLayout` object with the given index (i.e. included in the originating `GPUDevice.createRenderPipeline()` or `GPUDevice.createRenderPipelineAsync()` call's pipeline layout).

Examples
--------

**Note:** The WebGPU samples feature many more examples.

### Basic example

Our basic render demo provides a simple example of the construction of a valid render pipeline descriptor object, which is then used to create a `GPURenderPipeline` via a `createRenderPipeline()` call.


```js
// ...

const vertexBuffers = [
  {
    attributes: [
      {
        shaderLocation: 0, // position
        offset: 0,
        format: "float32x4",
      },
      {
        shaderLocation: 1, // color
        offset: 16,
        format: "float32x4",
      },
    ],
    arrayStride: 32,
    stepMode: "vertex",
  },
];

const pipelineDescriptor = {
  vertex: {
    module: shaderModule,
    entryPoint: "vertex\_main",
    buffers: vertexBuffers,
  },
  fragment: {
    module: shaderModule,
    entryPoint: "fragment\_main",
    targets: [
      {
        format: navigator.gpu.getPreferredCanvasFormat(),
      },
    ],
  },
  primitive: {
    topology: "triangle-list",
  },
  layout: "auto",
};

const renderPipeline = device.createRenderPipeline(pipelineDescriptor);

// ...
```

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

| Specification |
| --- |
| WebGPU # gpurenderpipeline |

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

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

See also
--------

* The WebGPU API
Point
=====

**Deprecated:** This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

**Non-standard:** This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

**`Point`** is an interface which represents a point in 2-dimensional space. It is non-standard, not broadly compatible, and should not be used.

**Note:** Although it is not directly related to this defunct interface, you are probably looking for `DOMPoint`.

Instance properties
-------------------

`x` 
Deprecated

Non-standard

A floating-point value specifying the point's position with respect to the X (horizontal) axis.

`y` 
Deprecated

Non-standard

A floating-point value specifying the point's position with respect to the Y (vertical) axis.

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

This class was specified in the defunct 20 March 2009 Working Draft of CSS 2D Transforms Module Level 3. It is not present in any current specification.

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

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

See also
--------

* `Window.webkitConvertPointFromNodeToPage()`
* `Window.webkitConvertPointFromPageToNode()`
* `WebKitPoint` documentation at the IE Dev Center 
Deprecated

Non-standard
StyleSheet
==========

An object implementing the `StyleSheet` interface represents a single style sheet. CSS style sheets will further implement the more specialized `CSSStyleSheet` interface.

Instance properties
-------------------

`StyleSheet.disabled`

A boolean value representing whether the current stylesheet has been applied or not.

`StyleSheet.href` Read only 

Returns a string representing the location of the stylesheet.

`StyleSheet.media` Read only 

Returns a `MediaList` representing the intended destination medium for style information.

`StyleSheet.ownerNode` Read only 

Returns a `Node` associating this style sheet with the current document.

`StyleSheet.parentStyleSheet` Read only 

Returns a `StyleSheet` including this one, if any; returns `null` if there aren't any.

`StyleSheet.title` Read only 

Returns a string representing the advisory title of the current style sheet.

`StyleSheet.type` Read only 

Returns a string representing the style sheet language for this style sheet.

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

| Specification |
| --- |
| CSS Object Model (CSSOM) # the-stylesheet-interface |

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

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

See also
--------

* `CSSStyleSheet`
HTMLMenuItemElement
===================

**Deprecated:** This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

**Non-standard:** This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

The **`HTMLMenuItemElement`** interface provides special properties (beyond those defined on the regular `HTMLElement` interface it also has available to it by inheritance) for manipulating `<menuitem>` elements.

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

This feature is not part of any current specification. It is no longer on track to become a standard.

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

No longer supported in any browser. Firefox, the only browser that supported this element, removed support in 85.

See also
--------

* `HTMLMenuElement`
NavigationCurrentEntryChangeEvent
=================================

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

The **`NavigationCurrentEntryChangeEvent`** interface of the Navigation API is the event object for the `currententrychange` event, which fires when the `Navigation.currentEntry` has changed.

This event will fire for same-document navigations (e.g. `back()` or `traverseTo()`), replacements (i.e. a `navigate()` call with `history` set to `replace`), or other calls that change the entry's state (e.g. `updateCurrentEntry()`, or the History API's `History.replaceState()`).

This event fires after the navigation is committed, meaning that the visible URL has changed and the `NavigationHistoryEntry` update has occurred. It is useful for migrating from usage of older API features like the `hashchange` or `popstate` events.

Event

NavigationCurrentEntryChangeEventConstructor
-----------

`NavigationCurrentEntryChangeEvent()` 
Experimental

Creates a new `NavigationCurrentEntryChangeEvent` object instance.

Instance properties
-------------------

*Inherits properties from its parent, `Event`.*

`from` Read only  
Experimental

Returns the `NavigationHistoryEntry` that was navigated from.

`navigationType` Read only  
Experimental

Returns the type of the navigation that resulted in the change.

Examples
--------

Navigation data reporting:


```js
navigation.addEventListener("currententrychange", () => {
  const data = navigation.currentEntry.getState();
  submitAnalyticsData(data.analytics);
});
```


Setting up a per-entry event:


```js
navigation.addEventListener("currententrychange", () => {
  navigation.currentEntry.addEventListener("dispose", genericDisposeHandler);
});
```

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

| Specification |
| --- |
| HTML Standard # the-navigationcurrententrychangeevent-interface |

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

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

See also
--------

* Modern client-side routing: the Navigation API
* Navigation API explainer
* Domenic Denicola's Navigation API live demo