proposal for ECMAScript to allow omission of the catch binding
HTML Shell Makefile
Switch branches/tags
Nothing to show
Clone or download
Latest commit 29283fa May 22, 2018
Permalink
Failed to load latest commit information.
.gitignore initial commit Jun 11, 2017
.travis.yml initial commit Jun 11, 2017
Makefile initial commit Jun 11, 2017
README.md fixes #5: document motivation Oct 12, 2017
github-deploy-key.enc initial commit Jun 11, 2017
package.json initial commit Jun 11, 2017
proposal.html stage 4 May 22, 2018
publi.sh initial commit Jun 11, 2017

README.md

This proposal makes a grammatical change to ECMAScript, allowing the omission of a catch binding in cases where the binding would not be used. This occurs frequently with patterns such as

try {
  // try to use a web feature which may not be implemented
} catch (unused) {
  // fall back to a less desirable web feature with broader support
}

or

let isTheFeatureImplemented = false;
try {
  // stress the required bits of the web API
  isTheFeatureImplemented = true;
} catch (unused) {}

or

let parseResult = someFallbackValue;
try {
  parseResult = JSON.parse(potentiallyMalformedJSON);
} catch (unused) {}

and it is a common opinion that variables which are declared or written to but never read signify a programming error.

The grammar change introduced by this proposal allows for the catch binding and its surrounding parentheses to be omitted, as in

try {
  // ...
} catch {
  // ...
}

See the the full text of the proposal for more info.