recursal/MDN huggingface dataset:
WebGLShaderPrecisionFormat
==========================

The **WebGLShaderPrecisionFormat** interface is part of the WebGL API and represents the information returned by calling the `WebGLRenderingContext.getShaderPrecisionFormat()` method.

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

`WebGLShaderPrecisionFormat.rangeMin` Read only 

The base 2 log of the absolute value of the minimum value that can be represented.

`WebGLShaderPrecisionFormat.rangeMax` Read only 

The base 2 log of the absolute value of the maximum value that can be represented.

`WebGLShaderPrecisionFormat.precision` Read only 

The number of bits of precision that can be represented. For integer formats this value is always 0.

Examples
--------

A `WebGLShaderPrecisionFormat` object is returned by the `WebGLRenderingContext.getShaderPrecisionFormat()` method.


```js
const canvas = document.getElementById("canvas");
const gl = canvas.getContext("webgl");
gl.getShaderPrecisionFormat(gl.VERTEX\_SHADER, gl.MEDIUM\_FLOAT);
// WebGLShaderPrecisionFormat { rangeMin: 127, rangeMax: 127, precision: 23 }
```

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

| Specification |
| --- |
| WebGL Specification # 5.12 |

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

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

See also
--------

* `WebGLRenderingContext.getShaderPrecisionFormat()`
Scheduler
=========

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
The **`Scheduler`** interface of the Prioritized Task Scheduling API provides the `Scheduler.postTask()` method that can be used for adding prioritized tasks to be scheduled.

A `Scheduler` can be accessed from the global object `Window` or `WorkerGlobalScope` (`this.scheduler`).

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

None.

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

`Scheduler.postTask()`

Adds a task to the scheduler as a callback, optionally specifying a priority, delay, and/or a signal for aborting the task.

Examples
--------

 If the feature is defined, an instance of this object is returned by the global `this` in both workers and the main thread.
 The only property of the interface is the `postTask()` method, which is used to post the task and returns a promise.

 The code below shows a simple task that resolves with the text 'Task executing'.
 This text is logged on success.
 The code also shows a `catch` block, which would be required in more complex code to handle when a task is aborted or throws an error.


```js
if ("scheduler" in this) {
  // Post task with default priority: 'user-visible' (no other options)
  // When the task resolves, Promise.then() logs the result.
  scheduler
    .postTask(() => "Task executing")
    .then((taskResult) => console.log(`${taskResult}`)) // Log result
    .catch((error) => console.error(`Error: ${error}`)); // Log errors
}
```


For more comprehensive example code see Prioritized Task Scheduling API > Examples.

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

| Specification |
| --- |
| Prioritized Task Scheduling # scheduler |

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

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
File and Directory Entries API
==============================

The File and Directory Entries API simulates a local file system that web apps can navigate within and access files in. You can develop apps which read, write, and create files and/or directories in a virtual, sandboxed file system.

Getting access to a file system
-------------------------------

There are two ways to get access to file systems defined in the current specification draft:

* When handling a `drop` event for drag and drop, you can call `DataTransferItem.webkitGetAsEntry()` to get the `FileSystemEntry` for a dropped item. If the result isn't `null`, then it's a dropped file or directory, and you can use file system calls to work with it.
* The `HTMLInputElement.webkitEntries` property lets you access the `FileSystemFileEntry` objects for the currently selected files, but only if they are dragged-and-dropped onto the file chooser (Firefox bug 1326031). If `HTMLInputElement.webkitdirectory` is `true`, the `<input>` element is instead a directory picker, and you get `FileSystemDirectoryEntry` objects for each selected directory.
Interfaces
----------

The File and Directory Entries API includes the following interfaces:

`FileSystem`

Represents a file system.

`FileSystemEntry`

The basic interface representing a single entry in a file system. This is implemented by other interfaces which represent files or directories.

`FileSystemFileEntry`

Represents a single file in a file system.

`FileSystemDirectoryEntry`

Represents a single directory in a file system.

`FileSystemDirectoryReader`

Created by calling `FileSystemDirectoryEntry.createReader()`, this interface provides the functionality which lets you read the contents of a directory.

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

| Specification |
| --- |
| File and Directory Entries API # api-domfilesystem |

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

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

See also
--------

* Introduction to the File and Directory Entries API
* File and Directory Entries API support in Firefox
AudioScheduledSourceNode
========================

The `AudioScheduledSourceNode` interface—part of the Web Audio API—is a parent interface for several types of audio source node interfaces which share the ability to be started and stopped, optionally at specified times. Specifically, this interface defines the `start()` and `stop()` methods, as well as the `ended` event.

**Note:** You can't create an `AudioScheduledSourceNode` object directly. Instead, use an interface which extends it, such as `AudioBufferSourceNode`, `OscillatorNode` or `ConstantSourceNode`.

Unless stated otherwise, nodes based upon `AudioScheduledSourceNode` output silence when not playing (that is, before `start()` is called and after `stop()` is called). Silence is represented, as always, by a stream of samples with the value zero (0).

EventTarget

AudioNode

AudioScheduledSourceNodeInstance properties
-------------------

*Inherits properties from its parent interface, `AudioNode`.*

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

*Inherits methods from its parent interface, `AudioNode`, and adds the following methods:*

`start()`

Schedules the node to begin playing the constant sound at the specified time. If no time is specified, the node begins playing immediately.

`stop()`

Schedules the node to stop playing at the specified time. If no time is specified, the node stops playing at once.

Events
------

Listen to these events using `addEventListener()` or by assigning an event listener to the `oneventname` property of this interface:

`ended`

Fired when the source node has stopped playing, either because it's reached a predetermined stop time, the full duration of the audio has been performed, or because the entire buffer has been played.

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

| Specification |
| --- |
| Web Audio API # AudioScheduledSourceNode |

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

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

See also
--------

* Using the Web Audio API
* `AudioNode`
ScreenOrientation
=================

The **`ScreenOrientation`** interface of the Screen Orientation API provides information about the current orientation of the document.

A **`ScreenOrientation`** instance object can be retrieved using the `screen.orientation` property.

EventTarget

ScreenOrientationInstance properties
-------------------

`ScreenOrientation.type` Read only 

Returns the document's current orientation type, one of `portrait-primary`, `portrait-secondary`, `landscape-primary`, or `landscape-secondary`.

`ScreenOrientation.angle` Read only 

Returns the document's current orientation angle.

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

`ScreenOrientation.lock()`

Locks the orientation of the containing document to its default orientation and returns a `Promise`.

`ScreenOrientation.unlock()`

Unlocks the orientation of the containing document from its default orientation.

Events
------

Listen to these events using `addEventListener()` or by assigning an event listener to the `oneventname` property of this interface.

`change`

Fired whenever the screen changes orientation.

Example
-------

In the following example, we listen for an orientation `change` event and log the new screen orientation type and angle.


```js
screen.orientation.addEventListener("change", (event) => {
  const type = event.target.type;
  const angle = event.target.angle;
  console.log(`ScreenOrientation change: ${type}, ${angle} degrees.`);
});
```

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

| Specification |
| --- |
| Screen Orientation # screenorientation-interface |

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

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

The **`EventCounts`** interface of the Performance API provides the number of events that have been dispatched for each event type.

An `EventCounts` instance is a read-only `Map`-like object, in which each key is the name string for an event type, and the corresponding value is an integer indicating the number of events that have been dispatched for that event type.

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

This interface has no constructor. You typically get an instance of this object using the `performance.eventCounts` property.

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

`size`

See `Map.prototype.size` for details.

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

`entries()`

See `Map.prototype.entries()` for details.

`forEach()`

See `Map.prototype.forEach()` for details.

`get()`

See `Map.prototype.get()` for details.

`has()`

See `Map.prototype.has()` for details.

`keys()`

See `Map.prototype.keys()` for details.

`values()`

See `Map.prototype.values()` for details.

Examples
--------

### Working with EventCount maps

Below are a few examples to get information from an `EventCounts` map. Note that the map is read-only and the `clear()`, `delete()`, and `set()` methods aren't available.


```js
for (entry of performance.eventCounts.entries()) {
  const type = entry[0];
  const count = entry[1];
}

const clickCount = performance.eventCounts.get("click");

const isExposed = performance.eventCounts.has("mousemove");
const exposedEventsCount = performance.eventCounts.size;
const exposedEventsList = [...performance.eventCounts.keys()];
```

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

| Specification |
| --- |
| Event Timing API # sec-event-counts |

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

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

See also
--------

* `performance.eventCounts`
* `PerformanceEventTiming`
* `Map`
TextDecoderStream
=================

 The **`TextDecoderStream`** interface of the Encoding API converts a stream of text in a binary encoding, such as UTF-8 etc., to a stream of strings.
 It is the streaming equivalent of `TextDecoder`.

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

`TextDecoderStream()`

Creates a new `TextDecoderStream` object.

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

`TextDecoderStream.encoding` Read only 

An encoding.

`TextDecoderStream.fatal` Read only 

A `boolean` indicating if the error mode is fatal.

`TextDecoderStream.ignoreBOM` Read only 

A `boolean` indicating whether the byte order mark is ignored.

`TextDecoderStream.readable` Read only 

Returns the `ReadableStream` instance controlled by this object.

`TextDecoderStream.writable` Read only 

Returns the `WritableStream` instance controlled by this object.

Examples
--------

* Examples of streaming structured data and HTML
* An example of fetch request streams which uses `TextDecoderStream`.
Specifications
--------------

| Specification |
| --- |
| Encoding Standard # interface-textdecoderstream |

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

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

See also
--------

* `TextEncoderStream`
* Streams API Concepts
* Experimenting with the Streams API
performance global property
===========================

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

The global **`performance`** property returns a `Performance` object, which can be used to gather performance information about the context it is called in (window or worker).

Performance entries are per context. If you create a mark on the main thread (or other worker), you cannot see it in a worker thread, and vice versa.

Value
-----

A `Performance` object offering access to performance and timing-related information for the context it is called on (window or worker).

Performance API availability
----------------------------

The following table provides an overview about the availability of the performance APIs in window and worker contexts.

| API | Window | Worker |
| --- | --- | --- |
| `LargestContentfulPaint` | x |  |
| `LayoutShift` | x |  |
| `LayoutShiftAttribution` | x |  |
| `Performance` | x | x |
| `PerformanceElementTiming` | x |  |
| `PerformanceEntry` | x | x |
| `PerformanceEventTiming` | x |  |
| `PerformanceLongTaskTiming` | x |  |
| `PerformanceMark` | x | x |
| `PerformanceMeasure` | x | x |
| `PerformanceNavigation` 
Deprecated
 | x |  |
| `PerformanceNavigationTiming` | x |  |
| `PerformanceObserver` | x | x |
| `PerformanceObserverEntryList` | x | x |
| `PerformancePaintTiming` | x |  |
| `PerformanceResourceTiming` | x | x |
| `PerformanceServerTiming` | x | x |
| `PerformanceTiming` 
Deprecated
 | x |  |
| `TaskAttributionTiming` | x |  |
| `VisibilityStateEntry` | x |  |

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

| Specification |
| --- |
| High Resolution Time # the-performance-attribute |

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

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

The **WebGLUniformLocation** interface is part of the WebGL API and represents the location of a uniform variable in a shader program.

Description
-----------

The `WebGLUniformLocation` object does not define any methods or properties of its own and its content is not directly accessible. When working with `WebGLUniformLocation` objects, the following methods of the `WebGLRenderingContext` are useful:

* `WebGLRenderingContext.getUniformLocation()`
* `WebGLRenderingContext.uniform()`
Examples
--------

### Getting an uniform location


```js
const canvas = document.getElementById("canvas");
const gl = canvas.getContext("webgl");

const location = gl.getUniformLocation(WebGLProgram, "uniformName");
```

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

| Specification |
| --- |
| WebGL Specification # 5.10 |

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

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

See also
--------

* `WebGLRenderingContext.getUniformLocation()`
HTMLTableColElement
===================

The **`HTMLTableColElement`** interface provides properties for manipulating single or grouped table column elements.

EventTarget

Node

Element

HTMLElement

HTMLTableColElementInstance properties
-------------------

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

`HTMLTableColElement.align` 
Deprecated

A string that indicates the horizontal alignment of the cell data in the column.

`HTMLTableColElement.ch` 
Deprecated

A string representing the alignment character for cell data.

`HTMLTableColElement.chOff` 
Deprecated

A string representing the offset for the alignment character.

`HTMLTableColElement.span`

An `unsigned long` that reflects the `span` HTML attribute, indicating the number of columns to apply this object's attributes to. Must be a positive integer.

`HTMLTableColElement.vAlign` 
Deprecated

A string that indicates the vertical alignment of the cell data in the column.

`HTMLTableColElement.width` 
Deprecated

A string representing the default column width.

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

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

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

| Specification |
| --- |
| HTML Standard # htmltablecolelement |

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: `<col>` and `<colgroup>`.
crossOriginIsolated global property
===================================

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

 The global **`crossOriginIsolated`** read-only property returns a boolean value that
 indicates whether the website is in a cross-origin isolation state. That state mitigates the risk of side-channel attacks and unlocks a few capabilities:

* `SharedArrayBuffer` can be created and sent via a `Window.postMessage()` call.
* `Performance.now()` offers better precision.
* `Performance.measureUserAgentSpecificMemory()` can be accessed.

A website is in a cross-origin isolated state, when the response header `Cross-Origin-Opener-Policy` has the value `same-origin` and the `Cross-Origin-Embedder-Policy` header has the value `require-corp` or `credentialless`.

Value
-----

A boolean value.

Examples
--------


```js
const myWorker = new Worker("worker.js");

if (crossOriginIsolated) {
  const buffer = new SharedArrayBuffer(16);
  myWorker.postMessage(buffer);
} else {
  const buffer = new ArrayBuffer(16);
  myWorker.postMessage(buffer);
}
```

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

| Specification |
| --- |
| HTML Standard # dom-crossoriginisolated-dev |

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

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

See also
--------

* Service Workers
* Web Workers
HTMLMeterElement
================

The HTML `<meter>` elements expose the **`HTMLMeterElement`** interface, which provides special properties and methods (beyond the `HTMLElement` object interface they also have available to them by inheritance) for manipulating the layout and presentation of `<meter>` elements.

EventTarget

Node

Element

HTMLElement

HTMLMeterElementInstance properties
-------------------

*Also inherits properties from its parent, `HTMLElement`.*

`HTMLMeterElement.high`

A `double` representing the value of the high boundary, reflecting the `high` attribute.

`HTMLMeterElement.low`

A `double` representing the value of the low boundary, reflecting the `low`attribute.

`HTMLMeterElement.max`

A `double` representing the maximum value, reflecting the `max` attribute.

`HTMLMeterElement.min`

A `double` representing the minimum value, reflecting the `min` attribute.

`HTMLMeterElement.optimum`

A `double` representing the optimum, reflecting the `optimum` attribute.

`HTMLMeterElement.value`

A `double` representing the current value, reflecting the `value` attribute.

`HTMLMeterElement.labels` Read only 

A `NodeList` of `<label>` elements that are associated with the element.

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

*This interface does not implement any specific methods but inherits methods from its parent, `HTMLElement`.*

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

| Specification |
| --- |
| HTML Standard # htmlmeterelement |

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: `<meter>`
HTMLFieldSetElement
===================

The **`HTMLFieldSetElement`** interface provides special properties and methods (beyond the regular `HTMLElement` interface it also has available to it by inheritance) for manipulating the layout and presentation of `<fieldset>` elements.

EventTarget

Node

Element

HTMLElement

HTMLFieldSetElementInstance properties
-------------------

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

`HTMLFieldSetElement.disabled`

A boolean value reflecting the `disabled` HTML attribute, indicating whether the user can interact with the control.

`HTMLFieldSetElement.elements` Read only 

The elements belonging to this field set. The type of this property depends on the version of the spec that is implemented by the browser.

`HTMLFieldSetElement.form` Read only 

 An `HTMLFormControlsCollection` or `HTMLCollection` referencing the containing form element, if this element is in a form.
 If the field set is not a descendant of a form element, then the attribute can be the ID of any form element in the same document it is related to, or the `null` value if none matches.


`HTMLFieldSetElement.name`

A string reflecting the `name` HTML attribute, containing the name of the field set. This can be used when accessing the field set in JavaScript. It is *not* part of the data which is sent to the server.

`HTMLFieldSetElement.type` Read only 

The string "`fieldset`".

`HTMLFieldSetElement.validationMessage`

A string representing a localized message that describes the validation constraints that the element does not satisfy (if any). This is the empty string if the element is not a candidate for constraint validation (`willValidate` is `false`), or it satisfies its constraints.

`HTMLFieldSetElement.validity`

A `ValidityState` representing the validity states that this element is in.

`HTMLFieldSetElement.willValidate`

A boolean value `false`, because `<fieldset>` objects are never candidates for constraint validation.

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

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

`HTMLFieldSetElement.checkValidity()`

Always returns `true` because `<fieldset>` objects are never candidates for constraint validation.

`HTMLFieldSetElement.reportValidity()`

Always returns `true` because `<fieldset>` objects are never candidates for constraint validation.

`HTMLFieldSetElement.setCustomValidity()`

Sets a custom validity message for the field set. If this message is not the empty string, then the field set is suffering from a custom validity error, and does not validate.

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

| Specification |
| --- |
| HTML Standard # htmlfieldsetelement |

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: `<fieldset>`.