|
|
@@ -37,6 +37,7 @@ var (
|
|
|
SpecialColor = color.New(color.Bold).SprintfFunc()
|
|
|
NumberColor = color.New(color.FgRed).SprintfFunc()
|
|
|
StringColor = color.New(color.FgGreen).SprintfFunc()
|
|
|
+ ErrorColor = color.New(color.FgHiRed).SprintfFunc()
|
|
|
)
|
|
|
|
|
|
// these fields are hidden when printing objects.
|
|
|
@@ -55,6 +56,23 @@ func prettyPrint(vm *otto.Otto, value otto.Value, w io.Writer) {
|
|
|
ppctx{vm: vm, w: w}.printValue(value, 0, false)
|
|
|
}
|
|
|
|
|
|
+// prettyError writes err to standard output.
|
|
|
+func prettyError(vm *otto.Otto, err error, w io.Writer) {
|
|
|
+ failure := err.Error()
|
|
|
+ if ottoErr, ok := err.(*otto.Error); ok {
|
|
|
+ failure = ottoErr.String()
|
|
|
+ }
|
|
|
+ fmt.Fprint(w, ErrorColor("%s", failure))
|
|
|
+}
|
|
|
+
|
|
|
+// jsErrorString adds a backtrace to errors generated by otto.
|
|
|
+func jsErrorString(err error) string {
|
|
|
+ if ottoErr, ok := err.(*otto.Error); ok {
|
|
|
+ return ottoErr.String()
|
|
|
+ }
|
|
|
+ return err.Error()
|
|
|
+}
|
|
|
+
|
|
|
func prettyPrintJS(call otto.FunctionCall, w io.Writer) otto.Value {
|
|
|
for _, v := range call.ArgumentList {
|
|
|
prettyPrint(call.Otto, v, w)
|