code: public final Expression withInitialStatements(Iterable<? extends Statement> initialStatements) {
      // If there are no new initial statements, return the current chunk.
      if (Iterables.isEmpty(initialStatements)) {
        return this;
      }
      // Otherwise, return a code chunk that includes all of the dependent code.
      return Composite.create(ImmutableList.copyOf(initialStatements), this);
    }
docs: Returns a chunk whose output expression is the same as this chunk's, but which includes the
  given initial statements.
  
  <p>This method is designed for interoperability with parts of the JS codegen system that do not
  understand code chunks. For example, when applying plugin functions, {@link
  com.google.template.soy.jssrc.internal.TranslateExprNodeVisitor#visitFunctionNode} needs to
  downgrade the plugin arguments from CodeChunk.WithValues to {@link JsExpr}s for the plugin API
  to process. The result (a JsExpr) needs to be upgraded back to a CodeChunk.Expression that
  includes the initial statements from the original arguments.