Skip to content

noInvalidBuiltinInstantiation (JavaScript)

Language JavaScript (and super languages)
biome.json
{
"linter": {
"rules": {
"correctness": {
"noInvalidBuiltinInstantiation": "error"
}
}
}
}

Ensure that builtins are correctly instantiated.

The following builtins require new to be instantiate:

  • ArrayBuffer
  • BigInt64Array
  • BigUint64Array
  • DataView
  • FinalizationRegistry
  • Float32Array
  • Float64Array
  • Int16Array
  • Int32Array
  • Int8Array
  • Map
  • Promise
  • Proxy
  • Set
  • SharedArrayBuffer
  • Uint16Array
  • Uint32Array
  • Uint8Array
  • Uint8ClampedArray
  • WeakMap
  • WeakRef
  • WeakSet

Conversely, the following builtins cannot be instantiated with new:

  • BigInt
  • Symbol
const text = new BigInt(1);
code-block.js:1:14 lint/correctness/noInvalidBuiltinInstantiation  FIXABLE  ━━━━━━━━━━━━━━━━━━━━━━━━

✖ Use BigInt() instead of new BigInt().

> 1 │ const text = new BigInt(1);
│ ^^^^^^^^^^^^^
2 │

ℹ Unsafe fix: Remove new keyword.

1 │ const·text·=·new·BigInt(1);
│ ----
const map = Map([
['foo', 'bar']
]);
code-block.js:1:13 lint/correctness/noInvalidBuiltinInstantiation  FIXABLE  ━━━━━━━━━━━━━━━━━━━━━━━━

✖ Use new Map() instead of Map().

> 1 │ const map = Map([
│ ^^^^^
> 2 │ ['foo', 'bar']
> 3 │ ]);
│ ^^
4 │

ℹ Unsafe fix: Add new keyword.

1 │ const·map·=·new·Map([
│ ++++
const text = BigInt(1);
const map = new Map([
['foo', 'bar']
]);