src/jdk/nashorn/api/scripting/ScriptObjectMirror.java

Print this page

        

@@ -36,10 +36,11 @@
 import java.util.Set;
 import java.util.concurrent.Callable;
 import jdk.nashorn.internal.runtime.Context;
 import jdk.nashorn.internal.runtime.ScriptFunction;
 import jdk.nashorn.internal.runtime.ScriptObject;
+import jdk.nashorn.internal.runtime.ScriptRuntime;
 import netscape.javascript.JSObject;
 
 /**
  * Mirror object that wraps a given ScriptObject instance. User can
  * access ScriptObject via the java.util.Map interface.

@@ -65,10 +66,20 @@
     @Override
     public int hashCode() {
         return sobj.hashCode();
     }
 
+    @Override
+    public String toString() {
+        return inGlobal(new Callable<String>() {
+            @Override
+            public String call() {
+                return ScriptRuntime.safeToString(sobj);
+            }
+        });
+    }
+
     private <V> V inGlobal(final Callable<V> callable) {
         final ScriptObject oldGlobal = Context.getGlobal();
         final boolean globalChanged = (oldGlobal != global);
         if (globalChanged) {
             NashornScriptEngine.setNashornGlobal(global);