   #
   #  * `preserve_newlines` - when `true`, all `\n` characters found in templates
   #       will be converted to `{~n}` prior to processing the template.
+  #
+  #
+  #  * `trim_trailing_newline` - when `true`, a true newline (`\n`, not `{~n}`)
+  #       at the end of a template file will be stripped off (to avoid adding
+  #       unintended whitespace due to a newline added to the end of a file
+  #       by a text editor).
   #
   #  * `use_cache` - when `true`, "compiled" templates will be cached (by name
   #       or filename); otherwise no caching will be applied, including dust's

  _get_preserve_newlines:(options = {})=>
    Util.truthy_string(options.preserve_newlines ? options.preserveNewlines ? @preserve_newlines ? false)

  # determines the "use_cache" value based on the given options
  _get_use_cache:(options = {})=>
    Util.truthy_string(options.use_cache ? options.useCache ? @use_cache ? false)

    @template_root = @_get_template_root(options)
    @template_extension = @_get_template_extension(options)
    @preserve_newlines = @_get_preserve_newlines(options)
    @trim_trailing_newline = @_get_trim_trailing_newline(options)
    @template_not_found = @_get_template_not_found(options)
    @use_cache = @_get_use_cache(options)
    if @use_cache
      @cache = {}
