code: @SuppressWarnings("deprecation")
    public List<String> compileToJsSrc(
        SoyJsSrcOptions jsSrcOptions, @Nullable SoyMsgBundle msgBundle) {
      resetErrorReporter();
      // JS has traditionally allowed unknown globals, as a way for soy to reference normal js enums
      // and constants. For consistency/reusability of templates it would be nice to not allow that
      // but the cat is out of the bag.
      PassManager.Builder builder =
          passManagerBuilder().allowUnknownGlobals().allowV1Expression().desugarHtmlNodes(false);
      ParseResult result = parse(builder);
      throwIfErrorsPresent();
      TemplateRegistry registry = result.registry();
      SoyFileSetNode fileSet = result.fileSet();
      List<String> generatedSrcs =
          new JsSrcMain(scopedData.enterable(), typeRegistry)
              .genJsSrc(fileSet, registry, jsSrcOptions, msgBundle, errorReporter);
      throwIfErrorsPresent();
      reportWarnings();
      return generatedSrcs;
    }
docs: Compiles this Soy file set into JS source code files and returns these JS files as a list of
  strings, one per file.
  
  <p>TODO(lukes): deprecate and delete localized builds
  
  @param jsSrcOptions The compilation options for the JS Src output target.
  @param msgBundle The bundle of translated messages, or null to use the messages from the Soy
  source.
  @return A list of strings where each string represents the JS source code that belongs in one
  JS file. The generated JS files correspond one-to-one to the original Soy source files.
  @throws SoyCompilationException If compilation fails.