| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Builtin_ctor_no_new | [Back] [Original] |
Get to know MDN better
The JavaScript exception "calling a builtin X constructor without new is forbidden" occurs when you try to call a builtin constructor without using the new keyword. All modern constructors, such as Promise and Map, must be called with new.
TypeError: Constructor X requires 'new' (V8-based) TypeError: Promise constructor cannot be invoked without 'new' (V8-based) TypeError: calling a builtin X constructor without new is forbidden (Firefox) TypeError: calling X constructor without new is invalid (Safari)
TypeError
In JavaScript, calling a function without new and constructing a function with new are two distinct operations, and functions can behave differently depending on how they are called.
Apart from the following legacy constructors, all modern constructors must be called with new:
Object()Function() (and its subclasses)Error() (and its subclasses)RegExp()Array()Some other constructors, such as Date(), and primitive wrappers, such as String(), Number(), and Boolean(), can also be called with or without new, but the return types differ in the two cases.
On every constructor page, you can find information about whether the constructor must be called with new.
const m = Map(); // TypeError: calling a builtin Map constructor without new is forbidden
const m = new Map();
This page was last modified on May 22, 2026 by MDN contributors.
Your blueprint for a better internet.
Portions of this content are 19982026 by individual mozilla.org contributors. Content available under a Creative Commons license.
| Web Proxy Viewer | New URL | Original Page |