src/java.scripting/share/classes/javax/script/SimpleScriptContext.java
changeset 49858 56923ee4f07e
parent 47216 71c04702a3d5
--- a/src/java.scripting/share/classes/javax/script/SimpleScriptContext.java	Mon Apr 23 10:59:39 2018 -0500
+++ b/src/java.scripting/share/classes/javax/script/SimpleScriptContext.java	Mon Apr 23 18:14:35 2018 +0200
@@ -86,11 +86,25 @@
      * Create a {@code SimpleScriptContext}.
      */
     public SimpleScriptContext() {
+        this(new InputStreamReader(System.in),
+             new PrintWriter(System.out , true),
+             new PrintWriter(System.err, true));
         engineScope = new SimpleBindings();
         globalScope = null;
-        reader = new InputStreamReader(System.in);
-        writer = new PrintWriter(System.out , true);
-        errorWriter = new PrintWriter(System.err, true);
+    }
+
+    /**
+     * Package-private constructor to avoid needless creation of reader and writers.
+     * It is the caller's responsability to initialize the engine scope.
+     *
+     * @param reader the reader
+     * @param writer the writer
+     * @param errorWriter the error writer
+     */
+    SimpleScriptContext(Reader reader, Writer writer, Writer errorWriter) {
+        this.reader = reader;
+        this.writer = writer;
+        this.errorWriter = errorWriter;
     }
 
     /**