-
Notifications
You must be signed in to change notification settings - Fork 22.4k
/
index.md
87 lines (58 loc) · 2.24 KB
/
index.md
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
---
title: InternalError
slug: Web/JavaScript/Reference/Global_Objects/InternalError
page-type: javascript-class
status:
- non-standard
browser-compat: javascript.builtins.InternalError
---
{{JSRef}}{{Non-standard_Header}}
The **`InternalError`** object indicates an error that occurred internally in the JavaScript engine.
Example cases are mostly when something is too large, e.g.:
- "too many switch cases",
- "too many parentheses in regular expression",
- "array initializer too large",
- "too much recursion".
`InternalError` is a subclass of {{jsxref("Error")}}.
## Constructor
- {{jsxref("InternalError/InternalError", "InternalError()")}} {{non-standard_inline}}
- : Creates a new `InternalError` object.
## Instance properties
_Also inherits instance properties from its parent {{jsxref("Error")}}_.
These properties are defined on `InternalError.prototype` and shared by all `InternalError` instances.
- {{jsxref("Object/constructor", "InternalError.prototype.constructor")}}
- : The constructor function that created the instance object. For `InternalError` instances, the initial value is the {{jsxref("InternalError/InternalError", "InternalError")}} constructor.
- {{jsxref("Error/name", "InternalError.prototype.name")}}
- : Represents the name for the type of error. For `InternalError.prototype.name`, the initial value is `"InternalError"`.
## Instance methods
_Inherits instance methods from its parent {{jsxref("Error")}}_.
## Examples
### Too much recursion
This recursive function runs 10 times, as per the exit condition.
```js
function loop(x) {
// "x >= 10" is the exit condition
if (x >= 10) return;
// do stuff
loop(x + 1); // the recursive call
}
loop(0);
```
Setting this condition to an extremely high value, may not work:
```js example-bad
function loop(x) {
if (x >= 1000000000000) return;
// do stuff
loop(x + 1);
}
loop(0);
// InternalError: too much recursion
```
For more information, see [InternalError: too much recursion.](/en-US/docs/Web/JavaScript/Reference/Errors/Too_much_recursion)
## Specifications
Not part of any standard.
## Browser compatibility
{{Compat}}
## See also
- {{jsxref("Error")}}
- [InternalError: too much recursion](/en-US/docs/Web/JavaScript/Reference/Errors/Too_much_recursion)