1package goja
2
3func (r *Runtime) createErrorPrototype(name valueString) *Object {
4	o := r.newBaseObject(r.global.ErrorPrototype, classObject)
5	o._putProp("message", stringEmpty, true, false, true)
6	o._putProp("name", name, true, false, true)
7	return o.val
8}
9
10func (r *Runtime) initErrors() {
11	r.global.ErrorPrototype = r.NewObject()
12	o := r.global.ErrorPrototype.self
13	o._putProp("message", stringEmpty, true, false, true)
14	o._putProp("name", stringError, true, false, true)
15	o._putProp("toString", r.newNativeFunc(r.error_toString, nil, "toString", nil, 0), true, false, true)
16
17	r.global.Error = r.newNativeFuncConstruct(r.builtin_Error, "Error", r.global.ErrorPrototype, 1)
18	r.addToGlobal("Error", r.global.Error)
19
20	r.global.TypeErrorPrototype = r.createErrorPrototype(stringTypeError)
21
22	r.global.TypeError = r.newNativeFuncConstructProto(r.builtin_Error, "TypeError", r.global.TypeErrorPrototype, r.global.Error, 1)
23	r.addToGlobal("TypeError", r.global.TypeError)
24
25	r.global.ReferenceErrorPrototype = r.createErrorPrototype(stringReferenceError)
26
27	r.global.ReferenceError = r.newNativeFuncConstructProto(r.builtin_Error, "ReferenceError", r.global.ReferenceErrorPrototype, r.global.Error, 1)
28	r.addToGlobal("ReferenceError", r.global.ReferenceError)
29
30	r.global.SyntaxErrorPrototype = r.createErrorPrototype(stringSyntaxError)
31
32	r.global.SyntaxError = r.newNativeFuncConstructProto(r.builtin_Error, "SyntaxError", r.global.SyntaxErrorPrototype, r.global.Error, 1)
33	r.addToGlobal("SyntaxError", r.global.SyntaxError)
34
35	r.global.RangeErrorPrototype = r.createErrorPrototype(stringRangeError)
36
37	r.global.RangeError = r.newNativeFuncConstructProto(r.builtin_Error, "RangeError", r.global.RangeErrorPrototype, r.global.Error, 1)
38	r.addToGlobal("RangeError", r.global.RangeError)
39
40	r.global.EvalErrorPrototype = r.createErrorPrototype(stringEvalError)
41	o = r.global.EvalErrorPrototype.self
42	o._putProp("name", stringEvalError, true, false, true)
43
44	r.global.EvalError = r.newNativeFuncConstructProto(r.builtin_Error, "EvalError", r.global.EvalErrorPrototype, r.global.Error, 1)
45	r.addToGlobal("EvalError", r.global.EvalError)
46
47	r.global.URIErrorPrototype = r.createErrorPrototype(stringURIError)
48
49	r.global.URIError = r.newNativeFuncConstructProto(r.builtin_Error, "URIError", r.global.URIErrorPrototype, r.global.Error, 1)
50	r.addToGlobal("URIError", r.global.URIError)
51
52	r.global.GoErrorPrototype = r.createErrorPrototype(stringGoError)
53
54	r.global.GoError = r.newNativeFuncConstructProto(r.builtin_Error, "GoError", r.global.GoErrorPrototype, r.global.Error, 1)
55	r.addToGlobal("GoError", r.global.GoError)
56}
57