Merge

Mon, 29 Jul 2013 21:56:40 +0530

author
sundar
date
Mon, 29 Jul 2013 21:56:40 +0530
changeset 479
7d5d24bdb671
parent 477
5fc6b7f11289
parent 478
0532397d0732
child 480
e966ff0a3ffe
child 483
bb0f3c896cb7

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  }

mercurial