Mon, 29 Jul 2013 21:56:40 +0530
Merge
1.1 --- a/src/jdk/nashorn/api/scripting/resources/engine.js Mon Jul 29 10:28:03 2013 +0530 1.2 +++ b/src/jdk/nashorn/api/scripting/resources/engine.js Mon Jul 29 21:56:40 2013 +0530 1.3 @@ -39,12 +39,20 @@ 1.4 } 1.5 }); 1.6 1.7 -function print(str) { 1.8 +function print() { 1.9 var writer = context.getWriter(); 1.10 if (! (writer instanceof java.io.PrintWriter)) { 1.11 writer = new java.io.PrintWriter(writer); 1.12 } 1.13 - writer.println(String(str)); 1.14 + 1.15 + var buf = new java.lang.StringBuilder(); 1.16 + for (var i = 0; i < arguments.length; i++) { 1.17 + if (i != 0) { 1.18 + buf.append(' '); 1.19 + } 1.20 + buf.append(String(arguments[i])); 1.21 + } 1.22 + writer.println(buf.toString()); 1.23 } 1.24 1.25 /**
2.1 --- a/test/src/jdk/nashorn/api/scripting/ScriptEngineTest.java Mon Jul 29 10:28:03 2013 +0530 2.2 +++ b/test/src/jdk/nashorn/api/scripting/ScriptEngineTest.java Mon Jul 29 21:56:40 2013 +0530 2.3 @@ -1220,4 +1220,38 @@ 2.4 Assert.assertEquals(itf.test1(42, "a", "b"), "i == 42, strings instanceof java.lang.String[] == true, strings == [a, b]"); 2.5 Assert.assertEquals(itf.test2(44, "c", "d", "e"), "arguments[0] == 44, arguments[1] instanceof java.lang.String[] == true, arguments[1] == [c, d, e]"); 2.6 } 2.7 + 2.8 + @Test 2.9 + // check that print function prints arg followed by newline char 2.10 + public void printTest() { 2.11 + final ScriptEngineManager m = new ScriptEngineManager(); 2.12 + final ScriptEngine e = m.getEngineByName("nashorn"); 2.13 + final StringWriter sw = new StringWriter(); 2.14 + e.getContext().setWriter(sw); 2.15 + try { 2.16 + e.eval("print('hello')"); 2.17 + } catch (final Throwable t) { 2.18 + t.printStackTrace(); 2.19 + fail(t.getMessage()); 2.20 + } 2.21 + 2.22 + assertEquals(sw.toString(), "hello\n"); 2.23 + } 2.24 + 2.25 + @Test 2.26 + // check that print prints all arguments (more than one) 2.27 + public void printManyTest() { 2.28 + final ScriptEngineManager m = new ScriptEngineManager(); 2.29 + final ScriptEngine e = m.getEngineByName("nashorn"); 2.30 + final StringWriter sw = new StringWriter(); 2.31 + e.getContext().setWriter(sw); 2.32 + try { 2.33 + e.eval("print(34, true, 'hello')"); 2.34 + } catch (final Throwable t) { 2.35 + t.printStackTrace(); 2.36 + fail(t.getMessage()); 2.37 + } 2.38 + 2.39 + assertEquals(sw.toString(), "34 true hello\n"); 2.40 + } 2.41 }