A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/zertosh/unreachable-branch-transform below:

zertosh/unreachable-branch-transform: Browserify transform (and recast visitor) to remove unreachable code branches

unreachable-branch-transform

Removes unreachable code branches in if statements, ternaries ?, and logical operations || &&, where the test is determinable (like comparing two constants). This is similar to what UglifyJS's "dead_code" compressor option does, but without the extra code transformations.

When combined with something like envify and browserify, you can perform conditional require calls without including more code than you need.

npm install unreachable-branch-transform
// original 
var transport = process.env.TARGET === 'client' ? require('ajax') : require('fs');

// after envify
var transport = 'server' === 'client' ? require('ajax') : require('fs');
// then after unreachable-branch-transform
var transport = require('fs');
// original
if (process.env.NODE_ENV === 'development') {
  console.log('in dev mode');
} else {
  console.log('in some other mode');
}

// after envify
if ('production' === 'development') {
  console.log('in dev mode');
} else {
  console.log('in some other mode');
}

// then after unreachable-branch-transform
{
  console.log('in some other mode');
}
Frequently asked questions Why are undefined equality references not removed?

If you have a branch with the format

if (undefined === 'production') {
  /* ... */
}

it will not be removed. Unfortunately, undefined is not a constant in older browser runtimes and can be reassigned. In this case, it could be possible that undefined does indeed equal 'production'.

esmangle-evaluator is from the esmangle project.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4