1
0
mirror of https://github.com/robertkrimen/otto synced 2025-10-12 20:27:30 +08:00
otto/error_test.go
2013-06-02 15:03:33 -07:00

65 lines
1.1 KiB
Go

package otto
import (
. "./terst"
"testing"
)
func TestError(t *testing.T) {
Terst(t)
test := runTest()
test(`
[ Error.prototype.name, Error.prototype.message, Error.prototype.hasOwnProperty("message") ];
`, "Error,,true")
}
func TestError_instanceof(t *testing.T) {
Terst(t)
test := runTest()
test(`
(new TypeError()) instanceof Error
`, "true")
}
func TestPanicValue(t *testing.T) {
Terst(t)
test := runTest()
failSet("abc", func(call FunctionCall) Value {
value, err := call.Otto.Run(`({ def: 3.14159 })`)
Is(err, nil)
panic(value)
})
test(`
try {
abc();
}
catch (err) {
error = err;
}
[ error instanceof Error, error.message, error.def ];
`, "false,,3.14159")
}
func Test_catchPanic(t *testing.T) {
Terst(t)
// TODO This is here because ToValue(nil) was failing
return
otto, _ := runTestWithOtto()
_, err := otto.Run(`
A syntax error that
does not define
var;
abc;
`)
IsNot(err, nil)
_, err = otto.Call(`abc.def`, nil)
IsNot(err, nil)
}