title: Rhino reports missing : after property id
body: <p>I'm using Rhino 1.7 R4 with envjs 1.2 on Mac OSX with JDK 1.6.0_33</p>
  
  <p>If I run:</p>
  
  <pre><code>java -jar rhino-1.7R4.jar -opt -1
  </code></pre>
  
  <p>And then:</p>
  
  <pre><code>load('env.rhino-1.2.js')
  </code></pre>
  
  <p>Then the script is loaded successfully.</p>
  
  <p>When I load the same JS script from Java via RhinoTest.java:</p>
  
  <pre><code>import org.apache.commons.io.IOUtils;
  import org.mozilla.javascript.Context;
  import org.mozilla.javascript.ContextAction;
  import org.mozilla.javascript.Script;
  import org.mozilla.javascript.Scriptable;
  import org.mozilla.javascript.tools.shell.Main;
  import org.mozilla.javascript.tools.shell.ShellContextFactory;
  import org.slf4j.Logger;
  import org.slf4j.LoggerFactory;
  
  import java.io.IOException;
  import java.io.InputStream;
  import java.io.InputStreamReader;
  import java.util.ArrayList;
  import java.util.List;
  
  public class RhinoTest {
      static final Logger LOGGER = LoggerFactory.getLogger(RhinoTest.class);
      static private Scriptable SCRIPTABLE;
      static private List&lt;Script&gt; scripts;
  
      public static void main(String[] args) {
          ShellContextFactory cxFactory = Main.shellContextFactory;
  
          cxFactory.call(new ContextAction() {
              @Override
              public Object run(Context cx) {
                  final Initiator initiator = new Initiator(cx).init();
  
                  LOGGER.trace("Run script");
                  try {
                      return initiator.execute();
                  } finally {
                  }
              }
  
              class Initiator {
                  Initiator(Context context) {
                      this.cx = context;
                  }
  
                  Initiator init() {
                      if (SCRIPTABLE == null)
                          createScriptable();
                      initContext();
                      return this;
                  }
  
                  Object execute() {
                      return null;
                  }
  
                  void createScriptable() {
  
                      LOGGER.trace("init standard objects");
                      SCRIPTABLE = cx.initStandardObjects();
  
                      LOGGER.trace("set optimization level to -1");
                      cx.setOptimizationLevel(-1);// bypass the 64k limit // interpretive mode
                      attachJs("env.rhino-1.2.js");
  
  
                      LOGGER.trace("set optimization level to 9");
                      cx.setOptimizationLevel(9);
  
                  }
  
                  @SuppressWarnings("deprecation")
                  private void attachJs(String jsFileName) {
                      InputStream in = null;
                      InputStreamReader reader = null;
                      if (LOGGER.isDebugEnabled()) LOGGER.debug("loading " + jsFileName);
                      try {
                          in = RhinoTest.class.getResourceAsStream(jsFileName);
                          if (in == null)
                              throw new RuntimeException("cannot find js file : " + jsFileName);
  
                          reader = new InputStreamReader(in);
                          if (scripts == null)
                              scripts = new ArrayList&lt;Script&gt;();
                          scripts.add(cx.compileReader(SCRIPTABLE, reader, jsFileName, 1, null));
  
                          if (LOGGER.isDebugEnabled()) LOGGER.debug("loaded " + jsFileName);
                      } catch (IOException e) {
                          throw new RuntimeException("cannot load js file : " + jsFileName, e);
                      } finally {
                          IOUtils.closeQuietly(in);
                          IOUtils.closeQuietly(reader);
                      }
                  }
  
                  void initContext() {
                      LOGGER.trace("set optimization level to -1");
                      cx.setOptimizationLevel(-1);// bypass the 64k limit // interpretive mode
  
                      for (Script s : scripts) {
                          s.exec(cx, SCRIPTABLE);
                      }
  
                  }
  
                  private final Context cx;
              }
          });
  
  
      }
  }
  </code></pre>
  
  <p>I get:</p>
  
  <pre><code>Exception in thread "main" org.mozilla.javascript.EvaluatorException: missing : after property id (env.rhino-1.2.js#2121)
  at org.mozilla.javascript.DefaultErrorReporter.runtimeError(Unknown Source)
  at org.mozilla.javascript.DefaultErrorReporter.error(Unknown Source)
  at org.mozilla.javascript.Parser.addError(Unknown Source)
  at org.mozilla.javascript.Parser.reportError(Unknown Source)
  at org.mozilla.javascript.Parser.mustMatchToken(Unknown Source)
  at org.mozilla.javascript.Parser.primaryExpr(Unknown Source)
  at org.mozilla.javascript.Parser.memberExpr(Unknown Source)
  at org.mozilla.javascript.Parser.unaryExpr(Unknown Source)
  at org.mozilla.javascript.Parser.mulExpr(Unknown Source)
  at org.mozilla.javascript.Parser.addExpr(Unknown Source)
  at org.mozilla.javascript.Parser.shiftExpr(Unknown Source)
  at org.mozilla.javascript.Parser.relExpr(Unknown Source)
  at org.mozilla.javascript.Parser.eqExpr(Unknown Source)
  at org.mozilla.javascript.Parser.bitAndExpr(Unknown Source)
  at org.mozilla.javascript.Parser.bitXorExpr(Unknown Source)
  at org.mozilla.javascript.Parser.bitOrExpr(Unknown Source)
  at org.mozilla.javascript.Parser.andExpr(Unknown Source)
  at org.mozilla.javascript.Parser.orExpr(Unknown Source)
  at org.mozilla.javascript.Parser.condExpr(Unknown Source)
  at org.mozilla.javascript.Parser.assignExpr(Unknown Source)
  at org.mozilla.javascript.Parser.argumentList(Unknown Source)
  at org.mozilla.javascript.Parser.memberExprTail(Unknown Source)
  at org.mozilla.javascript.Parser.memberExpr(Unknown Source)
  at org.mozilla.javascript.Parser.unaryExpr(Unknown Source)
  at org.mozilla.javascript.Parser.mulExpr(Unknown Source)
  at org.mozilla.javascript.Parser.addExpr(Unknown Source)
  at org.mozilla.javascript.Parser.shiftExpr(Unknown Source)
  at org.mozilla.javascript.Parser.relExpr(Unknown Source)
  at org.mozilla.javascript.Parser.eqExpr(Unknown Source)
  at org.mozilla.javascript.Parser.bitAndExpr(Unknown Source)
  at org.mozilla.javascript.Parser.bitXorExpr(Unknown Source)
  at org.mozilla.javascript.Parser.bitOrExpr(Unknown Source)
  at org.mozilla.javascript.Parser.andExpr(Unknown Source)
  at org.mozilla.javascript.Parser.orExpr(Unknown Source)
  at org.mozilla.javascript.Parser.condExpr(Unknown Source)
  at org.mozilla.javascript.Parser.assignExpr(Unknown Source)
  at org.mozilla.javascript.Parser.expr(Unknown Source)
  at org.mozilla.javascript.Parser.statementHelper(Unknown Source)
  at org.mozilla.javascript.Parser.statement(Unknown Source)
  at org.mozilla.javascript.Parser.parseFunctionBody(Unknown Source)
  at org.mozilla.javascript.Parser.function(Unknown Source)
  at org.mozilla.javascript.Parser.primaryExpr(Unknown Source)
  at org.mozilla.javascript.Parser.memberExpr(Unknown Source)
  at org.mozilla.javascript.Parser.unaryExpr(Unknown Source)
  at org.mozilla.javascript.Parser.mulExpr(Unknown Source)
  at org.mozilla.javascript.Parser.addExpr(Unknown Source)
  at org.mozilla.javascript.Parser.shiftExpr(Unknown Source)
  at org.mozilla.javascript.Parser.relExpr(Unknown Source)
  at org.mozilla.javascript.Parser.eqExpr(Unknown Source)
  at org.mozilla.javascript.Parser.bitAndExpr(Unknown Source)
  at org.mozilla.javascript.Parser.bitXorExpr(Unknown Source)
  at org.mozilla.javascript.Parser.bitOrExpr(Unknown Source)
  at org.mozilla.javascript.Parser.andExpr(Unknown Source)
  at org.mozilla.javascript.Parser.orExpr(Unknown Source)
  at org.mozilla.javascript.Parser.condExpr(Unknown Source)
  at org.mozilla.javascript.Parser.assignExpr(Unknown Source)
  at org.mozilla.javascript.Parser.expr(Unknown Source)
  at org.mozilla.javascript.Parser.primaryExpr(Unknown Source)
  at org.mozilla.javascript.Parser.memberExpr(Unknown Source)
  at org.mozilla.javascript.Parser.unaryExpr(Unknown Source)
  at org.mozilla.javascript.Parser.mulExpr(Unknown Source)
  at org.mozilla.javascript.Parser.addExpr(Unknown Source)
  at org.mozilla.javascript.Parser.shiftExpr(Unknown Source)
  at org.mozilla.javascript.Parser.relExpr(Unknown Source)
  at org.mozilla.javascript.Parser.eqExpr(Unknown Source)
  at org.mozilla.javascript.Parser.bitAndExpr(Unknown Source)
  at org.mozilla.javascript.Parser.bitXorExpr(Unknown Source)
  at org.mozilla.javascript.Parser.bitOrExpr(Unknown Source)
  at org.mozilla.javascript.Parser.andExpr(Unknown Source)
  at org.mozilla.javascript.Parser.orExpr(Unknown Source)
  at org.mozilla.javascript.Parser.condExpr(Unknown Source)
  at org.mozilla.javascript.Parser.assignExpr(Unknown Source)
  at org.mozilla.javascript.Parser.expr(Unknown Source)
  at org.mozilla.javascript.Parser.statementHelper(Unknown Source)
  at org.mozilla.javascript.Parser.statement(Unknown Source)
  at org.mozilla.javascript.Parser.parse(Unknown Source)
  at org.mozilla.javascript.Parser.parse(Unknown Source)
  at org.mozilla.javascript.Context.compileImpl(Unknown Source)
  at org.mozilla.javascript.Context.compileReader(Unknown Source)
  at org.mozilla.javascript.Context.compileReader(Unknown Source)
  at RhinoTest$1$Initiator.attachJs(RhinoTest.java:85)
  at RhinoTest$1$Initiator.createScriptable(RhinoTest.java:63)
  at RhinoTest$1$Initiator.init(RhinoTest.java:44)
  at RhinoTest$1.run(RhinoTest.java:28)
  at org.mozilla.javascript.Context.call(Unknown Source)
  at org.mozilla.javascript.ContextFactory.call(Unknown Source)
  at RhinoTest.main(RhinoTest.java:25)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  at java.lang.reflect.Method.invoke(Method.java:597)
  at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
  </code></pre>
  
  <p>Please help</p>