--- old/test/src/jdk/nashorn/api/scripting/ScriptEngineTest.java 2013-08-22 18:25:27.358502106 +0530 +++ new/test/src/jdk/nashorn/api/scripting/ScriptEngineTest.java 2013-08-22 18:25:27.202501325 +0530 @@ -1256,4 +1256,30 @@ // dos2unix - fix line endings if running on windows assertEquals(sw.toString().replaceAll("\r", ""), "34 true hello\n"); } + + @Test + public void mirrorNewObjectGlobalFunctionTest() throws ScriptException { + final ScriptEngineManager m = new ScriptEngineManager(); + final ScriptEngine e = m.getEngineByName("nashorn"); + final ScriptEngine e2 = m.getEngineByName("nashorn"); + + e.eval("function func() {}"); + e2.put("foo", e.get("func")); + final Object e2global = e2.eval("this"); + final Object newObj = ((ScriptObjectMirror)e2global).newObject("foo"); + assertTrue(newObj instanceof ScriptObjectMirror); + } + + @Test + public void mirrorNewObjectInstanceFunctionTest() throws ScriptException { + final ScriptEngineManager m = new ScriptEngineManager(); + final ScriptEngine e = m.getEngineByName("nashorn"); + final ScriptEngine e2 = m.getEngineByName("nashorn"); + + e.eval("function func() {}"); + e2.put("func", e.get("func")); + final Object e2obj = e2.eval("({ foo: func })"); + final Object newObj = ((ScriptObjectMirror)e2obj).newObject("foo"); + assertTrue(newObj instanceof ScriptObjectMirror); + } }