google / google/closure-compiler

DISCUSS: Should the default output language be `NO_TRANSPILE`?

Open
#3,256 17 comments 1 reaction 0 assignees View on GitHub
internal-issue-created triage-done
Dominant language
JavaScript
Stars
7.7k
Forks
1.2k
Avg merge
2d 12h
Merged PRs (30d)
6

Description

It is now possible to output `ES_2017` code, and in future we would really prefer to stay more on top of the output language level.

Currently the default output language level is still `ES5` to support the most possible browsers by default.
Would it now make sense to make the default `NO_TRANSPILE`, so you get the same language level out as you get in unless you specify otherwise?

Note that we're still almost certain to support new language levels as input before they are supported for output (just with a much smaller gap between). In such cases `NO_TRANSPILE` wouldn't work and we'd need to generate an error if the output language weren't explicitly specified.

Or would we default to the highest possible? That seems dangerous, since a new release of the compiler that silently switches the output from, say, `ES_2019` to `ES_2020` would break projects that were unintentionally relying on the fact that the default was `ES_2019` just because we hadn't yet added support for `ES_2020`

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.