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);