code: @VisibleForTesting
    public static CompilerOptions getCompilerOptions() {
      CompilerOptions options = new CompilerOptions();
      options.setLanguageIn(LanguageMode.ECMASCRIPT_NEXT);
      options.setLanguageOut(LanguageMode.ECMASCRIPT5);
      options.setSummaryDetailLevel(0);
  
      options.setDependencyOptions(DependencyOptions.sortOnly());
  
      options.setChecksOnly(true);
      options.setContinueAfterErrors(true);
      options.setParseJsDocDocumentation(Config.JsDocParsing.INCLUDE_DESCRIPTIONS_NO_WHITESPACE);
      options.setCheckSuspiciousCode(true);
      options.setCheckSymbols(true);
      options.setCheckTypes(true);
      options.setBrokenClosureRequiresLevel(CheckLevel.OFF);
      // TODO(bangert): Remove this -- we want to rewrite code before closure syntax is removed.
      // Unfortunately, setClosurePass is required, or code doesn't type check.
      options.setClosurePass(true);
      options.setGenerateExports(true);
      options.setPreserveClosurePrimitives(true);
  
      options.setWarningLevel(DiagnosticGroups.STRICT_MISSING_REQUIRE, CheckLevel.WARNING);
      options.setWarningLevel(DiagnosticGroups.EXTRA_REQUIRE, CheckLevel.WARNING);
      options.setWarningLevel(DiagnosticGroups.LINT_CHECKS, CheckLevel.WARNING);
  
      return options;
    }
docs: don't need to call it directly.