-
Notifications
You must be signed in to change notification settings - Fork 12
Semantics for ES5
License
brownplt/LambdaS5
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Semantics for ECMAScript 5.0 ============================ Install and Usage ----------------- See `INSTALL` for installation instruction. s5 options are implemented as stack manipulation so the order of options matters. Here are a few examples (in `src/` directory, and a js file `test.js` exists): Desugar a Javascript program and print the S5 source. $ ./s5.d.byte -desugar test.js -print-src Desugar a Javascript program, wrap with an Environment and do evaluation. $ ./s5.d.byte -desugar test.js -env ../envs/es5.env -apply -eval Desugar a Javascript program, wrap with an Environment, apply optimizations and finally print out the optimized code (excluding the environment). $ ./s5.d.byte -desugar test.js -env ../envs/es5-optimization.env -apply -opt-restore-id -opt-restore-function -opt-propagate-const -opt-clean-deadcode -print-user-s5 Slimming Language Options ------------------------- All optimization options start with "-opt-". There are a few options not compatible with the optimization flags: 1. `-internal-env env-vars`. This option introduces identifiers of es5.env in the nested environment for `eval`. It has a huge negative impact on the constant propagation. 2. `-env es5.env`. There are several `env` files in env/ directory. Optimization flags only work on `es5-optimization.env`, which is similar to `es5.env`. The only difference is that it excludes built-in `eval` support (-opt-restore-id would not work if `es5.env` is used). See previous usage examples for how to pass a correct environment.
About
Semantics for ES5
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published