Browse Source

Added NewTypeError()

Dmitry Panov 9 years ago
parent
commit
6fd5be68bf
1 changed files with 10 additions and 6 deletions
  1. 10 6
      runtime.go

+ 10 - 6
runtime.go

@@ -201,12 +201,7 @@ func (r *Runtime) init() {
 
 func (r *Runtime) typeErrorResult(throw bool, args ...interface{}) {
 	if throw {
-		msg := ""
-		if len(args) > 0 {
-			f, _ := args[0].(string)
-			msg = fmt.Sprintf(f, args[1:]...)
-		}
-		panic(r.builtin_new(r.global.TypeError, []Value{newStringValue(msg)}))
+		panic(r.NewTypeError(args...))
 	}
 }
 
@@ -279,6 +274,15 @@ func (r *Runtime) NewObject() (v *Object) {
 	return r.newBaseObject(r.global.ObjectPrototype, classObject).val
 }
 
+func (r *Runtime) NewTypeError(args ...interface{}) *Object {
+	msg := ""
+	if len(args) > 0 {
+		f, _ := args[0].(string)
+		msg = fmt.Sprintf(f, args[1:]...)
+	}
+	return r.builtin_new(r.global.TypeError, []Value{newStringValue(msg)})
+}
+
 func (r *Runtime) NewGoError(err error) *Object {
 	e := r.newError(r.global.GoError, err.Error()).(*Object)
 	e.Set("value", err)