Преглед на файлове

jsre: bind the pretty printer to "inspect" in JS

Felix Lange преди 10 години
родител
ревизия
49703bea0a
променени са 2 файла, в които са добавени 9 реда и са изтрити 0 реда
  1. 1 0
      jsre/jsre.go
  2. 8 0
      jsre/pretty.go

+ 1 - 0
jsre/jsre.go

@@ -66,6 +66,7 @@ func New(assetPath string) *JSRE {
 	re.loopWg.Add(1)
 	go re.runEventLoop()
 	re.Set("loadScript", re.loadScript)
+	re.Set("inspect", prettyPrintJS)
 	return re
 }
 

+ 8 - 0
jsre/pretty.go

@@ -54,6 +54,14 @@ func prettyPrint(vm *otto.Otto, value otto.Value) {
 	ppctx{vm}.printValue(value, 0)
 }
 
+func prettyPrintJS(call otto.FunctionCall) otto.Value {
+	for _, v := range call.ArgumentList {
+		prettyPrint(call.Otto, v)
+		fmt.Println()
+	}
+	return otto.UndefinedValue()
+}
+
 type ppctx struct{ vm *otto.Otto }
 
 func (ctx ppctx) indent(level int) string {