code: public final Script compileReader(Reader in, String sourceName,
                                        int lineno, Object securityDomain)
          throws IOException
      {
          if (lineno < 0) {
              // For compatibility IllegalArgumentException can not be thrown here
              lineno = 0;
          }
          return (Script) compileImpl(null, in, null, sourceName, lineno,
                                      securityDomain, false, null, null);
      }
docs: Compiles the source in the given reader.
  <p>
  Returns a script that may later be executed.
  Will consume all the source in the reader.
  
  @param in the input reader
  @param sourceName a string describing the source, such as a filename
  @param lineno the starting line number for reporting errors
  @param securityDomain an arbitrary object that specifies security
  information about the origin or owner of the script. For
  implementations that don't care about security, this value
  may be null.
  @return a script that may later be executed
  @exception IOException if an IOException was generated by the Reader
  @see org.mozilla.javascript.Script