Environment Specification for Dead Code Elimination:

It uses a subset of JS Script to setup the environment.

```mjs
// set global property
this.x = null;
// set global lexical variable
let x = null;
const x = null;
// set global variable (diff from property due to `delete x`)
var x = null;
```

All right hand side values *must* be of the following formats:

```mjs
this // the global
null
undefined
true
false
"" // any string value
0 // any number value
```

If a value is unknown, a limited type system can be employed using JSDoc.

```mjs
/**
 * @type {string}
 */
let __filename;
/**
 * @implements {Import<()=>{}>}
 */
let require;
```